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 なら別に気にしなくていいです。