我想转换语言环境标记(请参阅图片)以显示名称。例如,而不是en-us,我想显示英语(美国)。到目前为止,我已经设法显示名称和语言标签的混合物作为在图片:java语言环境标记语言环境显示名称
device system languages screen picture
我已经尝试了许多事情,如使用forLanguageTag,getDisplayLanguage + getDisplayCountry但没有任何工程。
这是我的代码片段:
public void getAvailableLocales() {
systemLanguages = Resources.getSystem().getAssets().getLocales();
Arrays.sort(systemLanguages);
for (int i = 0; i < systemLanguages.length; i++) {
String sL = systemLanguages[i];
Locale loc = new Locale(sL);
String locDisplayResults = loc.getDisplayLanguage();
languagesList.add(new Languages(locDisplayResults));
recyclerAdapter.notifyDataSetChanged();
}
}
的想法是显示给定设备上可用的所有语言。 任何帮助将感激地收到。
编辑:测试显示Resources.getSystem()。getAssets()。getLocales()确实为提供了可用于每个给定设备的语言。但是,getDisplayLanguage仅适用于两个字母标记,而不适用于两个字母 - 短划线 - 两个字母(例如ar-eg)。还有什么想法?
所以答案为:。除了使用新的语言环境(SL),请使用Locale.forLanguageTag(SL)(http://stackoverflow.com/questions/40427876/convert- da-dk-to-danish-denmark-etc)它完美运作。 –