Laravel初学者です。
オリジナルアプリを作成しているのでその過程を記事にしています。
理解が曖昧なところも多いため、ご指摘等ありましたらご連絡いただければ幸いです。
今回はエラーメッセージの日本語化です。
先人の方々のおかげですごい簡単でした。
他にも方法はたくさんあるみたいですね。
環境
Version | |
---|---|
PHP | 7.4.14 |
Laravel | 8.24.0 |
mysql | 8.0.23 |
docker | 20.10.2 |
docker-compose | 1.27.4 |
エラーメッセージファイル作成
エラーメッセージはresources/lang
配下のen
ディレクトリで定義されています。
このen
ディレクトリを中身そのままコピーします。
ディレクトリ名はja
にしましょう。
上記のような配置になると思います。
日本語に翻訳
ja
ディレクトリ内の4つのファイルを見てみると中身は
<?php
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
'accepted' => 'The :attribute must be accepted.',
'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.',
'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
'array' => 'The :attribute must be an array.',
'before' => 'The :attribute must be a date before :date.',
'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
'between' => [
'numeric' => 'The :attribute must be between :min and :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.',
'array' => 'The :attribute must have between :min and :max items.',
],
//省略
こんな感じになっていると思います。
=>
の左側がバリデーションのルール、右側が引っかかった場合のメッセージです。
読める人はこれ全部翻訳して直せばいいんですけど量も多いので大変です。
なので有志の方が翻訳してくれているものを使わせて頂きます。
私はこの方のgithubを使わせて頂きました。
ありがとうございます。
githubにアクセスすると
上記のように4つのファイルがあると思います。
これを開き
このソースコードをコピーし、自分のja
ディレクトリのコピーしたファイルと同じ名前のファイルに上書きします。
4つのファイル同じように貼り付けしましょう。
自分でオリジナルの文言にしたい場合は変更してもOKです。
で、この状態だと不完全で
passwordは8文字以上にしてください
とか
nameは必須です
みたいに中途半端な日本語になります。
なのでvalidation.php
に追記します。
//~省略
'attributes' => [],
上記の部分を
'attributes' => [
'name' => 'ユーザー名',
'email' => 'メールアドレス',
'password' => 'パスワード'
],
上記のように変更します。
これはテキストフィールドのname属性を日本語に変えているので、プロジェクトによって変えましょう。
例えばユーザー名
じゃなくてニックネーム
とかにしたかったらそのように編集します。
言語ディレクトリを変更
config/app.php
を開きましょう。
'locale' => 'en',
上記のlocale
を
'locale' => 'ja',
上記のようにja
にすることでja
のディレクトリを使う設定に変わります。
以上です。