【问题标题】:What is Common Locale Data Repository (CLDR) - JDK 9 [closed]什么是通用语言环境数据存储库(CLDR)-JDK 9 [关闭]
【发布时间】: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 定义了体现本地化问题的文化规范的规则,例如如何将月份的名称大写。

标签: java java-8 localization java-9 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 及之前版本中内置的某些语言环境不同,因此它们提供了该警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 2010-12-30
    • 2011-09-22
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多