java locale标记到locale displayname

时间:2016-11-03 17:11:42

标签: java android locale

我正在尝试将区域设置标记(请参见图片)转换为显示名称。例如,我想要显示英语(美国)而不是en-us。到目前为止,我已经设法得到显示名称和语言标签的混合,如图所示:

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)。还有更多想法吗?

1 个答案:

答案 0 :(得分:0)

尝试

std::vector<int>