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 に初期化子を再実行させる方法はありますか?