Intl.Locale S4
中文标题:Intl.Locale API 规范 [草案]
提案概览
- 阶段: Stage 4
- 状态: 已完成
- ECMAScript 版本: ES2020
- 同步时间: 2026年8月26日
- English original · 官方仓库
提案速览
该提案引入 Intl.Locale 类来处理 JavaScript 中的区域设置数据,使其能够解析、操作和序列化区域设置组件,而不仅仅是简单字符串。它提供了 toString() 方法,以便与现有 Intl API 兼容,并计划通过 navigator.locales 用于未来的 HTML 集成。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
Intl.Locale API 规范 [草案]
概述
动机
JavaScript 的 Intl 库(ECMA 402)从一开始就使用字符串来标识区域设置。这在许多简单场景下运行良好,并且轻量且用户友好。ICU 使用 Locale 类来代替。定义 Locale 类可以实现以下功能:
- 解析和操作区域设置的语言、地区和文字
- 读取或写入区域设置中的 Unicode 扩展标签
- 提供可序列化的标准格式,用于存储用户区域设置偏好,以在 Intl API 中使用,而不是依赖语言和选项对象的组合。
- 在后续提案中,Locale 类可以用作接口,以获取各种区域设置数据,包括可能的子标签、一周的第一天、各种显示名称等。
Intl.Locale 有一个 toString 方法,它表示区域设置的完整内容。此方法允许将 Locale 实例作为参数提供给现有的 Intl 构造函数,在 JSON 中序列化,或用于任何需要精确字符串表示的其他上下文。
Intl.Locale 被提议作为 HTML 用来向 Web 公开当前区域设置的类。目前,HTML 仅支持 navigator.languages,但通过 navigator.locales(一个 Intl.Locale 实例数组),浏览器可以向渐进式 Web 应用程序公开用户对日历、编号系统等的偏好。
使用示例
以下示例演示如何使用 Intl.Locale
实现状态
第 4 阶段
实现进展
- 已在 Chrome 74 / V8 v7.4 中发布
- 已在 Firefox 70 中标志后发布
- Polyfill: https://github.com/zbraniecki/Intl.js/tree/intllocale
反向指针
作者
- Zibi Braniecki (@zbraniecki)
- Daniel Ehrenberg (@littledan)
审阅者
待定