Railsのメッセージを日本語化する
Railsで表示されるメッセージ(エラーや曜日等)はもちろんデフォルトで英語です。
これらのRailsで用意されているメッセージを日本語化する。
I18nはRails自体に同梱されているので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"