config/locales/ja.ymlなどの言語ファイルの文字列に、変数を渡して展開して欲しいときの書き方。
# config/locales/ja.yml
ja:
greet:
morning: "おはよウナギ!%{name}さん"
noon: "こんにちワン!%{name}さん"
evening: "こんばんワニ!%{name}さん"
# usage
t "greet.morning", :name => "唯" # おはよウナギ!唯さん
t "greet.morning", :name => "澪" # こんにちワン!澪さん
t "greet.morning", :name => "律" # こんばんワニ!律さん
%{name}で定義して、ハッシュで渡せばよいです。
ただし、:defaultと:scopeという名前はつかえませんので、それ以外で定義します。
:defaultは未定義の場合に返す文字列を指定し、:scopeは定義のネストを指定するのに使われるためです。
少し前のバージョンだと、{{name}}という定義だったようですが、%{name}というフォーマットに変わったそうです。Rails 3.1 なら別に気にしなくていいです。