if it does't challenge you, it can't change you

RubyのWebエンジニアやってます。主にRuby on Railsのことで勉強になったこと書いていきます。

バリデーションの日本語表示の仕方

1. 辞書ファイルをダウンロード

まずプロジェクトのトップで下記コマンドを実行して、辞書ファイルをダウンロード。プロジェクトのトップとはアプリ名がsampleであれば「:~/workspace/sample (master) $  」のようにディレクトリを移動してからという意味

# 日本語のテンプレートをDL
wget https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -P config/locales/

 

2.モデル用の辞書ファイルを分割して作成

そうするとconfig/locales/に「ja.yml」というファイルが作成されているのがわかる。
このファイルは長いので管理が大変になるため、モデル用のファイルはconfig/locales/下に別で作成する。

 

ファイル構成例

config/locales
         ├── en.yml
         ├── ja.yml
         └── model.ja.yml

 

3. ファイルに辞書を記載していく。

---
ja: activerecord: models: contact: お問い合わせ attributes: contact: name: お名前 email: メールアドレス content: お問い合わせ内容

※このときインデントが少しずれているだけで読み込まれないので注意。
上記だとモデルcontactの属性値の辞書を記している。

 

4. しっかり読み込ませる

辞書が完成したら、このファイルは自動では読み込まれないので、config/application.rb に下記を追加して、起動時に読み込まれるようにしておく。

config.i18n.default_locale = :ja

 

これで Rails を起動し直すと、validates とかのエラーメッセージが日本語化されている