Skip to content

Commit

Permalink
Add new languages (#229)
Browse files Browse the repository at this point in the history
* Name of a language should be written in that language

Signed-off-by: Hung Q. Le <[email protected]>

* Update moment date format in mainWindow once the app language has changed.

Signed-off-by: Hung Q. Le <[email protected]>

* Removed Korean translation

* Added some Vietnamese and Simplified Chinese translations

* Added Indonesian, French and German translation

* Loaded new languages and updated dropdown lists in Settings and Preview
  • Loading branch information
hql287 authored Mar 2, 2018
1 parent 355341e commit 0d70616
Show file tree
Hide file tree
Showing 45 changed files with 1,178 additions and 344 deletions.
10 changes: 6 additions & 4 deletions app/components/settings/General.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,12 @@ class General extends Component {
value={this.state.language}
onChange={this.handleInputChange}
>
<option value="en">{t('settings:fields:language:en')}</option>
<option value="ko">{t('settings:fields:language:ko')}</option>
<option value="vi">{t('settings:fields:language:vi')}</option>
<option value="zh-CN">{t('settings:fields:language:zh-CN')}</option>
<option value="de">{t('settings:fields:language:de', { lng: 'de' })}</option>
<option value="en">{t('settings:fields:language:en', { lng: 'en' })}</option>
<option value="fr">{t('settings:fields:language:fr', { lng: 'fr' })}</option>
<option value="id">{t('settings:fields:language:id', { lng: 'id' })}</option>
<option value="vi">{t('settings:fields:language:vi', { lng: 'vi' })}</option>
<option value="zh-CN">{t('settings:fields:language:zh-CN', { lng: 'zh-CN' })}</option>
</select>
</div>
</div>
Expand Down
16 changes: 16 additions & 0 deletions i18n/de/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"fields": {
"fullname": "Vollständiger Name",
"company": "Firma",
"address": "Adresse",
"email": "E-Mail",
"phone": "Telefonnummer",
"website": "Webseite"
},
"save": "Speichern",
"amount": "Betrag",
"default": "Standard",
"saveAsDefault": "Als Standard speichern?",
"yes": "Ja",
"noThanks": "Nein, danke"
}
9 changes: 9 additions & 0 deletions i18n/de/contacts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"header": "Alle Kontakte",
"fields": {
"contact": "Kontakt",
"email": "E-Mail",
"phone": "Telefon",
"actions": "Aktionen"
}
}
89 changes: 89 additions & 0 deletions i18n/de/dialog.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
{
"appUpdate": {
"available": {
"title": "Neues Update verfügbar",
"message": "Download im Hintergrund starten?"
},
"noUpdate": {
"title": "Keine neuen Updates verfügbar",
"message": "Ihre Version ist auf aktuellem Stand"
},
"error": {
"title": "Es ist ein Fehler aufgetreten"
},
"downloaded": {
"title": "Update heruntergeladen",
"message": "Wollen Sie die Applikation beenden und jetzt aktualisieren?",
"quitNow": "Jetzt beenden",
"later": "Später"
}
},
"noAccess": {
"title": "Keine Zugriffsberechtigung",
"message": "Bitte wählen Sie ein anderes Verzeichnis"
},
"errorBoundary": "Es ist ein Fehler aufgetreten",
"deleteInvoice": {
"title": "Diese Rechnung löschen?",
"message": "Die Rechnung wird endgültig gelöscht"
},
"deleteContact": {
"title": "Diesen Kontakt löschen?",
"message": "Der Kontakt wird endgültig gelöscht"
},
"fileTypeErr": {
"title": "Bitte wählen Sie eine andere Datei"
},
"validation": {
"recipient": {
"empty": {
"title": "Ungültiger Kontakt",
"message": "Kontakt darf nicht leer sein"
},
"requiredFields": {
"title": "Pflichtfelder",
"message": "Bitte füllen Sie alle Pflichtfelder aus"
},
"email": {
"title": "Ungültige E-Mail-Adresse",
"message": "Bitte wählen Sie eine andere E-Mail Adresse"
}
},
"rows": {
"emptyDescription": {
"title": "Ungültige Beschreibung",
"message": "Beschreibung darf nicht leer sein"
},
"priceZero": {
"title": "Ungültiger Preis",
"message": "Preis muss grösser als Null sein"
},
"qtyZero": {
"title": "Ungültige Menge",
"message": "Menge muss grösser als Null sein"
}
},
"dueDate": {
"title": "Ungültiges Fälligkeitsdatum",
"message": "Bitte wählen Sie ein Datum aus"
},
"currency": {
"fraction": {
"title": "Ungültige Teilung",
"message": "Nachkommestelle muss gleich oder grösser als Null sein"
}
},
"discount": {
"title": "Ungültiger Rabatt",
"message": "Der Rabatt muss grösser als Null sein"
},
"tax": {
"title": "Ungültiger Steuersatz",
"message": "Steuerbetrag muss grösser als Null sein"
},
"note": {
"title": "Ungültige Notiz",
"message": "Feld Notiz darf nicht leer sein"
}
}
}
69 changes: 69 additions & 0 deletions i18n/de/form.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"header": {
"new": "Neue Rechnung erstellen",
"edit": "Rechnung bearbeiten",
"btns": {
"clear": "Löschen",
"update": "Aktualisieren",
"saveAndPreview": "Speichern & Vorschau"
}
},
"settings": {
"name": "Formulareinstellungen",
"hint": "Umschalten um das Feld im Formular als benötigt darzustellen."
},
"fields": {
"items": {
"name": "Produkt / Service",
"description": "Beschreibung",
"price": "Preis",
"quantity": "Menge",
"add": "Neue Position hinzufügen"
},
"recipient": {
"name": "Empfänger",
"select": "Auswählen",
"add": "Neuen Empfänger hinzufügen"
},
"discount": {
"name": "Rabatt",
"percentage": "Prozent",
"flat": "Pauschal"
},
"dueDate": {
"name": "Fälligkeitsdatum",
"placeHolder": "Datum auswählen",
"paymentTerms": {
"name": "Zahlungsbedingung auswählen",
"net7": {
"label": "Netto sieben Tage",
"description": "Zahlung innerhalb von sieben Tagen ab Rechnungsdatum"
},
"net10": {
"label": "Netto zehn Tage",
"description": "Zahlung innerhalb von zehn Tagen ab Rechnungsdatum"
},
"net30": {
"label": "Netto 30 Tage",
"description": "Zahlung innerhalb von 30 Tagen ab Rechnungsdatum"
},
"net60": {
"label": "Netto 60 Tage",
"description": "Zahlung innerhalb von 60 Tagen ab Rechnungsdatum"
},
"net90": {
"label": "Netto 90 Tage",
"description": "Zahlung innerhalb von 90 Tagen ab Rechnungsdatum"
}
}
},
"tax": {
"name": "Steuer",
"id": "USt-ID",
"method": "Zahlungsmethode",
"reverse": "Umkehr der Steuerschuld"
},
"note": "Notiz",
"currency": "Währung"
}
}
File renamed without changes.
23 changes: 23 additions & 0 deletions i18n/de/invoices.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"header": {
"name": "Alle Rechnungen"
},
"fields": {
"client": "Kunde",
"invoiceID": "Rechnungsnummer",
"createdDate": "Erstellt am",
"dueDate": "Fälligkeitsdatum",
"total": "Gesamtwert"
},
"status": {
"pending": "Ausstehend",
"paid": "Bezahlt",
"refunded": "Erstattet",
"cancelled": "Storniert"
},
"btns": {
"view": "Ansehen",
"edit": "Bearbeiten",
"markAsPaid": "Als bezahlt markieren"
}
}
16 changes: 16 additions & 0 deletions i18n/de/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"noContact": "Es wurde noch kein Kontakt angelegt",
"noInvoice": "Sie haben noch keine Rechnung erstellt",
"invoice": {
"saved": "Rechnung erfolgreich gespeichert",
"updated": "Rechnung wurde erfolgreich aktualisiert",
"deleted": "Rechnung wurde erfolgreich gelöscht"
},
"contact": {
"saved": "Kontakt erfolgreich gespeichert",
"deleted": "Kontakt erfolgreich gelöscht"
},
"settings": {
"saved": "Alle Einstellungen wurden erfolgreich gespeichert"
}
}
41 changes: 41 additions & 0 deletions i18n/de/preview.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"sidebar": {
"template": "Vorlage",
"alignment": {
"name": "Ausrichtung",
"top": "Oben",
"middle": "Mitte",
"bottom": "Unten"
},
"fontSize": "Schriftgrösse",
"toggle": {
"name": "Umschalten",
"logo": "Logo",
"symbol": "Symbol",
"recipient": "Empfänger"
},
"accentColor": {
"name": "Akzentfarbe",
"useCustom": "Eigene Farbe verwenden"
},
"actions": {
"name": "Aktionen",
"savePDF": "Als PDF exportieren",
"saveConfigs": "Konfiguration speichern"
}
},
"common": {
"billedTo": "Rechnungsempfänger",
"chooseInvoiceToPreview": "Zur Vorschau bitte eine Rechnung auswählen",
"created": "Erstellt",
"due": "Fällig",
"invoice": "Rechnung",
"itemDescription": "Artikel-\/Leistungsbeschreibung",
"notice": "Hinweis",
"order": "Nr",
"price": "Preis",
"qty": "Menge",
"subtotal": "Zwischensumme",
"total": "Rechnungsbetrag"
}
}
63 changes: 63 additions & 0 deletions i18n/de/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"header": "Einstellungen",
"tabs": {
"profile": "Profil",
"invoice": "Rechnung",
"general": "Allgemein"
},
"fields": {
"logo": {
"name": "Logo",
"hint": "Akzeptiert PNG, JPG & SVG (empfohlen)"
},
"taxSettings": "Steuer-Einstellungen",
"template": "Vorlage",
"dateFormat": "Datumsformat",
"pdfExportDir": "Verzeichnis für PDF-Exporte",
"requiredFields": "Pflichtfelder",
"sound": "Ton",
"mute": "Lautlos",
"autoCheckUpdate": {
"name": "Automatisch nach Updates suchen",
"daily": "Täglich (empfohlen)",
"weekly": "Wöchentlich"
},
"currency": {
"placement": "Position des Währungssymbols",
"afterAmount": "Nach dem Betrag",
"beforeAmount": "Vor dem Betrag",
"fraction": "Nachkommastellen",
"separator": "Trennsymbol",
"commaDot": "Komma & Punkt",
"dotComma": "Punkt & Komma",
"spaceDot": "Leerschläge & Punkte"
},
"openPDFReader": "PDF nach Export öffnen",
"language": {
"name": "Sprache",
"cs": "Tschechisch",
"da": "Dänisch",
"de": "Deutsch",
"el": "Griechisch",
"en": "Englisch",
"esES": "Spanisch",
"fr": "Französisch",
"id": "Indonesisch",
"it": "Italienisch",
"ja": "Japanisch",
"ko": "Koreanisch",
"lt": "Littauisch",
"nl": "Niederländisch",
"ptBR": "Portugiesisch, Brasilianisch",
"ptPT": "Portugiesisch",
"ru": "Russisch",
"th": "Thailändisch",
"tl": "Tagalog, Philippinen",
"tr": "Türkisch",
"vi": "Vietnamesisch",
"zh-CN": "Chinesisch (Vereinfacht)",
"zh-TW": "Chinesisch (Traditionell)"
},
"other": "Andere"
}
}
29 changes: 29 additions & 0 deletions i18n/de/tour.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"actions": {
"skip": "Überspringen",
"next": "Weiter",
"start": "Rechnungserstellung starten"
},
"slides": {
"welcome": {
"heading": "👋 Hallo!",
"description": "Vielen Dank, dass Sie mich ausprobieren. Lassen Sie mich Ihnen zeigen, wie Sie atemberaubende Rechnungen mit nur 3 einfachen Schritten erstellen"
},
"create": {
"heading": "Schritt 1. Erstellen",
"description": "Manta hat eine flexible Formularschnittstelle. Es hält die Dinge standardmässig einfach, aber Sie können immer zusätzliche Felder aktivieren/deaktivieren, jedes Mal wenn Sie es für notwendig erachten."
},
"preview": {
"heading": "Schritt 2. Anpassen",
"description": "Manta bietet professionelle Vorlagen, die individuell auf Ihr Unternehmen angepasst werden können."
},
"save": {
"heading": "Schritt 3. Speichern",
"description": "Wenn Sie mit dem Layout Ihrer Rechnung zufrieden sind, können Sie es für spätere Nutzungen als PDF speichern. Egal ob auf dem Postweg oder als E-Mail, mit Manta beeindrucken Sie Ihre Kunden!"
},
"success": {
"heading": "Fertig! ✋️",
"description": "Das war's! Mit Manta in 3 einfachen Schritten zu beeindruckenden Rechnungen. Vergessen Sie nicht, Ihr Unternehmensprofil und Ihr Logo zu aktualisieren, bevor Sie die Rechnung verwenden."
}
}
}
Loading

0 comments on commit 0d70616

Please sign in to comment.