From ca170d5f0cdfdfcff9005a9b9f322dc8bc1b985e Mon Sep 17 00:00:00 2001 From: Pepa Date: Wed, 23 Sep 2020 04:44:59 +0200 Subject: [PATCH] Minor fixups in cz/sk translation (#359) * fixed up few strings (mainly missing 1st capital letter * made some strings more clear * fixed one mistranslated string (location auto set) * upgrade/documentacion/refatcor of translation check script (now checks for duplicates) --- app/src/main/res/values-cs/arrays.xml | 2 +- app/src/main/res/values-cs/strings.xml | 14 ++--- app/src/main/res/values-sk/strings.xml | 14 ++--- tools/translateCheck.py | 77 ++++++++++++++++---------- 4 files changed, 64 insertions(+), 43 deletions(-) diff --git a/app/src/main/res/values-cs/arrays.xml b/app/src/main/res/values-cs/arrays.xml index f73ab574b..a4943a41a 100644 --- a/app/src/main/res/values-cs/arrays.xml +++ b/app/src/main/res/values-cs/arrays.xml @@ -22,4 +22,4 @@ Standardní Vysoké - \ No newline at end of file + diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 49223a159..1ff0db8c6 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -20,7 +20,7 @@ Váš telefon nepodporuje automatické určení polohy. Polohu můžete nastavit ručně v nastavení. Automatické určení polohy je deaktivováno. Chce je aktivovat? Automatické určení polohy deaktivováno - Poloha nastavena od %1$s po %2$s + Poloha nastavena pomocí %1$s na %2$s Nelze najít vaši polohu, možná je síť nedostupná? Nenalezeno Nelze nalézt „%s“ @@ -378,8 +378,8 @@ Načíst Meteorické roje Kvadrantidy - Kompas - - Mag korekce + Kompas + Magnetická korekce Diagnostika Povolení odmítnuto Senzor chybí @@ -392,7 +392,7 @@ Univerzální čas Proč potřebujeme vaši lokaci? Rotace - lokace a čas + Lokace a čas Epsylon Lyrae Perseidy Přesnost: Nespolehlivá @@ -411,7 +411,7 @@ Avšak Sky Map lze stále používat v manuálním módu tím že budete mapu posouvat otačet a zoomovat prsty. Toto již nezobrazovat - Lokace (lat, long) + Lokace (šíkař, délka) Senzory Orionidy Verze Sky Map @@ -447,7 +447,7 @@ Jižní Delta Aquaridy Tuto zprávu již nezobrazovat Gyroskop - Síť + Sítě Místní čas Otočit horizont o 90 stupňů (pro zařízení s vynuceným zobrazení na šírku, např. chytré brýle) Obrátit magnetické pole v ose Z @@ -456,7 +456,7 @@ " (wifi)" Přesnost: Nízká GPS - ukazující snapshot + Ukazující/ilustrační snapshot Připojeno Přesnost: Neznámá diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 49223a159..1ff0db8c6 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -20,7 +20,7 @@ Váš telefon nepodporuje automatické určení polohy. Polohu můžete nastavit ručně v nastavení. Automatické určení polohy je deaktivováno. Chce je aktivovat? Automatické určení polohy deaktivováno - Poloha nastavena od %1$s po %2$s + Poloha nastavena pomocí %1$s na %2$s Nelze najít vaši polohu, možná je síť nedostupná? Nenalezeno Nelze nalézt „%s“ @@ -378,8 +378,8 @@ Načíst Meteorické roje Kvadrantidy - Kompas - - Mag korekce + Kompas + Magnetická korekce Diagnostika Povolení odmítnuto Senzor chybí @@ -392,7 +392,7 @@ Univerzální čas Proč potřebujeme vaši lokaci? Rotace - lokace a čas + Lokace a čas Epsylon Lyrae Perseidy Přesnost: Nespolehlivá @@ -411,7 +411,7 @@ Avšak Sky Map lze stále používat v manuálním módu tím že budete mapu posouvat otačet a zoomovat prsty. Toto již nezobrazovat - Lokace (lat, long) + Lokace (šíkař, délka) Senzory Orionidy Verze Sky Map @@ -447,7 +447,7 @@ Jižní Delta Aquaridy Tuto zprávu již nezobrazovat Gyroskop - Síť + Sítě Místní čas Otočit horizont o 90 stupňů (pro zařízení s vynuceným zobrazení na šírku, např. chytré brýle) Obrátit magnetické pole v ose Z @@ -456,7 +456,7 @@ " (wifi)" Přesnost: Nízká GPS - ukazující snapshot + Ukazující/ilustrační snapshot Připojeno Přesnost: Neznámá diff --git a/tools/translateCheck.py b/tools/translateCheck.py index cbe5df2e2..afaffcc99 100644 --- a/tools/translateCheck.py +++ b/tools/translateCheck.py @@ -2,54 +2,75 @@ from bs4 import BeautifulSoup # pip install beautifulsoup4 lxml from pathlib import Path -enca="utf-8" +enca="utf-8" #used encoding +#get root of project resfolder=Path(__file__).absolute().parent.parent.joinpath("app/src/main/res") +#get folder with reference string referencefolder= resfolder.joinpath("values") +#get language +lang = input("write two letter iso code of your country like fr: ") - - -ender = input("write two letter iso code of your country like fr: ") - -toTranslateFolder= resfolder.joinpath(f"values-{ender}") +#target folder to translate +toTranslateFolder= resfolder.joinpath(f"values-{lang}") if not toTranslateFolder.is_dir(): print(f"your folder is not folder or does not exist {toTranslateFolder}") exit(0) -def diffmaker(endpath): +def checker(file): + """ + prints + * diff between reference and target translation + * duplicates in target translation + """ print("=======================================================") - toCompare = toTranslateFolder.joinpath(endpath) - reference = referencefolder.joinpath(endpath) + toCompare = toTranslateFolder.joinpath(file) + reference = referencefolder.joinpath(file) if not toCompare.is_file(): - print(f"translation for {endpath} dont exists, coppy it from {reference}") + print(f"translation for {file} dont exists, coppy it from {reference}") return toCompare = BeautifulSoup(toCompare.open(encoding=enca), "xml") reference = BeautifulSoup(reference.open(encoding=enca), "xml") def fetchAllNames(src): - outSet = set() - for string in src.find_all("string"): - outSet.add(string["name"]) - return outSet + # returns iterator + return map(lambda string: string["name"], src.find_all("string")) - toCompare = fetchAllNames(toCompare) - missing = set() - - - for one in fetchAllNames(reference): + toCompare = list(fetchAllNames(toCompare)) + errBuffer = "" + #diff pringing + for one in set(fetchAllNames(reference)): if one not in toCompare: - missing.add(str(reference.find("string",attrs={"name":one}))) + errBuffer += str(reference.find("string",attrs={"name":one}))+"\n" - if(len(missing)>0): - print(f"missing from {endpath} (contains oreginal strings)\n------------------------------------------------------\n"+"\n".join(missing)) - - -diffmaker("strings.xml") - -diffmaker("celestial_objects.xml") - + if errBuffer!="": + errBuffer= f"missing from {file} (contains oreginal strings)\n------------------------------------------------------\n{errBuffer}" + + #duplication detection + seen = set() + dupes = {} + for x in toCompare: + if x not in seen: + seen.add(x) + elif x in dupes: + dupes[x]+=1 + else: + dupes[x]=2 + + if(len(dupes)>0): + errBuffer+= f"\n\nfound duplicates in {file} \n\n" + for key,value in dupes.items(): + errBuffer+= f" is present {value} times \n" + + if(errBuffer!=""): + print(errBuffer) + else: + print(f"no fixes needed in {file}") + +checker("strings.xml") +checker("celestial_objects.xml")