管理者 -> カスタマイズ -> テキストの表示がおかしい

これは、以前は翻訳可能な文字列だったキーに対して翻訳の上書きが存在し、その後ハッシュに変換された場合に発生します。これはまさに chatbot.prompt.system で発生したことです。

これはリグレッションのように思えます。以前は機能していたと確信しています。

次のようなロケールファイルで簡単に再現できます。

en:
  foo: "this is foo"

「カスタマイズ」->「テキスト」に移動し、「foo」を別の値で上書きします。

次に、ロケールファイルを次のように変更します。

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

再度「カスタマイズ」->「テキスト」にアクセスし、「foo」を検索します。Discourse は次のエラーをログに記録します。

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 は翻訳の上書きを読み込むべきではありません。

「いいね!」 4