区域设置和 UI 语言

继续讨论 Business Week Day

正如我在链接的帖子中提到的,区域设置(Locale)并不完全等同于界面语言。

我以 KDE(Linux 和 Qt)为例:

如图所示,在第一张截图中,用户可以选择界面语言。这决定了界面以及屏幕上显示的所有内容的语言,除了第二张截图中的内容。
第二张截图允许定义用户的区域设置,并覆盖数字、时间、货币、单位和排序方式。
这很重要,因为许多人使用他们偏好的语言操作系统,但居住在另一个国家,那里的区域设置偏好可能不同。

我以我所在的阿拉伯地区为例:

因此,日期会受到这些差异的影响:

  • 所有国家都从右向左书写。
  • 马什里克国家:⁨١٢ يناير ٢٠٢٠⁩ = 2020 年 1 月 12 日(从右向左阅读)
  • 马格里布国家:⁨12 جانفي 2020⁩ = 2020 年 1 月 12 日(从右向左阅读)
  • 简单来说:无论是东阿拉伯数字还是西/阿拉伯数字,书写方向都是从右向左,这使得决定数字格式变得更加困难。

甚至 千位分隔符 也不同:


(东阿拉伯数字还有另一种分隔符:١٠٬٠٠٠٫٠٠:image

这对 Discourse 的影响:

  • 日期和时间格式、数字、工作周的起始日。

不受影响的内容:

  • 相对日期。

理想的解决方案:

  • 提取并内置 Unicode 格式,允许用户选择任何他们喜欢的区域设置。这需要仔细考虑,因为它可能会与 Moment.JS 发生冲突。
  • 为翻译人员提供所有必要的手段和方法,以便在软件中指定何处显示何种格式。
3 个赞

目前暂无计划将现有的语言环境系统拆分为语言环境和用户界面语言,但我同意,这样做会是一个很好的改进。

不过,我认为现有系统已经可用于创建特定区域的语言环境。我们已有 client.en_US.ymlserver.en_US.yml,它们用于覆盖日期/时间格式、数字格式等。

我相信对阿拉伯语也可以实现类似的做法,甚至可以通过插件来完成。

2 个赞