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

Laravelのエラーメッセージを日本語化したい。
英語は苦手なので、こんなのが来ると諦めの気持ち多めになります。
<img width="516" alt="スクリーンショット 2020-04-07 23.11.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596140/f3bf9c9a-aced-28bd-7bbd-f8fea67dfcb5.png">

##Laravelの言語ファイル
Laravelには言語ファイルが標準であるそうです。ローカリゼーション機能というらしいです。
ここに言語ファイルがあります。
<img width="164" alt="スクリーンショット 2020-04-07 23.16.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596140/69e56666-40fa-2629-ed15-032fdf93beb1.png">
ただデフォルトではenしかありません。
このenフォルダを丸々コピーして、フォルダ名をjaに変え、langフォルダ内に置いておきます。
<img width="189" alt="スクリーンショット 2020-04-07 23.19.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596140/acebd2fb-4981-e6a0-1cf2-e6fab040978a.png">

##ロケール設定

```resources/lang/ja/validation.php
|--------------------------------------------------------------------------
    | Application Locale Configuration
    |--------------------------------------------------------------------------
    |
    | The application locale determines the default locale that will be used
    | by the translation service provider. You are free to set this value
    | to any of the locales which will be supported by the application.
    |
    */

    'locale' => 'en',

    /*
    |--------------------------------------------------------------------------
    | Application Fallback Locale
    |--------------------------------------------------------------------------
    |
    | The fallback locale determines the locale to use when the current one
    | is not available. You may change the value to correspond to any of
    | the language folders that are provided through your application.
    |
    */

    'fallback_locale' => 'en',
```
上記の```'locale' => 'en'```を、
```ja```に変えます。

そして先ほどコピーしたファイルの```validation.php```ファイルを、力技で日本語にしていきます。

<img width="621" alt="スクリーンショット 2020-04-07 23.22.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596140/0f80e7c7-be44-e36f-dca6-42ba532566e3.png">
めっちゃ多い。まだある。
これを一つ一つ日本語化していくのは大変。

「この場合のこのバリデーションエラーの時にはこれを表示！」という時も変更可能だそうです。
公式ページにも書いてありました。
>多くの場合、Validatorに直接カスタムメッセージを渡すよりは言語ファイルに指定したいですよね。ならば>resources/lang/xx/validation.php言語ファイルのcustom配列にメッセージを追加してください。

```resources/lang/ja/validation.php
    |--------------------------------------------------------------------------
    | Custom Validation Language Lines
    |--------------------------------------------------------------------------
    |
    | Here you may specify custom validation messages for attributes using the
    | convention "attribute.rule" to name the lines. This makes it quick to
    | specify a specific custom language line for a given attribute rule.
    |
    */

    'custom' => [
        'attribute-name' => [
            'rule-name' => 'custom-message',
        ],
    ],
```

公式ページにはこんな感じで例が書いてあります。

```
'custom' => [
    'email' => [
        'required' => 'We need to know your e-mail address!',
    ],
],
```
これを参考に、試しにjaファイル内のvalidation.phpファイルのところに、こんな感じで書いてエラーを出してみます。配列のキーはinputタグのname属性っぽいです。

```resources/lang/ja/validation.php
'custom' => [
        'email' => [
            'required' => 'メールアドレスを入力してください！',
            'email' => '正式なメールアドレスを入力してください！',
        ],
        'nickname' => [
            'required' => 'ユーザー名を入力してください！',
            'unique' => '入力されたユーザー名は既に使用されています！',
            ],
        'occupation' => [
            'required' => '職種を選択してください！',
            ],
    ],
```
<img width="343" alt="スクリーンショット 2020-04-07 23.56.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596140/3b47929d-d921-72c5-8746-2c18bb59eea0.png">
なんか余計なものも混じってますが、引き続き日本語化はできそうなので、一応完了という事で。

今回はこちらのサイト様で勉強させていただきました。
[Laravelのvalidationメソッドでバリデーションを実装する入門編（日本語エラーメッセージ付き）](https://www.ritolab.com/entry/40)
[Laravel 5.5 バリデーション](https://readouble.com/laravel/5.5/ja/validation.html#rule-max)
ありがとうございました。