これは、以前は翻訳可能な文字列だったキーに対して翻訳の上書きが存在し、その後ハッシュに変換された場合に発生します。これはまさに 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 は翻訳の上書きを読み込むべきではありません。