Übersetzen

Flutter ARB-Dateien übersetzen

Eine .arb-Datei ist JSON mit ICU-Nachrichten und einem @key-Block mit Metadaten neben jeder Zeichenkette. KAERIS übersetzt die Nachrichten, behält die Metadaten und prüft anschließend die ICU-Syntax.

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 ARB-Datei aufgebaut ist

Reines JSON. Jede Nachricht steht neben einem @message-Eintrag mit Beschreibung und Platzhaltertypen; @@locale benennt die Sprache. Pluralformen und Auswahlen sind ICU-Zeichenketten: {count, plural, =0{…} one{…} other{…}}.

Quelldateiapp_en.arb
{
  "@@locale": "en",
  "welcome": "Welcome back, {name}!",
  "@welcome": {
    "description": "Greeting on the home screen",
    "placeholders": { "name": { "type": "String" } }
  },
  "itemCount": "{count, plural, =0{No items} one{{count} item} other{{count} items}}",
  "@itemCount": {
    "placeholders": { "count": { "type": "int" } }
  }
}

Worauf bei ARB-Übersetzungen zu achten ist

Ein realer Durchlauf: ins Deutsche übersetzt und geprüft

Ein realer Durchlauf, 27. Oktober 2026, nichts von Hand bearbeitet: kaeris translate app_en.arb --langs de mit kaeris 0.2.35, 2,7 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.

Deutsches Ergebnisapp_de.arb
{
  "@@locale": "de",
  "welcome": "Willkommen zurück, {name}!",
  "itemCount": "{count, plural, =0{Keine Artikel} one{{count} Artikel} other{{count} Artikel}}",
  "@welcome": {
    "description": "Greeting on the home screen",
    "placeholders": {
      "name": {
        "type": "String"
      }
    }
  },
  "@itemCount": {
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  }
}
kaeris checkexit code 0
$ kaeris check --source app_en.arb --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

Was KAERIS damit macht

In drei Schritten ausführen

  1. CLI installieren

    Führen Sie pip install kaeris aus.

  2. Vorlage übersetzen

    Führen Sie kaeris translate lib/l10n/app_en.arb --langs de,ja aus.

  3. Ergebnis prüfen

    Führen Sie kaeris check mit der Quelle und --pattern 'app_{lang}.arb' aus; es wird mit Code 1 beendet, wenn eine Variable oder ein ICU-Block fehlerhaft ist.

pip install kaeris
kaeris init --preset flutter-arb
kaeris translate lib/l10n/app_en.arb --langs de,ja --verify
kaeris check --source lib/l10n/app_en.arb --langs de,ja --pattern 'app_{lang}.arb'

Fragen

Werden die @metadata-Einträge beibehalten?

Ja. Beschreibungen und Platzhaltertypen bleiben neben jeder Nachricht erhalten; @@locale wird für die Zielsprache neu geschrieben.

Was, wenn die ICU-Pluralform in einer Übersetzung falsch ist?

Die Prüfung vergleicht ICU-Blöcke mit der Quelle und benennt das Problem, z. B. einen fehlenden =0-Zweig. Im realen Durchlauf oben kam die Pluralform mit allen drei Zweigen zurück und die Prüfung hatte nichts zu melden.

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 lib/l10n/app_en.arb --langs de,ja. Siehe auch Flutter. 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: JSON · YAML · .po · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML