Traduci file .strings di iOS
Un file .strings è un elenco di righe "key" = "value"; in cui il valore contiene specificatori di formato come %@. KAERIS traduce i valori e verifica che ogni specificatore sia ancora presente.
KAERIS ha tradotto questa pagina e controllato ogni riga ritraducendola. Un madrelingua non l'ha ancora revisionata. Originale in inglese
Come viene creato un file .strings
Una "key" = "value"; per riga, note in /* … */. I valori sfuggono a virgolette e interruzioni di riga con una barra rovesciata. I plurali non vivono qui: Xcode usa .stringsdict o un Catalogo Stringhe per essi, e KAERIS legge .strings e .xcstrings.
/* Greeting on the home screen */ "welcome" = "Welcome back, %@!"; "items_count" = "%1$d of %2$d items synced"; "quote" = "Press \"Done\" to continue.";
Cosa controllare nelle traduzioni .strings
Specificatori %@ e posizionali
%@,%de%1$dsono segnaposto. In una lingua che riordina le parole, la forma posizionale mantiene corretti gli argomenti; uno specificatore modificato o mancante viene segnalato.Escape
\"e\nall'interno di un valore vengono letti e riscritti correttamente, quindi una virgoletta in una traduzione non termina la stringa.Le note rimangono nell'origine
I commenti
/* … */non vengono riportati nel file tradotto, che riceve un commento di lingua di una sola riga. Conserva il contesto per i traduttori nel file di origine.Lunghezza
Il tedesco e il finlandese spesso sono più lunghi dell'inglese. Il controllo avvisa quando una traduzione è molto più lunga dell'originale, il che è importante per i pulsanti.
Un'esecuzione reale: tradotto in tedesco e controllato
Un'esecuzione reale, 27 ottobre 2026, nulla modificato manualmente: kaeris translate Localizable.strings --langs de con kaeris 0.2.35, 4 secondi, modello openai/gpt-4.1-mini (il modello di fallback del servizio ha risposto a questo lavoro). Di seguito, il file tedesco che ha scritto e cosa dice kaeris check al riguardo.
/* de */ "welcome" = "Willkommen zurück, %@!"; "items_count" = "%1$d von %2$d Elementen synchronisiert"; "quote" = "Drücken Sie \"Fertig\", um fortzufahren.";
$ kaeris check --source Localizable.strings --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Cosa fa KAERIS con esso
Chiavi e ordine mantenuti
Ogni chiave viene riscritta con il suo valore tradotto.
Specificatori contati
Un
%@o%1$dperso o modificato viene trovato senza un modello.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 file
Esegui
kaeris translate en.lproj/Localizable.strings --langs de,ja.Controlla il risultato
Carica l'origine e la traduzione sulla pagina di controllo gratuita.
pip install kaeris kaeris translate en.lproj/Localizable.strings --langs de,ja --verify
Domande
Mantiene %@ e %1$d?
Sì. Gli specificatori vengono confrontati con l'origine dopo la traduzione e uno perso o modificato viene segnalato. Nell'esecuzione reale sopra %@, %1$d e %2$d sono tutti tornati.
E i plurali?
.strings non ha sintassi per i plurali. Xcode gestisce i plurali in .stringsdict o in un Catalogo Stringhe; KAERIS legge il catalogo ed espande i plurali per lingua, vedi la pagina .xcstrings.
È 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 en.lproj/Localizable.strings --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 · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML