【问题标题】:How to get list of nationalities in Java如何在Java中获取国籍列表
【发布时间】:2016-09-23 09:30:37
【问题描述】:

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

有人有想法吗?

【问题讨论】:

  • AFAIK 在 Java 中没有“国籍”之类的东西。
  • 我什至不希望编程语言拥有这种信息。但是,找到这种外部资源应该不会太难。

标签: java internationalization country


【解决方案1】:

据我所知,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

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

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

【讨论】:

  • 好的,感谢您的经验反馈,正确的 ResourceBundle 应该可以完成这项工作。乏味但可行。
  • 不要使用枚举。在这种情况下,它们很难使用。由于您必须翻译这些条目,因此最好使用资源包之类的东西。
猜你喜欢
  • 2016-02-05
  • 2016-10-19
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 2022-08-22
  • 2011-01-20
  • 2014-02-28
相关资源
最近更新 更多