プログラミングのメモ帳

自分のメモとして残したいアウトプット

Railsのメッセージを日本語化する

Railsで表示されるメッセージ(エラーや曜日等)はもちろんデフォルトで英語です。
これらのRailsで用意されているメッセージを日本語化する。
I18nRails自体に同梱されているのでGemfileに追記は不要。

流れとしては
1. locale: ja 用の翻訳ファイルをダウンロードする(または作成)
2. デフォルトのlocaleをjaに設定する。

日本語翻訳ファイルを手に入れる

翻訳の元となるファイルをconfig/localesに配置する必要があります。
自分で作成しても良いですが既に作成されたものがあるので
ダウンロードしてconfi/localesに配置しましょう。

DL先:https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml

デフォルトのlocaleを :ja に設定する

config/initializer/locale.rbを作成し以下に変更

I18n.config.available_locales = [:en, :ja]  
I18n.default_locale = :ja  

localesのホワイトリストを:enと:ja、デフォルトを:jaに設定

Active Recordに翻訳ファイルを対応させる

以下Rails Guideに掲載されているサンプルコード

en:
  activerecord:
    models:
      user: Dude
    attributes:
      user:
        login: "Handle"
      # "login"属性は"Handle"という語に翻訳される

ActiveRecordに対応させるには上記のように
modelsにテーブル名、attributes以下にカラム名の翻訳情報を書く。

model_name.humanメソッド、human_attribute_nameメソッドを使って
それぞれの翻訳情報にアクセスできる

User.model_name.human #=>"Dude"
User.human_attribute_name(:login) #=>"Handle"

参考リンク

Rails国際化 (I18n) API - Rails ガイド