继续讨论 Business Week Day:
正如我在链接的帖子中提到的,区域设置(Locale)并不完全等同于界面语言。
我以 KDE(Linux 和 Qt)为例:
如图所示,在第一张截图中,用户可以选择界面语言。这决定了界面以及屏幕上显示的所有内容的语言,除了第二张截图中的内容。
第二张截图允许定义用户的区域设置,并覆盖数字、时间、货币、单位和排序方式。
这很重要,因为许多人使用他们偏好的语言操作系统,但居住在另一个国家,那里的区域设置偏好可能不同。
我以我所在的阿拉伯地区为例:
- 所有国家的主要语言都是阿拉伯语。
- 马什里克 国家偏好使用 东阿拉伯数字(٠١٢٣٤٥٦٧٨٩),而 马格里布 国家偏好使用 阿拉伯数字(0123456789)。
- 埃及、苏丹和海湾国家偏好使用拉丁月份名称的阿拉伯语转写:https://en.wikipedia.org/wiki/Arabic_names_of_Gregorian_months#Egypt,_Sudan,_Arab_Countries_in_the_Arabic_Gulf,而黎凡特和美索不达米亚地区偏好使用亚述月份名称:https://en.wikipedia.org/wiki/Arabic_names_of_Gregorian_months#Levant_and_Mesopotamia,马格里布国家则偏好使用法语月份名称的转写:https://en.wikipedia.org/wiki/Arabic_names_of_Gregorian_months#Algeria_and_Tunisia。
因此,日期会受到这些差异的影响:
- 所有国家都从右向左书写。
- 马什里克国家:١٢ يناير ٢٠٢٠ = 2020 年 1 月 12 日(从右向左阅读)
- 马格里布国家:12 جانفي 2020 = 2020 年 1 月 12 日(从右向左阅读)
- 简单来说:无论是东阿拉伯数字还是西/阿拉伯数字,书写方向都是从右向左,这使得决定数字格式变得更加困难。
甚至 千位分隔符 也不同:
(东阿拉伯数字还有另一种分隔符:١٠٬٠٠٠٫٠٠:
这对 Discourse 的影响:
- 日期和时间格式、数字、工作周的起始日。
不受影响的内容:
- 相对日期。
理想的解决方案:
- 提取并内置 Unicode 格式,允许用户选择任何他们喜欢的区域设置。这需要仔细考虑,因为它可能会与 Moment.JS 发生冲突。
- 为翻译人员提供所有必要的手段和方法,以便在软件中指定何处显示何种格式。


