Intl LocaleMatcher ?
中文标题:Intl.LocaleMatcher
提案概览
- 阶段: 未分阶段
- 状态: 进行中
- ECMAScript 版本: —
- 同步时间: 2026年11月3日
- English original · 官方仓库
提案速览
该提案提供 Intl.LocaleMatcher,用于一次准备好可用的翻译语言区域,然后匹配用户偏好。构造函数会对可用语言区域进行快照并规范化,只读取一次选项,并提供 match 方法,返回规范化后的可用标签或 undefined。匹配可以使用 RFC 4647 前缀 lookup,或使用默认的 best fit,后者复用 ECMA-402 中由实现定义的匹配,不要求 CLDR/ICU 数据或评分。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
Intl.LocaleMatcher
一次准备好可用的翻译语言区域,然后匹配用户偏好。
第 1 阶段。 提案负责人:Long Ho。
规范 · 源代码 · 研究与待解决问题 · FormatJS ponyfill
拟议 API
- 构造函数会对可用语言区域进行快照并规范化;之后的修改不会影响它。选项只读取一次,并且要求为对象或
undefined。 lookup使用 RFC 4647 前缀查找。best fit(默认)复用 ECMA-402 中由实现定义的匹配,不要求 CLDR/ICU 数据或评分。match返回一个规范化后的可用标签或undefined。不会向结果中添加隐式默认值或请求的 Unicodeu扩展。- 输入遵循
CanonicalizeLocaleList:字符串、Intl.Locale 对象和类数组列表。不会消费通用可迭代对象。可用的u扩展仍会被拒绝;私有使用(private-use)的音调匹配仍未作规定。
草案 API 变更:实例方法取代静态 Intl.LocaleMatcher.match。
FormatJS ponyfill 目前实现的是较早的无状态 API。
HTTP 解析、消息回退、多结果和资源索引不在本草案范围内。未决决策和基础性先例见设计说明。
构建
严格的 ecmarkup 构建会检查语法、引用和算法 lint 规则。运行时一致性测试已有计划,但尚未在此实现。