Admin -0; Personnaliser -0; Texte se comportant mal

Cela se produit lorsqu’il existe une substitution de traduction pour une clé qui était auparavant une chaîne traduisible, mais qui a été convertie en Hash ultérieurement. C’est exactement ce qui s’est produit avec chatbot.prompt.system.

Cela semble être une régression. Je suis à peu près sûr que cela fonctionnait auparavant.

Je peux facilement reproduire cela avec un fichier de locale comme celui-ci :

en:
  foo: "this is foo"

Allez dans Personnaliser –> Texte et remplacez “foo” par une valeur différente.

Ensuite, modifiez le fichier de locale pour qu’il ressemble à ceci :

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

Visitez à nouveau Personnaliser –> Texte et recherchez “foo”. Discourse enregistrera l’erreur suivante.

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 ne devrait pas charger les substitutions de traduction s’il n’y a pas de chaîne anglaise correspondante.

4 « J'aime »