Это не может работать для всех стран мира, так как во многих странах неделя начинается с воскресенья или любого другого дня.
Как предложил @gerhard, я открываю эту тему для обсуждения возможных решений.
Правильным решением было бы добавить настройку для каждого пользователя, позволяющую определить начало рабочей недели, с значением по умолчанию «понедельник». (А затем мы заменим «понедельник» на «Начало рабочей недели» с ссылкой на настройку, которая появится при выборе этого варианта).
Я также подумал, что это может настроить администратор сайта, но решил, что многие форумы не привязаны к конкретной стране.
Есть ли у кого-то ещё мысли по этому поводу?
Понял, это сложная проблема для всех стран, где неделя начинается в воскресенье. В эту категорию попадают Израиль, ОАЭ, Непал, Малайзия, Саудовская Аравия и Иран.
Кажется, нам стоит рассмотреть возможность добавления настройки «первый день недели». @martin, есть ли у тебя идеи, как лучше к этому подойти?
Самый простой вариант — просто убрать эту опцию, но я не уверен.
Не уверен, почему я не посмотрел на это должным образом, когда делал это; в moment.js есть простой способ получить первый день недели:
moment().startOf('week').day()
Поскольку мы уже локализуем moment, это отлично работает. Только что протестировал: при установленном языке сайта на иврит начало недели определяется как 0 (воскресенье), а если вернуть язык на английский, то возвращается 1 (понедельник). Должно быть довольно просто запустить это на следующей неделе.
Если бы мы действительно хотели, мы могли бы добавить настройку на уровне сайта для «начала недели», но не уверен, нужно ли нам что-то подобное для календаря? Хотя это, вероятно, нежелательно, когда пользователи могут устанавливать свой собственный язык.
Я думаю, это должно быть опцией пользователя. Определение по языку может быть недостаточно, так как начало недели варьируется в разных странах. Кроме того, не все сайты позволяют пользователю настроить локаль. Возможно, стоит использовать moment.js для предустановки значения, как мы это делаем с часовым поясом?
Кстати, язык отличается от локали: я могу находиться в Великобритании, но использовать сайт на арабском языке.
Системы учитывают это, предоставляя отдельные настройки для локали и языка интерфейса.
Это в основном влияет на даты, время и числа. Я открою отдельную тему, чтобы обсудить это и выяснить, есть ли реальная необходимость в их изменении (поскольку это затрагивает очень многие части Discourse).