Nom de groupe non anglais cause Erreur 500 pour message de groupe

Ma langue par défaut de Discourse est définie sur le japonais.
Certains noms de groupes par défaut ont été convertis en japonais, et les URL (slugs) des groupes sont également en japonais.

Par exemple, l’URL du groupe Staff est /g/スタッフ
L’URL de la page d’activité du groupe Staff est /g/スタッフ/activity/posts

De plus, tous les groupes ayant un nom non anglais ne peuvent pas accéder à la page des messages du groupe. /g/スタッフ/messages
Lorsqu’on tente d’accéder à ces pages, un message d’erreur serveur 500 apparaît.

J’ai essayé de trouver ces textes dans la page de personnalisation des textes, mais je ne pense pas que je puisse les personnaliser.

Il semble s’agir d’un bug, car lorsque je change la langue en anglais et que je rafraîchis la page, ces noms de groupes non anglais restent en japonais.

J’ai deux questions :

  1. Est-il possible de corriger l’erreur des messages de groupe pour les groupes non anglais ?

  2. Je pense que Discourse n’autorise pas les noms de groupes non anglais. Comment puis-je donc revenir à des noms en anglais ?

PS : J’ai mis à jour vers la dernière version et reconstruit l’application, mais le problème persiste.

Je ne parviens pas à reproduire ce problème sur la dernière version de Discourse. :thinking:

Si vous mettez à jour votre langue vers l’anglais, le nom du groupe sera automatiquement mis à jour en « staff » dans les 12 heures via le travail planifié EnsureDbConsistency.

Merci pour votre réponse rapide. :grinning:

Voici l’erreur affichée dans le journal des erreurs. :thinking:

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

Détails :

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 `’

  1. J’ai essayé de relancer l’assistant de configuration de Discourse, mais le problème persiste.

  2. J’ai essayé le mode sans échec avec tous les plugins désactivés, mais le problème persiste.

  1. J’ai également essayé de remettre Discourse en anglais et de déclencher Jobs::EnsureDbConsistency dans /sidekiq/scheduler, mais ces noms de groupes restent toujours en japonais. :thinking:

:group_name=>“スタッフ”

Il semble que le paramètre group_name ne soit pas encodé en URL. Quel navigateur utilisez-vous ?

Je ne parviens pas à reproduire ce problème avec la dernière version de Chrome.

J’utilise Chrome avec la dernière mise à jour. :grinning:
J’ai également essayé avec Firefox et Opera, et ils ont tous le même problème.

J’ai constaté que d’autres personnes rencontrent le même problème. :thinking:

Je ne parviens toujours pas à reproduire ce problème. De mon côté, le navigateur encode l’URL en pourcentage comme ceci :

http://localhost:9292/topics/private-messages-group/arpit/%E3%82%B9%E3%82%BF%E3%83%83%E3%83%95.json

… ce qui entraîne une réponse correcte du serveur.

Quelle est votre langue par défaut pour le navigateur et le système d’exploitation ? Est-ce l’anglais ou le japonais ?

Je me demande pourquoi l’encodage URL en pourcentage ne se produit pas pour vous dans le navigateur.

J’ai installé les packs de langues japonais et chinois sur Windows 10.
Actuellement, Windows est configuré en chinois par défaut.
Mon Chrome est en japonais, mais Firefox est en anglais. :sweat_smile:


Après plusieurs tests, j’ai constaté un comportement étrange concernant les noms des groupes.

Par exemple, dans Personnaliser → Texte, si je définis
groups.default_names.trust_level_0 = トラストレベル0
l’URL devient /g/%E3%83%88%E3%83%A9%E3%82%B9%E3%83%88%E3%83%AC%E3%83%99%E3%83%AB4/messages, et j’obtiens une erreur 500 Internal Server Error.


Si je modifie groups.default_names.trust_level_0 en trust_level_0 et que j’attends un jour, l’URL revient à /g/trust_level_0/messages/ et je peux accéder à la page sans problème.


Si je change pour un autre mot, par exemple groups.default_names.trust_level_0 = Level 0 et que j’attends un jour, l’URL reste inchangée. Si l’URL était en japonais, elle reste en japonais. Si elle était en anglais, elle reste en anglais.


Pour le moment, je pense que je vais simplement remettre tous les noms de groupes en anglais, ce qui devrait résoudre le problème. Les noms des groupes doivent être identiques aux noms anglais par défaut, sinon l’URL ne reviendra pas à l’anglais.
Par exemple, il y a quelques jours, j’avais défini groups.default_names.admins à Admin, car j’avais oublié d’ajouter le « s » après Admin. Aujourd’hui, l’URL est toujours en japonais.

Je rencontre exactement le même problème. Ce problème persiste depuis un moment, durant lequel j’ai mis à jour Discourse à plusieurs reprises.



Screenshot 2021-05-12 at 9.50.22 AM
J’ai essayé de changer la langue à la fois en anglais et en 中文 (TW), aussi bien avec Google Chrome que Firefox.

Nous ne parvenons pas à reproduire ce problème. Quelles sont les étapes exactes nécessaires pour le déclencher ?

Cela m’arrive lorsque je désactive unicode usernames après avoir défini un nom unicode pour un groupe.

Merci beaucoup ! Mon problème a disparu depuis que j’ai activé les noms d’utilisateurs Unicode.