作っているサービスが日本のみなので、アプリケーション全体の日本語化を企んだ時のメモです。
Rails の I18n を使って日本語化しました。
localeの言語設定変更
config/application.rb
を下記に変更する
config.i18n.default_locale = :ja
デフォルトだと、:de
でコメントアウトされているので、:ja
に変更してアンコメント
辞書ファイルダウンロード
I18n の辞書ファイルを一から全て書き出すと大量になってしまうので、
テンプレートを GitHub から下記コマンドでダウンロードして、プロジェクトのファイルを上書きしておく
辞書ファイル置き場は config/locales/
プロジェクトのトップで下記コマンドを実行
# 英語のテンプレートをDL
wget https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/en.yml -P config/locales/
```
```
# 日本語のテンプレートをDL
wget https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -P config/locales/
```
## モデル用の辞書ファイルを分割して作成
ダウンロードした辞書ファイルにそのまま書いてもいいんだけど、ファイルが長くなりすぎて管理しづらいので、
モデル用のファイルは別で作成する
ファイル構成例
```
config/locales
├── en.yml
├── ja.yml
└── models
└── ja.yml
```
config/locales/models/ja.yml
```yaml
ja:
activerecord:
models:
user: ユーザー
attributes:
user:
id: ID
created_at: 登録日時
updated_at: 更新日時
birthday: 生年月日
email: メールアドレス
salon_id: サロン
password: パスワード
```
`models:` は、モデル名の翻訳で、`attributes:` は、モデルの attribute の翻訳になります。
ただし、このファイルは自動では読み込まれないので、`config/application.rb` に下記を追加して、
起動時に読み込まれるようにしておく。
``` ruby
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
```
これで Rails を起動し直すと、validates とかのエラーメッセージが日本語化されている
今回 API サーバーのため、ほとんど View ないため、View 用の辞書ファイルや呼び出しについては、
ふれてませんので別の機会にでもまとめます。
ネストしたモデルの場合の記載方法もまとめました。
[I18n でネストしたモデルの属性名の対応](http://qiita.com/yutackall/items/9f349101aaefce6043fb)