New languages: Norwegian and Czech

This commit is contained in:
Miroslav Mazel
2022-02-06 14:04:25 +01:00
parent 318bafcc11
commit a87603f69c
14 changed files with 57 additions and 159 deletions

View File

@ -10,4 +10,6 @@ Time Cop started as a personal project of Kenton Hamaluik ([@hamaluik](https://g
| rlyders | [@rlyders](https://github.com/rlyders) |
| Laurent Savaete | [@laurentS](https://github.com/laurentS) |
| Mohamed Fadel | [@wmfadel](https://github.com/wmfadel) |
| Mirek Mazel | [@12people](https://github.com/12people) |
| Miroslav Mazel | [@12people](https://github.com/12people) |
| Allan Nordhøy | [@comradekingu](https://github.com/comradekingu) |
| J. Lavoie | (Translations through Weblate) |

View File

@ -1,5 +1,6 @@
#!/bin/bash
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l ar
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l cs
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l de
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l es
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l fr
@ -8,6 +9,7 @@ tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l id
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l it
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l ja
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l ko
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l nb-NO
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l pt
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l ru
tt -c translation_credentials.json -f terms.flt -d l10n/en.flt -o l10n -l zh-CN

View File

@ -26,6 +26,8 @@
<string>ru</string>
<string>ar</string>
<string>it</string>
<string>nb_NO</string>
<string>cs</string>
</array>
<key>CFBundleName</key>
<string>Time Cop</string>

View File

@ -38,7 +38,7 @@ auto = Výchozí
light = Světlý
dark = Tmavý
black = Černý
langName = Angličtina
langName = Čeština
language = Jazyk
automaticLanguage = Výchozí ({ $langName })
collapseDays = Sbalit dny

View File

@ -1,150 +0,0 @@
about = Om
appDescription = Et tidssporingsprogram som respekterer ditt personvern og får jobben gjort uten plunder.
appLegalese = Opphavsrett © Kenton Hamaluik, 20202021
readme = Lesmeg
changeLog = Endringslogg
sourceCode = Kildekode
whatAreYouDoing = Hva gjør du?
projects = Prosjekter
export = Eksporter
noProject = (ingen prosjekter)
confirmDelete = Bekreft sletting
deleteTimerConfirm = Slett dette tidsuret?
cancel = Avbryt
delete = Slett
runningTimers = Kjørende tidsur
timeCopDatabase = Time Cop-database ({ $date })
filter = Filtrer
from = Fra
to = Til
project = Prosjekt
description = Beskrivelse
timeH = Tid (timer)
timeCopEntries = Time Cop-oppføringer ({ $date })
createNewProject = Opprett nytt prosjekt
editProject = Rediger prosjekt
pleaseEnterAName = Skriv inn et navn
projectName = Prosjektnavn
create = Opprett
save = Lagre
areYouSureYouWantToDelete = Slett dette prosjektet?
editTimer = Endre tidsur
whatWereYouDoing = Hva gjorde du?
startTime = Starttid
endTime = Slutt
duration = Varighet
appName = Time Cop
logoSemantics = Time Cop-logo
noDescription = (ingen beskrivelse)
options = Alternativer
groupTimers = Grupper lignende tidsur per dag
columns = Kolonner
date = Dato
combinedProjectDescription = Kombinert prosjekt og beskrivelse
reports = Rapporter
nHours = { $hours }timer
averageDailyHours = Gjen. daglige timer
totalProjectShare = Deling av totalt prosjekt
weeklyHours = Ukentlige timer
contributors = Bidragsytere
settings = Innstillinger
theme = Drakt
auto = Automatisk
light = Lys
dark = Mørk
black = Svart
langName = Norsk bokmål
language = Language
automaticLanguage = Automatisk ({ $langName })
collapseDays = Fold sammen dager
autocompleteDescription = Autofullfør beskrivelser
defaultFilterStartDateToMonday = Forvalgt filter for startdato til mandag
hours = Timer
total = Totalt
oneTimerAtATime = Kun tillat ett kjørende tidsur av gangen
selectAll = Velg alle
selectNone = Fravelg alt
defaultFilterDays = Forvalgt filterperiod (dager)
import = Import
invalidDatabaseFile = Ugyldig databasefil!
databaseImported = Database importert
showBadgeCounts = Vis kjørende tidsursantall som programikonsskilt
runningTimersNotificationTitle = Kjørende tidsur
runningTimersNotificationBody = Tidsur kjører fremdeles i bakgrunnen
enableRunningTimersNotification = Vis merknader for kjørende tidsur
notes = Notiser

View File

@ -48,7 +48,7 @@ settings = Innstillinger
delete = Slett
dark = Mørk
black = Svart
langName = Engelsk
langName = Norsk Bokmål
language = Språk
databaseImported = Database importert
invalidDatabaseFile = Ugyldig databasefil
@ -60,6 +60,7 @@ import = Importer
automaticLanguage = Automatisk ({ $langName })
collapseDays = Fold sammen dager
autocompleteDescription = Autofullfør beskrivelser
defaultFilterStartDateToMonday = Mandag som standard filterstartdato
hours = Timer
total = Totalt
oneTimerAtATime = Kun tillat ett tellende tidsur av gangen

View File

@ -28,6 +28,13 @@ class MockDataProvider extends DataProvider {
"mockups": "نموذج تجريبي",
"app-development": "تطوير التطبيق",
},
"cs": {
"administration": "Správa",
"mockups": "Mockupy",
"ui-layout": "Rozvržení UI",
"coffee": "Kafe",
"app-development": "Vývoj aplikace"
},
"de": {
"app-development": "App-Entwicklung",
"administration": "Verwaltung",
@ -70,6 +77,13 @@ class MockDataProvider extends DataProvider {
"mockups": "Maket",
"administration": "Administrasi",
},
"nb-NO": {
"administration": "Administrasjon",
"mockups": "Mockups",
"ui-layout": "UI Layout",
"coffee": "Kaffe",
"app-development": "Apputvikling"
},
"ja": {
"ui-layout": "UIレイアウト",
"mockups": "モックアップ",

View File

@ -27,12 +27,23 @@ class FluentL10NProvider extends L10NProvider {
final FluentBundle bundle = FluentBundle(locale.toLanguageTag());
String src = "l10n/${locale.languageCode}.flt";
// special handling of zh-CN & zh-TW for now
if (locale.languageCode == "zh" && locale.countryCode == "CN") {
src = "l10n/zh-CN.flt";
} else if (locale.languageCode == "zh" && locale.countryCode == "TW") {
src = "l10n/zh-TW.flt";
// special handling of zh-CN, zh-TW & nb-NO for now
switch (locale.languageCode) {
case "zh":
switch (locale.countryCode) {
case "TW":
src = "l10n/zh-TW.flt";
break;
default:
src = "l10n/zh-CN.flt";
break;
}
break;
case "nb":
src = "l10n/nb-NO.flt";
break;
}
String messages = await rootBundle.loadString(src);
bundle.addMessages(messages);
@ -179,6 +190,8 @@ class FluentL10NProvider extends L10NProvider {
switch (locale.languageCode) {
case "ar":
return "العربية";
case "cs":
return "Čeština";
case "de":
return "Deutsch";
case "en":
@ -197,6 +210,8 @@ class FluentL10NProvider extends L10NProvider {
return "日本語";
case "ko":
return "한국어";
case "nb":
return "Norsk Bokmål";
case "pt":
return "Português";
case "ru":

View File

@ -57,7 +57,9 @@ class _L10NDelegate extends LocalizationsDelegate<L10N> {
'ru',
'zh',
'ar',
'it'
'it',
'cs',
'nb'
].contains(locale.languageCode);
@override

View File

@ -239,6 +239,8 @@ class _TimeCopAppState extends State<TimeCopApp> with WidgetsBindingObserver {
const Locale('zh', 'TW'),
const Locale('ar'),
const Locale('it'),
const Locale('cs'),
const Locale('nb', 'NO'),
],
),
)));

View File

@ -54,6 +54,7 @@ class LocaleOptions extends StatelessWidget {
]
.followedBy([
const Locale('ar'),
const Locale('cs'),
const Locale('de'),
const Locale('en'),
const Locale('es'),
@ -63,6 +64,7 @@ class LocaleOptions extends StatelessWidget {
const Locale('it'),
const Locale('ja'),
const Locale('ko'),
const Locale('nb', 'NO'),
const Locale('pt'),
const Locale('ru'),
const Locale('zh', 'CN'),

View File

@ -10,6 +10,7 @@ staging: ./tmp/screenshots
locales:
- it
- ar
- cs
- en
- fr
- de
@ -18,6 +19,7 @@ locales:
# - id # not working for some reason
- ja
- ko
- nb-NO
- pt
- ru
- zh-CN

View File

@ -9,6 +9,7 @@ staging: ./tmp/screenshots
# A list of locales supported in app
locales:
- en-CA
- cs
- fr-FR
- de-DE
- es-ES
@ -17,6 +18,7 @@ locales:
- id
- ja
- ko
- nb-NO
- pt-PT
- ru
- zh-CN

View File

@ -1,5 +1,6 @@
#!/bin/bash
tt -c ../../translation_credentials.json -f en.flt -o . -l ar
tt -c ../../translation_credentials.json -f en.flt -o . -l cs
tt -c ../../translation_credentials.json -f en.flt -o . -l de
tt -c ../../translation_credentials.json -f en.flt -o . -l es
tt -c ../../translation_credentials.json -f en.flt -o . -l fr
@ -8,6 +9,7 @@ tt -c ../../translation_credentials.json -f en.flt -o . -l id
tt -c ../../translation_credentials.json -f en.flt -o . -l it
tt -c ../../translation_credentials.json -f en.flt -o . -l ja
tt -c ../../translation_credentials.json -f en.flt -o . -l ko
tt -c ../../translation_credentials.json -f en.flt -o . -l nb-NO
tt -c ../../translation_credentials.json -f en.flt -o . -l pt
tt -c ../../translation_credentials.json -f en.flt -o . -l ru
tt -c ../../translation_credentials.json -f en.flt -o . -l zh-CN