Не удалось обновить текст для js.composer.error.post_length

Я пытаюсь обновить текст для js.composer.error.post_length. Проблема возникает в версиях 2.9 и 3.1.0.beta2 на продакшене, стейджинге и в локальной среде.

На фронтенде отображается [missing {{min}} value], хотя значение уже установлено.

В логах ошибок указано:

NoMethodError (undefined method `scan' for {:one=>"Post must be at least %{count} character", :other=>"Post must be at least %{count} characters"}:Hash keys = text.scan(pattern) ^^
Сообщение

NoMethodError (undefined method `scan' for {:one=>"Post must be at least %{count} character", :other=>"Post must be at least %{count} characters"}:Hash

    keys = text.scan(pattern)
               ^^^^^)
lib/i18n/i18n_interpolation_keys_finder.rb:6:in `find'
app/models/translation_override.rb:123:in `check_interpolation_keys'
app/models/translation_override.rb:64: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'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/missing_avatars.rb:22:in `call'
lib/middleware/turbo_dev.rb:31:in `call'

Стек вызовов

lib/i18n/i18n_interpolation_keys_finder.rb:6:in `find'
app/models/translation_override.rb:123:in `check_interpolation_keys'
activesupport (7.0.4) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.4) lib/active_support/callbacks.rb:199:in `block (2 levels) in halting'
activesupport (7.0.4) lib/active_support/callbacks.rb:687:in `block (2 levels) in default_terminator'
activesupport (7.0.4) lib/active_support/callbacks.rb:686:in `catch'
activesupport (7.0.4) lib/active_support/callbacks.rb:686:in `block in default_terminator'
activesupport (7.0.4) lib/active_support/callbacks.rb:200:in `block in halting'
activesupport (7.0.4) lib/active_support/callbacks.rb:595:in `block in invoke_before'
activesupport (7.0.4) lib/active_support/callbacks.rb:595:in `each'

Окружение

HTTP HOSTS: 127.0.0.1:3000

Эта строка была изменена обратно в 2021 году. Теперь в ней используется %{count} вместо %{min}, и она преобразована в строку с множественным числом (one, other).

Вы можете исправить свою пользовательскую строку, перейдя в Настроить → Текст:

  • Найдите “js.composer.error.post_length”
  • Нажмите “изменить”
  • Нажмите “отменить изменения” и подтвердите действие, выбрав “да”
  • Нажмите “вернуться к поиску”
  • Найдите “js.composer.error.post_length”
  • Вы увидите 2 результата; при желании настройте обе строки

Интересно, можно ли реализовать обработку ошибок с возвратом к английскому языку в таких случаях и записью соответствующего лога?

По какой-то причине у меня не получилось заставить это работать: окно подтверждения не открывалось из-за ошибки JS ‘get_attributes’ — элемент диалога был null.

Но потом я включил безопасный режим, проверил, работает ли, и всё обновилось автоматически. Я отключил безопасный режим, вернулся к своей теме, и снова всё работало как задумано.

Похоже, безопасный режим исправил проблему. И вышеупомянутой ошибки JS больше нет. (Надо было сразу попробовать с безопасным режимом, эх).

Спасибо за помощь!