Il nome del gruppo non in inglese causa l'errore 500 per il messaggio di gruppo

La mia lingua predefinita di Discourse è impostata su giapponese.
Alcuni dei nomi predefiniti dei gruppi sono stati convertiti in giapponese e anche gli URL (slug) dei gruppi sono in giapponese.

Ad esempio, l’URL del gruppo Staff è /g/スタッフ
L’URL della pagina attività dello Staff è /g/スタッフ/activity/posts

Tutti i gruppi con nomi non in inglese non possono accedere alla pagina Messaggi del gruppo: /g/スタッフ/messages
Quando si tenta di accedere a queste pagine, appare un messaggio di Errore Server 500.

Ho cercato di trovare questi testi nella pagina di personalizzazione del testo, ma non credo sia possibile personalizzarli.

Sembra trattarsi di un bug, perché quando cambio la lingua in inglese e ricarico la pagina, i nomi dei gruppi non in inglese rimangono in giapponese.

Ho due domande:

  1. È possibile risolvere l’errore dei Messaggi del gruppo per i gruppi non in inglese?

  2. Penso che Discourse non consenta nomi di gruppi non in inglese. Come posso quindi riportare quei nomi in inglese?

PS: Ho aggiornato all’ultima versione e ricostruito l’app, ma il problema persiste.

Non riesco a riprodurre il problema con l’ultima versione di Discourse. :thinking:

Se aggiorni la tua lingua a inglese, il nome del gruppo verrà aggiornato automaticamente a “staff” entro 12 ore tramite il lavoro pianificato EnsureDbConsistency.

Grazie per la tua rapida risposta. :grinning:

Ecco l’errore mostrato nel registro degli errori. :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

Dettagli:

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. Ho provato a rieseguire la procedura guidata di configurazione di Discourse, ma il problema persiste.

  2. Ho provato la modalità sicura con tutti i plugin disabilitati, ma il problema persiste.

  1. Ho anche provato a reimpostare Discourse in inglese e ad attivare Jobs::EnsureDbConsistency in /sidekiq/scheduler, ma i nomi dei gruppi sono rimasti in giapponese. :thinking:

:group_name=>“スタッフ”

Sembra che il parametro group_name non sia codificato in URL. Quale browser stai utilizzando?

Non riesco a riprodurre il problema con l’ultima versione di Chrome.

Sto usando Chrome con l’ultima versione. :grinning:
Ho provato anche con Firefox e Opera, ma tutti hanno lo stesso problema.

Ho scoperto che anche altri hanno lo stesso problema. :thinking:

Non riesco ancora a riprodurre questo problema. Nel mio caso il browser codifica in percentuale l’URL del link in questo modo:

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

… e ciò genera una risposta corretta dal server.

Qual è la tua locale predefinita del browser e del sistema operativo? È inglese o giapponese?

Mi chiedo perché la codifica URL in percentuale non stia avvenendo per te nel browser.

Ho installato entrambi i pacchetti linguistici giapponese e cinese su Windows 10.
Attualmente, Windows è impostato in cinese come predefinito.
Chrome è in giapponese, mentre Firefox è in inglese. :sweat_smile:


Dopo numerosi test, ho rilevato un comportamento strano nei nomi dei gruppi.

Ad esempio, in Personalizza → Testo, ho impostato
groups.default_names.trust_level_0 = トラストレベル0
L’URL diventa /g/%E3%83%88%E3%83%A9%E3%82%B9%E3%83%88%E3%83%AC%E3%83%99%E3%83%AB4/messages, e ricevo un errore 500 Internal Server Error.


Se modifico groups.default_names.trust_level_0 in trust_level_0 e aspetto un giorno, l’URL torna a /g/trust_level_0/messages/ e posso accedere alla pagina senza problemi.


Se cambio con un’altra parola, ad esempio groups.default_names.trust_level_0 = Level 0 e aspetto un giorno, l’URL rimane invariato. Se l’URL era in giapponese, rimane in giapponese; se era in inglese, rimane in inglese.


Al momento, penso che mi limiterò a reimpostare tutti i nomi dei gruppi in inglese, il che dovrebbe risolvere il problema. Il nome del gruppo deve essere identico al nome predefinito in inglese, altrimenti l’URL non tornerà all’inglese.
Ad esempio, alcuni giorni fa ho impostato groups.default_names.admins su Admin, perché ho dimenticato di aggiungere la “s” dopo Admin; dopo alcuni giorni, l’URL è ancora in giapponese.

Ho esattamente lo stesso problema. Questo problema persiste da un po’ di tempo, durante il quale ho aggiornato Discourse più volte.



Screenshot 2021-05-12 alle 9.50.22
Ho provato a cambiare la lingua sia in inglese che in 中文(TW), sia con Google Chrome che con Firefox.

Non siamo riusciti a riprodurre il problema. Quali sono i passaggi esatti necessari per farlo accadere?

Mi succede quando disabilito unicode usernames dopo aver impostato il nome unicode per un gruppo.

Grazie mille! Il mio problema è stato risolto dopo aver abilitato i nomi utente Unicode.