5

如何从中country找到Locale-language

例如; 如果我将本地设置为languageen那么我希望得到US国家。

Locale locale = new Locale("en");
locale.getCountry() // returns null

问题是我只有国家代码,例如:fr,de,en现在我只想从这些代码中找到正确的国家语言环境。

4

3 回答 3

4

en是英语。en_US是美国英语。en_GB是,我认为,英国英语。大概使用 en_US 会做你想做的事。此处列出了所有受支持的语言环境:http ://www.oracle.com/technetwork/java/javase/locales-137662.html

您无法从“en”获取国家/地区,因为如您所见,多个国家/地区可能共享一种语言。你会选择哪一个?

于 2013-09-05T11:03:24.927 回答
1

一种选择是获取所有可用的语言环境:

Locale[] locales = Locale.getAvailableLocales();

然后将它们插入 aHashMap并定义languageas key。现在可以通过语言键搜索国家。

于 2013-09-05T11:39:17.077 回答
1

Apache Commons Lang有一个方法: LocaleUtils#countriesByLanguage(String)

您可以在每个返回的 s 上调用 getCountry()Locale以获取国家/地区代码。正如 Eric 已经指出的那样,对于许多语言来说,有几个国家。

于 2019-08-03T20:05:29.807 回答