如何获得Java中的国籍列表

时间:2016-09-23 09:30:38

标签: java internationalization country

有人知道检索Java中的国籍列表的方法吗?几点精确:我不需要国家名单,只需要一份国籍清单。我不需要语言列表,但需要一个国籍列表。我试图扭曲Locale API,没有结果。 在锦上添花,我需要用特定语言展示国籍。例如,在巴西,我需要用英语显示'brazilian',用法语显示'brésilien',用西班牙语显示'brasilero'。

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

就我所知,Java并不包含国籍列表。 Locale类只提供了javadoc中所述的区域列表。这对你的情况很有帮助,但不是很多。

从我收集的内容来看,您必须创建自己的国籍列表,以及每种语言的国籍名称 - 并不太难。

要执行语言部分,internationalization会很有帮助。它允许您获取用户区域并根据用户所在的位置设置语言。它还允许格式化数字,文本和日期。

专门查看this stack overflow answer如何获得不同语言的国籍名称。基本上,您为每种语言创建不同的文件,文件内部是键值限制。所以英文文件看起来有点像这样:

nationality.english = English
nationality.german = German
nationality.russian = Russian

和德语文件类似:

nationality.english = Englisch
nationality.german = Deutsche
nationality.russian = Russisch

然后根据您希望显示的国籍/地区的语言,您只需使用密钥(例如nationality.russian)从语言文件中获取文字。

要做国籍部分,您可以创建包含所有国籍的枚举。例如:

public enum Nationalities{

    ENGLISH,
    GERMAN;
    //And so on
}

如果您不熟悉java enums,请参阅here

您可能希望在枚举类中添加更多信息,例如县和国籍名称的密钥。

要将它们全部拉到一起,您将获得用户的区域并设置该区域的语言文件。然后,对于每个列出的国籍,您将从语言文件中获取它的名称。