什么是通用语言环境数据存储库(CLDR)-JDK 9 [关闭]
Posted
技术标签:
【中文标题】什么是通用语言环境数据存储库(CLDR)-JDK 9 [关闭]【英文标题】:What is Common Locale Data Repository (CLDR) - JDK 9 [closed] 【发布时间】:2018-07-12 11:10:32 【问题描述】:我想了解 CLDR,因为它在 JDK-9 中得到了增强。
JDK 9 CLDR - 根据 JDK 文档
在 JDK 9 中,默认语言环境数据使用从 Unicode 派生的数据 联盟的通用区域设置数据存储库 (CLDR)。结果,用户 可能会发现区域敏感服务行为和/或 翻译。
谁能帮我理解这一点,让我知道它在 JDK8 Date API 中的影响。
【问题讨论】:
将“Unicode Consortium's Common Locale Data Repository (CLDR)”输入/复制到 Google 并点击第一个结果链接。 @Holger-- 不错的答案,实际上这就是我要找的。span> 我投了反对票,因为这个问题似乎没有得到很好的研究。 有关使用Unicode CLDR 影响的真实示例(请参阅Wikipedia),请参阅问题Java's MessageFormat Not Localizing Portuguese Months in Dates in Lowercase。 CLDR 定义了体现本地化问题的文化规范的规则,例如如何将月份的名称大写。 【参考方案1】:CLDR (Common Locale Data Repository) 是一组由the Unicode Consortium 收集的数据,许多图书馆使用它来提供与国际化相关的数据。
它包含的东西是这样的:
有关日期/时间在给定区域设置中的格式的信息。 有关在给定语言环境中如何进行文本排序(排序规则)的信息 有关数字在给定语言环境中的表示方式的信息 货币、单位和地理区域的名称 ...注意:“语言环境”基本上是“在给定地区使用的语言”。它比这更复杂一些,但这是一种很好的高级语言。例如,“en-US”代表美式英语,“de-DE”是在德国使用的德语。
JDK 历来为此维护自己的数据集。这在 Java 9 及更高版本中发生了变化,大多数 Java 实现现在默认使用 CLDR。见JEP 252: Use CLDR Locale Data by Default。
在处理过 JDK 数据和 CLDR 数据之后,我可以说,平均而言,CLDR 数据要好得多,维护得更积极,并且(可能最重要的是)它有一个指定的方式来提供改进或错误报告。
实际的区别在于,某些格式的行为可能与以前略有不同,在大多数情况下更正确,但可能以意想不到的方式出现。这在使用非英语语言时尤其适用(这种更改对英语语言环境的影响相当小)。
【讨论】:
好答案。 CLDR 的另一个优点是它拥有丰富的亚文化变体集合,这些变体缺乏旧的 Java 特定本地化规则。【参考方案2】:CLDR 封装了用于对全世界的内容进行排序和格式化的规则(例如日期和货币格式)。这是一个与 Unicode 本身密切相关的大数据集。
CLDR 旨在成为这些定义的正式、稳定的集合。
由于 CLDR 规则在某些情况下与 Java 8 及之前版本中内置的某些语言环境不同,因此它们提供了该警告。
【讨论】:
以上是关于什么是通用语言环境数据存储库(CLDR)-JDK 9 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章