重症监护病房69

ICU是软件国际化首选库,由使用 广泛的公司和组织.

发布概述

ICU 69更新至CLDR第39页带有许多添加和更正的区域设置数据。ICU 69还包括对测量单位格式和数字格式的总体显著改进,以及许多其他错误修复和增强。

有关包括迁移问题在内的更多详细信息,请参阅下文。

请使用 icu支持邮件列表和/或查找/提交错误报告.

版本号

  1. 初始版本的库版本号为69.1。

    1. 如果有维护版本,将是69.2、69.3等(在ICU 69开发期间,库版本号为69.0.x)

    2. 注意:可能在 维护-69预打包下载文件中未包含的分支。

常见更改

  • CLDR第39页

    • 对于挪威人来说,“no”又回到了规范代码,“nb”被视为等效代码。这使挪威语的处理与其他宏语言代码保持一致。

      • 没有新的语言环境,但有许多改进和错误修复;请参阅CLDR发布页面

  • 数字和测量单位格式:

  • 时区数据(tzdata)版本2021a(2021-1月)

ICU4C特定变化

ICU4J特定变化

迁移问题

ICU新增69

    1. CLDR 39改变了挪威语的语言代码关系。以前,“nb”是主语言环境,“no”是它的别名。经过这一更改,“no。这将在区域设置规范化和返回可用区域设置列表的API中可见。假设只有语言子标记的区域设置除了根之外没有父级的代码可能需要更改。

    2. 对于LocaleMatcher:简体中文(zh=zh-Hans=zh-CN)与繁体中文(z-Hant=zh-TW)不再匹配。这将在产品行为中可见。

    3. 另请参见其他 CLDR 39迁移问题.

最近的其他迁移问题

    1. ICU4C公共头文件不再定义和使用宏FALSE和TRUE。(重症监护室-21267)

      1. 这避免了这些宏定义和使用这些名称定义枚举常量的应用程序代码之间的冲突。

      2. 不再需要ICU宏:C++11和C99定义假值和真值。

      3. ICU API目前继续使用ICU特定类型的UBool;可以将标准值分配给UBool变量和参数,而不会发出警告。

      4. 如有必要,请更改呼叫站点以使用标准false和true值。对于C(与C++相反),这些也是在<stdbool.h>中定义的宏。

      5. 如果需要时间迁移代码,例如在包含任何ICU头文件之前的应用程序代码中,或通过修补,可以过渡定义U_define_FALSE_AND_TRUE=1unicode/u机器。小时和变化#定义U_define_FALSE_AND_TRUE 0改为赋值1。

  1. 根据平台的不同,从NULL构造StringPiece可能不明确。如果出现问题,请将调用站点从使用NULL调整为使用nullptr。(重症监护病房-20984 采购订单号1044)

    1. 这与中采用char16_t的问题类似 重症监护病房59.

  2. 如果重建ICU地区数据根据(可能是修补过的)CLDR数据,请注意,现在ICU repo中有一个新的CLDR-to-ICU转换工具,取代了CLDR repo中的旧工具。(重症监护病房-20693)请参见icu4c/source/data/cldr-icu-readme.txt

ICU4C平台支持

  • 全部:构建ICU库需要对C++11的编译器支持。

    • 某些平台(如IBM AIX、IBM z和Solaris)可能无法再构建ICU,除非有改进的编译器可用。

  • ICU 69不能用C++20编译器构建。此版本的标准进行了不兼容的更改,需要更改ICU API。(ICU-20973型)

  • macOS:XCode 8.3(LLVM clang 8.1.0)已经过测试。

  • Solaris公司

  • 窗户:

    • 支持的最低版本是Windows 7。不再支持Windows XP和Windows Vista。

    • 生成Visual Studio UWP项目需要 Visual Studio 2017(或VS2019),带有Windows 10 SDK安装。

      • 当使用“@compt=host”时,在低于Windows 10版本1703的版本上,6个区域设置存在日期和数字格式问题(#13119).

    • 由于Windows没有ckb语言环境,LCID转换API不会往返库尔德语(ku)和中央库尔德语(ckb)(#2018年1月).

    • 预构建的二进制文件现在使用Visual Studio 2019[MSVC2019],而不是Visual Studio 2017[MSVC2017](重症监护室-21108).

    • 使用ICC编译器的Windows:

      • 源文件编码。ICC编译器无法识别/utf-8型选项。众所周知,工作区取得了成功。(#13251)

    • IBM AIX:

      • 待定

  • IBM z公司

      • 待定

ICU4J平台支持

ICU4J适用于Java 7和Android API 21级。

下载

git/GitHub标签页上提供了源代码和二进制下载:https://github.com/unicode-org/icu/releases/tag/release-69-1

请参阅源代码访问页面了解如何直接从GitHub下载ICU文件树。

从CLDR标记生成ICU区域设置数据https://github.com/unicode-org/cldr/releases/tag/release-39-beta2(与CLDR 39版本中的数据相同)。

Maven依赖项:

<依赖性>

<groupId>com.ibm.icu</groupId>

<artifactId>icu4j</artifactId>

<版本>69.1

</依赖性>