什么是Java 9中的通用语言环境数据存储库(CLDR)?

Java 9的国际化增强功能包括默认情况下启用CLDR语言环境数据。

使用以下关键字标识的语言环境数据有四个不同的来源:

  • CLDR:Unicode通用语言环境数据存储库(CLDR)项目提供的语言环境数据。

  • HOST:当前用户对基础操作系统设置的自定义。根据操作系统的不同,可以支持日期,时间,数字和货币等格式。

  • SPI:在已安装的SPI提供程序中实现的对语言环境敏感的服务。

  • COMPAT(JRE):与Java 9之前的发行版兼容的语言环境数据。JRE仍可以用作值,但已弃用,以后会删除。

在Java 8和早期版本中,JRE是默认语言环境数据。Java 9默认将CLDR设置为最高优先级。我们使用java.locale.providers系统属性按首选顺序选择语言环境数据源。如果提供程序未能请求区域设置数据,则可以处理下一个提供程序。

java.locale.providers=COMPAT,CLDR,HOST,SPI

如果我们不设置该属性,则默认行为是:

java.locale.providers=CLDR,COMPAT,SPI

为了与Java 8兼容,请将COMPAT置于CLDR之前。

java.locale.providers=COMPAT,CLDR