Não é possível atualizar o texto para js.composer.error.post_length

Estou tentando atualizar o texto para js.composer.error.post_length. Estou tendo isso nas versões 2.9 e 3.1.0.beta2, em produção, staging e no meu ambiente local.

No FE, é exibido [missing {{min}} value] embora o valor tenha sido definido.

O log de erro diz:

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 curtidas

Essa string foi alterada em 2021. Ela usa %{count} em vez de %{min} e foi convertida em uma string pluralizada (one, other).

Você pode corrigir sua string personalizada acessando Personalizar → Texto:

  • Procure por “js.composer.error.post_length”
  • clique em “editar”
  • clique em “reverter alterações” e confirme a pergunta com “sim”
  • clique em “voltar para a pesquisa”
  • Procure por “js.composer.error.post_length”
  • Você verá 2 resultados, personalize ambas as strings se desejar
4 curtidas

Eu me pergunto, poderíamos criar um tratamento de erros que retorne para o inglês nesses casos e registre algo?

3 curtidas

Por algum motivo, não consegui fazer isso funcionar, a caixa de diálogo de confirmação não estava abrindo devido a um erro de JS ‘get_attributes’, o elemento de diálogo era nulo.

Mas então eu ativei o modo de segurança, verifiquei se estava funcionando e tudo foi atualizado automaticamente. Desativei o modo de segurança, voltei para o meu tema e, novamente, tudo estava funcionando como pretendido.

Então o modo de segurança corrigiu isso, eu acho. E não há mais erro de JS mencionado acima. (Deveria ter tentado com o modo de segurança em primeiro lugar, aff).

Obrigado pela sua ajuda!

2 curtidas