Übersetze gettext .po-Dateien
Eine .po-Datei ist textbasiert: der englische Satz ist der Schlüssel. Kontexte, Pluralformen und Python-ähnliche Variablen sitzen um diesen Text herum. KAERIS behält sie bei und schreibt die Pluralformen, die die Zielsprache benötigt.
KAERIS hat diese Seite übersetzt und jede Zeile durch Rückübersetzung geprüft. Ein Muttersprachler hat sie noch nicht überprüft. Englisches Original
Wie eine .po-Datei aufgebaut ist
Jeder Eintrag hat ein msgid (der Quelltext) und ein msgstr (die Übersetzung). msgctxt unterscheidet zwei identische Sätze. Pluralformen verwenden msgid_plural und eine msgstr[n] pro Form, und die Zeile Plural-Forms im Header gibt an, wie viele Formen die Sprache hat.
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: app/views.py:12
msgid "Welcome back, %(name)s!"
msgstr ""
#: app/views.py:20
msgid "%(count)d file"
msgid_plural "%(count)d files"
msgstr[0] ""
msgstr[1] ""
msgctxt "menu"
msgid "Open"
msgstr ""
msgctxt "verb"
msgid "Open"
msgstr ""
Worauf bei .po-Übersetzungen zu achten ist
Kontext ändert das Wort
„Öffnen“ als Menüpunkt und „Öffnen“ als Verb werden unterschiedlich übersetzt. KAERIS liest den Kontext zusammen mit dem Text und kennzeichnet ihn, wenn dasselbe Quellwort zweimal übersetzt zurückkommt. In der realen Ausführung unten kamen beide als „Öffnen“ zurück, was im Deutschen richtig ist, und die Kontexte blieben in der Datei.
Pluralformen unterscheiden sich je nach Sprache
Englisch hat zwei, Russisch drei, Arabisch sechs. In einer russischen Ausführung wird der Header zu
nplurals=3und jeder Plural-Eintrag erhält dreimsgstr-Slots.Variablen im Python- und C-Stil
%(name)s,%d,{name}müssen unverändert zurückgegeben werden, sonst löst die App zur Laufzeit einen Fehler aus.Der Header und Referenzen
Der Header wird mit der Sprache und der Pluralregel neu erstellt. Quellreferenzkommentare (
#:) werden nicht in die übersetzte Datei übernommen.
Ein realer Durchlauf: ins Deutsche übersetzt und geprüft
Eine reale Ausführung, 27. Oktober 2026, nichts manuell bearbeitet: kaeris translate en.po --langs de mit kaeris 0.2.35, 3,9 Sekunden, Modell google/gemini-2.5-flash-lite, der Standard der kostenlosen Stufe. Unten die deutsche Datei, die es geschrieben hat, und was kaeris check dazu sagt.
# Generated by KAERIS i18n Tool # Language: de msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Language: de\n" msgid "Welcome back, %(name)s!" msgstr "Willkommen zurück, %(name)s!" msgid "%(count)d file" msgid_plural "%(count)d files" msgstr[0] "%(count)d Datei" msgstr[1] "%(count)d Dateien" msgctxt "menu" msgid "Open" msgstr "Öffnen" msgctxt "verb" msgid "Open" msgstr "Öffnen"
$ kaeris check --source en.po --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Was KAERIS damit macht
Einträge und Kontexte beibehalten
Textschlüssel,
msgctxtund Pluralpaare kommen in der gleichen Reihenfolge zurück.Pluralformen aus der Zielsprache
Die Anzahl der
msgstr[n]-Slots folgt der Sprache, geprüft in einer Ausführung mit Russisch.Kostenlose Prüfung für dieses Format
Die kostenlose Prüfung auf /check liest dieses Format und läuft ohne Schlüssel oder Konto. Der Terminalbefehl
kaeris checkliest es ebenfalls: Er verarbeitet alle 13 Formate seit kaeris 0.2.35, mit denselben Regeln und ohne Übertragung von Daten.
In drei Schritten ausführen
CLI installieren
Führen Sie
pip install kaerisaus.Übersetze den Katalog
Führe
kaeris translate django.po --langs de,jaaus. Ausgabedateien werden nach Sprache benannt.Überprüfe das Ergebnis
Lade die Quelle und eine übersetzte .po-Datei auf der kostenlosen Prüfseite hoch, um verlorene Variablen und inkonsistente Begriffe zu sehen.
pip install kaeris kaeris translate locale/en/LC_MESSAGES/django.po --langs de,ja --verify
Fragen
Werden Pluralformen für Russisch oder Arabisch behandelt?
Der Plural-Header und die Anzahl der msgstr[n]-Slots werden für die Zielsprache geschrieben. In einer Ausführung mit Russisch ergab das Beispiel nplurals=3 und drei Slots.
Was ist mit msgctxt?
Der Kontext bleibt mit dem Eintrag verbunden, sodass zwei identische Quellen mit unterschiedlichen Kontexten getrennte Zeichenfolgen sind. Die Prüfung warnt, wenn sie unterschiedlich übersetzt zurückkommen.
Ist es kostenlos?
Ja, ohne Konto: 10.000 Zeichen pro Datei und bis zu 8 Sprachen pro Lauf. Ein kostenloser API-Schlüssel erhöht das Dateilimit auf 50.000 Zeichen. Lebenslang kostet es einmalig 79 $, mit deinem eigenen OpenRouter-Schlüssel; monatliche Pläne beginnen bei 19 $. Preise
Kann ich es vom Terminal oder in CI ausführen?
Ja. pip install kaeris, dann kaeris translate django.po --langs de,ja. Siehe auch Django. Die GitHub Action führt die gleiche Übersetzung in einem Pull Request aus. CLI-Dokumentation · GitHub Action
Weiter geht's
CLI-Referenz · Check-Referenz · Im Browser übersetzen · Kostenlose Prüfung · Formate konvertieren · Pseudo-Lokalisierung
Andere Formate: JSON · YAML · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML