railsでdeviseプラグイン使用時、エラーメッセージを日本語化する
Deviseを使用しているとサインアップの内容に誤りがあった場合、以下のようなエラーメッセージを出力してくれる。
「2 errors prohibited this user from being saved:」は簡単に修正できる。
/config/locales/devise.en.ymlを以下の様に編集する。
errors: messages: already_confirmed: "was already confirmed, please try signing in" confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one" expired: "has expired, please request a new one" not_found: "not found" not_locked: "was not locked" not_saved: #one: "1 error prohibited this %{resource} from being saved:" one: "1つのエラーがあります。修正して再度送信して下さい。:" #other: "%{count} errors prohibited this %{resource} from being saved:" other: "%{count}のエラーがあります。修正して再度送信して下さい。"
このように修正すると先ほどのメッセージが日本語化される。
問題は
・Email can't be blank
・Password can't be blank
の部分。
文書内検索をしてもヒットする件数は0。
どうしたものかとGoogleで検索していると、どうやらActiveRecodeが自動で出力しているということだった。
ということで先ほどのファイルに以下を追加してどうなるか検証。
errors: messages: already_confirmed: "was already confirmed, please try signing in" confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one" expired: "has expired, please request a new one" not_found: "not found" not_locked: "was not locked" not_saved: one: "1つのエラーがあります。修正して再度送信して下さい。:" other: "%{count}のエラーがあります。修正して再度送信して下さい。" taken: "は既に使用されています。" blank: "が入力されていません。" too_short: "は%{count}文字以上に設定して下さい。" too_long: "は%{count}文字以下に設定して下さい。" invalid: "は有効でありません。" confirmation: "が内容とあっていません。"
見事成功。
しかし、EmailとかPaswordConfirmationとか文頭が英語で出てしまう。
まぁ、いいか。。。
■gaku様の一言
結構有益な情報じゃね?
Googleで検索しても英語文献しか出てこないようなのを中心にUPしていこうと思います(´・ω・`)