商业周日

在翻译过程中,我在书签提醒里发现了这个字符串:“start_of_next_busniess_week”
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/controllers/bookmark.js#L264

这对世界上的每个国家都不适用,因为许多国家以周日或其他任何一天作为一周的开始。
根据 @gerhard 的建议,我创建此话题以讨论可能的解决方案。
正确的解决方案是为每个用户提供一个配置选项,用于定义业务周的起始日,默认值可设为周一。(然后,我们将把“周一”改为“业务周开始”,并在选择该选项时显示一个指向配置选项的链接。)

我也想过是否由站点管理员来配置此项,但考虑到许多论坛并不受特定国家限制,所以觉得这可能不太合适。

还有其他想法吗?

5 个赞

明白,这对所有以周日作为一周开始的国家来说都是一个棘手的问题。以色列、阿联酋、尼泊尔、马来西亚、沙特和伊朗都属于这一类。

我想我们应该考虑设置一个“每周起始日”的选项。@martin,关于如何处理这个问题,你有什么想法吗?

最简单的做法可能只是提供一种简单的方式来移除该选项,但我不太确定。

3 个赞

我不确定当时为什么没有仔细研究这个问题;在 moment.js 中有一个简单的方法可以获取一周的开始日期:

moment().startOf('week').day()

既然我们已经对 moment 进行了本地化,这个方法非常有效。我刚测试过,当我的网站语言设置为希伯来语时,一周的开始显示为 0(星期日),而当我将其改回英语时,又变回 1(星期一)。下周应该可以很轻松地实现这个功能。

如果我们真的需要,可以为“一周开始日期”设置一个站点级别的选项,不过不确定日历功能是否也需要这样的设置?不过,当用户可以自行设置语言环境时,这可能就不太可取了。

3 个赞

我认为这应该是一个用户选项。仅通过语言检测可能不够,因为一周的开始日期因国家而异。此外,并非所有网站都启用了用户区域设置。也许可以像处理时区那样,使用 momentjs 来预选该值?

4 个赞

说得有道理;我会将其设为用户选项,并像时区一样提供合理的默认选择!

3 个赞

很好。

顺便提一下,语言与区域设置是不同的概念。例如,我可能身处英国,但使用阿拉伯语访问网站。系统也会考虑到这一点,因此将区域设置和界面语言作为独立的选项。

这主要影响日期、时间和数字的显示。我稍后会另开一个话题讨论这个问题,看看是否有必要进行调整(因为这会影响到 Discourse 的许多部分)。

4 个赞