環境
- Ruby 2.6.5
- Rails 6.0.0
- devise 4.7.3
日本語化の設定
アプリケーションでのエラーメッセージを、英語から日本語表示にするための設定をします。
言語設定
まず、application.rbを編集してconfig.i18n.default_locale = :ja
を追加します。
:ja
は日本語という意味です。
myappの記述は、自分のアプリケーション名と読み替えてください。
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
上記の記述を行わないと、日本語で反映されません。
Gemの導入
Gemの rails-i18n を導入します。
このGemを導入することによって、日本語に対応できるようになります。
gem 'rails-i18n'
Gemfileに記述後、bundle install
を忘れずに実行しましょう。
bundle install
これで完了です!!
と、言いたいところですが、今のままでは日本語化が不十分です。
ブラウザでエラーメッセージを確認すると、日本語化しきれていないのがわかるかと思います。
(サーバー起動中の場合は、再起動してから確認)
そこで、次のファイル作成が必要になってきます。
devise.ja.ymlの作成
以下のディレクトリに、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
├── devise.ja.yml
└── ja.yml
ja.ymlファイルを編集し、以下の様に記述してください。
モデル名とカラム名は、適宜自分のアプリケーションに合わせて変更しましょう。
ja:
activerecord:
attributes:
user:
nickname: ニックネーム
item:
description: 説明
price: 値段
以上でアプリケーションのエラーメッセージを日本語化する設定は完了になります。
誤った情報などありましたら、ご教示いただけると幸いです。
参考