Skip to content

Commit

Permalink
Create poupdate script to auto-update translations via poeditor API
Browse files Browse the repository at this point in the history
  • Loading branch information
bbedward committed Aug 14, 2019
1 parent a006b59 commit 18771bc
Show file tree
Hide file tree
Showing 9 changed files with 130 additions and 96 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,4 @@ coverage/

# Translations
lib/l10n/*.json
bin/settings.py
31 changes: 31 additions & 0 deletions bin/poupdate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import os
import json
from poeditor import POEditorAPI
from settings import PO_API_KEY, PROJECT_ID

client = POEditorAPI(api_token=PO_API_KEY)

languages = client.list_project_languages(PROJECT_ID)

language_codes = []

for l in languages:
if l['percentage'] > 50:
language_codes.append(l['code'])

for code in language_codes:
client.export(PROJECT_ID, code, file_type='json', local_file=f'lib/l10n/intl_{code}.json')

for fname in os.listdir('lib/l10n'):
if fname.endswith('.json'):
fname = f'lib/l10n/{fname}'
out_file = fname.replace(".json", ".arb")
ret = {}
with open(fname) as json_file:
data = json.load(json_file)
for obj in data:
ret[obj['reference']] = obj['definition'].replace("<newline>", "\n")
with open(out_file, 'w') as outf:
json.dump(ret, outf, indent=2, ensure_ascii=False)
print(f"Wrote {out_file}")
os.remove(fname)
2 changes: 2 additions & 0 deletions bin/settings.py.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
PO_API_KEY='1234'
PROJECT_ID=1234
70 changes: 35 additions & 35 deletions lib/l10n/intl_de.arb
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
"importButton": "Importieren",
"receiveButton": "Empfangen",
"sendButton": "Senden",
"copyAddressButton": "Adresse kopieren",
"copiedAddressButton": "Adresse kopiert",
"copyAddressButton": "Kontonummer kopieren",
"copiedAddressButton": "Kontonummer kopiert",
"addToContactsButton": "Zu Kontakten hinzufügen",
"operationDetailsButton": "Vorgangs-Details",
"openInExplorerButton": "Im explorer anzeigen",
Expand All @@ -37,7 +37,7 @@
"unlockButton": "Entsperren",
"unlockWithBiometricsButton": "Mit Biometrie entsperren",
"unlockWithPINButton": "Mit PIN entsperren",
"setToDefaultButton": "Als Standard festlegen",
"setToDefaultButton": "Zurücksetzen",
"changeDaemonButton": "Server wechseln",
"addContactButton": "Kontakt hinzufügen",
"encryptedKeyButton": "Chiffrierter Schlüssel",
Expand All @@ -55,40 +55,40 @@
"searchNameButton": "Suche Name",
"okayGoBackButton": "Okay, zurück",
"nextButton": "Weiter",
"welcomeParagraph": "Willkommen bei der Blaise Wallet. Um zu starten kannst du entweder einen neuen privaten Schlüssel generieren oder einen Bestehenden importieren.",
"newKeySecurityParagraph": "Im nächsten Schritt siehst du deinen Privaten Schlüssel. Mit diesem Schlüssel hast Du Zugriff auf deine Pascal. Es ist wichtig, dass du diesen Schlüssel sicherst und mit niemanden teilst!",
"uninstallDisclaimerParagraph": "Wenn du dein Gerät verlierst oder die Blaise Wallet deinstallierst, brauchst du deinen privaten Schlüssel für die Wiederherstellung.",
"newPrivateKeyParagraph": "Nachfolgend findest du deinen neuen privaten Schlüssel. Es ist unbedingt erforderlich, dass du diesen sicherst - aber bitte nicht als Screenshot oder in Klartext. Wir empfehlen Dir ihn auf einem Blatt Papier zu notieren.",
"newKeyBackUpConfirmParagraph": "Hast du deinen privaten Schlüssel wirklich gesichert?",
"newWalletGreetingParagraph": "Willkommen bei der <colored>Blaise Wallet</colored>.\n Zum Start solltest du ein Konto anlegen.",
"getAccountFirstParagraph": "Es gibt 2 Möglichkeiten um dein erstes Konto erhalten:",
"getAccountSecondParagraph": "1- Du kannst ein kostenfreies Konto mit Hilfe deiner Telefonnummer erhalten <colored>Nur 1 Konto pro Telefonnummer erlaubt.</colored>",
"getAccountThirdParagraph": "2- Du kannst beliebig viele Konten für eine Gebühr von <colored>%1 Pascal (%2).</colored> erwerben.",
"enterPhoneNumberParagraph": "Trage deine Telefonnummer hier ein.",
"welcomeParagraph": "Willkommen bei der Blaise Wallet. Um zu starten musst Du entweder einen neuen privaten Schlüssel generieren oder einen bestehenden importieren.",
"newKeySecurityParagraph": "Im nächsten Schritt siehst Du Deinen privaten Schlüssel. Mit diesem Schlüssel hast Du Zugriff auf Deine Pascal. Es ist wichtig, dass Du diesen Schlüssel sicherst und mit niemanden teilst!",
"uninstallDisclaimerParagraph": "Wenn Du Dein Gerät verlierst oder die Blaise Wallet deinstallierst, brauchst Du Deinen privaten Schlüssel für die Wiederherstellung.",
"newPrivateKeyParagraph": "Nachfolgend findest Du Deinen neuen privaten Schlüssel. Es ist unbedingt erforderlich, dass Du diesen sicherst - aber bitte nicht als Screenshot oder in Klartext auf Deinem Computer oder Smartphone. Wir empfehlen Dir ihn auf einem Blatt Papier zu notieren.",
"newKeyBackUpConfirmParagraph": "Hast Du Deinen privaten Schlüssel wirklich gesichert?",
"newWalletGreetingParagraph": "Willkommen bei der <colored>Blaise Wallet</colored>.\n Zum Start musst Du Dir ein Konto anlegen.",
"getAccountFirstParagraph": "Es gibt 2 Möglichkeiten, um Dein erstes Konto erhalten:",
"getAccountSecondParagraph": "1- Du kannst ein kostenfreies Konto mit Hilfe Deiner Telefonnummer erhalten. <colored>Nur 1 Konto pro Telefonnummer erlaubt.</colored>",
"getAccountThirdParagraph": "2- Du kannst beliebig viele Konten für eine Gebühr von <colored>%1 Pascal (%2)</colored> erwerben.",
"enterPhoneNumberParagraph": "Trage Deine Telefonnummer hier ein.",
"enterConfirmationCodeParagraph": "Wir haben dir einen Bestätigungs-Code gesendet. Bitte hier eintragen.",
"borrowStarted": "Konto-Kauf für %1 gestartet",
"borrowAccountParagraph": "Um ein Konto zu kaufen, musst du dir zu Beginn eines ausleihen. Wenn du innerhalb von <colored>%3 Tage(n)</colored> <colored>%1 Pascal (%2)</colored> an das Konto überweist, gehört es dir und der Betrag von <colored>%1 Pascal</colored> wird automatisch abgezogen.\nAnsonsten geht das geliehene Konto nach <colored>%3 Tage(n)</colored> an uns zurück und ist nicht mehr Teil deiner Wallet.\nWir empfehlen dir nicht zu große Beträge an das Konto zu senden, solange es nicht Dir gehört.",
"importPrivateKeyParagraph": "Trage deinen privaten Schlüssel ein",
"borrowAccountParagraph": "Um ein Konto zu kaufen, musst Du dir zu Beginn eines ausleihen. Wenn Du innerhalb von <colored>%3 Tage(n)</colored> mindestens <colored>%1 Pascal (%2)</colored> an das geliehene Konto überweist, gehört es dir und der Betrag von <colored>%1 Pascal</colored> wird automatisch abgezogen.\nAnsonsten geht das geliehene Konto nach <colored>%3 Tage(n)</colored> an uns zurück und ist nicht mehr Teil Deiner Wallet.\nWir empfehlen dir, nicht zu große Beträge an das Konto zu senden, solange es nicht Dir gehört.",
"importPrivateKeyParagraph": "Trage Deinen privaten Schlüssel ein",
"looksLikeEncryptedKeyParagraph": "Siehst aus als wäre der private Schlüssel chiffriert. Bitte trage das Passwort zum dechiffrieren ein",
"changeDaemonParagraph": "Trage eine Adresse zu einem anderen Pascal-Server ein",
"urlChangedToParagraph": "Pascal-Server geändert zu %1",
"backupKeyFirstParagraph": "Du hast 2 Möglichkeiten um deinen privaten Schlüssel zu sichern:",
"backupKeyFirstParagraph": "Du hast 2 Möglichkeiten, um Deinen privaten Schlüssel zu sichern:",
"backupKeySecondParagraph": "1- Chiffrieren mit Hilfe eines Passworts",
"backupKeyThirdParagraph": "2- Nicht chiffriert, im Klartext und ungeschützt",
"backupKeyFourthParagraph": "Wir empfehlen dir die dechiffrierte Version des Schlüssels auf einem Blatt Papier zu notieren. Die chiffrierte Version kann in einem Passwort Manager gespeichert werden.",
"backupKeyFourthParagraph": "Wir empfehlen dir, die nicht chiffrierte Version des Schlüssels auf einem Blatt Papier zu notieren. Die chiffrierte Version kann in einem Passwort Manager gespeichert werden.",
"encryptKeyParagraph": "Neues Passwort erstellen um den privaten Schlüssel verschlüsseln.",
"backupEncryptedKeyFirstParagraph": "Hier ist dein mit einem Passwort chiffrierter privater Schlüssel. Du kannst Ihn problemlos in einem Passwort Manager speichern.",
"backupEncryptedKeySecondParagraph": "Wenn du das Passwort vergisst oder verlierst kannst du nicht mehr auf deine Pascal zugreifen.",
"backupUnencryptedKeyParagraph": "Nachfolgend siehst du deinen privaten Schlüssel. <colored>Dieser ist nicht mit einem Passwort geschützt, deshalb ist es zwingend erforderlich, dass du ihn sicher offline verwahrst!</colored> Wir empfehlen dir ihn auf Papier zu notieren.",
"publicKeyParagraph": "Nachfolgend siehst du deinen öffentlichen Schlüssel, der mit jedem geteilt und zur Verifizierung deiner Vorgänge genutzt werden kann.",
"borrowedAccountParagraph": "Dies ist ein <colored>geliehenes Konto</colored>.\nWenn du in den nächsten <colored>%2 days, %3 hours, and %4 minutes</colored> mindestens <colored>%1 Pascal</colored> an das Konto sendest gehört es dir!",
"borrowedAccountPaidParagraph": "<colored>Dein Konto wurde verkauft!</colored>\nThe Übertragung läuft gerade. Dieser Vorgang dauert ungefähr <colored>5 minutes</colored>, manchmal kann es auch etwas länger dauern.",
"logoutFirstDisclaimerParagraph": "<colored>Wenn du dich abmeldest, werden deine Schlüssel und alle Blaise bezogenen Daten von diesem Gerät gelöscht.</colored> Hast du deinen privaten Schlüssel gesichert? Wenn nicht, wirst du alles verlieren. Wenn ja, brauchst du dir keine Sorgen zu machen.",
"logoutSecondDisclaimerParagraph": "Bist du dir sicher, dass du deinen privaten Schlüssel gesichert hast? <colored>Wenn ja, brauchst du dir keine Sorgen zu machen.</colored>",
"backupEncryptedKeyFirstParagraph": "Hier ist Dein mit einem Passwort chiffrierter privater Schlüssel. Du kannst Ihn problemlos in einem Passwort Manager speichern.",
"backupEncryptedKeySecondParagraph": "Wenn Du das Passwort vergisst oder verlierst, kannst Du nicht mehr auf Deine Pascal zugreifen.",
"backupUnencryptedKeyParagraph": "Nachfolgend siehst Du Deinen privaten Schlüssel. <colored>Dieser ist nicht mit einem Passwort geschützt, deshalb ist es zwingend erforderlich, dass Du ihn sicher offline verwahrst!</colored> Wir empfehlen ihn auf Papier zu notieren.",
"publicKeyParagraph": "Nachfolgend siehst Du Deinen öffentlichen Schlüssel, der mit jedem geteilt und zur Verifizierung Deiner Vorgänge genutzt werden kann.",
"borrowedAccountParagraph": "Dies ist ein <colored>geliehenes Konto</colored>.\nWenn Du in den nächsten <colored>%2 Tage(n), %3 Stunde(n) und %4 Minute(n)</colored> mindestens <colored>%1 Pascal</colored> an das Konto sendest gehört es dir!",
"borrowedAccountPaidParagraph": "<colored>Du hast das Konto gekauft!</colored>\nDie Übertragung läuft gerade. Dieser Vorgang dauert ungefähr <colored>5 Minuten</colored>, manchmal kann es auch etwas länger dauern. Bitte habe ein wenig Geduld, Du kannst in Kürze loslegen.",
"logoutFirstDisclaimerParagraph": "<colored>Wenn Du dich abmeldest, werden Deine Schlüssel und alle Blaise bezogenen Daten von diesem Gerät gelöscht.</colored> Hast Du Deinen privaten Schlüssel gesichert? Wenn nicht, wirst Du alles verlieren. Wenn ja, brauchst Du Dir keine Sorgen zu machen.",
"logoutSecondDisclaimerParagraph": "Bist Du dir sicher, dass Du Deinen privaten Schlüssel gesichert hast? <colored>Wenn ja, brauchst Du Dir keine Sorgen zu machen.</colored>",
"sendingConfirmParagraph": "Bitte bestätige die Überweisungsdaten.",
"sentParagraph": "Die Überweisung wurde erfolgreich ausgeführt.",
"changeNameParagraph": "Trage einen neuen Namen für dein Konto ein.",
"changingNameParagraph": "Bitte bestätige den neuen Namen für dein Konto.",
"changeNameParagraph": "Trage einen neuen Namen für Dein Konto ein.",
"changingNameParagraph": "Bitte bestätige den neuen Namen für Dein Konto.",
"changedNameParagraph": "Der Name des Kontos wurde erfolgreich geändert.",
"transferParagraph": "Trage nachfolgend den öffentl. Schlüssel ein, an den das Konto übertragen wird.",
"transferringParagraph": "Bitte bestätige den nachfolgenden öffentl. Schlüssel, um das Konto zu übertragen.",
Expand Down Expand Up @@ -124,7 +124,7 @@
"failedToRemoveFromContactsParagraph": "Fehler beim entfernen von %1 aus den Kontakten",
"successfullyImportedContactsParagraph": "%1 Kontakte erfolgreich importiert",
"checkOutBlaiseParagraph": "Schau dir Blaise an! Sichere und einfach zu bedienende Pascal Wallet für iOS und Android: https://blaisewallet.com",
"newAccountParagraph": "Dies ist dein neues Konto. \nSobald du <colored>Pascal</colored> empfängst oder sendest, werden Transaktionen hier aufgelistet.",
"newAccountParagraph": "Dies ist Dein neues Konto. \nSobald Du <colored>Pascal</colored> empfängst oder sendest, werden die Überweisungen hier aufgelistet.",
"settingsHeader": "Einstellungen",
"preferencesHeader": "Konfiguration",
"currencyHeader": "Währung",
Expand Down Expand Up @@ -196,7 +196,7 @@
"newPrivateKeyHeader": "Neues Schlüsselpaar",
"importPrivateKeyHeader": "Schlüssel importieren",
"decryptAndImportKeyHeader": "Entschlüsseln und importieren",
"backUpKeyHeader": "Sichere deinen Schlüssel",
"backUpKeyHeader": "Schlüssel gesichert?",
"lockedHeader": "Gesperrt",
"privateKeyTextFieldHeader": "Privater Schlüssel",
"passwordTextFieldHeader": "Passwort",
Expand All @@ -207,7 +207,7 @@
"phoneNumberTextFieldHeader": "Telefon-Nummer",
"confirmationCodeTextFieldHeader": "Bestätigungs-Code",
"accountTextFieldHeader": "Konto",
"addressTextFieldHeader": "Adresse",
"addressTextFieldHeader": "Kontonummer",
"contactNameTextFieldHeader": "Name",
"amountTextFieldHeader": "Betrag",
"payloadTextFieldHeader": "Betreff",
Expand All @@ -220,7 +220,7 @@
"feeTextFieldHeader": "Gebühr",
"otherOperationsHeader": "Andere Vorgänge",
"warningHeader": "Warnung",
"areYouSureHeader": "Bist du sicher?",
"areYouSureHeader": "Bist Du sicher?",
"addFeeHeader": "Gebühr hinzufügen",
"keyTypeNotSupportedHeader": "Schlüssel nicht unterstützt",
"accountToSendFromHeader": "Absender",
Expand All @@ -234,7 +234,7 @@
"undefinedHeader": "Unbekannt",
"transferredHeader": "Übertragen",
"balanceHeader": "Saldo",
"totalBalanceHeader": "Summe",
"totalBalanceHeader": "Kontostand aller Konten",
"accountBalanceHeader": "Kontostand",
"accountsHeader": "Konten",
"operationsHeader": "Vorgänge",
Expand All @@ -257,7 +257,7 @@
"invalidReceivingAccountError": "Ungültiger Empfänger",
"invalidPublicKeyError": "Ungültiger öffentl. Schlüssel",
"invalidPrivateKeyError": "Ungültiger privater Schlüssel",
"invalidAddressError": "Ungültige Adresse",
"invalidAddressError": "Ungültiges Konto",
"invalidAccountError": "Ungültiges Konto",
"invalidDestinationError": "Ungültiger Empfänger",
"insufficientBalanceError": "Ungültiger Betrag",
Expand Down Expand Up @@ -285,8 +285,8 @@
"changeAccountInfoOPDetails": "Konto Daten geändert (%1)",
"multioperationOPDetails": "Multi-Vorgang (%1)",
"unknownOPDetails": "Unbekannt (%1)",
"sendingAccountOPDetails": "Übertrage Konto",
"receivingAccountOPDetails": "Empfange Konto",
"sendingAccountOPDetails": "Absender",
"receivingAccountOPDetails": "Empfänger",
"changingAccountOPDetails": "Ändere Konto",
"sendAmountOPDetails": "Betrag senden",
"payloadOPDetails": "Betreff",
Expand Down
Loading

0 comments on commit 18771bc

Please sign in to comment.