はじめに

railsはデフォルトでエラーメッセージなどの表示文字列は英語になっています。そこでローカライズ対応として日本語化する方法になります。

ローカライズ概要

railsではローカライズするために、config/localesディレクトリの中にyaml言語ファイルを作成(日本語の場合:ja.yml)し、yaml形式(シーケンスとマッピング)で対応する日本語を記述すると自動変換してくれるようになります。

日本語化対応

1.config/applicationファイルの編集

以下のコメントアウトを外し対応言語をjaとします

config.i18n.default_locale = :ja

2.config/locales/ja.ymlファイルを作成する

新規で作成し、手動で設定しても可能ですが、既にrailsのローカライズ対応済みのファイルがgithubで公開されているため、こちらを使用します。

https://github.com/svenfuchs/rails-i18n

日本語化ファイルはjaファイルになります
https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml

ja.ymlファイルを取得

$ curl -o config/locales/ja.yml -L https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml

これで日本語化完了です。ja.ymlの中身をみて、日本語文字列を別途変更したい場合は手動で変更してください。

エラーメッセージのja.ymlは以下のようになっています

errors:
    format: "%{attribute}%{message}"
    messages:
      accepted: を受諾してください。
      blank: を入力してください。
      present: は入力しないでください。
      confirmation: と%{attribute}の入力が一致しません。
      empty: を入力してください。
      equal_to: は%{count}にしてください。
      even: は偶数にしてください。
      exclusion: は予約されています。
      greater_than: は%{count}より大きい値にしてください。
      greater_than_or_equal_to: は%{count}以上の値にしてください。
      inclusion: は一覧にありません。
      invalid: は不正な値です。
      less_than: は%{count}より小さい値にしてください。
      less_than_or_equal_to: は%{count}以下の値にしてください。
      not_a_number: は数値で入力してください。
      not_an_integer: は整数で入力してください。
      odd: は奇数にしてください。
      record_invalid: バリデーションに失敗しました。 %{errors}
      restrict_dependent_destroy: "%{record}が存在しているので削除できません。"
      taken: はすでに存在します。
      too_long: は%{count}文字以内で入力してください。
      too_short: は%{count}文字以上で入力してください。
      wrong_length: は%{count}文字で入力してください。
      other_than: は%{count}以外の値にしてください。
    template:
      body: 次の項目を確認してください。
      header:
        one: "%{model}にエラーが発生しました。"
        other: "%{model}に%{count}個のエラーが発生しました。"

その他おすすめの備忘録

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>