Administrador -> Personalizar -> Texto comportándose mal

Esto ocurre cuando hay una anulación de traducción para una clave que anteriormente era una cadena traducible, pero que se convirtió en un Hash más tarde. Eso es exactamente lo que sucedió con chatbot.prompt.system.

Esto parece una regresión. Estoy bastante seguro de que esto solía funcionar en el pasado.

Puedo reproducir esto fácilmente con un archivo de localización como este:

en:
  foo: "this is foo"

Ve a Customize –> Text y anula “foo” con un valor diferente.

Luego, cambia el archivo de localización para que se vea así:

en:
  foo:
    basic: "Basic Foo"
    advanced: "Advanced Foo"

Visita Customize –> Text de nuevo y busca “foo”. Discourse registrará el siguiente error.

NoMethodError (undefined method `scan' for {:basic=>"Basic Foo", :advanced=>"Advanced Foo"}:Hash)
lib/i18n/i18n_interpolation_keys_finder.rb:6:in `find'
app/controllers/admin/site_texts_controller.rb:183:in `record_for'
app/controllers/admin/site_texts_controller.rb:249:in `block in find_translations'
app/controllers/admin/site_texts_controller.rb:234:in `each'
app/controllers/admin/site_texts_controller.rb:234:in `find_translations'
app/controllers/admin/site_texts_controller.rb:34:in `index'

Discourse no debería cargar anulaciones de traducción si no hay una cadena en inglés correspondiente.

4 Me gusta