如何获取语言全名列表?我检查了Locale
类并找到了getISOLanguages()
,但当我需要语言的全名时(例如,“英语”),它会返回2个字母的语言代码(例如,'en')。
更好的方法是什么?
答案 0 :(得分:4)
最后,感谢Thomas的评论,我以这样的方式实现了它:
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());
}
UPD。还有更现代的风格:
Set<String> languages = Arrays.stream(Locale.getISOLanguages())
.map(Locale::new)
.map(Locale::getDisplayLanguage)
.collect(Collectors.toCollection(TreeSet::new));