Help us understand the problem. What is going on with this article?

Rails で I18n を使って日本語化

More than 1 year has passed since last update.

作っているサービスが日本のみなので、アプリケーション全体の日本語化を企んだ時のメモです。

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

ja:
  activerecord:
    models:
      user: ユーザー
    attributes:
      user:
        id: ID
        created_at: 登録日時
        updated_at: 更新日時
        birthday: 生年月日
        email: メールアドレス
        salon_id: サロン
        password: パスワード

models: は、モデル名の翻訳で、attributes: は、モデルの attribute の翻訳になります。

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

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]

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

今回 API サーバーのため、ほとんど View ないため、View 用の辞書ファイルや呼び出しについては、
ふれてませんので別の機会にでもまとめます。

ネストしたモデルの場合の記載方法もまとめました。
I18n でネストしたモデルの属性名の対応

yutackall
女性のための無料まとめ読みアプリ - pool(https://itunes.apple.com/jp/app/id1087273941?mt=8)、スポーツニュースまとめ読みアプリ - スマスポ!(https://itunes.apple.com/jp/app/id1050558072?mt=8) を作ってる人
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした