Default Behaviours for some Intl APIs ?
中文标题:某些 Intl API 的默认行为
- 阶段: 未分阶段
- 状态: 进行中
- ECMAScript 版本: —
- 同步时间: 2026年8月26日
- English original · 官方仓库
该提案旨在为缺乏稳定(zxx)行为的 Intl API(具体为 Intl.Collator、Intl.Segmenter 和 String.prototype.toLocale{Lower,Upper}Case)提供默认的、定义良好的、与区域设置无关的行为。它提议支持 'und' 区域设置作为根区域设置的参考,从而实现语言无关的操作,如根排序和默认大小写转换。
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
某些 Intl API 的默认行为
这是一个 TC39 提案,旨在为那些在稳定格式化提案中没有提出稳定(zxx)行为的 Intl API 提供默认的、定义良好的、与区域设置无关的行为。
阶段: 1
提案人: Eemeli Aro, Henri Sivonen
演示文稿:
- 阶段 1 (2026-05): 幻灯片
动机
对于没有提出稳定(zxx)行为的 Intl API,存在默认的、定义良好的、与区域设置无关的行为。
这些行为应当提供给用户。
来自 tc39/ecma402#549:
我希望能够使用
Intl.Collator指定"und"区域设置标签, 以访问所谓的“根”排序规则,并获得一种合理的与语言无关的排序顺序(或最接近的可用方案)。
另请参阅 proposal-stable-formatting#13 上的讨论。
提议的解决方案
对于接受本地化内容且未提出稳定行为的 Intl API(Intl.Collator、Intl.Segmenter 以及 String.prototype.toLocale{Lower,Upper}Case),
明确支持 und(“未确定”)作为根区域设置的参考,通过它提供一些默认的与区域设置无关的行为。
使用有效的区域设置标识符而非例如 root 或已知的符号是首选,
因为至少排序应该明确支持 und-u-co-emoji 作为选择表情符号排序的一种方式。
当某个不支持 zxx 但支持 und 的 API 请求 zxx 区域设置时,使用 und 作为其后备区域设置。
Intl.Collator
当使用 und 区域设置时,使用 CLDR 根排序规则,
其中统一表意文字按区块和码点排序,或按部首-笔画排序。
Intl.Segmenter
当请求 und 区域设置以及默认的 'grapheme' 粒度时,
使用带有扩展字素簇的 UAX #29 分段,
不进行定制。
非字素分割器('word' 和 'sentence')应符合 UAX #29 和 UAX #14,
可能带有定制,但不得启用实现未对所有区域设置启用的定制。
String.prototype.toLocaleLowerCase 和 String.prototype.toLocaleUpperCase
当请求 und 区域设置时,将使用 Unicode 默认大小写转换算法将字符串转换为适当的大小写,
即我们应用与 String.prototype.toLowerCase 和 String.prototype.toUpperCase 已使用的相同规则。