Я обновился несколько дней назад. После обновления возникла проблема.
Если «локаль по умолчанию» — английский, проблем нет. Всплывающее сообщение отображается корректно, но в других языках возникают ошибки.
Я не могу изменить некоторые тексты, связанные с разделом чата. Кстати, я пробовал, и в других частях изменения применяются без проблем. Не уверен, связана ли эта проблема только с чатом или есть и другие области.
Проблема возникает независимо от того, обновлялся ли я через интерфейс или с помощью команды.
Сегодня я попробовал снова. Я удалил всё и выполнил чистую установку.
У меня чистая установка, без установленных плагинов или компонентов.
Я только что проверил это на своём тестовом сайте и смог воспроизвести проблему. Я не обновлял свой тестовый сайт некоторое время, и в версии f19044af6a всё работало нормально, но обновление до последней версии 39be3cb619 привело к той же ошибке, о которой сообщалось.
При переходе в /admin/customize/site_texts и попытке отредактировать js.chat.retention_reminders.dm теперь возникает ошибка 500. В логах зафиксировано следующее:
Сообщение (4 зафиксированных копии)
NoMethodError (неопределённый метод `scan' для {:one=>"Personal chat history is retained for %{count} day.", :other=>"Personal chat history is retained for %{count} days."}:Hash
keys = text.scan(pattern)
^^^^^)
lib/i18n/i18n_interpolation_keys_finder.rb:6:in `find'
app/models/translation_override.rb:124:in `check_interpolation_keys'
app/models/translation_override.rb:65:in `upsert!'
app/controllers/admin/site_texts_controller.rb:88:in `update'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:369:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Стек вызовов
lib/i18n/i18n_interpolation_keys_finder.rb:6:in `find'
app/models/translation_override.rb:124:in `check_interpolation_keys'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:199:in `block (2 levels) in halting'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:687:in `block (2 levels) in default_terminator'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:686:in `catch'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:686:in `block in default_terminator'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:200:in `block in halting'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:595:in `block in invoke_before'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:595:in `each'
Я думаю, это немного отличается от того, что указано по ссылке, которую вы упомянули. Проблема возникает, если ваш локаль по умолчанию не английский, и вы меняете значение «chat dm retention days» с 0 на x дней. Кроме того, упомянутое вами решение не работает: вы не можете изменить текст (js.chat.retention_reminders.dm) даже в безопасном режиме. При попытке изменения возникает ошибка 500.
Я попробовал несколько способов, но не смог сбросить настройку и вернуться в систему, чтобы изменить её вручную. При проверке сейчас текст вернулся к значению по умолчанию, но с отображением сырой переменной (так что опция «откатить» недоступна), а попытка редактирования вручную вызывает ошибку 500. Я также попробовал обходной путь в безопасном режиме, описанный в другой теме, но, похоже, это не помогло.
Поиск js.chat.retention_reminders.dm в локали English (UK) даёт три варианта, а в Español — только два.