如何从中country
找到Locale-language
?
例如; 如果我将本地设置为language
,en
那么我希望得到US
国家。
Locale locale = new Locale("en");
locale.getCountry() // returns null
问题是我只有国家代码,例如:fr,de,en
现在我只想从这些代码中找到正确的国家语言环境。
如何从中country
找到Locale-language
?
例如; 如果我将本地设置为language
,en
那么我希望得到US
国家。
Locale locale = new Locale("en");
locale.getCountry() // returns null
问题是我只有国家代码,例如:fr,de,en
现在我只想从这些代码中找到正确的国家语言环境。
en
是英语。en_US
是美国英语。en_GB
是,我认为,英国英语。大概使用 en_US 会做你想做的事。此处列出了所有受支持的语言环境:http ://www.oracle.com/technetwork/java/javase/locales-137662.html
您无法从“en”获取国家/地区,因为如您所见,多个国家/地区可能共享一种语言。你会选择哪一个?
一种选择是获取所有可用的语言环境:
Locale[] locales = Locale.getAvailableLocales();
然后将它们插入 aHashMap
并定义language
as key
。现在可以通过语言键搜索国家。
Apache Commons Lang有一个方法:
LocaleUtils#countriesByLanguage(String)
您可以在每个返回的 s 上调用 getCountry()Locale
以获取国家/地区代码。正如 Eric 已经指出的那样,对于许多语言来说,有几个国家。