操作系统区域数据显示

Microsoft Edge 提供操作系统 (OS) 区域首选项信息,以帮助网站作者在使用 Microsoft Edge 查看网站时在其网站上创建区域体验。 此功能允许网站作者为专门更改其操作系统中的区域首选项以反映其个人偏好的用户提供价值。

用户希望看到根据自己的首选项打印的日期、时间、数字和其他格式。 例如,美国地理区域将 2022 年 7 月 2 日 转换为 2022 年 7 月 2 日。 另一个地理区域可以将同一日期转换为 2022 年 2 月 7 日, 因为它们将月份和日期反转。

区域格式

为了反映用户对数据 (显示方式(例如日期) )的区域首选项,Microsoft Edge 在“设置共享其他 OS 区域格式”菜单的“语言”部分中提供了一个新选项。

“共享其他 OS 区域格式”菜单,其中选择了“受限 (默认) ”选项

授予对此设置的访问权限可让网站能够查看用户的特定区域首选项,而不是以前。 更改其 OS 区域首选项的用户现在可能会看到其首选项自动反映在更多网站中。

OS 区域数据显示代码

用户的格式设置首选项被抽象化为简单的区域代码,Web 应用程序使用该代码推断上面提到的有关日期、时间和其他格式设置首选项的各种详细信息。

网站可以使用带有区域代码的内置国际化 API,将信息格式正确设置为用户首选项。 国际化 API 可以节省大量通过网络传输的 MB 数据,使网站保持小型化,并允许网站快速轻松地适应不同的区域。

通常,网站的国际化用户体验仅与他们能够为当前用户确定的区域代码一样好。

区域代码是一个双字母语言代码,后跟一个连字符和一个双字母区域代码。 Microsoft Edge 使用 ICU 来了解区域代码。 ICU 是 Unicode 标准的国际化 API 的实现。 有关详细信息,请参阅 ICU-TC 主页

若要设置用户的语言首选项,Microsoft Edge 会在首次安装时从 OS 获取默认值。 然后,用户可以更改 中的 edge://settings/languages 语言首选项,并按优先级顺序对其进行排序。

“设置 > 语言”页的“首选语言”部分

UI、HTTP 标头和 API 交互,如下所示:

语言或区域数据 用户影响
“设置语言”>页中的首选语言 选择用于呈现 Microsoft Edge 的语言。 此语言/区域还用于设置日期、时间和数字等值的格式。
accept-language HTTP 标头 发送到服务器的“ 设置>语言>首选语言 ”) 中定义的区域代码列表 (,以允许网站显示正确的语言。 Microsoft Edge 按 edge://settings/languages 中指定的顺序发送区域代码。
navigator.language API (和类似) 插入网站中的代码,允许浏览器显示正确的区域格式 (,如 设置>语言>首选语言) 用户输入和本地生成的其他内容所定义。

区域数据显示选项

用户在 Microsoft Edge 上有三个选项,可以选择浏览器将共享有关其区域的信息级别:

  • 受限 (默认)
  • 始终不建议 ()
  • 从不

有限

默认的推荐值为 Limited。 此设置仅使用用户当前 Microsoft Edge 首选语言和用户所选 OS 区域首选项的有效组合。 受限 可确保对于语言处理,网站将提供一致的语言体验, (不以不可预知的组合) 混合语言。

“有限”选项比较从浏览器当前首选显示语言派生的区域代码的语言部分和来自 OS 设置的区域代码,如果语言部分匹配并且生成的区域代码是有效的组合,则会将区域代码作为默认区域设置提供给网站。

如果 OS 指定的区域语言与 Microsoft Edge 的首选语言不匹配, 则“受限 ”选项将如同选择了 “从不 ”,并将回退到从浏览器的首选显示语言派生的区域代码。

注意: “受限 ”选项类似于当前用于公开 OS 区域代码的 Firefox 行为,如 区域首选项 - Firefox 源文档 (mozilla.org) 中所述。

始终

如果选择了 “始终 (”) ,则用户 OS 区域首选项将不受任何限制或限制地提供给网站。 用户可能会遇到指纹识别和网站兼容性问题, (语言和格式) 的不一致使用。 请参阅下面的“避免潜在的滥用”部分。)

从不

用户可以通过选择“ 从不”来禁用 OS 区域信息的共享。 “ 从不 ”选项仍允许网站读取区域信息,但会阻止用户进行的任何特定 OS 区域自定义项,使其不向网站内容公开。 相反,浏览器的首选显示语言用于派生默认区域。

策略控制

Microsoft Edge 中的相关新策略 DefaultShareAdditionalOSRegionSetting 为公司或企业级默认配置提供设置。 此设置接受具有以下潜在值的整数:

数字 说明
0 有限
1 始终
2 从不

此外,较旧的策略 ApplicationLocaleValue 设置 Microsoft Edge 区域设置并锁定它以防止用户更改它。

避免潜在的滥用

我们相信 ,对于 大多数用户来说,Limited 是正确的选择。 Limited 尊重用户的区域偏好,同时引入网站滥用此信息的风险最低。

指纹取量

可能会滥用 OS 区域信息来危害用户的隐私。 区域信息将帮助黑客建立指纹取向。 结合目前平台中许多其他预先存在的信息量位,用户可能会被唯一识别,从而导致更多潜在的二次伤害。

虽然用户的区域和语言已通过 Web 平台提供,但用户通常属于不同地理位置相似的知名区域代码。 由于样本大小太大,因此任何特定区域代码的风险都很小,因此风险很小。 如果用户将其 OS 首选项更改为唯一的语言 + 区域,则网站可能能够识别总体中的异常,并唯一标识关联的用户。

内容演示

OS 区域信息也可能被滥用,并导致网站语言呈现不一致。 Microsoft Edge 为网站开发人员提供了多种语言和区域 API。 网站可以在一个位置处理区域信息,同时从另一个地方派生语言首选项。

当语言和区域信息是自一致的时,网站使用哪个 API 来组合其内容呈现并不重要。 但是,如果网站从多个 API 读取语言信息,并且这些 API 返回不同的语言代码,则网站可能会无意中开始混合和匹配区域首选项,从而导致奇怪的用户体验。 例如,将语言和区域首选项混合在一起的措辞,例如“Email在 miércoles 上发送,5 de enero de 2021”。

开发人员详细信息

共享其他 OS 区域格式的新设置直接影响 JavaScript Intl 对象的默认区域值以及使用默认区域 (的所有其他 JavaScript API,例如Date构造函数) 。

Intl当对象的构造函数 ((如 DateTimeFormat) )随现有区域代码一起提供时,其行为将保持不变。 但是,如果未提供特定的区域代码,构造函数将使用 默认的区域代码。 新的用户首选项还会影响依赖于默认区域代码的其他日期和时间格式 API,例如 Date

例如, DateTimeFormat 可以使用用户的默认区域代码 (创建 ,并通过以下表达式检查) :

Intl.DateTimeFormat().resolvedOptions().locale

平台中的其他区域(如 accept-languages 通过 HTTP/HTTPS GET 请求发送到服务器的标头)以及 navigator.languagenavigator.languages API 不受 OS 共享的区域信息的影响。