エラーメッセージを日本語で表示できないですかね?
デフォルトだと以下のように英語で表示されています。
このあたりを日本語化していきます。
具体的な手順を画像つきで解説しますね。
【前提】
エラーメッセージ等を日本語化させたい→結論:resources/langを変更
結論から話すとresources/lang以下のファイルを日本語のものにすればOKです。
デフォルトだと「en」になっているものを「ja」にしましょう。
↓デフォルト
日本語化対応された「auth.php」「pagination.php」「passwords.php」「validation.php」を配置してあげましょう。
GitHubで入手可能
以下のリポジトリに、各国に対応したエラーメッセージのファイルがあります。
https://github.com/Laravel-Lang/lang
日本語のファイルは「lang/locales/ja/」の中にあります。
これらをダウンロードして、既存のプロジェクトの「en」を置き換えましょう。
以下置き換えてみた感じです。
では、動作確認してみましょう。
1部まだ英語表記される....
確認したところ、以下のような感じで、passwordなど1部まだ英語表記されていました。
(登録画面)
ということで、いくつか変更を加えます。
✔ resources/lang/ja/validation.phpを変更
ファイルの末尾にある、attributeを以下のように変更してください。
'attributes' => [
'name' => '名前',
'email' => 'メールアドレス',
'password' => 'パスワード'
],
確認してみると、さきほどのpasswordなどが日本語で表示されていました。
しかし、まだ「Whoops! Something went wrong.」が表示されていますね。
こちらを直しましょう。
✔ 「Whoops! Something went wrong.」→resources/views/components/auth-validation-errors.blade.php
resources/views/components/auth-validation-errors.blade.phpを見てみましょう。
デフォルトでは以下のようになっています。
@props(['errors'])
@if ($errors->any())
<div {{ $attributes }}>
<div class="font-medium text-red-600">
{{ __('Whoops! Something went wrong.') }}
</div>
<ul class="mt-3 list-disc list-inside text-sm text-red-600">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
ここの「whoops..」を修正してあげます。
以下のようにします。
@props(['errors'])
@if ($errors->any())
<div {{ $attributes }}>
<div class="font-medium text-red-600">
{{ __('エラーの内容を確認してください。') }}
</div>
<ul class="mt-3 list-disc list-inside text-sm text-red-600">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
もう一度読み込むと、日本語になっていました。
ということで今回は以上です。