Locale常量是如何选择的



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

然而,值的选择在我看来是相当随意的。

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

国家/地区为:法国、德国、意大利、日本、韩国、中国、中华人民共和国、台湾、英国、美国、加拿大和加拿大法语(区域设置为fr_CA)。

有没有人知道(甚至猜测)这些语言/国家是如何选择的?

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

编辑:

重读问题,OP已经知道这个了:-)

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

因为预置的语言环境太少了,你应该避免这些静态对象。

我猜这只是最常用的区域设置,方便开发人员使用。

来自Javadoc:

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

我的猜测是他们使用他们的第1层语言——JRE本地化的语言。至于国家,我认为他们只是用语言来匹配。嗯,我们可能永远不会知道,除非有人说出来。

最新更新