Übersetzen

Übersetze i18next und JSON-Locale-Dateien

Locale-JSON ist verschachtelt und seine Strings enthalten Variablen wie {{name}}. Ein Tool, das nur Text sieht, kann einen Schlüssel umbenennen, die Verschachtelung abflachen oder die Variable übersetzen. KAERIS gibt die Datei in derselben Struktur zurück, mit jeder Variable an ihrem ursprünglichen Ort.

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 Locale-JSON-Datei aufgebaut ist

Eine Datei pro Sprache (en.json, de.json) oder eine pro Namespace (locales/en/common.json). Die Schlüssel sind der Vertrag mit Ihrem Code, daher werden nur die Werte übersetzt. i18next schreibt Pluralformen als separate Schlüssel (inbox_one, inbox_other); next-intl, Vue I18n und FormatJS fassen sie in einen ICU-String zusammen.

Quelldateien.json
{
  "nav": { "greeting": "Welcome back, {{name}}!" },
  "inbox_one": "{{count}} new message",
  "inbox_other": "{{count}} new messages"
}

Worauf Sie bei JSON-Übersetzungen achten sollten

Ein realer Durchlauf, vorher und nachher

Ein realer Durchlauf: unsere Testdatei mit 97 Zeichenketten, Deutsch, 26. Oktober 2026, gekürzt auf vier Schlüssel. Die letzte Zeile zeigt einen Verlust, den die Prüfung bei diesem Durchlauf erfasst hat.

Vorheren.json
{
  "ph": {
    "mustache": "Hi {{firstName}}, your order {{orderId}} has shipped.",
    "reactTrans": "By continuing you accept our <0>Terms</0> and <1>Privacy Policy</1>.",
    "nesting": "$t(nav.cart) has been updated"
  },
  "icu": {
    "copiesLeft": "{count, plural, =0 {Sold out} one {Only # copy left} other {Only # copies left}}"
  }
}
Nachherde.json
{
  "ph": {
    "mustache": "Hallo {{firstName}}, Ihre Bestellung {{orderId}} wurde versendet.",
    "reactTrans": "Durch die fortgesetzte Nutzung stimmen Sie unseren <0>Nutzungsbedingungen</0> und <1>Datenschutzrichtlinien</1> zu.",
    "nesting": "Der Warenkorb wurde aktualisiert"
  },
  "icu": {
    "copiesLeft": "{count, plural, =0 {Ausverkauft} one {Nur noch # Exemplar} other {Nur noch # Exemplare}}"
  }
}
Kostenlose Prüfung dieser Datei/check
error ph.nesting: lost placeholder $t(nav.cart)

Was KAERIS damit macht

In drei Schritten ausführen

  1. Installieren Sie die CLI

    Führen Sie pip install kaeris aus. Für die kostenlosen Limits ist kein Konto erforderlich.

  2. Übersetzen Sie die Datei

    Führen Sie kaeris translate en.json --langs de,ja --verify aus. Die Dateien de.json und ja.json erscheinen neben der Quelle.

  3. Überprüfen Sie das Ergebnis

    Führen Sie kaeris check --source en.json --langs de,ja aus. Das Programm wird mit Code 1 beendet, wenn eine Variable, eine Zahl oder ein Schlüssel falsch ist, sodass CI den Merge stoppen kann.

pip install kaeris
kaeris init --preset i18next
kaeris translate en.json --langs de,ja --verify
kaeris check --source en.json --langs de,ja

Fragen

Welche JSON-Layouts funktionieren?

Flache und verschachtelte Schlüssel-Wert-Dateien, wie sie von i18next, Vue I18n, next-intl und FormatJS verwendet werden. Die oberste Ebene muss ein Objekt sein, wie {"greeting": "Hello"}. Arrays von Zeichenketten werden ebenfalls übersetzt.

Behält {{count}} und $t(…) Referenzen bei?

Variablen und Referenzen werden nach der Übersetzung mit der Quelle verglichen. Eine Zeile, bei der eine fehlt, wird markiert; das obige Beispiel zeigt einen realen Durchlauf, bei dem $t(nav.cart) weggelassen wurde und die Prüfung dies erfasste.

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 en.json --langs de,ja. Die GitHub Action führt dieselbe Ü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: YAML · .po · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML