3

Rails アプリを 2.3.14 から 3.0.5 にアップグレード中です (3.1 から 3.2 への中間ステップ)。

既存のアプリにはすでに言語翻訳システムが組み込まれています。最終的には ruby​​/rails I18n を使用するように移行する可能性がありますが、現時点ではありません。

翻訳システムには、.../app/config/initializer で定義された初期化子があります。イニシャライザは .../app/config/messages.yml にある yaml ファイルをロードし、メッセージが参照されるテンプレートへのパスをキーとする新しいハッシュにメッセージを送信します。

たまたま、ApplicationController::Base.template は Rails 3 では機能しません。そのため、messages.yml ファイルを作り直して、メッセージが controller#action にキー付けされるようにしています。テンプレート パスを controller#action ページごとに変更するのは面倒なプロセスです。変更のたびにサーバーを再起動する必要がなければ、それほど面倒ではありません。

.../app/config/message.yml が変更されたときに、Rails に初期化子を再実行させる方法はありますか?

4

0 に答える 0