Intl Locale Info S4
中文标题:Intl 区域设置信息
提案概览
- 阶段: Stage 4
- 状态: 已完成
- ECMAScript 版本: ES2026
- 同步时间: 2026年8月26日
- English original · 官方仓库
提案速览
该提案为 Intl.Locale 添加了方法,以公开区域设置特定信息,包括周数据(第一天、周末)、文本方向以及日历、排序规则、小时周期、编号系统和时区的默认值。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
Intl Locale Info API
本提案已完全纳入 ECMA-402 第 13 版,2026 年 6 月“ECMAScript® 2026 国际化 API 规范”
草案规范
https://tc39.github.io/proposal-intl-locale-info
阶段
阶段 4
- 在 TC39 2020-09 会议中推进至 阶段 1。
- 在 TC39 2021-01-25~28 会议中推进至 阶段 2。
- 2021 年 1 月 TC39 会议批准进入阶段 2,条件是放弃
unitInfo
- 2021 年 1 月 TC39 会议批准进入阶段 2,条件是放弃
- 2021-04-08 ECMA402 会议,我们同意向 TC39 提议进入阶段 3。
- 在 TC39 2021-04 会议中 推进至阶段 3。
- 在 TC39 2021-07 会议中 阶段 3 期间更新。
- 在 TC39 2021-10 会议中 阶段 3 期间更新。
- 在 TC39 2021-12 会议中 阶段 3 期间更新。
- 在 TC39 2022-11 会议中 阶段 3 期间更新。
- 在 TC39 2023-01 会议 中 阶段 3 期间更新。
- 在 TC39 2023-07 会议中 阶段 3 期间更新。
- 在 TC39 2023-09 会议中 阶段 3 期间更新。
- 在 TC39 2023-11 会议中 阶段 3 期间更新。
- 在 TC39 2024-07 会议中 阶段 3 期间更新。
- 在 TC39 2025-02 会议中 阶段 3 期间更新。
- 在 TC 2025-11 会议中 推进至阶段 4。
阶段 1(提案)进入标准
- 已确定将推进该新增功能的“ champions”:Frank Yung-Fong Tang
- 概述问题或需求以及解决方案大致形态的说明性文字:见本文档
- 说明性使用示例:见本文档
- 高层级 API:见本文档
- 关键算法、抽象和语义的讨论
- 识别潜在的“跨领域”关注点以及实现挑战/复杂性
- 一个可公开访问的用于存储满足上述要求的提案的仓库:
阶段 2(草案)进入标准
- 上述内容
- 初始规范文本:已完成
- 接受意味着:委员会期望该功能被开发并最终纳入标准
阶段 3(候选)进入标准
- 上述内容
- 完整的规范文本
- 指定的审阅者已签署当前规范文本
- 所有 ECMAScript 编辑已签署当前规范文本
- 接受意味着:解决方案已完成,没有实现经验、大量使用和外部反馈,无法进行进一步工作。
提案推进人
- Frank Tang @FrankYFTang
指定审阅者
- Shane Carr @sffc
- Zibi Braniecki @zbraniecki
ECMAScript 编辑
- Richard Gibson @gibson042
实现状态
- V8(更新于 2021-5-6:):在标志后面(cl/2570218 已合并到主干)
- $ out/x64.release/d8 --harmony_intl_locale_info
- Chrome - 待定
- Edge - ???
- FireFox - 跟踪 Bug
- Safari - ???
范围
一个用于公开区域设置信息(如周数据(一周的第一天、周末开始日、周末结束日)、区域设置中使用的文本方向和小时周期,区域设置中使用的度量衡系统)的提案。
- 周数据:(用户请求:https://github.com/tc39/ecma402/issues/6 )
- 现有技术:
- weekstart JS 库,用于获取一周的第一天。getWeekStartByRegion(RegionCode) / getWeekStartByLocale(locale);
- mozIntl.getCalendarInfo( locale )
- "date-fns/is_weekend" 一个非 i18n 周末 JavaScript 库
- 'date-fns/start_of_week' 一个非 i18n 周末 JavaScript 库
- StackOverflow 上的非 i18n 解决方案 JS 代码片段
- ICU4J Calendar.getWeekData() 和 Calendar.WeekData
- ICU Calendar
- 现有技术:
小时周期已被提案推进人放弃- 方向(用户请求:https://github.com/tc39/ecma402/issues/205 )
度量衡系统:现有技术:
动机/用例
区域设置信息对于许多底层操作是必需的。
- textInfo 中的方向将用于布局和本地化信息(带占位符等的 bidi 边界)
- WeekInfo 将用于日历组件和应用程序,以显示正确的月视图和周视图。
高层设计
向 Intl 添加方法以获取包含一组信息的对象:
周数据
星期一为 1,星期日为 7,由 ISO-8861 定义并遵循 Temporal 提案