跳到主要内容

JEP 127:改进区域设置数据打包并采用 Unicode CLDR 数据

概括

创建一个工具将 LDML(区域设置数据标记语言)文件转换为运行时库可直接使用的格式,定义一种将结果打包到模块中的方法,然后使用它们合并 Unicode 发布的事实上的标准区域设置数据Consortium 的 CLDR 项目并入 JDK。

描述

  • 开发一个工具,从 LDML 格式为运行时生成区域设置数据文件,假设由于性能限制而在运行时解释 LDML 不可行。输出文件格式应是不透明的,以便将来进行扩展。

  • 开发一种以模块形式打包和安装语言环境数据的机制。

  • 支持底层平台的一些语言环境元素。例如,如果用户对日期格式的首选项指定日本日历,则 Java 运行时应使用该信息选择日本日历作为默认日历。 (请参阅 6337471:桌面/系统区域设置首选项支持)

  • 提供一种机制,通过某种 UI、在应用程序中(通过 SPI)或在操作系统级别(例如,通过 Windows 中的 Java 控制面板)管理用户的区域设置数据首选项。

测试

DateFormat需要验证已安装的区域设置数据是否通过区域设置敏感的 API(例如/NumberFormat等)正确返回。

风险和假设

由于 JDK 的排序规则 API 尚不支持 LDML 所基于的 Unicode 排序规则算法,因此将不支持 LDML 文件中包含的排序规则数据。

影响

  • 兼容性:CLDR 中的某些区域设置数据与 JDK 自己的区域设置数据不兼容。应该有某种机制让用户指定他们的偏好。

  • 本地化:致力于本地化的开发人员将能够以既定方式从 CLDR 添加/修改区域设置数据。