i18n: Übersetzung¶
obd_diag.i18n¶
.. py:module:: obd_diag.i18n
Übersetzung der Texte für Oberfläche, Kommandozeile und Bericht (Deutsch/Englisch).
Die Texte im Code sind deutsch und werden mit tr("…") ausgegeben; ist Englisch
eingestellt, kommt die Übersetzung aus locale/en.po (Format von GNU gettext, die
deutschen Texte sind die msgid). Platzhalter stehen in geschweiften Klammern und
werden nach dem Übersetzen gefüllt: tr("Verbinde mit {port} …").format(port=port).
Texte, die schon beim Import feststehen (Tabellen, Konstanten), markiert N_; sie
werden erst bei der Ausgabe mit tr übersetzt. So bleiben gespeicherte Sitzungen
sprachneutral: sie enthalten die deutschen Texte, angezeigt wird die eingestellte
Sprache. QML nimmt qsTr und denselben Katalog (ui/window.py).
Neue Texte trägt uv run python tools/translations.py in en.po ein;
tests/unit/test_i18n.py schlägt fehl, solange eine Übersetzung fehlt oder ein
deutscher Text ohne tr ausgegeben wird.
Dieses Modul gehört zu keiner Schicht und importiert nichts aus dem Paket; jede Schicht darf es benutzen.
.. py:function:: set_language(language) :module: obd_diag.i18n
Sprache für alle folgenden Ausgaben; ValueError bei unbekannter Sprache.
.. py:function:: system_language() :module: obd_diag.i18n
Sprache aus der Umgebung wie bei gettext (LANGUAGE, LC_ALL,
LC_MESSAGES, LANG): Deutsch, wenn dort Deutsch steht, sonst Englisch.
.. py:function:: parse_po(text) :module: obd_diag.i18n
msgid → Übersetzung aus einer PO-Datei; leere und unvollständige Einträge
fehlen. Kommentare und #, fuzzy werden ignoriert (fuzzy zählt als übersetzt
nur, wenn msgstr gefüllt ist).
.. py:function:: tr(text) :module: obd_diag.i18n
text (deutsch) in der eingestellten Sprache; ohne Übersetzung unverändert.
.. py:function:: trn(singular, plural, n) :module: obd_diag.i18n
Einzahl oder Mehrzahl nach n (Deutsch und Englisch: Einzahl nur bei 1).
.. py:function:: N_(text) :module: obd_diag.i18n
Markiert text zum Übersetzen, ohne es schon zu übersetzen.
.. py:function:: decimal(value, digits=1) :module: obd_diag.i18n
Zahl mit digits Nachkommastellen und dem Dezimalzeichen der Sprache.
.. py:function:: csv_delimiter() :module: obd_diag.i18n
Trennzeichen für CSV wie in der Tabellenkalkulation der Sprache: Deutsch ;
(das Komma ist Dezimalzeichen), Englisch ,.