Guide · App Bundle
Fix missing translations in an Android App Bundle
You shipped a fully translated app for years as an APK. You switch to the Android App Bundle (AAB) that Google Play now requires, and suddenly testers report the app showing English on a Korean or Spanish device — even though the values-ko and values-es resources are right there in the project. Nothing is wrong with your translations. This is language splitting.
Why it happens
An App Bundle lets Google Play generate optimized APKs per device, and one of the dimensions it splits on is language. With splitting on, Play delivers only the language resources that match the device's system language at install time, as separate configuration splits. That is exactly what makes downloads smaller. The problem shows up when a language split is not delivered or activated the way you expect — for example, when the device language isn't one Play chose to install, or when your setup or a sideloaded/universal build doesn't pull the split. The result: the app falls back to the default (usually English) even though the translation exists in your source.
The fix: turn off language splitting
If you'd rather ship every language inside the base APK — so translations are always present regardless of how the app is delivered — disable the language split in your module's build.gradle:
android {
bundle {
language {
enableSplit = false
}
}
}
With enableSplit = false, all languages are bundled together and every user gets the full set of translations. The trade-off is a slightly larger download, since unused languages ship too.
When to use it
- Use it when your app is small, your translations are just strings (not heavy assets), and reliable localization matters more than shaving a few hundred kilobytes.
- Think twice if you localize large assets per language; there, keeping splits on genuinely reduces size, and it's better to solve the delivery issue than to bundle everything.
Verify the fix
- Rebuild the AAB after adding the config.
- Generate the APKs Play would serve and inspect them, or test through Play's internal testing track rather than a raw universal APK.
- Switch the test device's system language and confirm the UI follows.
If translations now appear across languages without depending on which split got installed, the change worked. Keep the setting in version control so a future bundle rebuild doesn't silently re-enable splitting.
A note on testing sideloaded builds
A universal APK built from a bundle behaves differently from Play-delivered splits. If you only ever test a sideloaded build, you may see a language issue that real Play installs don't have — or miss one that they do. Test the way users actually receive the app: through a Play testing track.