如何将区域设置ID转换为Java中的显示语言和国家/地区。例如,我有一个这种格式的语言环境列表:“da-DK”,我希望它们都显示为“丹麦语(丹麦语)”。
到目前为止,这是我的代码:
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.getDisplayName();
languagesList.add(new Languages(locDisplayResults));
recyclerAdapter.notifyDataSetChanged();
}
}
不幸的是,getDisplayName()仅适用于语言只有两个字母的情况,例如“ar”代表“阿拉伯语”。它使“ar-EG”保持不变。
答案 0 :(得分:1)
不使用new Locale(sL)
,而是使用Locale.forLanguageTag(sL)
。