JEP 252: Use CLDR Locale Data by Default | 默认使用 CLDR 区域设置数据
摘要
默认使用 Unicode Consortium 的 “通用区域数据存储库(CLDR)” 中的区域设置数据。
动机
Unicode Consortium 的通用区域数据存储库是许多平台上的事实标准区域设置数据。虽然 CLDR 区域设置数据已经从 JDK 8 开始与 JRE 捆绑在一起,但默认情况下未启用。要启用它,最终用户必须显式设置系统属性 java.locale.providers
,例如:
ini
java.locale.providers=JRE, CLDR
1
通过默认启用 CLDR 数据的使用,将为用户提供事实标准的区域设置数据,而无需采取任何进一步的操作。
描述
在默认隐式 LocaleProviderAdapter 首选项列表的前面插入 CLDR。
默认查找顺序将是 CLDR、COMPAT、SPI,其中 COMPAT 表示 JDK 9 中 JRE 的区域设置数据。如果某个特定提供程序无法提供所请求的区域设置数据,则搜索将继续按顺序查找下一个提供程序。对于格式化和翻译显示字符串(例如区域设置名称)的本地化模式,在某些区域设置中可能不同。为了使行为与 JDK 8 兼容,请将系统属性 java.locale.providers
设置为具有 COMPAT 在 CLDR 之前的值。
测试
对于 JDK 8 不支持的区域设置,日期、时间和数字格式化等区域敏感服务可能会有不同的行为。现有的测试和应用程序需要进行修改。
风险和假设
我们不能对来自 CLDR 的数据的有效性负责;我们假设它是 “好的数据”。