LC_ALL/LANG/LANGUAGE = en_US.UTF-8 は英語以外のサイトで正しいですか?

Discourse の新しいインスタンスのセットアップを開始したので、疑問に思いました。discourse-setup は新しいサイトのロケール設定を尋ねず、LC_ALL/LANG/LANGUAGE = en_US.UTF-8 を持つ app.yml を生成します。

これは正しいですか?もしそうなら、インストール手順に記載しておくと役立つ可能性があります。もしそうでない場合は、discourse-setup がこれらの設定を尋ねるか、少なくとも最初の起動前にコンテナをすぐに開始しないように調整できると良いでしょう。

主に質問しているのは、既存のサイトでロケールが原因で Postgres 13 から 15 へのアップグレードに問題があったためです(コンテナ作成後に de_DE.UTF-8 に調整されました)。しかし、これは Postgres データベースが照合順序 en_US で作成されることを意味し、ドイツ語のウムラウトなどが使用される場合の検索で問題が発生する可能性があります。

2016 年のディスカッション (Default categories/topics in English despite German as default language in setup wizard - #3 by claas) からリンクされているこの古い PR (FEATURE: Ask for default language in discourse-setup by caugner · Pull Request #319 · discourse/discourse_docker · GitHub) は、Discourse がすべて内部で処理するようになったことを示唆しているようです。しかし、確認できると良いでしょう。そして、前述のように、インストール手順に簡単な注意書きを追加することも検討してください。

「いいね!」 1

DEの設定で新しいサーバーを作成し、そこにデータベースを復元することを提案します。

古いものを壊す前に新しいサイトが確実に動作することの安全性、そして古いOSが寿命に近づいている可能性が高いときに新しいOSに移行することに魅力を感じない場合は、バックアップを作成し、postgresファイルを削除し、ロケールを変更し、再構築して新しいデータベースを作成し、バックアップを復元することもできるでしょう。

編集:私は英語しか話せず、ロケールの複雑さについては特に専門家ではありませんが、検索が正しく機能することについてのあなたの懸念は、私にとって的を射ているように思えます。

ですので、一般的にははい、すべてがセットアップされるまで古いサーバーを稼働させ続けます。

私が疑問に思っているのは、データベースのロケールを手動で調整できると思いますが、そうすべきかどうかはわかりません。しかし、もしそうなら、discourse-setup がその点で私の人生を少し楽にしてくれるなら、それは良いことだと思います。

申し訳ありませんが、この件を再度持ち出すことになりますが、新しいサイト(デフォルト言語はドイツ語になります)をセットアップする前に、ここでガイダンスをいただけると幸いです。

GitHubプルリクエストでのGerhard氏のコメントは、Discourseがすでに言語設定を内部的に、または列ごとに処理している可能性があることを示唆していますが、これが実装されたかどうかを確認するのは難しいため、app.ymlのデフォルトロケールen_US.UTF-8がドイツ語サイトで問題ないのかどうか確信が持てません。

「いいね!」 2