Translate Your Android App with AI
Babely translates your strings.xml resources while preserving plurals, string arrays, and format specifiers — the standard Android localization workflow, automated.
Why teams automate this
values-xx folders multiply quickly
Every new language means duplicating strings.xml across values-es, values-de, values-fr folders. Manual copy-paste does not scale.
Plurals and arrays break easily
Android plurals blocks and string-array entries use XML structure that generic translators corrupt.
Strings drift before Play Store release
When English strings.xml changes, target locale files fall behind unless translation is part of your release pipeline.
How it works
Configure Babely for Android XML
Point Babely at your strings.xml paths. Use values-[locale] folder conventions or a flat locale directory.
{
"locale": {
"source": "en",
"targets": ["es", "de", "fr"]
},
"files": {
"android": {
"include": ["app/src/main/res/values-[locale]/strings.xml"]
}
}
}Translate changed strings
Run translate after editing your source strings. Babely detects Git diff changes and updates target locale XML files.
npx @babely/cli@latest translateReview XML diffs in Git
Check that plurals, string-array items, and format specifiers like %1$s and %d stayed intact in translated files.
Wire into CI before release
Run Babely in GitHub Actions so every pull request keeps locale resources in sync before you ship to the Play Store.
# See docs/github-actions for the full workflowExample babely.json
Copy this config into your project root and adjust targets to match your locale folders.
{
"locale": {
"source": "en",
"targets": ["es"]
},
"files": {
"android": {
"include": ["locales/[locale].xml"]
}
}
}Why Babely for Android
Native Android XML support
Babely handles strings.xml with plurals, string-array, and formatted string resources.
Standard res/ folder layout
Works with values-[locale]/strings.xml conventions used in Gradle Android projects.
Git diff detection
Only modified strings are translated, keeping pull request diffs focused and reviewable.
CI-ready CLI
Automate translations before every release build without a heavyweight TMS.
Related documentation
Other use cases
Expo
Babely is the only translation CLI with an official Expo preset. Automate app strings, native App Store metadata, and CI workflows — without a heavyweight TMS.
iOS XCStrings
Babely translates your Localizable.xcstrings catalogs while preserving pluralization rules, string variations, and developer comments — Xcode's modern localization format, automated.
react-i18next
Babely translates your locales/[locale].json files while preserving {{interpolation}}, nested namespaces, and plural keys — the most widely used React i18n library.
Start translating your Android project
Set up Babely in minutes, automate translations in CI, and ship multilingual products without enterprise localization overhead.
Frequently Asked Questions
Does Babely preserve Android plural rules?
Yes. Babely keeps plurals XML structure and quantity items intact while translating the string values inside each item.
Can I use a flat locale directory instead of res/values-xx?
Yes. Update the include path in babely.json to match your project layout, for example locales/[locale].xml as in the Babely example repo.
Are format specifiers like %1$s preserved?
Yes. Positional and typed format specifiers in Android strings stay unchanged during translation.
Does Babely replace Android Studio localization tools?
No. Babely automates strings.xml translation in your repo. Android Studio and Gradle still build and bundle your localized resources.