跳到主要内容

JEP 252:默认使用 CLDR 区域设置数据

QWen Max 中英对照

概述

默认情况下,使用来自 Unicode 联盟的 通用区域数据存储库 (CLDR) 的区域数据。

动机

Unicode 联盟的通用区域设置数据存储库(Common Locale Data Repository,CLDR)是许多平台上区域设置数据的事实标准。尽管从 JDK 8 开始,CLDR 区域数据已与 JRE 一起打包,但它默认并未启用。要启用它,最终用户必须显式设置系统属性 java.locale.providers,例如:

java.locale.providers=JRE,CLDR

通过默认启用 CLDR 数据,事实上的标准区域设置数据将提供给用户,而无需他们采取任何进一步的操作。

描述

将 CLDR 插入到默认隐式 LocaleProviderAdapter 偏好列表的前面。

默认的查找顺序为 CLDR、COMPAT、SPI,其中 COMPAT 指代 JDK 9 中 JRE 的区域设置数据。如果某个特定的提供者无法提供所请求的区域设置数据,搜索将按顺序继续到下一个提供者。用于格式化和转换显示字符串(如区域名称)的本地化模式在某些区域设置中可能会有所不同。为了启用与 JDK 8 兼容的行为,请将系统属性 java.locale.providers 设置为 COMPAT 优先于 CLDR 的值。

测试

对于 JDK 8 中不支持的区域设置,日期、时间和数字格式化等依赖区域设置的服务可能会有不同的行为。现有的测试和应用程序需要进行修改。

风险与假设

我们无法对来自 CLDR 的数据的有效性负责;我们假定它是“优质数据”。