Android Localization: Ship Your App in Every Language
Android provides a robust resource-based localization system using strings.xml files and resource qualifiers. Each locale gets its own values directory, and the system automatically selects the right resources based on the device language. With Jetpack Compose and per-app language preferences in Android 13+, building multilingual Android apps has never been more straightforward.
Android Localization Features
Android Localization in Practice
Define translatable strings in res/values/strings.xml with plurals support, then use Kotlin and Jetpack Compose APIs to render locale-aware content in your UI.
<!-- res/values/strings.xml -->
<resources>
<string name="welcome">Welcome to %1$s</string>
<plurals name="items">
<item quantity="one">%d item</item>
<item quantity="other">%d items</item>
</plurals>
</resources>
<!-- res/values-fr/strings.xml -->
<resources>
<string name="welcome">Bienvenue sur %1$s</string>
<plurals name="items">
<item quantity="one">%d article</item>
<item quantity="other">%d articles</item>
</plurals>
</resources>
// Kotlin - Jetpack Compose
@Composable
fun WelcomeScreen() {
Text(text = stringResource(R.string.welcome, "My App"))
Text(text = pluralStringResource(R.plurals.items, 5, 5))
}Related Guides
iOS Localization
Learn how iOS handles localization with String Catalogs and SwiftUI for cross-platform mobile comparison.
React Native i18n
Explore React Native localization patterns for sharing translation workflows across iOS and Android.
TMS Comparisons
Compare translation management platforms to find the best fit for your Android project.
Start Android Localization Today
Manage your Android strings.xml translations with AI-powered workflows, CLI sync, and CDN delivery under 50ms.