2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

deviseの日本語対応

Posted at

deviseメッセージの問題点

deviseのセットアップを無事に完了して、ユーザーの登録、ログイン機能を実装して使用した後に気になることの1つにエラーメッセージなどが全て英語であることがあると思われます。そこで今回はdeviseのメッセージを日本語化する手順を紹介していきたいと思います。

また今回はdeviseの日本語対応に限定しています。Railsの日本語化対応の記事ではありませんのでご注意下さい。

devise-i18n gemを使うかどうか

deviseにはdevise-i18nというdeviseのメッセージを日本語化してくれるgemが存在します。そのgemを使うという選択肢がもちろんあるとは思うのですが、結局のところ自分が作っているアプリケーションによってメッセージの内容なども変わって来るため、メッセージの日本語化にgemを導入してコードを大きくするよりは、今回は自分が作っているアプリケーションで必要になる範囲で、コンパクトに実装していくので十分だと思います。

日本語メッセージを設定するymlファイルを作成する

まずはconfig/localesの下にすでにdevise.en.ymlというdeviseの英語メッセージを設定しているファイルがあるので、そちらと同じ階層に同じようにdevise.ja.ymlファイルを作成します。今回はこちらのファイルに日本語のメッセージを設定していきたいと思います。始めにdevise.en.ymlの内容を全てdevise.ja.ymlコピーして編集すると、設定しやすいと思います。

それでは実際にエラーメッセージを日本語にしていきます。ユーザー登録画面でメールアドレスとパスワードを空欄にして登録しようとすると、下の画像のようにエラーが表示されます。

スクリーンショット-2019-07-19-13.17.07-768x627.png

上の画像のエラーメッセージを日本語メッセージに変更します。devise.ja.ymlの最終行の、

devise.ja.yml
other: "%{count} errors prohibited this %{resource} from being saved:"

を次のように編集します。

devise.ja.yml
other: "%{count}個のエラーがあるため、ユーザーを保存出来ません。"

また、config/application.rbの末尾に

config/application.rb
config.i18n.default_locale = :ja

を追加してrails sコマンドででサーバーを再起動すると、

スクリーンショット-2019-07-19-13.45.44-768x198.png

このようにdeviseのメッセージが日本語に変換されました。後は同じ要領で変更したいdeviseのメッセージ文をdevise.ja.ymlの中で編集すれば解決できます。

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?