Traduci cataloghi stringhe Xcode (.xcstrings)
Un Catalogo Stringhe contiene ogni lingua in un unico file JSON che solo Xcode dovrebbe modificare manualmente. KAERIS aggiunge le nuove lingue allo stesso file e lascia tutto il resto invariato.
KAERIS ha tradotto questa pagina e controllato ogni riga ritraducendola. Un madrelingua non l'ha ancora revisionata. Originale in inglese
Come viene creato un Catalogo Stringhe
Un file, strings, poi la chiave, poi localizations, poi la lingua. Ogni lingua contiene stringUnit o variations per i plurali. Il file contiene anche comment, extractionState e shouldTranslate. Una chiave senza una voce per la lingua di origine è il suo stesso testo sorgente.
{
"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"
}
Cosa controllare nelle traduzioni .xcstrings
Non leggerlo come JSON semplice
Appiattito come JSON generico diventa chiavi come
strings.welcome.localizations.en…, che sembra tradotto e che Xcode non può leggere. KAERIS ha un suo lettore per il formato.Variazioni plurali per lingua
L'inglese ha
oneeother; il russo necessita anche difewemany, l'arabo di tutti e sei. Il README descrive l'espansione;%lldrimane dove era.Ciò che Xcode ha scritto deve rimanere
Commenti, stati di estrazione, lingue già presenti nel file e tutto ciò che è contrassegnato come
shouldTranslate: falsevengono mantenuti intatti.Specificatori di formato
%@,%lld,%1$@vengono confrontati con l'origine dopo la traduzione.
Un'esecuzione reale: tradotto in tedesco e controllato
Un'esecuzione reale, 27 ottobre 2026, nulla modificato manualmente: kaeris translate Localizable.xcstrings --langs de con kaeris 0.2.35, 2,4 secondi, modello openai/gpt-4.1-mini (il modello di fallback del servizio ha risposto a questo lavoro). Sotto, il file tedesco che ha scritto e cosa dice kaeris check al riguardo.
{
"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
Cosa fa KAERIS con esso
Un file, aggiornato sul posto
kaeris translate Localizable.xcstrings --langs de,fr,jascrive le lingue nel catalogo. Non c'è un file per lingua.Plurali come ICU per il modello
Nel controllo, una variazione plurale viene letta come un plurale ICU, quindi una forma persa è visibile.
Controllo gratuito per questo formato
Il controllo gratuito su /check legge questo formato e viene eseguito senza chiave o account. Anche il comando da terminale
kaeris checklo legge: gestisce tutti i 13 formati da kaeris 0.2.35, con le stesse regole e nulla inviato da nessuna parte.
Eseguilo in tre passaggi
Installa la CLI
Esegui
pip install kaeris.Traduci il catalogo
Esegui
kaeris translate Localizable.xcstrings --langs de,fr,ja. Il catalogo viene aggiornato sul posto.Controlla il risultato
Carica il catalogo sulla pagina di controllo gratuita; legge origine e traduzioni dall'unico file.
pip install kaeris kaeris translate Localizable.xcstrings --langs de,fr,ja --verify
Domande
Sovrascrive le mie traduzioni esistenti?
Le lingue già presenti nel file, i commenti e gli stati di estrazione vengono mantenuti intatti, come dice il README della CLI.
Come vengono gestiti i plurali?
Le variazioni plurali vengono espanse alle categorie di cui ogni lingua ha bisogno: l'inglese one/other diventa one/few/many/other in russo e sei forme in arabo.
È gratuito?
Sì, senza account: 10.000 caratteri per file e fino a 8 lingue per esecuzione. Una chiave API gratuita aumenta il limite di file a 50.000 caratteri. A vita costa $79 una tantum, sulla tua chiave OpenRouter; i piani mensili partono da $19. Prezzi
Posso eseguirlo dal terminale o in CI?
Sì. pip install kaeris, poi kaeris translate Localizable.xcstrings --langs de,ja. Vedi anche iOS. La GitHub Action esegue la stessa traduzione in una pull request. Documentazione CLI · GitHub Action
Continua
Riferimento CLI · Riferimento Check · Traduci nel browser · Controllo gratuito · Converti formati · Pseudo-localizzazione
Altri formati: JSON · YAML · .po · ARB · XLIFF · .strings · .properties · .resx · CSV · Markdown · Fluent · Android XML