Xcode String Catalogs (.xcstrings) übersetzen
Ein String Catalog speichert jede Sprache in einer einzigen JSON-Datei, die nur von Xcode manuell bearbeitet werden sollte. KAERIS fügt die neuen Sprachen zu dieser Datei hinzu und belässt alles andere unverändert.
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 ein String Catalog aufgebaut ist
Eine Datei, strings, dann der Schlüssel, dann localizations, dann die Sprache. Jede Sprache enthält eine stringUnit oder variations für Pluralformen. Die Datei enthält auch comment, extractionState und shouldTranslate. Ein Schlüssel ohne Eintrag für die Quellsprache ist sein eigener Quelltext.
{
"sourceLanguage" : "en",
"strings" : {
"Welcome back, %@!" : {
"comment" : "Greeting on the home screen",
"extractionState" : "manual",
"localizations" : {
"en" : { "stringUnit" : { "state" : "translated", "value" : "Welcome back, %@!" } }
}
},
"%lld items" : {
"localizations" : {
"en" : {
"variations" : {
"plural" : {
"one" : { "stringUnit" : { "state" : "translated", "value" : "%lld item" } },
"other" : { "stringUnit" : { "state" : "translated", "value" : "%lld items" } }
}
}
}
}
},
"Cancel" : { }
},
"version" : "1.0"
}
Worauf bei .xcstrings-Übersetzungen zu achten ist
Nicht als reines JSON lesen
Als generisches JSON abgeflacht, werden Schlüssel wie
strings.welcome.localizations.en…daraus, was übersetzt aussieht und was Xcode nicht lesen kann. KAERIS hat einen eigenen Reader für das Format.Pluralvariationen pro Sprache
Englisch hat
oneundother; Russisch benötigt auchfewundmany, Arabisch alle sechs. Die README beschreibt die Erweiterung;%lldbleibt, wo es war.Was Xcode geschrieben hat, muss bleiben
Kommentare, Extraktionszustände, bereits in der Datei vorhandene Sprachen und alles, was mit
shouldTranslate: falsemarkiert ist, werden unverändert übernommen.Format-Spezifizierer
%@,%lld,%1$@werden nach der Übersetzung mit der Quelle verglichen.
Ein realer Durchlauf: ins Deutsche übersetzt und geprüft
Ein echter Durchlauf, 27. Oktober 2026, nichts manuell bearbeitet: kaeris translate Localizable.xcstrings --langs de mit kaeris 0.2.35, 2,4 Sekunden, Modell openai/gpt-4.1-mini (das Fallback-Modell des Dienstes hat diesen Job beantwortet). Unten die deutsche Datei, die es geschrieben hat, und was kaeris check dazu sagt.
{
"sourceLanguage": "en",
"strings": {
"Welcome back, %@!": {
"comment": "Greeting on the home screen",
"extractionState": "manual",
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Welcome back, %@!"
}
},
"de": {
"stringUnit": {
"state": "translated",
"value": "Willkommen zurück, %@!"
}
}
}
},
"%lld items": {
"localizations": {
"en": {
"variations": {
"plural": {
"one": {
"stringUnit": {
"state": "translated",
"value": "%lld item"
}
},
"other": {
"stringUnit": {
"state": "translated",
"value": "%lld items"
}
}
}
}
},
"de": {
"variations": {
"plural": {
"one": {
"stringUnit": {
"state": "translated",
"value": "%lld Artikel"
}
},
"other": {
"stringUnit": {
"state": "translated",
"value": "%lld Artikel"
}
}
}
}
}
}
},
"Cancel": {
"localizations": {
"de": {
"stringUnit": {
"state": "translated",
"value": "Abbrechen"
}
}
}
}
},
"version": "1.0"
}
$ kaeris check --source Localizable.xcstrings --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Was KAERIS damit macht
Eine Datei, direkt aktualisiert
kaeris translate Localizable.xcstrings --langs de,fr,jaschreibt die Sprachen in den Katalog. Es gibt keine Datei pro Sprache.Pluralformen als ICU für das Modell
Bei der Prüfung wird eine Pluralvariation als ICU-Plural gelesen, sodass eine verlorene Form sichtbar ist.
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.Den Katalog übersetzen
Führen Sie
kaeris translate Localizable.xcstrings --langs de,fr,jaaus. Der Katalog wird direkt aktualisiert.Das Ergebnis prüfen
Laden Sie den Katalog auf der kostenlosen Prüfseite hoch; er liest Quell- und Übersetzungstexte aus der einen Datei.
pip install kaeris kaeris translate Localizable.xcstrings --langs de,fr,ja --verify
Fragen
Überschreibt es meine bestehenden Übersetzungen?
Bereits in der Datei vorhandene Sprachen, Kommentare und Extraktionszustände werden unverändert übernommen, wie in der CLI README angegeben.
Wie werden Pluralformen behandelt?
Pluralvariationen werden auf die Kategorien erweitert, die jede Sprache benötigt: Englisch one/other wird zu one/few/many/other im Russischen und sechs Formen im Arabischen.
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 Localizable.xcstrings --langs de,ja. Siehe auch iOS. 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 · .po · ARB · XLIFF · .strings · .properties · .resx · CSV · Markdown · Fluent · Android XML