Ruby on Rails3でバリデートメッセージを日本語化

i18nという仕組みを使って日本語化。

{root}/config/application.rb

以下の記述を追加。

config.i18n.default_locale = :ja

{root}/config/locale/ja.yml

{root}/config/locale/ja.ymlを作成。項目名の日本語化はこんな感じ。

ja:
activerecord:
models:
user: ユーザー
attributes:
user:
name: 名前
mail: メールアドレス
pass: パスワード
mail: メールアドレス

エラーメッセージ本体の日本語化はこんな感じ。

(上からの続き)
errors:
messages:
blank: が入力されていません。
confirmation: が確認用のものと異なります。
too_short: "は%{count}文字以上で入力して下さい"
too_long: "は%{count}文字以下で入力して下さい"

フォームでnameを空にして送信し、バリデートすると、「名前が入力されていません」と出る。このままだと項目名とメッセージの間に空白が入るので、以下の行を追加

errors:
format: "%{attribute}%{message}"

項目のインデントに注意。ja->activerecord->errorsのところではなく、ja->errorsの箇所に記述する。バージョンは3.2.3で検証。