Translate res/values/strings.xml without breaking a single %1$s
Upload res/values/strings.xml, pick locales, and get back values-de/strings.xml, values-ja/strings.xml… — %1$s/%2$d positional specifiers and inline <b>/<i> markup both survive exactly as written.
Upload strings.xml
Drop res/values/strings.xml in, or run kaeris translate res/values/strings.xml --langs de,ja,uk from the CLI.
Pick target locales
46 languages, named to match your values-XX/ qualifier folders directly (de, ja, zh-rCN…).
Ship
Each file downloads pre-named values-de/strings.xml — drop it into res/ and rebuild.
Before → after
<resources> <string name="welcome">Welcome back, %1$s!</string> <string name="items_left">%2$d items left in stock</string> <string name="tap_continue">Tap <b>here</b> to continue</string> </resources>
<!-- Generated by KAERIS i18n Tool — de --> <resources> <string name="welcome">Willkommen zurück, %1$s!</string> <string name="items_left">Noch %2$d Artikel auf Lager</string> <string name="tap_continue">Tippe <b>hier</b>, um fortzufahren</string> </resources>
KAERIS translates <string> resources — the bulk of an app's UI text — and re-escapes &/</' for valid XML on the way out. <plurals> quantity blocks and <string-array> lists are a separate resource type this pass doesn't rewrite yet — keep those as-is or flatten their <item> values into plain strings for now.
Positional specifiers preserved
%1$s, %2$d and friends are never dropped, reordered or mistranslated — critical since Android indexes them by position.
Inline markup-safe
<b>/<i> tags inside a <string> value pass through as literal text, exactly like Android's own resource compiler expects.
values-<lang>/ output
Every download is pre-named values-de/strings.xml, values-ja/strings.xml — no renaming before it lands in res/.
One CLI command
kaeris translate res/values/strings.xml --langs de,ja,uk --out res — no config file required to get started.
%1$s/%2$d is never dropped, reordered or mistranslated.Ship your Android app in every market
46 languages, positional-specifier-safe, values-<lang>/ ready. Free to start, no account required.
$ pip install kaeris $ kaeris translate res/values/strings.xml --langs de,ja,uk