しおブログ言うてますけど

技術ブログ言うてますけど技術以外のことも発信すると思われ。RubyとかRuby on Railsとか生き方とかジャンルにこだわらず自分の好きなように。初心者なのでお手柔らかに。

Rails国際化(i18n)を簡単に導入する

Railsにはよくあるエラーメッセージがerrorsメソッドで呼び出される。 デフォルトの状態では英語での出力となっているため、日本語に対応させる必要がある。 簡単に日本語対応するには2つのステップで対応させることができる。(他にもやり方は色々あるが、自分がやりやすいやり方で紹介する)

ステップ1

$ wget https://raw.githubusercontent.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -P config/locales

ターミナルでこのコマンドを叩く。
コマンドのオプションに関してはLinuxの範囲になるので、詳しくは割愛するが、 wgetコマンド + URLを指定することによってそのURLのファイルをダウンロードすることができる。
実際にhttps://raw.githubusercontent.com/svenfuchs/rails-i18n/master/rails/locale/ja.ymlにアクセスしてみるとわかるが、i18nの日本語ymlファイルがある。
また、-Pオプションで保存先となるディレクトリを指定することができる。つまり、configディレクトリ内のlocalesディレクトリにja.yml ファイルがダウンロードされている。

---
ja:
  activerecord:
    errors:
      messages:
        record_invalid: 'バリデーションに失敗しました: %{errors}'
        restrict_dependent_destroy:
          has_one: "%{record}が存在しているので削除できません"
          has_many: "%{record}が存在しているので削除できません"
  date:
    abbr_day_names:
    - 日
    - 月
    - 火
    - 水
    - 木
    - 金
    - 土
    abbr_month_names:
    - 
    - 1月
    - 2月
    - 3月
    - 4月
    - 5月
    - 6月
    - 7月
    - 8月
    - 9月
    - 10月
    - 11月
    - 12月
    day_names:
    - 日曜日
    - 月曜日
    - 火曜日
    - 水曜日
    - 木曜日
    - 金曜日
    - 土曜日
and more...

詳しくは↓のページに色々書いてるので参考に。 www.atmarkit.co.jp

ステップ2

あとはデフォルトで日本語のコンテンツを使うようにアプリケーションの設定を変更する。 config/initializersディレクトリにlocale.rbというファイルを作って

Rails.application.config.i18n.default_locale = :ja

とすることで、Railsアプリケーションのエラーメッセージなどを日本語化することができる。