Die Lingo.dev CLI übersetzt native mobile Ressourcendateien – Xcode .strings, Android XML, Flutter ARB und React Native JSON – über eine konfigurierte Lokalisierungs-Engine. Für jede Plattform gibt es einen eigenen Bucket-Typ, der das Dateiformat versteht, die Struktur beibehält und Pluralformen nativ verarbeitet.
Plattformen im Überblick#
| Plattform | Natives Format | CLI-Bucket | Typischer Dateipfad |
|---|---|---|---|
| iOS (Xcode) | .strings | xcode-strings | [locale].lproj/Localizable.strings |
| iOS (Xcode) | .stringsdict | xcode-stringsdict | [locale].lproj/Localizable.stringsdict |
| iOS (Xcode) | .xcstrings | xcode-xcstrings | Localizable.xcstrings |
| Android | strings.xml | android | app/src/main/res/values-[locale]/strings.xml |
| Flutter | .arb | flutter | lib/l10n/app_[locale].arb |
| React Native | .json | json | src/locales/[locale].json |
Voraussetzungen#
Jeder CLI-Durchlauf schickt Inhalte durch eine Lokalisierungs-Engine – also die Konfiguration, die festlegt, welches LLM-Modell, Glossar, welche Markenstimme und welche Anweisungen verwendet werden. Erstelle sie im Lingo.dev-Dashboard und generiere einen API-Schlüssel.
Deine Plattform konfigurieren#
Xcode unterstützt drei Lokalisierungsformate. Verwende das Format, das zu deinem Projekt-Setup passt.
String Catalogs (.xcstrings) – das moderne Xcode-Format, eingeführt mit Xcode 15. Eine einzelne JSON-Datei enthält alle Sprachen, und Xcode aktualisiert sie automatisch, sobald du neue Strings hinzufügst. Die CLI aktualisiert diese Datei direkt – ein [locale]-Platzhalter ist nicht nötig.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"xcode-xcstrings": {
"include": ["MyApp/Localizable.xcstrings"]
}
}
}Legacy-.strings-Dateien – eine Datei pro Sprache in [locale].lproj/-Verzeichnissen. Wenn dein Projekt zusätzlich .stringsdict für Pluralformen verwendet, füge beide Buckets hinzu.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"xcode-strings": {
"include": ["MyApp/[locale].lproj/Localizable.strings"]
},
"xcode-stringsdict": {
"include": ["MyApp/[locale].lproj/Localizable.stringsdict"]
}
}
}In Apples Lokalisierungsdokumentation findest du alles zur Einrichtung der i18n-Infrastruktur in Xcode.
Übersetzungen ausführen#
Übersetze alle Ressourcendateien mit einem einzigen Befehl:
npx lingo.dev@latest runDie CLI liest die Dateien deiner Ausgangssprache, ermittelt mithilfe des Lockfiles, was sich seit dem letzten Durchlauf geändert hat, übersetzt nur das Delta und schreibt die Ergebnisse in die Dateien der Zielsprache.
Wenn dein Projekt mehrere Ressourcentypen enthält, kannst du gezielt eine bestimmte Plattform ansteuern:
npx lingo.dev@latest run --bucket android
npx lingo.dev@latest run --bucket xcode-xcstringsPluralformen und Plattformkonventionen#
Jede mobile Plattform behandelt Pluralformen anders – iOS verwendet .stringsdict oder die Regeln von String Catalogs, Android nutzt <plurals>-XML-Elemente und Flutter setzt auf ICU MessageFormat in ARB-Dateien. Die CLI bewahrt bei der Übersetzung die native Pluralstruktur jeder Plattform und erzeugt die korrekten Pluralkategorien für jede Zielsprache.
Hinweise für Übersetzer:innen
Mobile Strings sind oft kurz und stark kontextabhängig. Verwende Hinweise für Übersetzer:innen in Xcode-.xcstrings-Dateien, um der Lokalisierungs-Engine Kontext dazu zu geben, wo ein String erscheint – „Button-Beschriftung im Checkout-Flow“ wird anders übersetzt als „Navigationsmenüpunkt“.
