What is the list of supported languages/locales on Android?
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Android, as a comprehensive operating system designed by Google, offers robust multilingual support to cater to users worldwide. The list of supported languages and locales is extensive, continuing to grow with each new release, allowing developers to engage a global audience. This article delves into the importance of this support, outlines the current list, and offers technical insights into implementing language support effectively.
Importance of Language/Locale Support
Localization is pivotal in enhancing user experience, adapting applications to various cultures, languages, and regional nuances. This process goes beyond mere translation, addressing factors such as date formats, currency, and cultural marker symbols. Android's dedicated support facilitates easier integration of these aspects, helping developers create applications that resonate well with users worldwide.
Supported Languages and Locales
As of the latest version, Android supports nearly 100 languages and countless locales. It's essential to differentiate between a language and a locale:
- Language: Refers to the standard form of speech analogous across various demographics, e.g., English, Spanish.
- Locale: Includes the regional specificities of a language, e.g., en_US for American English, es_MX for Mexican Spanish.
Examples of Supported Locales
Here's a sample table summarizing a few supported languages and their locales:
| Language | Locales |
| English | en_US en_GB en_AU |
| Spanish | es_ES es_MX es_AR |
| French | fr_FR fr_CA fr_BE |
| Chinese | zh_CN zh_TW zh_HK |
| Arabic | ar_AE ar_SA |
Technical Implementation
Defining Languages in Resources
Android employs a resource framework helping developers manage language assets. Resource directories are suffixed with language and locale codes. For instance:
res/values/strings.xml: Default language resources, typically English.res/values-es/strings.xml: Spanish translations.res/values-fr/strings.xml: French translations.
Adding resources for other locales involves creating similarly structured directories:
res/values-en-rUS/strings.xml: American English-specific resource.
Locale Configuration in Code
Developers can configure the locale programmatically with code snippets. Here's a basic illustration:
From Android 7.0 (Nougat) onwards, you can simplify this process by using the createConfigurationContext() method:
Testing Localization
Before releasing the application, ensure thorough testing across all targeted locales. Android Studio provides a tool to preview layouts for different languages via:
- Layout Editor: Offers an option to switch locales and verify UI adjustments.
- Run Emulation: Change device locale settings and run the application on virtual or physical devices.
Conclusion
The ability of Android to handle numerous languages and locales amplifies its role as a globally pervasive operating system. With a nuanced understanding of Android's multilingual framework, developers are equipped to design applications that are culturally and linguistically inclusive, expanding their reach and enhancing user satisfaction.
As Android evolves, so will the expanse of its language and locale support, ushering in new opportunities for comprehensive internationalization.

