I\'d like to know what to name my folder for different languages. Where can I find the supported list of languages on Android?
First we need to plan how the application will render differently in different locals. Here it shows example, where the text string and images have to go.
de-rDE German / Germany res/values-de/ res/drawable-de-rDE/
fr-rFR French / France res/values-fr/ res/drawable-fr-rFR/
fr-rCA French / Canada res/values-fr/ res/drawable-fr-rCA/
en-rCA English / Canada (res/values/) res/drawable-en-rCA/
ja-rJP Japanese / Japan res/values-ja/ res/drawable-ja-rJP/
en-rUS English / United States (res/values/) res/drawable-en-rUS/
For more info you can see the page Localization
I think the best way is to run a sample code to find the supported locales. I've made a code snippet that does it:
final Locale[] availableLocales=Locale.getAvailableLocales();
for(final Locale locale : availableLocales)
Log.d("Applog",":"+locale.getDisplayName()+":"+locale.getLanguage()+":"
+locale.getCountry()+":values-"+locale.toString().replace("_","-r"));
the columns are : displayName (how it looks to the user), the locale, the variant, and the folder that the developer is supposed to put the strings into.
Here's a table I've made out of the 5.0.1 emulator: https://docs.google.com/spreadsheets/d/1Hx1CTPT82qFSbzuWiU1nyGROCNM6HKssKCPhxinvdww/
Weird thing is that for some cases, I got "#" which is something I've never seen before. It's probably quite new, and the rule I've chosen is probably incorrect for those cases (though it still compiles fine when I put such folders and files), but for the rest it should be fine.
If anyone knows about what the "#" is, and how to handle it, please let me know.
If you're using Android Studio you can:
You will see a list of all Languages and if you choose them you will see Specific Regions for each. You can also type in the list to filter languages.
Here:
public static final Locale CANADA Locale constant for en_CA.
public static final Locale CANADA_FRENCH Locale constant for fr_CA.
public static final Locale CHINA Locale constant for zh_CN.
public static final Locale CHINESE Locale constant for zh.
public static final Locale ENGLISH Locale constant for en.
public static final Locale FRANCE Locale constant for fr_FR.
public static final Locale FRENCH Locale constant for fr.
public static final Locale GERMAN Locale constant for de.
public static final Locale GERMANY Locale constant for de_DE.
public static final Locale ITALIAN Locale constant for it.
public static final Locale ITALY Locale constant for it_IT.
public static final Locale JAPAN Locale constant for ja_JP.
public static final Locale JAPANESE Locale constant for ja.
public static final Locale KOREA Locale constant for ko_KR.
public static final Locale KOREAN Locale constant for ko.
public static final Locale PRC Locale constant for zh_CN.
public static final Locale ROOT Locale constant for the root locale.
public static final Locale SIMPLIFIED_CHINESE Locale constant for zh_CN.
public static final Locale TAIWAN Locale constant for zh_TW.
public static final Locale TRADITIONAL_CHINESE Locale constant for zh_TW.
public static final Locale UK Locale constant for en_GB.
public static final Locale US Locale constant for en_US.
Just FYI, if you are unable to set any locale, the problem might be below attribute in your app level gradle file:
resConfigs "en", "hi" //to specify allowed locales for your app
So, if you want to support any locale other than English and Hindi, specify your locale here or just remove above line. By default your app will support all the locales.
Thanks :)
Update for 4.0
Android 4.0.3 Platform
Arabic, Egypt (ar_EG)
Arabic, Israel (ar_IL)
Bulgarian, Bulgaria (bg_BG)
Catalan, Spain (ca_ES)
Chinese, PRC (zh_CN)
Chinese, Taiwan (zh_TW)
Croatian, Croatia (hr_HR)
Czech, Czech Republic (cs_CZ)
Danish, Denmark(da_DK)
Dutch, Belgium (nl_BE)
Dutch, Netherlands (nl_NL)
English, Australia (en_AU)
English, Britain (en_GB)
English, Canada (en_CA)
English, India (en_IN)
English, Ireland (en_IE)
English, New Zealand (en_NZ)
English, Singapore(en_SG)
English, South Africa (en_ZA)
English, US (en_US)
Finnish, Finland (fi_FI)
French, Belgium (fr_BE)
French, Canada (fr_CA)
French, France (fr_FR)
French, Switzerland (fr_CH)
German, Austria (de_AT)
German, Germany (de_DE)
German, Liechtenstein (de_LI)
German, Switzerland (de_CH)
Greek, Greece (el_GR)
Hebrew, Israel (he_IL)
Hindi, India (hi_IN)
Hungarian, Hungary (hu_HU)
Indonesian, Indonesia (id_ID)
Italian, Italy (it_IT)
Italian, Switzerland (it_CH)
Japanese (ja_JP)
Korean (ko_KR)
Latvian, Latvia (lv_LV)
Lithuanian, Lithuania (lt_LT)
Norwegian bokmål, Norway (nb_NO)
Polish (pl_PL)
Portuguese, Brazil (pt_BR)
Portuguese, Portugal (pt_PT)
Romanian, Romania (ro_RO)
Russian (ru_RU)
Serbian (sr_RS)
Slovak, Slovakia (sk_SK)
Slovenian, Slovenia (sl_SI)
Spanish (es_ES)
Spanish, US (es_US)
Swedish, Sweden (sv_SE)
Tagalog, Philippines (tl_PH)
Thai, Thailand (th_TH)
Turkish, Turkey (tr_TR)
Ukrainian, Ukraine (uk_UA)
Vietnamese, Vietnam (vi_VN)
SOURCE: http://us.dinodirect.com/Forum/Latest-Posts-5/Android-Versions-and-their-Locales-1-86587/