如何获得语言全名列表?我检查了Localeclass并找到getISOLanguages(),但是当我需要完整的语言名称(例如“ English”)时,它返回2个字母的语言代码(例如“ en”)。
有什么更好的方法呢?
最后,由于托马斯的评论,我以这种方式实现了它:
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)