如何获得语言全名列表?我检查了Locale
class并找到getISOLanguages()
,但是当我需要完整的语言名称(例如“ English”)时,它返回2个字母的语言代码(例如“ en”)。
有什么更好的方法呢?
最后,由于托马斯的评论,我以这种方式实现了它:
SortedSetallLanguages = new TreeSet (); String[] languages = Locale.getISOLanguages(); for (int i = 0; i < languages.length; i++){ Locale loc = new Locale(languages[i]); allLanguages.add(loc.getDisplayLanguage()); }
UPD。还有更现代的风格:
Setlanguages = Arrays.stream(Locale.getISOLanguages()) .map(Locale::new) .map(Locale::getDisplayLanguage) .collect(Collectors.toCollection(TreeSet::new));