0
0

More than 3 years have passed since last update.

Ruby on Railsでエラーメッセージを日本語化する

Last updated at Posted at 2021-03-27

環境

  • Ruby 2.6.5
  • Rails 6.0.0
  • devise 4.7.3

日本語化の設定

アプリケーションでのエラーメッセージを、英語から日本語表示にするための設定をします。

言語設定

まず、application.rbを編集してconfig.i18n.default_locale = :jaを追加します。
:jaは日本語という意味です。
myappの記述は、自分のアプリケーション名と読み替えてください。

config/application.rb
module myapp
  class Application < Rails::Application
    config.load_defaults 6.0

    config.i18n.default_locale = :ja  # 追加

    config.generators do |g|
      g.stylesheets false
      g.javascripts false
      g.helper false
      g.test_framework false
    end
  end
end

:exclamation:上記の記述を行わないと、日本語で反映されません。

Gemの導入

Gemの rails-i18n を導入します。
このGemを導入することによって、日本語に対応できるようになります。

Gemfile
gem 'rails-i18n'

Gemfileに記述後、bundle installを忘れずに実行しましょう。

ターミナル
bundle install

これで完了です!!
と、言いたいところですが、今のままでは日本語化が不十分です。
ブラウザでエラーメッセージを確認すると、日本語化しきれていないのがわかるかと思います。
(サーバー起動中の場合は、再起動してから確認)
そこで、次のファイル作成が必要になってきます。

devise.ja.ymlの作成

以下のディレクトリに、devise.ja.ymlファイルを作成します。

config/locales/devise.ja.yml
config
└── locales
    └── devise.ja.yml

作成したファイルに、以下のサイトからコードを丸コピして貼り付けてください。
devise.ja.yml

ブラウザで確認すると、deviseにて設定されているカラム(emailやpassword等)は日本語化されているはずです。
しかし、Gemのrails-i18nやdevise.ja.ymlに含まれない日本語、つまり自分で追加したカラム(nickname等)は英語で表示されてしまいます。
カラムを追加していたら、次のファイルも作成しましょう。

ja.ymlの作成

devise.ja.ymlファイルと同様で、localesディレクトリにja.ymlファイルを作成します。

config/locales/ja.yml
config
└── locales
    ├── devise.ja.yml
    └── ja.yml

ja.ymlファイルを編集し、以下の様に記述してください。
モデル名とカラム名は、適宜自分のアプリケーションに合わせて変更しましょう。

config/locales/ja.yml
ja:
  activerecord:
    attributes:
      user:
        nickname: ニックネーム
      item:
        description: 説明
        price: 値段

以上でアプリケーションのエラーメッセージを日本語化する設定は完了になります。
誤った情報などありましたら、ご教示いただけると幸いです。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0