No se puede actualizar el texto para js.composer.error.post_length

Estoy intentando actualizar el texto para js.composer.error.post_length. Experimentando esto en 2.9 y 3.1.0.beta2, en producción, staging y en mi entorno local.

En el frontend se muestra [missing {{min}} value] aunque el valor ha sido establecido.

El registro de errores dice:

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) ^^
Message

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'

Backtrace

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'

Env

HTTP HOSTS: 127.0.0.1:3000
2 Me gusta

Esa cadena se cambió en 2021. Utiliza %{count} en lugar de %{min} y se ha convertido en una cadena pluralizada (one, other).

Puedes arreglar tu cadena personalizada yendo a Personalizar → Texto:

  • Busca “js.composer.error.post_length”
  • haz clic en “editar”
  • haz clic en “revertir cambios” y confirma la pregunta con “sí”
  • haz clic en “volver a la búsqueda”
  • Busca “js.composer.error.post_length”
  • Verás 2 resultados, personaliza ambas cadenas si lo deseas.
4 Me gusta

Me pregunto si podríamos implementar un manejo de errores que recurra al inglés en estos casos y registre algo.

3 Me gusta

Por alguna razón, no pude hacer que esto funcionara, el cuadro de diálogo de confirmación no se abría debido a un error de JS ‘get_attributes’, el elemento del cuadro de diálogo era nulo.

Pero luego activé el modo seguro, verifiqué si funcionaba y todo se actualizó automáticamente. Desactivé el modo seguro, volví a mi tema y, de nuevo, todo funcionaba como se esperaba.

Así que el modo seguro lo arregló, supongo. Y ya no hay más errores de JS mencionados anteriormente. (Debería haberlo intentado primero con el modo seguro, smh).

¡Gracias por tu ayuda!

2 Me gusta