如何选择Locale常量?

Joa*_*uer 11 java locale

Java类java.util.Locale具有一组public static final用于语言/国家/ 地区的字段,用于直接引用特定区域设置.其他语言环境可以通过适当的构造函数轻松使用.

但是,值的选择对我来说似乎相当武断.

语言是(按照它们出现在源中的顺序):英语,法语,德语,意大利语,日语,韩语,中文,简体中文,繁体中文

这些国家是:法国,德国,意大利,日本,韩国,中国,中国,台湾,英国,美国,坎达和加拿大法国(适用于当地的fr_CA).

有没有人有想法(甚至猜测)那些语言/国家如何选择?

rsp*_*rsp 11

这些代码由国家代码的ISO标准3166和语言代码的639定义.另请参阅W3C国际化活动页面.

编辑:

重新阅读问题,OP已经知道了这一点:-)

根据Sun文章国际化:了解Java平台中的区域设置,这些值被选为示例,它甚至告诉我们:

因为存在这么少的预制区域设置,所以您应该完全避免使用这些静态对象.


Tho*_*mas 5

我猜这只是最常用的区域设置,为开发人员提供了便利。

来自 Javadoc:

Locale 类提供了许多方便的常量,您可以使用它们为常用区域设置创建 Locale 对象。

  • 我相信OP已经知道这一点。这也不完全是OP所要求的。OP 询问为什么特别将这个语言环境子集用作常量。在什么条件下区域设置被定义为常量?例如,为什么它不包含世界第二大母语“西班牙语”? (4认同)
  • @BalusC我不确定为什么西班牙语不在那里,但可能有一个历史原因,大多数软件都是用上述语言编写的,或者西班牙国家在软件开发中没有发挥那么大的作用。这可能不再正确,但这些常量可以追溯到 Java 1.1(即 1997 年),并且到那时可能已经正确。 (2认同)
  • 我个人的猜测是,这组常量是 1997 年 Sun 客户地理分布的一个小视图;-) (2认同)