iOS .strings
iOS · macOS · .strings · 46 languages · Free

Translate your iOS .strings, with %@ and %d exactly where they belong

Drop in your Localizable.strings. KAERIS translates all 46 languages, keeps Apple format specifiers like %@, %d and positional %1$@ intact, preserves escaping, and reads each line back so meaning drift never ships to the App Store.

Translate your file → $ pip install kaeris
%@ / %d specifiers safe Positional %1$@ kept Escaping preserved Xcode-ready output No account needed
What breaks in Apple .strings — and how KAERIS handles it

Format specifiers that stay valid

Reorder or drop a %@ and your app crashes at runtime. KAERIS preserves every specifier — including positional %1$@ %2$d — and read-back flags any that go missing.

Escaping that survives

Quotes, newlines and Unicode escapes are kept correct so the file compiles in Xcode without a genstrings round-trip.

Meaning read back

Each translation is read back into your language and checked — the App Store review won't tell you a button now says the opposite thing, but KAERIS will.

Real Apple .strings, round-tripped

Before → after

Localizable.strings (en)
/* welcome banner */
"welcome" = "Welcome back, %@!";
"cart" = "%d items in your cart";
Localizable.strings (ja)
/* welcome banner */
"welcome" = "%@さん、おかえりなさい!";
"cart" = "カート内 %d 点";
From file to shipped in 3 steps
1

Drop your .strings file

Upload it as-is, or run pip install kaeris and translate from your terminal or CI.

2

Pick languages & verify

Choose from 46 languages. Leave read-back on to catch meaning drift, lost placeholders and overflow.

3

Ship the .strings back

Download one .strings per language, structure intact — or let the GitHub Action open a PR when new keys land.

Translate your .strings now

Free, no account. Read every line back in your own language.

Drop your .strings file →

See the read-back benchmark · CLI & GitHub Action