获取Java中完整语言名称的列表

Gle*_*iko 3 java

如何获得语言全名列表?我检查了Localeclass并找到getISOLanguages(),但是当我需要完整的语言名称(例如“ English”)时,它返回2个字母的语言代码(例如“ en”)。

有什么更好的方法呢?

Gle*_*iko 5

最后,由于托马斯的评论,我以这种方式实现了它:

SortedSet<String> allLanguages = new TreeSet<String>();
String[] languages = Locale.getISOLanguages();
for (int i = 0; i < languages.length; i++){
    Locale loc = new Locale(languages[i]);
    allLanguages.add(loc.getDisplayLanguage());
}
Run Code Online (Sandbox Code Playgroud)

UPD。还有更现代的风格:

Set<String> languages = Arrays.stream(Locale.getISOLanguages())
            .map(Locale::new)
            .map(Locale::getDisplayLanguage)
            .collect(Collectors.toCollection(TreeSet::new));
Run Code Online (Sandbox Code Playgroud)