For AI agents: the complete documentation index is available at /tc39-atlas/llms.txt, the full documentation bundle is available at /tc39-atlas/llms-full.txt, and this page is available as Markdown at /tc39-atlas/proposals/stage/4/proposal-intl-locale.md.
  • 简体中文
  • Intl.Locale S4

    中文标题:Intl.Locale API 规范 [草案]

    提案概览
    提案速览

    该提案引入 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

    let loc = new Intl.Locale("pl-u-hc-h12", {
      calendar: 'gregory'
    });
    console.log(loc.language); // "pl"
    console.log(loc.hourCycle); // "h12"
    console.log(loc.calendar); // "gregory"
    console.log(loc.toString()); // "pl-u-ca-gregory-hc-h12"

    实现状态

    第 4 阶段

    实现进展

    反向指针

    作者

    • Zibi Braniecki (@zbraniecki)
    • Daniel Ehrenberg (@littledan)

    审阅者

    待定

    提案

    规范

    您可以查看 规范文本 或渲染为 HTML

    先前技术

    开发

    渲染规范

    npm install
    npm run build
    open index.html