Skip to content

JEP 127: Improve Locale Data Packaging and Adopt Unicode CLDR Data | 改进区域设置数据打包和采用 Unicode CLDR 数据

摘要

创建一个工具,用于将 LDML(区域设置数据标记语言)文件转换为运行时库可直接使用的格式,定义一种将结果打包成模块的方法,然后利用这些将 Unicode 联盟 CLDR 项目发布的实际标准区域设置数据集成到 JDK 中。

描述

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

  • 开发一种机制,以模块的形式打包和安装区域设置数据。

  • 支持底层平台的某些区域设置元素。例如,如果用户偏好的日期格式指定了日本历法,则 Java 运行时应该使用此信息来选择日本历法作为默认历法。(参见 6337471:桌面 / 系统区域设置偏好支持)

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

测试

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

风险和假设

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

影响

  • 兼容性:CLDR 中的部分区域设置数据将与 JDK 自身的区域设置数据不兼容。应提供一种机制让用户指定其偏好。

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