lhkjacky
(Jacky)
1
Discourse のデフォルト言語を日本語に設定しました。
すると、いくつかのデフォルトのグループ名が日本語に変換され、グループの URL(スラッグ)も日本語になっています。
例えば、スタッフグループの URL は /g/スタッフ です。
スタッフのアクティビティページの URL は /g/スタッフ/activity/posts です。
また、英語以外の名前のグループは、グループメッセージページ /g/スタッフ/messages にアクセスできません。
これらのページにアクセスしようとすると、「Server Error 500」のエラーメッセージが表示されます。
カスタマイズテキストページでこれらのテキストを探してみましたが、カスタマイズできないようです。
これはバグのようです。言語を英語に戻してページをリフレッシュしても、非英語のグループ名は依然として日本語のまま残っています。
2 つの質問があります:
-
非英語のグループにおけるグループメッセージのエラーを修正することは可能でしょうか?
-
Discourse は非英語のグループ名を許可していない我认为。では、これらの名前を英語に戻すにはどうすればよいでしょうか?
追記:最新版にアップデートし、アプリを再構築しましたが、問題は解消されませんでした。
「いいね!」 1
techAPJ
(Arpit Jalan)
3
最新の Discourse バージョンでは、この現象を再現できませんでした。
ロケールを英語に更新すると、EnsureDbConsistency というスケジュールジョブを通じて、12 時間以内にグループ名が自動的に “staff” に更新されます。
「いいね!」 2
lhkjacky
(Jacky)
4
迅速なご返信をありがとうございます。 
以下はエラーログに表示されたエラーです。 
ActionController::UrlGenerationError (No route matches {:action=>\"private_messages_group\", :controller=>\"list\", :format=>\"json\", :group_name=>\"トラストレベル0\", :page=>1, :topic_ids=>nil, :username=>\"admin\"}
ActionController::UrlGenerationError (No route matches {:action=>\"private_messages_group\", :controller=>\"list\", :format=>\"json\", :group_name=>\"スタッフ\", :page=>1, :topic_ids=>nil, :username=>\"admin\"}, po
ActionController::UrlGenerationError (No route matches {:action=>\"private_messages_group\", :controller=>\"list\", :format=>\"json\", :group_name=>\"管理者\", :page=>1, :topic_ids=>nil, :username=>\"admin\"}, pos
ActionController::UrlGenerationError (No route matches {:action=>\"private_messages_group_archive\", :controller=>\"list\", :format=>\"json\", :group_name=>\"管理者\", :page=>1, :topic_ids=>nil, :username=>\"admi
詳細:
\"Info\"
- ActionController::UrlGenerationError (No route matches {:action=>"private_messages_group", :controller=>"list", :format=>"json", :group_name=>"管理者", :page=>1, :topic_ids=>nil, :username=>"admin"}, possible unmatched constraints: [:group_name])
- app/controllers/list_controller.rb:416:in `public_send’
- app/controllers/list_controller.rb:416:in `construct_url_with’
- app/controllers/list_controller.rb:175:in `message_route’
- app/controllers/list_controller.rb:160:in `block in generate_message_route’
- app/controllers/application_controller.rb:358:in `block in with_resolved_locale’
- app/controllers/application_controller.rb:358:in `with_resolved_locale’
- lib/middleware/omniauth_bypass_middleware.rb:68:in `call’
- lib/content_security_policy/middleware.rb:12:in `call’
- lib/middleware/anonymous_cache.rb:355:in `call’
- config/initializers/100-quiet_logger.rb:23:in `call’
- config/initializers/100-silence_logger.rb:31:in `call’
- lib/middleware/enforce_hostname.rb:23:in `call’
- lib/middleware/request_tracker.rb:177:in `call’
\"Backtrace\"
- actionpack (6.0.3.5) lib/action_dispatch/journey/formatter.rb:57:in `generate’
- actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:738:in `generate’
- actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:769:in `generate’
- actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:816:in `url_for’
- actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:269:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:326:in `block in define_url_helper’
- app/controllers/list_controller.rb:416:in `public_send’
- app/controllers/list_controller.rb:416:in `construct_url_with’
- app/controllers/list_controller.rb:175:in `message_route’
- app/controllers/list_controller.rb:160:in `block in generate_message_route’
- actionpack (6.0.3.5) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action’
- actionpack (6.0.3.5) lib/abstract_controller/base.rb:195:in `process_action’
- actionpack (6.0.3.5) lib/action_controller/metal/rendering.rb:30:in `process_action’
- actionpack (6.0.3.5) lib/abstract_controller/callbacks.rb:42:in `block in process_action’
- activesupport (6.0.3.5) lib/active_support/callbacks.rb:112:in `block in run_callbacks’
- app/controllers/application_controller.rb:358:in `block in with_resolved_locale’
- i18n (1.8.9) lib/i18n.rb:314:in `with_locale’
- app/controllers/application_controller.rb:358:in `with_resolved_locale’
- activesupport (6.0.3.5) lib/active_support/callbacks.rb:121:in `block in run_callbacks’
- activesupport (6.0.3.5) lib/active_support/callbacks.rb:139:in `run_callbacks’
- actionpack (6.0.3.5) lib/abstract_controller/callbacks.rb:41:in `process_action’
- actionpack (6.0.3.5) lib/action_controller/metal/rescue.rb:22:in `process_action’
- actionpack (6.0.3.5) lib/action_controller/metal/instrumentation.rb:33:in `block in process_action’
- activesupport (6.0.3.5) lib/active_support/notifications.rb:180:in `block in instrument’
- activesupport (6.0.3.5) lib/active_support/notifications/instrumenter.rb:24:in `instrument’
- activesupport (6.0.3.5) lib/active_support/notifications.rb:180:in `instrument’
- actionpack (6.0.3.5) lib/action_controller/metal/instrumentation.rb:32:in `process_action’
- actionpack (6.0.3.5) lib/action_controller/metal/params_wrapper.rb:245:in `process_action’
- activerecord (6.0.3.5) lib/active_record/railties/controller_runtime.rb:27:in `process_action’
- actionpack (6.0.3.5) lib/abstract_controller/base.rb:136:in `process’
- actionview (6.0.3.5) lib/action_view/rendering.rb:39:in `process’
- rack-mini-profiler (2.3.1) lib/mini_profiler/profiling_methods.rb:111:in `block in profile_method’
- actionpack (6.0.3.5) lib/action_controller/metal.rb:190:in `dispatch’
- actionpack (6.0.3.5) lib/action_controller/metal.rb:254:in `dispatch’
- actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:50:in `dispatch’
- actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:33:in `serve’
- actionpack (6.0.3.5) lib/action_dispatch/journey/router.rb:49:in `block in serve’
- actionpack (6.0.3.5) lib/action_dispatch/journey/router.rb:32:in `each’
- actionpack (6.0.3.5) lib/action_dispatch/journey/router.rb:32:in `serve’
- actionpack (6.0.3.5) lib/action_dispatch/routing/route_set.rb:834:in `call’
- lib/middleware/omniauth_bypass_middleware.rb:68:in `call’
- rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call’
- rack (2.2.3) lib/rack/conditional_get.rb:27:in `call’
- rack (2.2.3) lib/rack/head.rb:12:in `call’
- lib/content_security_policy/middleware.rb:12:in `call’
- lib/middleware/anonymous_cache.rb:355:in `call’
- rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context’
- rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/cookies.rb:648:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call’
- activesupport (6.0.3.5) lib/active_support/callbacks.rb:101:in `run_callbacks’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/callbacks.rb:26:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call’
- logster (2.9.6) lib/logster/middleware/reporter.rb:43:in `call’
- railties (6.0.3.5) lib/rails/rack/logger.rb:37:in `call_app’
- railties (6.0.3.5) lib/rails/rack/logger.rb:28:in `call’
- config/initializers/100-quiet_logger.rb:23:in `call’
- config/initializers/100-silence_logger.rb:31:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/remote_ip.rb:81:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/request_id.rb:27:in `call’
- lib/middleware/enforce_hostname.rb:23:in `call’
- rack (2.2.3) lib/rack/method_override.rb:24:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/executor.rb:14:in `call’
- rack (2.2.3) lib/rack/sendfile.rb:110:in `call’
- actionpack (6.0.3.5) lib/action_dispatch/middleware/host_authorization.rb:76:in `call’
- rack-mini-profiler (2.3.1) lib/mini_profiler/profiler.rb:373:in `call’
- message_bus (3.3.4) lib/message_bus/rack/middleware.rb:61:in `call’
- lib/middleware/request_tracker.rb:177:in `call’
- railties (6.0.3.5) lib/rails/engine.rb:527:in `call’
- railties (6.0.3.5) lib/rails/railtie.rb:190:in `public_send’
- railties (6.0.3.5) lib/rails/railtie.rb:190:in `method_missing’
- rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call’
- rack (2.2.3) lib/rack/urlmap.rb:58:in `each’
- rack (2.2.3) lib/rack/urlmap.rb:58:in `call’
- unicorn (5.8.0) lib/unicorn/http_server.rb:634:in `process_client’
- unicorn (5.8.0) lib/unicorn/http_server.rb:732:in `worker_loop’
- unicorn (5.8.0) lib/unicorn/http_server.rb:548:in `spawn_missing_workers’
- unicorn (5.8.0) lib/unicorn/http_server.rb:144:in `start’
- unicorn (5.8.0) bin/unicorn:128:in `<top (required)>’
- vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load’
- vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `’
-
Discourse セットアップウィザードを再実行しましたが、問題は解決しませんでした。
-
すべてのプラグインを無効化したセーフモードでも試しましたが、問題は解消されません。
- Discourse を英語に戻し、
/sidekiq/scheduler で Jobs::EnsureDbConsistency をトリガーしましたが、これらのグループ名は依然として日本語のままです。 
techAPJ
(Arpit Jalan)
5
:group_name=>“スタッフ”
group_name パラメータが URL エンコードされていないようです。使用しているブラウザは何ですか?
最新の Chrome バージョンでは、この現象を再現できませんでした。
lhkjacky
(Jacky)
6
Chrome の最新バージョンを使用しています。
Firefox や Opera でも試しましたが、すべて同じ問題が発生します。
他にも同様の問題に直面している方がいるようです。
techAPJ
(Arpit Jalan)
7
この問題は再現できません。私の環境では、ブラウザが以下のようにリンクをパーセントエンコーディングしています。
http://localhost:9292/topics/private-messages-group/arpit/%E3%82%B9%E3%82%BF%E3%83%83%E3%83%95.json
その結果、サーバーから適切なレスポンスが返ってきます。
techAPJ
(Arpit Jalan)
8
お使いのブラウザとOSのデフォルトロケールは何ですか?英語ですか、それとも日本語ですか?
ブラウザでパーセントエンコーディングが行われない理由が気になっています。
lhkjacky
(Jacky)
9
My Wins 10 には日本語と中国語の言語パックの両方がインストールされています。
現在、Windows のデフォルト言語は中国語に設定されています。
Chrome は日本語ですが、Firefox は英語のままです。
複数のテストの結果、グループ名の挙動に奇妙な点があることが分かりました。
例えば、「Customize → Text」で
groups.default_names.trust_level_0 を トラストレベル0 に設定すると、
URL は /g/%E3%83%88%E3%83%A9%E3%82%B9%E3%83%88%E3%83%AC%E3%83%99%E3%83%AB4/messages となり、500 Internal Server Error が発生します。
groups.default_names.trust_level_0 を trust_level_0 に変更し、1 日待機すると、URL は /g/trust_level_0/messages/ に戻り、問題なくページにアクセスできるようになります。
groups.default_names.trust_level_0 を Level 0 のような他の単語に変更し、1 日待機しても、URL は変更されません。URL が日本語であれば日本語のまま、英語であれば英語のままです。
現時点では、すべてのグループ名を英語に戻せば問題が解決すると思います。グループ名はデフォルトの英語名と完全に一致している必要があります。そうでなければ、URL は英語に戻りません。
例えば、数日前に groups.default_names.admins を Admin に設定しました(「Admin」の後に「s」を打ち忘れたため)。数日後現在でも、URL は日本語のまま変更されていません。
「いいね!」 2
cylau1996
(Lau Chi Yung)
10
私も全く同じ問題が発生しています。この問題はしばらく続いており、その間に Discourse を複数回更新しました。

ロケールを英語と中文(台湾)の両方に切り替えて試しましたが、Google Chrome と Firefox の両方で同じ状況です。
「いいね!」 2
sam
(Sam Saffron)
11
再現することができませんでした。これを発生させるために必要な正確な手順を教えてください。
「いいね!」 3
hawm
(Hawm)
12
Unicodeユーザー名を有効にした後に、グループのUnicode名を設定して無効にすると、この現象が発生します。
「いいね!」 7
cylau1996
(Lau Chi Yung)
13
どうもありがとうございます!Unicode ユーザー名を有効にしたところ、問題が解消されました。
「いいね!」 4