lhkjacky
(Jacky)
15.Март.2021 02:21:34
1
Мой язык по умолчанию в Discourse установлен на японский.
Некоторые имена групп по умолчанию переведены на японский, и URL-адреса (слаг) групп тоже на японском.
Например, URL-адрес группы «Staff» — /g/スタッフ.
URL-адрес страницы активности группы «Staff» — /g/スタッフ/activity/posts.
Все группы с названиями не на английском языке не могут открыть страницу сообщений группы. /g/スタッフ/messages
При попытке доступа к этим страницам появляется сообщение об ошибке сервера 500.
Я пытался найти эти тексты на странице настройки текста, но, кажется, их нельзя изменить.
Похоже, это какая-то ошибка, потому что когда я возвращаю язык на английский и обновляю страницу, названия групп на неанглийском языке всё ещё остаются на японском.
У меня два вопроса:
Можно ли исправить ошибку сообщений группы для групп с названиями не на английском языке?
Я думаю, что Discourse не разрешает названия групп на неанглийском языке. Так как же мне вернуть эти названия обратно на английский?
PS: Я обновился до последней версии и пересобрал приложение, но проблема осталась.
techAPJ
(Arpit Jalan)
15.Март.2021 10:53:09
3
У меня не удалось воспроизвести эту проблему в последней версии Discourse.
Если вы измените локаль на английский, то название группы автоматически обновится до “staff” через 12 часов с помощью запланированной задачи EnsureDbConsistency .
lhkjacky
(Jacky)
15.Март.2021 15:06:49
4
Спасибо за ваш быстрый ответ.
Вот ошибка, отображаемая в журнале ошибок.
ActionController::UrlGenerationError (Нет соответствующего маршрута для {:action=>"private_messages_group", :controller=>"list", :format=>"json", :group_name=>"トラストレベル0", :page=>1, :topic_ids=>nil, :username=>"admin"}
ActionController::UrlGenerationError (Нет соответствующего маршрута для {:action=>"private_messages_group", :controller=>"list", :format=>"json", :group_name=>"スタッフ", :page=>1, :topic_ids=>nil, :username=>"admin"}, po
ActionController::UrlGenerationError (Нет соответствующего маршрута для {:action=>"private_messages_group", :controller=>"list", :format=>"json", :group_name=>"管理者", :page=>1, :topic_ids=>nil, :username=>"admin"}, pos
ActionController::UrlGenerationError (Нет соответствующего маршрута для {:action=>"private_messages_group_archive", :controller=>"list", :format=>"json", :group_name=>"管理者", :page=>1, :topic_ids=>nil, :username=>"admi
Детали:
Информация
ActionController::UrlGenerationError (Нет соответствующего маршрута для {:action=>“private_messages_group”, :controller=>“list”, :format=>“json”, :group_name=>“管理者”, :page=>1, :topic_ids=>nil, :username=>“admin”}, возможные несоответствующие ограничения: [: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’
Трассировка обратного вызова
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 <main>’
Я пробовал повторно запустить мастер настройки Discourse, но проблема сохраняется.
Я пробовал безопасный режим с отключением всех плагинов, но проблема также сохраняется.
Я также пробовал вернуть Discourse на английский язык и запустить Jobs::EnsureDbConsistency в /sidekiq/scheduler, но названия групп всё ещё остались на японском.
techAPJ
(Arpit Jalan)
17.Март.2021 04:20:37
5
:group_name=>“Staff”
Похоже, параметр group_name не закодирован в URL. Какой браузер вы используете?
Мне не удалось воспроизвести это в последней версии Chrome.
lhkjacky
(Jacky)
18.Март.2021 00:44:03
6
Я использую Chrome с последним обновлением.
Также пробовал Firefox и Opera — у всех та же проблема.
Нашёл, что у других тоже возникла такая же проблема.
techAPJ
(Arpit Jalan)
18.Март.2021 01:54:23
7
Я всё ещё не могу воспроизвести эту проблему. В моём случае браузер кодирует ссылку в процентах URL следующим образом:
http://localhost:9292/topics/private-messages-group/arpit/%E3%82%B9%E3%82%BF%E3%83%83%E3%83%95.json
… и это приводит к корректному ответу от сервера.
techAPJ
(Arpit Jalan)
19.Март.2021 05:33:32
8
Каковы настройки вашего браузера и операционной системы по умолчанию? Английский или японский?
Меня интересует, почему в вашем браузере не происходит кодирование URL-адресов в процентном формате.
lhkjacky
(Jacky)
19.Март.2021 06:18:29
9
На моем Windows 10 установлены пакеты языков и японского, и китайского.
В данный момент Windows настроена на китайский язык по умолчанию.
Chrome у меня на японском, а Firefox — на английском.
После множества тестов я обнаружил странное поведение в именах групп.
Например, в разделе «Настройка» → «Текст» я установил:
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 и подожду один день, URL вернётся к /g/trust_level_0/messages/, и я смогу открыть страницу без проблем.
Если же я изменю значение на другое слово, например groups.default_names.trust_level_0 = Level 0, и подожду один день, URL останется без изменений. Если URL был на японском, он останется на японском; если на английском — останется на английском.
На данный момент я думаю, что просто верну все имена групп на английский язык, и это должно исправить проблему. Имена групп должны в точности совпадать с именами по умолчанию на английском языке, иначе URL не вернётся к английскому варианту.
Например, несколько дней назад я установил groups.default_names.admins как Admin, потому что забыл добавить букву «s» после Admin. Спустя несколько дней URL всё ещё остаётся на японском языке.
cylau1996
(Lau Chi Yung)
12.Май.2021 01:49:03
10
У меня точно такая же проблема. Эта ошибка существует уже некоторое время, за которое я обновлял Discourse несколько раз.
Я пробовал переключать локаль на английский и 中文 (TW), а также использовать Google Chrome и Firefox.
sam
(Sam Saffron)
12.Май.2021 02:02:37
11
Мы не можем воспроизвести эту проблему. Какие именно шаги необходимы для её возникновения?
hawm
(Hawm)
16.Май.2021 07:35:23
12
Со мной это происходит, когда я отключаю unicode usernames после того, как установил unicode-имя для группы.
cylau1996
(Lau Chi Yung)
24.Май.2021 03:35:04
13
Огромное спасибо! После включения поддержки юникодных имён пользователей моя проблема исчезла.