Good question Shiva.
Until now, many have discussed the same, ending without an answer.
google group discussion here
Neither Locale.getAvailableLocales() nor Resources.getSystem().getAssets().getLocales() gives you the correct set of locales, on which you can depend on the application language support.
The reason is
Both of them give you a list of all the locales supported by this OS. There may be more than 100 languages supported by the OS, but the device manufacturer cannot place all these language fonts (ttf files) in / system / fonts / (or any system font) just to save ROM memory. What they do, since they make specific regions of the region, they only put the fonts (locales) that are associated with this percussion region. It is for this reason that you will not find Indian regional languages in America.
The best way to solve this is to include all the ttf files in your application assets for any languages you want to support, just as we support different language strings.
But take care of font licensing and all.
Hope this helps.
Narasimha
source share