Um deiner Flutter-App eine Sprache hinzuzufügen, übersetzt du eine Datei: deine ARB-Vorlage. Alles andere, einschließlich der Dart-Klassen, wird daraus generiert.
In dieser Anleitung geht es um genau diese eine Datei, app_en.arb, und um die drei Dinge, bei denen es dabei häufig zu Problemen kommt: die @-Metadaten, Platzhalter und Pluralformen. Weitere App-Formate findest du unter So übersetzt du die Sprachdateien deiner App.
Was ist eine ARB-Datei?
Eine ARB-Datei ist JSON mit einer zusätzlichen Konvention. Das Lokalisierungstool von Flutter liest ARB-Dateien standardmäßig aus lib/l10n, verwendet app_en.arb als Vorlage und generiert die Dart-Klassen, wenn du flutter gen-l10n ausführst. Jede Datei enthält eine Sprache.
Einträge bestehen aus Paaren: einem Schlüssel mit seinem Text und einem @-Eintrag, der ihn beschreibt. Übersetzt wird nur der Text.
Welche Option solltest du wählen?
| Geeignet für | Grenzen | |
|---|---|---|
| AI Glot | Eine oder fünf neue Sprachen, ein verbindliches Glossar, jede Veröffentlichung | Für zehn Strings nicht nötig |
| Eine Übersetzungsmanagement-Plattform (Crowdin, Lokalise, Phrase, Localizely) | Ein Team mit Prüfenden und Anbindung an ein Repository | Zuerst musst du ein Projekt einrichten und dein Repository verbinden |
| DeepL | XLIFF-Dateien, die auf der Liste stehen | ARB steht nicht auf der Liste. Du musst die Dateien also zuerst konvertieren |
| ChatGPT, Claude oder ein anderer Assistent | Eine Handvoll Strings | Du formulierst den Prompt und fügst dein Glossar in jeden Chat ein. Bei jedem Durchlauf kann sich ein Schlüssel ändern, ein {placeholder} kaputtgehen oder eine ICU-Pluralform verstümmelt werden. Deshalb musst du jede Datei vergleichen |
| Ein Freelancer oder eine Agentur | Deine Texte für App Store und Play Store | Dauert länger, wird pro Wort berechnet, und die Datei musst du trotzdem selbst vorbereiten |
Lass die Store-Einträge und den ersten Bildschirm von einer Person übersetzen. Die vielen weiteren Beschriftungen und Meldungen kannst du mit einer Engine übersetzen.
Warum AI Glot für ARB-Dateien geeignet ist
- Schlüssel und
@-Metadaten sind Strukturelemente. Sie können unverändert bleiben. - Platzhalter und ICU-Syntax bleiben erhalten.
{name}und{count, plural, ...}bleiben in der Nachricht stehen, während die Wörter in den einzelnen Zweigen übersetzt werden. - Mehrere Sprachen in einem Auftrag, statt dieselben Strings fünfmal zu bearbeiten.
- Ein Glossar für alle Locales und auch für später hinzugefügte Dateien.
- Ein Plan, bevor Kosten entstehen, mit einer Beispieldatei, die du prüfen kannst.
Der Weg einer einzelnen Datei
- 1Hochladenapp_en.arb im OriginalBis zu 8 MB
- 2Sagen Sie, was Sie brauchenSprachen und was unverändert bleiben sollKostenlos
- 3Plan lesenStrings, Sprachen, KostenKostenlos
- 4GenehmigenDer einzige kostenpflichtige SchrittVerbraucht Credits
- 5DownloadEine ARB-Datei pro SpracheEinfach einfügen
So sieht ein übersetzter Eintrag aus
{ "@@locale": "en", "@@locale": "fr", "welcome": "Welcome back, {name}", "welcome": "Bon retour, {name}", "@welcome": { "description": "Greeting on the home screen" }, "cartItems": "{count, plural, one{1 item} other{{count} items}}" "cartItems": "{count, plural, one{1 article} other{{count} articles}}"}Was du anschließend prüfen solltest
Pluralformen bei Sprachen mit mehr Varianten. Im Englischen sind zwei Zweige nötig. Im Russischen und Arabischen gibt es mehr, und die übersetzte Nachricht benötigt möglicherweise Zweige, die in der englischen Vorlage nicht vorkommen. Lies diese Nachrichten einmal durch.
@@locale. Wenn du nicht darum gebeten hast, den Wert zu aktualisieren, bleibt er unverändert. Setze ihn also vor der Veröffentlichung auf die Zielsprache.
Länge. Sieh dir die Bildschirme mit den längsten Texten an und prüfe, ob der Text aus einer Schaltfläche oder Karte herausragt.
So geht’s Schritt für Schritt
1. Teste eine Datei kostenlos. Der ARB-Übersetzer benötigt kein Konto und verarbeitet Dateien mit bis zu 2 MB und 5,000 Wörtern.
2. Lade app_en.arb in der App hoch oder sende die Datei wie unten beschrieben über die Befehlszeile.
3. Sag in einem Satz, was du brauchst.
Translate this file into French, German and Spanish.
Leave the @ metadata entries alone. Set @@locale to the target language.
Der Satz legt fest, was in der gesamten Datei übersetzt wird. Eine Vorgabe zur Formulierung, etwa „jeden {placeholder} und die ICU-Pluralsyntax genau so beibehalten“ oder „die informelle Anrede verwenden“, gehört bei der Freigabe ins zweite Feld, da sie beim Formulieren auf jede Nachricht angewendet wird.
4. Füge ein Glossar hinzu mit dem App-Namen, den Feature-Namen und den Begriffen, die deine App immer auf dieselbe Weise verwendet. So erstellst du eines.
5. Lies den Plan und wähle eine Qualitätsstufe.
Lite liefert etwa dreimal mehr Wörter pro Credit und ist schneller. Damit eignet es sich für einen ersten Entwurf in einer neuen Sprache. Standard ist für die Texte gedacht, die Nutzer zuerst lesen. Ein Credit entspricht bei Standard einem Wort.
6. Gib die Übersetzung frei und lade sie herunter.
7. Lege die Dateien in lib/l10n neben app_en.arb ab und führe dann Folgendes aus:
flutter gen-l10n
Eine Datei, mehrere Sprachen
Dateinamen und Anzahl sind Beispiele. Eine ARB-Datei enthält eine Sprache, daher erhält jede Sprache eine eigene Datei.
Drei Möglichkeiten, es auszuführen
Die Arbeit über die Befehlszeile ist bei Flutter-Entwicklern besonders beliebt, weil sie bei jedem Release erneut ausgeführt wird:
id=$(aiglot batches create lib/l10n/app_en.arb \
--instruction "Translate into French. Leave the @ metadata entries alone. Set @@locale to the target language." \
--json | jq -r '.data.id')
aiglot batches get "$id" --json | jq '.data.plan'
aiglot batches approve "$id" --quality lite \
--instructions "Keep every {placeholder} and ICU plural syntax exactly as written."
aiglot batches download "$id" --output lib/l10n/app_fr.arb
Mit deinem KI-Agenten: Binde AI Glot als MCP-Server ein. Der Agent kann dein Projekt auslesen, Glossarbegriffe vorschlagen, den Auftrag ausführen, die Dateien in lib/l10n speichern und flutter gen-l10n für dich ausführen.
In der App: hochladen, klicken, herunterladen. Gut für einen einmaligen Auftrag.
Eine API-Integration wird in der API-Dokumentation beschrieben.
Unter Preise siehst du, was ein größeres Volumen kostet. Ein kostenloses Konto enthält Guthaben, mit dem du eine echte Datei verarbeiten kannst.
Die hier genannten Limits galten zum Zeitpunkt der Erstellung dieses Textes: 8 MB pro ARB-Datei sowie 2 MB und 5,000 Wörter im kostenlosen Tool. Die Flutter-Standardwerte stammen aus der offiziellen Flutter-Dokumentation und können sich ändern. Die Liste von DeepL stammt aus der eigenen Dokumentation. Dateinamen und Zeichenfolgenzahlen in den Diagrammen sind Beispiele. In deinem Tarif siehst du die tatsächlichen Werte für deine Datei. Das kannst du kostenlos nachlesen.
