我需要根据国家/地区代码查找语言。
对于国家代码“US”,应返回“en”或“CN”应返回“zh”。我经历了java.util.Locale
,它适用于语言代码而不是国家代码。还,Locale.getAvailableLocales
在这里没有帮助,因为它返回同一国家/地区代码的多种语言。还有什么可以用的吗。我想避免初始化文件中所有有用的区域设置然后使用它。 (因为每当我们必须使用新的语言环境时,它可能需要定期更新)
提前致谢
查看了其他 stackoverflow 问题,找不到答案,因此在这里发布了一个新问题。
你可以建立一个HashMap
将国家/地区代码映射到语言集,如下所示:
Locale[] locales = Locale.getAvailableLocales();
Map<String,HashSet<String>> countryLanguageMap = new HashMap<>();
for (Locale locale : locales) {
String country = locale.getCountry(), language = locale.getLanguage();
if(!country.isEmpty() && !language.isEmpty()) {
if(countryLanguageMap.containsKey(country))
countryLanguageMap.get(country).add(language);
else
countryLanguageMap.put(country, new HashSet<String>(Arrays.asList(language)));
}
}
然后,获取国家代码的语言如下:
countryLanguageMap.get("US"); // [en, es]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)