S4.02.1Independent language, region, and time-zone preferences设计研究

语言、地区与时区是三个独立设置

别名: 区域设置分离 · locale preference model · language region time zone · preference precedence

概念解释

独立的语言、地区与时区偏好(independent language, region, and time-zone preferences)把界面采用哪种语言、数字/日期等遵循哪套地区惯例、时间显示在哪个民用时区建模为三个可分别取值和覆盖的字段。语言通常用带脚本、地区等子标签的 BCP 47 language tag 表达;地区惯例不是“国家人格”,而是格式化或业务规则所需的明确上下文;时区应使用 IANA time zone identifier。language tag 即使含地区子标签,也不能替代独立时区或账户适用的法律/服务市场。

机制

三个设置回答不同问题:语言选择消息目录、文字方向和语言资源;formatting locale 结合语言、脚本与地区约定影响日期、数字和周结构,排序还需由相应的 collation locale 与 tailoring 解析;时区把 instant 投影为当地民用时间。一个人可能使用某语言界面、熟悉另一地区格式、同时在第三个时区工作,这不是异常状态。可靠偏好模型为每个字段保存值、模式(自动或明确)、来源和更新时间,并分别解析优先级:用户明确选择通常覆盖账户偏好与设备推断;工作区政策只覆盖其有权管理的字段;缺失时使用可说明的产品回退。服务市场、数据驻留和法律实体是另外的权威属性,不能被可编辑偏好覆盖。

怎么研究

建立语言 × 地区 × 时区的正交测试矩阵,至少覆盖同语言多地区、同地区多语言、旅行、远程团队、共享设备和系统设置变化。对每组分别断言消息语言、文字方向、数字/日期/排序、日历首日和时间标签,定位是否有组件偷读了错误字段。用户研究可让参与者设置“界面语言、格式示例、当前城市时间”并完成预约或数据解释任务,记录误选、反复改动和对设置名称的理解。测试报告必须记录每个最终值的来源与覆盖链,否则只能看到结果,无法诊断是哪一层错误接管。

边界

locale 是一组语言与地区约定的结构化标识,不等同于国家,也不自动包含时区;一个国家可有多种语言和时区,一种语言也跨越多个地区。region preference 不能决定内容能否销售、用户受哪部法律约束或数据放在哪里,这些需由独立业务政策处理。组织管理设备可锁定某些显示要求,但不应冒充用户本人偏好。自动检测结果具有不确定性,且浏览器、操作系统、账户和工作区可能互相矛盾,因此界面应能说明实际采用值及其来源。

怎么落地

  • 分别存储 ui_language、完整 format_locale(可另有地区覆盖)和 IANA time_zone,每项带 auto/explicit/managed 模式、来源、版本与更新时间;不要从其中一项永久派生另外两项。若排序规则可独立选择,再保存 collation_locale 或 tailoring,而不是让地区字段单独决定。
  • 为每项定义独立优先级,例如用户明确选择 → 账户值 → 设备能力 → 已审核回退,并列出组织政策可覆盖的范围。法律实体、服务市场和数据驻留另建只读业务属性。
  • 提供格式与时间预览来确认解析结果,并在设置摘要中同时展示语言、日期/数字示例和时区名称;入口与切换交互沿用统一语言设置流程,不在此模型中复制一套切换器。
  • 让格式化器读取 format_locale,排序读取相应的语言/脚本/地区与 collation tailoring,通知排期读取 time_zone,内容加载读取独立的内容语言偏好;加入禁止隐式读取全局 locale 的静态检查或封装 API。用非典型组合做端到端回归,并对每次解析记录非敏感的来源链以便诊断。

延伸

  • 同组S4.02.2 用同一设置驱动三者会产生错配 · S4.02.3 界面语言与内容语言可以不同
  • 相邻S4.01.1 自动检测应可被用户覆盖 · S2.01.4 周起始日随地区不同
  • 站内检索locale preference model · BCP 47 language tag · IANA time zone

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/S4.02.1