Adapter übersetzen
ioBroker wird weltweit benutzt. Damit ein Adapter überall verständlich ist, müssen drei Dinge übersetzt sein:
- die Texte der Konfigurationsoberfläche,
titleunddescin derio-package.json,- die Änderungshinweise (
news) in derio-package.json.
Pflicht sind Englisch und Deutsch. Alles Weitere ist freiwillig, aber erwünscht.
Die unterstützten Sprachen
en, de, ru, pt, nl, fr, it, es, pl, uk, zh-cn.
Das Werkzeug
Übersetzt wird mit @iobroker/adapter-dev. Es gehört in die
Entwicklungsabhängigkeiten:
npm install --save-dev @iobroker/adapter-dev
In der package.json bekommt es einen Eintrag unter scripts:
"scripts": {
"translate": "translate-adapter"
}
Ein Adapter aus dem Adapter Creator bringt das bereits mit.
!> Das alte gulp translate gibt es nicht mehr. Wer noch eine Gruntfile oder
ein gulpfile.js für Übersetzungen im Paket hat, ersetzt sie durch
adapter-dev.
Der Ablauf
Neue Texte werden nur in die englische Datei geschrieben, also in
admin/i18n/en.json beziehungsweise admin/src/i18n/en.json. Danach:
npm run translate
Das füllt alle fehlenden Übersetzungen in den anderen Sprachdateien und in der
io-package.json auf. Nur einzelne Sprachen:
npm run translate -- -l de fr it
Eine Oberfläche im alten HTML-Stil hat zusätzlich eine words.js. Sie wird
nicht mehr von Hand gepflegt, sondern erzeugt:
npm run translate all
Das übersetzt und schreibt anschließend words.js aus den JSON-Dateien neu.
Wer noch gar keine JSON-Dateien hat, ruft einmalig npm run translate to-json
auf, um sie aus der vorhandenen words.js zu erzeugen.
?> Die Befehle gibt es in drei Schreibweisen: ausgeschrieben (to-json), als
ein Zeichen (j) und unter dem alten gulp-Namen
(adminWords2languages). Sie tun dasselbe.
Womit übersetzt wird
Ohne weitere Einstellung benutzt adapter-dev das freie Google Translate, das
mengenmäßig begrenzt ist. Besser wird das Ergebnis mit DeepL. Dafür genügt eine
Umgebungsvariable:
export DEEPL_API_KEY="…"
npm run translate
Ist auch GOOGLE_APPLICATION_CREDENTIALS gesetzt, gilt die Reihenfolge DeepL,
dann Google Translate V3, dann das freie Google Translate.
!> Maschinelle Übersetzung ist ein Anfang, kein Ergebnis. Die deutschen und englischen Texte sollten immer noch einmal von Hand gelesen werden. Wie oft eine Maschine daneben greift, zeigt der Abschnitt zu den Fachbegriffen im Styleguide.
Weblate
Für die Übersetzung durch die Gemeinschaft gibt es
weblate.iobroker.net. Wer seinen Adapter dort
einträgt, bekommt Übersetzungen von Muttersprachlern statt von einer Maschine.
Weblate ruft to-words selbst auf, sobald sich etwas ändert.
Die Adapterdokumentation
Für die Seiten unter Adapter gilt ein eigener Weg. Er steht unter Dokumentation-Styleguide und Dokumentation-Template.