diff --git a/src/common/services/translator.ts b/src/common/services/translator.ts index dec45681f..bb43a26dc 100644 --- a/src/common/services/translator.ts +++ b/src/common/services/translator.ts @@ -1,6 +1,7 @@ import * as i18n from "i18next"; import { injectable} from "inversify"; +import * as deCatalog from "readium-desktop/resources/locales/de.json"; import * as enCatalog from "readium-desktop/resources/locales/en.json"; import * as frCatalog from "readium-desktop/resources/locales/fr.json"; @@ -12,6 +13,9 @@ i18n.init({ fr: { translation: frCatalog, }, + de: { + translation: deCatalog, + }, }, }); diff --git a/src/renderer/components/AppToolbar.tsx b/src/renderer/components/AppToolbar.tsx index 3751951c3..01bf578f2 100644 --- a/src/renderer/components/AppToolbar.tsx +++ b/src/renderer/components/AppToolbar.tsx @@ -43,6 +43,7 @@ import { OPDS } from "readium-desktop/common/models/opds"; import { OpdsForm } from "readium-desktop/renderer/components/opds/index"; +import * as deDocs from "readium-desktop/resources/docs/de"; import * as enDocs from "readium-desktop/resources/docs/en"; import * as frDocs from "readium-desktop/resources/docs/fr"; @@ -105,6 +106,7 @@ export default class AppToolbar extends React.Component {this.handleLocaleChange("en"); }} /> + {this.handleLocaleChange("de"); }} + />
diff --git a/src/resources/docs/de/about.md b/src/resources/docs/de/about.md new file mode 100644 index 000000000..7e66a6ec9 --- /dev/null +++ b/src/resources/docs/de/about.md @@ -0,0 +1,20 @@ +# Über Readium Desktop + +## Version + +**{{version}}** + +*{{date}}* + +*{{branch}} - {{short}}* + +## Copyright + +Copyright 2018 European Digital Reading Lab + +[BSD-3 license] (https://opensource.org/licenses/BSD-3-Clause) + +Readium Desktop wouldn't have been developed without the financial help +of the CNL (Centre National du Livre, France) + + diff --git a/src/resources/docs/de/help.md b/src/resources/docs/de/help.md new file mode 100644 index 000000000..baed74515 --- /dev/null +++ b/src/resources/docs/de/help.md @@ -0,0 +1 @@ +# Hilfe diff --git a/src/resources/docs/de/index.ts b/src/resources/docs/de/index.ts new file mode 100644 index 000000000..401095b89 --- /dev/null +++ b/src/resources/docs/de/index.ts @@ -0,0 +1,9 @@ +import * as about from "./about.md"; +import * as help from "./help.md"; +import * as news from "./news.md"; + +export { + about, + help, + news, +}; diff --git a/src/resources/docs/de/news.md b/src/resources/docs/de/news.md new file mode 100644 index 000000000..ea43cb197 --- /dev/null +++ b/src/resources/docs/de/news.md @@ -0,0 +1 @@ +# Was gibt es Neues? diff --git a/src/resources/locales/de.json b/src/resources/locales/de.json new file mode 100644 index 000000000..61fb39889 --- /dev/null +++ b/src/resources/locales/de.json @@ -0,0 +1,120 @@ +{ + "library": { + "heading": "Bibliothek", + "add": "Zur Bibliothek hinzufügen", + "startDownload": "Ein Download wurde gestartet.", + "cancelDownload": "Ein Download wurde abgebrochen.", + "endDownload": "Ein Download wurde beendet.", + "lcp": { + "title": "LCP-Verifikation", + "sentence": "Diese Publikation benötigt zum Öffnen ein LCP-Password: ", + "submit": "Absenden", + "cancel": "Abbrechen", + "hint": "Dein Kennwort", + "hintSentence": "Hinweis:", + "informations": { + "title": "LCP-Informationen", + "close": "Schließen", + "provider": "Aussteller:", + "issued": "Ausstellungsdatum:", + "updated": "Aktualisiert:", + "right": { + "title": "Rechte", + "start": "Start:", + "end": "Ende:", + "copy": "Nummer der Kopie:", + "print": "Nummer des gedruckten Werks:" + } + } + } + }, + "publication": { + "notReadableLcp": "Dieses Buch kann nicht gelesen werden, das die LCP-Lizenz abgelaufen ist.", + "downloadButton": "Download", + "readButton": "Lesen", + "deleteButton": "Löschen", + "infoButton": "LCP-Informationen", + "renewButton": "Verlängern", + "renewSentence": "Bist du sicher, dass die Publikation verlängert werden soll?", + "returnButton": "Zurückgeben", + "returnSentence": "Bist du sicher, dass die Publikation zurückgegeben werden soll?", + "cancelDownloadButton": "Abbrechen", + "progressDownload": "Download läuft", + "endDownload": "Download abgeschlossen", + "failedDownload": "Download fehlerhaft", + "canceledDownload": "Download abgebrochen" + }, + "toolbar": { + "about": "Über", + "help":"Hilfe", + "news":"Neuerungen", + "sync":"Synchronisiere die Bibliothek" + }, + "update": { + "available": "Update verfügbar!" + }, + "dialog": { + "yes": "Ja", + "no": "Nein", + "delete": "Willst du diese Publikation wirklich löschen?", + "import": "Willst du diese EPUB-Dateien wirklich importieren?", + "lcpImport": "Willst du diese LCP-Dateien wirklich importieren?" + }, + "opds": { + "download": "Download", + "settings": "Einstellungen", + "addMenu": "OPDS-Feed hinzufügen", + "formError": "Bitte fülle alle Felder aus", + "back": "Zurück", + "downloadError": "Beim Abrufen des Feeds trat ein Fehler auf.", + "addForm": { + "addButton": "Hinzufügen", + "updateSentence": "Du kannst die Felder aktualisieren.", + "addSentence": "Welchen ODPS-Feed willst du hinzufügen?", + "delete": "Feed löschen", + "update": "Aktualisieren", + "name": "Feed-Name:", + "url": "Feed-Link:" + }, + "authentication": { + "username": "Benutzername:", + "password": "Passwort:", + "loginButton": "Login", + "sentence": "Bitte logge dich ein, um auf die Inhalte zuzugreifen" + } + }, + "reader": { + "settings": { + "title": "Einstellungen", + "align": "Textausrichtung:", + "left": "Linksbündig", + "center": "Zentriert", + "right": "Rechtsbündig", + "fontSize": "Schriftgröße:", + "display": "Lesefluss:", + "close": "Schließen", + "save": "Speichern", + "scrolled": "Fortlaufend", + "paginated": "Seitendarstellung" + } + }, + "message": { + "download": { + "successFirst": "Der Download von ", + "successSecond": " wurde abgeschlossen", + "startFirst": "Der Download von ", + "startSecond": " hat begonnen" + }, + "lcp": { + "renewSuccessFirst": "Die LCP-Lizenz von ", + "renewSuccessSecond": " wurde verlängert", + "renewErrorFirst": "Beim Verlängern der LCP-Lizenz von ", + "renewErrorSecond": " trat ein Fehler auf", + "returnSuccessFirst": "Die LCP-Lizenz von ", + "returnSuccessSecond": " wurde zurückgegeben", + "returnErrorFirst": "Beim Zurückgeben der LCP-Lizenz von ", + "returnErrorSecond": " trat ein Fehler auf", + "passphraseError": "Konnte die Publikation {{publicationTitle}} nicht entsperren" + } + } +}