Intl.DisplayNames v2 S4
中文标题:Intl.DisplayNames 第二版
提案概览
- 阶段: Stage 4
- 状态: 已完成
- ECMAScript 版本: ES2022
- 同步时间: 2026年8月26日
- English original · 官方仓库
提案速览
该提案扩展了 Intl.DisplayNames,以支持更多类型,包括日历名称和日期时间字段名称,并添加了 languageDisplay 选项来控制语言名称以方言还是标准形式显示。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
提案:Intl.DisplayNames 第二版
阶段
阶段 3
- 在 TC39 2020-09 会议中推进到阶段 1。
- 在 TC39 2021-01-25~28 会议中推进到阶段 2。
- 在 TC39 2021年4月会议中提议阶段 3,但由于关于 dialectHandling 的问题和用户对 'unit' 支持的请求未达成共识。
- 在 TC39 2021-05-25~26 会议中推进到阶段 3。
- 在 TC39 2021-07-13~16 会议期间阶段 3的更新
- 用于 TC39 2021-12 会议推进到阶段 4 的幻灯片
倡导者
- Frank Tang @FrankYFTang
审阅者
- Shane Carr @sffc
- Ujjwal Sharma @ryzokuken
编辑
- Richard Gibson @gibson042
动机
Intl.DisplayNames 项目的主要动机是使开发人员能够在客户端上获取语言、地区或文字的显示名称翻译。语言、地区或文字的显示名称翻译需要在网络上传输大量数据,而这些数据在大多数浏览器中已经可用。这些显示名称翻译也给开发人员带来了很高的数据大小代价。这个 API 将使 Web 开发人员能够缩小他们的 HTML 和/或 ECMAScript 代码的大小,而不需要包含人类可读形式的显示名称,从而减少下载大小以降低延迟。此外,这个 API 将降低 Web 开发人员的本地化成本。我们的目标是通过 Intl API 公开这些数据,以便用于例如语言、地区和文字选择器等。
在 Intl.DisplayNames API 中,我们已经覆盖了语言、地区、文字和货币。本提案增强了 Intl.DisplayNames API,并覆盖更多内容。
还请参阅 Intl.DisplayNames 仓库中 Intl.DisplayNames 第一版的先前工作。
范围增强
- 日期时间字段
- 日历名称
- 语言显示:标准 vs 方言
范围变更
- 在 2021-01 ECMA402 会议期间,我们决定不包括星期、月份、时区和编号系统。
- 在 2021-03-11 ECMA402 会议期间,我们决定重新加入 dateTimeField。
- 在 2021-04-08 ECMA402 会议期间,我们同意 dialectHandling 的名称,并继续进行 TC39 阶段 3。Shane 和 Ujjwal 同意担任阶段 3 审阅者。
- 在 2021-05-06 ECMA402 会议期间,我们同意放弃“unit”支持,并将 dialectHandling 重命名为 languageDisplay。
示例
日历名称
日期时间字段名称
语言显示
阶段 1 期间讨论的范围
阶段 2 期间讨论的范围
- 2021-03-11:重新加入 dateTimeField
- 2021-05-06:移除 unit
阶段 3 的进入标准
- 所有阶段 2 标准
- 完整的规范文本
- 指定的审阅者已签署当前规范文本
- 所有 ECMAScript 编辑已签署当前规范文本
阶段 2 的进入标准
- 所有阶段 1 标准
- 初始规范文本
阶段 1 的进入标准
- 确定推进该增量的“倡导者”:完成 - @FrankYFTang
- 概述问题或需求以及解决方案总体形态的散文
- 说明性的使用示例
- 高级 API
- 讨论关键算法、抽象和语义
- 识别潜在的“跨领域”关注点和实现挑战/复杂性
- 一个公开可用的提案仓库,捕获上述要求:完成 https://github.com/tc39/intl-displaynames-v2
实验性
- V8 原型
- 实现新类型“calendar”、“dateTimeField”和“unit”,并添加 dialectHandling 选项
- Mozilla 跟踪 Bug