Impossibile aggiornare il testo per js.composer.error.post_length

Sto cercando di aggiornare il testo per js.composer.error.post_length. Sto riscontrando questo problema su 2.9 e 3.1.0.beta2, in produzione, staging e nel mio ambiente locale.

Sul frontend viene visualizzato [missing {{min}} value] sebbene il valore sia stato impostato.

Il log degli errori 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 Mi Piace

Quella stringa è stata modificata nel 2021. Utilizza %{count} invece di %{min} ed è stata convertita in una stringa pluralizzata (one, other).

Puoi correggere la tua stringa personalizzata andando su Personalizza → Testo:

  • Cerca “js.composer.error.post_length”
  • fai clic su “modifica”
  • fai clic su “ripristina modifiche” e conferma la domanda con “sì”
  • fai clic su “torna alla ricerca”
  • Cerca “js.composer.error.post_length”
  • Vedrai 2 risultati, personalizza entrambe le stringhe se lo desideri
4 Mi Piace

Mi chiedo, potremmo creare una gestione degli errori che ripieghi sull’inglese in questi casi e registri qualcosa?

3 Mi Piace

Per qualche motivo non sono riuscito a farlo funzionare, la finestra di dialogo di conferma non si apriva a causa dell’errore JS ‘get_attributes’, l’elemento della finestra di dialogo era null.

Ma poi ho attivato la modalità sicura, ho verificato se funzionava e tutto è stato aggiornato automaticamente. Ho disattivato la modalità sicura, sono tornato al mio tema e di nuovo, tutto funzionava come previsto.

Quindi la modalità sicura l’ha risolto, immagino. E non c’è più l’errore JS menzionato sopra. (Avrei dovuto provare prima con la modalità sicura, che delusione).

Grazie per il tuo aiuto!

2 Mi Piace