もふもふ技術部

IT技術系mofmofメディア

【Rails】I18nを使った日本語化

Railsで日本語化をするとき、「あれどうやるんだっけ」と意外と忘れてしまうこともあると思います。
今回はそんな日本語化の話をしたいと思います!

事前準備

config/application.rb に以下の設定を追加します。

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

ファイルを設置する

雛形ファイルを持ってくる

日本語の雛形ファイルは以下を使うのがおおすすめです。
バリデーションエラーなどで使用する文言があらかじめ準備されています。
config/locales/ja.yml として設置しましょう。

github.com

モデルの日本語ファイルを別で設置する

config/locales/ja.yml に追記していく形でもよいですが、モデル数やカラム数が増えていくと管理が大変になるので別のファイルにしましょう。

config/locales/models/ja.yml または config/locales/models/user/ja.yml

ja:
  activerecord:
    attributes:
      user:
        name: 名前
        email: メールアドレス
Formオブジェクトを使用している場合

Formオブジェクトを使用している場合は、activerecord ではなく、 activemodel を使用することに注意しましょう。

app/forms/sign_in_form.rb を以下のように定義している場合

class SignInForm
  include ActiveModel::Model
  include ActiveModel::Attributes

  attribute :email, :string
  attribute :password, :string
end

config/locales/forms/ja.yml または config/locales/forms/sign_in_form/ja.yml

ja:
  activemodel:
    attributes:
      sign_in_form:
        email: メールアドレス
        password: パスワード
enumを使用している場合

以下の記事を参考にしてみてください。

【日本語対応あり】Railsでenumを使う - もふもふ技術部

終わり

雛形ファイルの場所ってついつい忘れがちになりますよね!