有人知道检索Java中的国籍列表的方法吗?几点精确:我不需要国家名单,只需要一份国籍清单。我不需要语言列表,但需要一个国籍列表。我试图扭曲Locale API,没有结果。 在锦上添花,我需要用特定语言展示国籍。例如,在巴西,我需要用英语显示'brazilian',用法语显示'brésilien',用西班牙语显示'brasilero'。
有人有想法吗?
答案 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。
您可能希望在枚举类中添加更多信息,例如县和国籍名称的密钥。
要将它们全部拉到一起,您将获得用户的区域并设置该区域的语言文件。然后,对于每个列出的国籍,您将从语言文件中获取它的名称。