翻訳中にブックマークのリマインダーでこの文字列を見つけました:「start_of_next_busniess_week」
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/controllers/bookmark.js#L264
多くの国では日曜日が週の始まりであったり、他の曜日が始まりであったりするため、この実装は世界中のすべての国で機能するわけではありません。
@gerhard の提案に基づき、考えられる解決策を議論するためにこのトピックを開きます。
適切な解決策としては、ユーザーごとに週の始まりを定義できる設定オプションを用意し、デフォルトを月曜日にする方法です(その後、「月曜日」を「週の始まり」に変更し、そのオプションを選択すると設定オプションへのリンクが表示されるようにします)。
また、サイト管理者がこれを設定する方法も考えましたが、多くのフォーラムは特定の国に限定されていないため、この案は却下しました。
ほかにご意見はありますか?
「いいね!」 5
sam
(Sam Saffron)
3
承知しました。これは、週を日曜日から始めるすべての国にとって厄介な問題です。イスラエル、UAE、ネパール、マレーシア、サウジアラビア、イランがこのカテゴリーに該当します。
「週の初日」に関する何らかの設定を検討すべきだと考えます。@martin、この件へのアプローチ方法についてご意見はありますか?
最も簡単な方法は、単にそのオプションを削除する手段を設けることですが、確信が持てません。
「いいね!」 3
martin
(Martin Brennan)
4
なぜこれを適切に確認しなかったのかよくわかりません。moment.js で週の開始日を簡単に取得する方法があります。
moment().startOf('week').day()
すでに moment をローカライズしているので、これで問題なく動作します。試しに確認したところ、サイトの言語をヘブライ語に設定すると週の開始日は 0(日曜日)となり、英語に戻すと 1(月曜日)に戻ります。来週には比較的簡単に実装できるはずです。
本当に必要であれば、「週の開始日」をサイト全体の設定として用意することも可能ですが、カレンダーにそのような機能が必要かどうかはわかりません。また、ユーザーが独自のロケールを設定できるようになることを考えると、これは望ましくないかもしれません。
「いいね!」 3
gerhard
(Gerhard Schlager)
5
これはユーザーオプションにするべきだと思います。言語で検出するだけでは不十分な場合があります。週の始まりは国によって異なるためです。さらに、すべてのサイトでユーザーのロケール設定が有効になっているわけではありません。タイムゾーンの場合と同様に、momentjs を使用して値を事前に選択するのはどうでしょうか?
「いいね!」 4
martin
(Martin Brennan)
6
なるほど、ユーザーが選択できるようにし、タイムゾーンと同じように妥当なデフォルト値を設定します!
「いいね!」 3
素晴らしいです。
補足ですが、言語とロケールは異なります。例えば、イギリスに居ても、サイトはアラビア語で利用する場合があります。
システム側でもこれを考慮しており、ロケールと UI 言語を別々に設定できるオプションを用意しています。
これは主に日付、時刻、数値の表示に影響します。これについては別途トピックを作成し、実際に変更が必要かどうか(Discourse の多くの部分に影響するため)を確認したいと考えています。
「いいね!」 4