有人知道用Java检索国籍列表的方法吗?精确度不高:我不需要国家列表,但需要国籍列表。我不需要语言列表,但需要国籍列表。我试图扭曲Locale API,但没有结果。
锦上添花,我需要用特定的语言显示国籍,例如在巴西,我需要用英语显示``巴西人'',用法语显示``brésilien'',以及西班牙语。

有人有主意吗?

最佳答案

据我所知,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枚举,请参见here

您可能需要在枚举类中添加更多信息,例如县和国籍名称的键是什么。

要将所有内容组合在一起,您需要获取用户所在的区域并为该区域设置语言文件。然后,对于每个列出的国籍,您可以从语言文件中获取其名称。

09-28 02:17