omachizura

仕事メモ、役に立ったスキルをまとめています。


Laravel5.3 認証時のエラーメッセージを日本語化する

Laravel5.3の認証時(特に新規ユーザ登録時)のエラーメッセージを日本語化したときのメモです。

エラーメッセージの日本語化

例えばメールアドレス(必須項目)を未入力の状態で新規ユーザ登録をしようとしても「The email field is required.」というエラーメッセージが表示されます。これをまずは日本語が表示されるようにします。

エラーメッセージはresource/lang/en/validation.phpから表示しています。日本語のエラーメッセージを使用するために、resource/lang/jaのフォルダを作成し、日本語のエラーメッセージファイル(validation.php)を作成します。

日本語のメッセージファイルを参照するように、app/config/app.phpを以下のように修正します。

// 'locale' => 'en',
'locale' => 'ja',

この状態でエラーメッセージは「emailは必須項目です。」のように、ja/validation.phpで定義したメッセージに変更することができます。

項目名称を変更

「emailは必須項目です。」の「email」を「メールアドレス」になるように変更します。ResisterController.phpのvalidatorを以下のように修正します。

//変更前
return Validator::make($data, [
    'name' => 'required|max:255',
    'email' => 'required|email|max:255|unique:users',
    'password' => 'required|min:6|confirmed',
]);

//変更後
$validator = Validator::make($data, [
    'name' => 'required|max:255',
    'email' => 'required|email|max:255|unique:users',
    'password' => 'required|min:6|confirmed',
]);
$validator->setAttributeNames(array(
    'name' => 'ユーザ名',
    'email' => 'メールアドレス',
    'password' => 'パスワード',
));

return $validator;

これでエラーメッセージが「メールアドレスは必須項目です。」となり、日本語化がされました。