Skip to content
This repository has been archived by the owner on Apr 29, 2022. It is now read-only.

Commit

Permalink
Add Chinese Simplified, French, German, Italian, Korean, Russian, Spa…
Browse files Browse the repository at this point in the history
…nish localization (#199)
  • Loading branch information
quanglam2807 authored Jun 23, 2020
1 parent 098f786 commit a0e34e0
Show file tree
Hide file tree
Showing 31 changed files with 1,944 additions and 18 deletions.
1 change: 1 addition & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ jobs:
${{ runner.os }}-yarn-
- run: yarn --prefer-offline
- run: yarn lint
- run: yarn test
- name: Get tag name
run: echo ::set-env name=CI_BUILD_TAG::${GITHUB_REF/refs\/tags\//}
if: startsWith(github.ref, 'refs/tags/')
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ jobs:
${{ runner.os }}-yarn-
- run: yarn --prefer-offline
- run: yarn lint
- run: yarn test
- name: Get tag name
run: echo ::set-env name=CI_BUILD_TAG::${GITHUB_REF/refs\/tags\//}
if: startsWith(github.ref, 'refs/tags/')
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ jobs:
${{ runner.os }}-yarn-
- run: yarn --prefer-offline
- run: yarn lint
- run: yarn test
- name: Get tag name
run: echo ::set-env name=CI_BUILD_TAG::${GITHUB_REF/refs\/tags\//}
if: startsWith(github.ref, 'refs/tags/')
Expand Down
26 changes: 26 additions & 0 deletions description-generator.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
const fs = require('fs-extra');
const path = require('path');

const displayLanguages = require('./public/libs/locales/languages');

const localesDir = path.resolve(__dirname, 'public', 'libs', 'locales');
Object.keys(displayLanguages).forEach((langCode) => {
// eslint-disable-next-line no-console
console.log(`Generating description for ${langCode}...`);
const rawDesc = fs.readFileSync(path.join(localesDir, langCode, 'description.txt'), 'utf8');

const supportedLanguageStrings = fs.readJsonSync(path.join(localesDir, langCode, 'languages.json'));
const supportedLanguages = Object.keys(supportedLanguageStrings)
.map((code) => supportedLanguageStrings[code])
.sort((x, y) => x.localeCompare(y));

['macOS', 'Windows', 'Linux'].forEach((operatingSystem) => {
const desc = rawDesc
.replace(/{appName}/g, 'Translatium')
.replace(/{operatingSystem}/g, operatingSystem)
.replace(/{appUrl}/g, 'https://translatiumapp.com')
.replace(/{supportedLanguages}/g, supportedLanguages.join(', '));
const distDescFilePath = path.join(__dirname, 'dist', 'description', langCode, `${operatingSystem}.txt`);
fs.outputFileSync(distDescFilePath, desc, 'utf8');
});
});
7 changes: 7 additions & 0 deletions public/libs/locales/de/description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Übersetzen Sie jede Sprache sofort mit {appName} - der leistungsfähigsten Übersetzungs-App für {operatingSystem}.

Mit {appName} können Sie Wörter, Redewendungen und Bilder aus und in mehr als 100 Sprachen übersetzen, mit Wörterbuch-, Transliterations- und Sprachausgabeunterstützung.

Besuchen Sie unsere Website, um mehr über {appName} zu erfahren: {appUrl}.

Unterstützte Sprachen: {supportedLanguages}
112 changes: 112 additions & 0 deletions public/libs/locales/de/languages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
{
"auto": "Sprache erkennen",
"af": "Afrikaans",
"sq": "Albanisch",
"am": "Amharisch",
"ar": "Arabisch",
"hy": "Armenisch",
"az": "Aserbaidschanisch",
"eu": "Baskisch",
"be": "Weißrussisch",
"bn": "Bengalisch",
"bs": "Bosnisch",
"bg": "Bulgarisch",
"ca": "Katalanisch",
"ceb": "Cebuano",
"ny": "Chichewa",
"zh-CN": "Chinesisch (vereinfacht)",
"zh-TW": "Chinesisch (traditionell)",
"co": "Korsisch",
"hr": "Kroatisch",
"cs": "Tschechisch",
"da": "Dänisch",
"nl": "Niederländisch",
"en": "Englisch",
"eo": "Esperanto",
"et": "Estnisch",
"tl": "Filipino",
"fi": "Finnisch",
"fr": "Französisch",
"fy": "Friesisch",
"gl": "Galizisch",
"ka": "Georgisch",
"de": "Deutsch",
"el": "Griechisch",
"gu": "Gujarati",
"ht": "Haitianisch",
"ha": "Hausa",
"haw": "Hawaiisch",
"iw": "Hebräisch",
"hi": "Hindi",
"hmn": "Hmong",
"hu": "Ungarisch",
"is": "Isländisch",
"ig": "Igbo",
"id": "Indonesisch",
"ga": "Irisch",
"it": "Italienisch",
"ja": "Japanisch",
"jw": "Javanisch",
"kn": "Kannada",
"kk": "Kasachisch",
"km": "Khmer",
"rw": "Kinyarwanda",
"ko": "Koreanisch",
"ku": "Kurdisch (Kurmandschi)",
"ky": "Kirgisisch",
"lo": "Lao",
"la": "Lateinisch",
"lv": "Lettisch",
"lt": "Litauisch",
"lb": "Luxemburgisch",
"mk": "Mazedonisch",
"mg": "Malagasy",
"ms": "Malaysisch",
"ml": "Malayalam",
"mt": "Maltesisch",
"mi": "Maori",
"mr": "Marathi",
"mn": "Mongolisch",
"my": "Birmanisch",
"ne": "Nepalesisch",
"no": "Norwegisch",
"or": "Odia (Oriya)",
"ps": "Paschtu",
"fa": "Persisch",
"pl": "Polnisch",
"pt": "Portugiesisch",
"pa": "Punjabi",
"ro": "Rumänisch",
"ru": "Russisch",
"sm": "Samoanisch",
"gd": "Schottisch-Gälisch",
"sr": "Serbisch",
"st": "Sesotho",
"sn": "Shona",
"sd": "Sindhi",
"si": "Singhalesisch",
"sk": "Slowakisch",
"sl": "Slowenisch",
"so": "Somali",
"es": "Spanisch",
"su": "Sundanesisch",
"sw": "Suaheli",
"sv": "Schwedisch",
"tg": "Tadschikisch",
"ta": "Tamil",
"tt": "Tatarisch",
"te": "Telugu",
"th": "Thailändisch",
"tr": "Türkisch",
"tk": "Turkmenisch",
"uk": "Ukrainisch",
"ur": "Urdu",
"ug": "Uigurisch",
"uz": "Usbekisch",
"vi": "Vietnamesisch",
"cy": "Walisisch",
"xh": "Xhosa",
"yi": "Jiddisch",
"yo": "Yoruba",
"zu": "Zulu"
}
145 changes: 145 additions & 0 deletions public/libs/locales/de/ui.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
{
"edit": "Bearbeiten",
"undo": "Rückgängig",
"redo": "Wiederherstellen",
"cut": "Ausschneiden",
"copy": "Kopieren",
"paste": "Einfügen",
"delete": "Löschen",
"selectAll": "Alle auswählen",
"lookUp": "\"{selection} \" nachschlagen",
"copyLink": "Link kopieren",
"selectInputLang": "Eingabesprache auswählen",
"selectOutputLang": "Ausgabesprache auswählen",
"swapLanguages": "Sprachen tauschen",
"clearInputText": "Eingabetext löschen",
"translateClipboard": "Zwischenablage übersetzen",
"find": "Finden",
"view": "Anzeigen",
"toggleFullscreen": "Vollbild umschalten",
"window": "Fenster",
"minimize": "Minimieren",
"zoom": "Zoom",
"bringAllToFront": "Alle nach vorne holen",
"help": "Hilfe",
"learnMoreAbout": "Mehr zu {appName}...",
"reportAnIssueViaGitHub": "Ein Problem über GitHub melden...",
"appNameSupport": "{appName} -Support",
"file": "Datei",
"about": "Über",
"aboutApp": "Über {appName}",
"checkForUpdates": "Nach Updates suchen...",
"hide": "{appName} ausblenden",
"hideOthers": "Andere ausblenden",
"quit": "Beenden",
"home": "Startseite",
"phrasebook": "Sprachführer",
"phrasebookDesc": "Auf das Sternsymbol tippen, um eine Übersetzung zu speichern.",
"searchSavedTranslations": "Gespeicherte Wörter und Redewendungen durchsuchen...",
"searchPreviousTranslations": "Zuvor übersetzte Wörter und Redewendungen durchsuchen...",
"search": "Suchen",
"noMatchingResults": "Keine passenden Ergebnisse",
"preferences": "Einstellungen",
"preferencesMenuItem": "Einstellungen...",
"registered": "Registriert",
"registration": "Registrierung...",
"ok": "OK",
"updateAvailable": "Ein Update ist verfügbar",
"updateAvailableDesc": "Ein Update ist verfügbar. Es wird gerade heruntergeladen. Wir werden Sie informieren, wenn es fertig ist.",
"noUpdates": "Keine Updates",
"noUpdatesDesc": "Derzeit sind keine Updates verfügbar.",
"failedToCheckForUpdates": "Suche nach Updates fehlgeschlagen",
"failedToCheckForUpdatesDesc": "Suche nach Updates fehlgeschlagen. Bitte prüfen Sie Ihre Internetverbindung.",
"restart": "Neustart",
"later": "Später",
"applicationUpdate": "App-Update",
"applicationUpdateDesc": "Eine neue Version {version} wurde heruntergeladen. Starten Sie die Anwendung neu, um die Updates zu übernehmen.",
"resetNow": "Jetzt zurücksetzen",
"resetDesc": "Sind Sie sicher? Alle Einstellungen werden auf ihre ursprünglichen Standardwerte zurückgesetzt. Diese Aktion kann nicht rückgängig gemacht werden.",
"requireRestartDescMas": "Sie müssen die App beenden und dann manuell neu starten, damit diese Änderung wirksam wird.",
"requireRestartDesc": "Sie müssen die App neu starten, damit diese Änderung wirksam wird.",
"quitNow": "Jetzt beenden",
"restartNow": "Jetzt neu starten",
"isRequired": "{fieldName} ist erforderlich.",
"isNotValid": "{fieldName} ist ungültig.",
"website": "Website",
"support": "Support",
"typeSomethingHere": "Hier etwas eingeben...",
"clear": "Löschen",
"openImageFile": "Bilddatei öffnen",
"more": "Mehr",
"zoomIn": "Vergrößern",
"zoomOut": "Verkleinern",
"fullscreen": "Vollbild",
"exitFullscreen": "Vollbild beenden",
"translate": "Übersetzen",
"errorOccured": "Ein Fehler ist aufgetreten.",
"cannotConnectToServer": "Die App kann keine Verbindung zum Server herstellen. Bitte prüfen Sie Ihre Internetverbindung.",
"cannotOpenTheFile": "Die App kann die ausgewählte Datei nicht öffnen.",
"cannotRecognizeImage": "Die App kann keinen Text in Ihrem Bild erkennen.",
"listen": "Anhören",
"stop": "Stopp",
"swap": "Tauschen",
"copied": "In Zwischenablage kopiert",
"addToPhrasebook": "Zum Sprachführer hinzufügen",
"removeFromPhrasebook": "Aus dem Sprachführer entfernen",
"displayOriginalText": "Originaltext anzeigen",
"displayTranslatedText": "Übersetzten Text anzeigen",
"copyOriginalText": "Originaltext kopieren",
"copyTranslatedText": "Übersetzten Text kopieren",
"displayTextOnly": "Nur Text anzeigen",
"phrasebookIsEmpty": "Sprachfüher ist leer.",
"theme": "Thema",
"system": "Systemstandard",
"light": "Hell",
"dark": "Dunkel",
"taskbar": "Taskleiste",
"menubar": "Menüleiste",
"attachToMenubar": "An Menüleiste anhängen",
"attachToTaskbar": "An Taskleiste anhängen",
"translateWhenPressingEnter": "Bei Drücken der Eingabetaste übersetzen",
"showTransliteration": "Transliteration anzeigen",
"rateMacAppStore": "{appName} im Mac App Store bewerten",
"rateMicrosoftStore": "{appName} im Microsoft Store bewerten",
"displayLanguage": "Sprache anzeigen",
"close": "Schließen",
"general": "Allgemein",
"advanced": "Erweitert",
"alwaysOnTop": "Fenster immer im Vordergrund halten",
"translateClipboardOnShortcut": "Zwischenablage per Shortcut übersetzen",
"translateClipboardOnShortcutDesc": "Wenn Sie {appName} mit einem Shortcut öffnen, wird der Inhalt der Zwischenablage automatisch übersetzt.",
"openKeyboardShortcut": "Definieren Sie eine Tastenkombination, um {appName} schnell zu öffnen",
"typeNewKeyboardCombinator": "Geben Sie die neue Tastenkombination ein.",
"useHardwareAcceleration": "Hardwarebeschleunigung verwenden, wenn verfügbar",
"openAtLogin": "Bei Anmeldung öffnen",
"yes": "Ja",
"yesHidden": "Ja, aber minimiert",
"no2": "Nein",
"searchLanguages": "Sprachen durchsuchen...",
"noLanguageFound": "Keine Sprache gefunden",
"searchResults": "Suchergebnisse",
"recentlyUsed": "Zuletzt verwendet",
"allLanguages": "Alle Sprachen",
"remove": "Entfernen",
"save": "Speichern",
"removeShortcut": "Kurzbefehl entfernen",
"cancel": "Abbrechen",
"popclipExtension": "PopClip-Erweiterung",
"licenseRegistration": "Lizenzregistrierung",
"licenseKey": "Lizenzschlüssel",
"licenseContentText": "Um fortzufahren, erwerben Sie bitte einen unbefristeten Lizenzschlüssel ({price}) in unserem Shop.",
"licenseHelper": "Wenn Sie {appName} bereits in unserem Shop gekauft haben, sollten Sie einen Lizenzschlüssel erhalten haben, der oben einzugeben ist.",
"licenseRegistered": "Registrierung abgeschlossen! Vielen Dank für Ihre Unterstützung der Weiterentwicklung von {appName}.",
"trialExpired": "Ihre Testphase ist abgelaufen.",
"trialExpireIn": "Ihre Testphase läuft in {time} ab.",
"visitStore": "Zum Shop...",
"register": "Registrieren",
"history": "Verlauf",
"historyDesc": "Hier zuvor übersetzte Wörter und Redewendungen anzeigen.",
"clearHistory": "Verlauf löschen",
"appImageLauncherDesc": "Updater ist mit AppImageLauncher nicht kompatibel. Bitte laden Sie neue Updates manuell von unserer Website herunter.",
"goToWebsite": "Zur Website",
"learnMore": "Weitere Informationen",
"reset": "Zurücksetzen",
"restorePreferencesToDefault": "Einstellungen auf ihre ursprünglichen Standardwerte zurücksetzen"
}
7 changes: 7 additions & 0 deletions public/libs/locales/en/description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Translate any languages instantly with {appName} - the most powerful translation app for {operatingSystem}.

{appName} lets you translate words, phrases and images between over 100 languages with dictionary, transliteration and voice output support.

Visit our website to learn more about {appName}: {appUrl}.

Supported Languages: {supportedLanguages}
12 changes: 6 additions & 6 deletions public/libs/locales/en/ui.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@
"applicationUpdateDesc": "A new version {version} has been downloaded. Restart the application to apply the updates.",
"resetNow": "Reset Now",
"resetDesc": "Are you sure? All preferences will be restored to their original defaults. This action cannot be undone.",
"requireRestartDescMas": "You need to quit and then manually restart the app for this change to take affect.",
"requireRestartDesc": "You need to restart the app for this change to take affect.",
"requireRestartDescMas": "You need to quit and then manually restart the app for this change to take effect.",
"requireRestartDesc": "You need to restart the app for this change to take effect.",
"quitNow": "Quit Now",
"restartNow": "Restart Now",
"isRequired": "{fieldName} is required.",
Expand All @@ -74,7 +74,7 @@
"exitFullscreen": "Exit fullscreen",
"translate": "Translate",
"errorOccured": "An error has occured.",
"cannotConnectToServer": "The app cannot to server. Please check your Internet connection.",
"cannotConnectToServer": "The app cannot connect to server. Please check your Internet connection.",
"cannotOpenTheFile": "The app cannot open the file you selected.",
"cannotRecognizeImage": "The app cannot recognize any text on your image.",
"listen": "Listen",
Expand All @@ -94,8 +94,8 @@
"light": "Light",
"dark": "Dark",
"taskbar": "Taskbar",
"menubar": "Menubar",
"attachToMenubar": "Attach to menubar",
"menubar": "Menu bar",
"attachToMenubar": "Attach to menu bar",
"attachToTaskbar": "Attach to taskbar",
"translateWhenPressingEnter": "Translate when pressing Enter",
"showTransliteration": "Show transliteration",
Expand All @@ -109,7 +109,7 @@
"translateClipboardOnShortcut": "Translate clipboard on shortcut",
"translateClipboardOnShortcutDesc": "When you open {appName} with a shortcut, it will automatically translate your clipboard contents.",
"openKeyboardShortcut": "Define a keyboard shortcut to open {appName} quickly",
"typeNewKeyboardCombinator": "Type the new keyboard combinator.",
"typeNewKeyboardCombinator": "Type the new keyboard combination.",
"useHardwareAcceleration": "Use hardware acceleration when available",
"openAtLogin": "Open at login",
"yes": "Yes",
Expand Down
7 changes: 7 additions & 0 deletions public/libs/locales/es-ES/description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Traduce cualquier idioma al instante con {appName}: la aplicación de traducción más potente para {operatingSystem}.

{appName} permite traducir palabras, frases e imágenes a más de 100 idiomas con soporte para diccionario, transliteración y salida de voz.

Visite nuestro sitio web para obtener más información sobre {appName}: {appUrl}.

Idiomas admitidos: {supportedLanguages}
Loading

0 comments on commit a0e34e0

Please sign in to comment.