2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravelのバリデーションエラーメッセージを日本語にする方法

2
Last updated at Posted at 2021-02-15

Laravel5.5を使用してECサイトを作る勉強をしているのですが、その際にエラーメッセージを日本語仕様にするというのを行ったので今回はその時に行った事をこちらの記事に書いていこうと思います。

#日本語化しようと思った経緯
qiita.png
この様にphp artisan make:authを使用しログイン機能や会員登録を作成した際、会員登録画面、ログイン画面の各入力項目名が英語だったので「名前」「メールアドレス」「パスワード」の様に日本語に修正したが、エラーメッセージは英語で表示されているので、エラーメッセージも各入力項目名と同じく日本語で統一したかった為。
また、日本語化する際にどのファイルを編集したらエラーメッセージが日本語に出来るのかが当時解らず困った為。

#日本語化する為の手順

##日本語化する為のファイルをインストールする
こちらのサイトに記載されているコードを順番にターミナルに入力し、実行していきます。
https://readouble.com/laravel/5.5/ja/validation-php.html?header=%25E8%25AA%25AC%25E6%2598%258E

###手順1:日本語のエラーメッセージ用のディレクトリを作成し、そのディレクトリ以下に各エラーメッセージ用のphpファイルを作成する為のファイルをinstall-ja-lang.phpというファイルにコピーする。

ターミナル
php -r "copy('https://readouble.com/laravel/5.5/ja/install-ja-lang-files.php', 'install-ja-lang.php');"

コードの意味
https://readouble.com/laravel/5.5/ja/install-ja-lang-files.php
の中身をinstall-ja-lang.phpという名前のphpファイルにコピーする。
ファイルの中にあるコードの内容は日本語用ディレクトリの作成やそのそのディレクトリに各メッセージ内容が書かれたファイルを作成するといった物日本語化.png
install-ja-lang.phpはLaravelプロジェクトのルートディレクトリにコピーされる。

###手順2 install-ja-lang.phpを実行する。

ターミナル
php -f install-ja-lang.php

コードの意味
手順1で作成したinstall-ja-lang.phpを実行する。実行する事によりLaravelファイルのresources/lang/以下に、日本語化されたエラーメッセージなどが記載されたphpファイルを格納する「ja」というディレクトリが作成され、その中に各エラーメッセージの記載されたファイルが作成される。

###手順3 実行したinstall-ja-lang.phpを削除する

ターミナル
php -r "unlink('install-ja-lang.php');"

コードの意味
実行した後のinstall-ja-lang.phpがルートディレクトリに残ったままなので、install-ja-lang.phpを削除する

###手順4 config/app.phpを編集する
このままでは、エラーメッセージ等が日本語ではなく英語で表示されるので、ローカリゼーション機能というものを使って日本語で表示されるようにして行きます。

ローカリゼーションとは

Laravelのローカリゼーション機能はアプリケーションで多言語をサポートできるように、様々な言語の文字列を便利に取得できる方法を提供します。 言語の文字列はresources/langディレクトリ下のファイルに保存します。このディレクトリの中にアプリケーションでサポートする言語のディレクトリを設置します。
https://readouble.com/laravel/5.5/ja/localization.html?header=%25E3%2582%25A4%25E3%2583%25B3%25E3%2583%2588%25E3%2583%25AD%25E3%2583%2580%25E3%2582%25AF%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3 より引用

ざっくりと言うと様々な国の言葉に対応をするための機能の事

config/app.phpの

app.php
 'locale' => 'en',

というコードを

app.php
 'locale' => 'ja',

に編集する。
このコードが担う役割はこのプロジェクトでメインで使用する言語をどの国の言語にするかを設定するという物。

また、このコードの下に

app.php
'fallback_locale' => 'en',

というコードがあるがこちらは上記で設定した第一言語のファイルが見つからなかった場合の言語をどの国の言語にするかを設定するという物。
デフォルト第二言語は英語になっているので、第二言語を英語以外にしたい場合以外は設定を変更しなくてもいいと思います。

以上になります!

##補足

この手順以外にも

  1. resoure/lang以下にjaディレクトリを作成する
  • enディレクトリ以下にあるphpファイルをjaディレクトリにコピーし、その中に記述されているメッセージを英語の物から日本語の物に修正する
  • config/app.phpのlocale' => 'en',の箇所をlocale' => 'ja'
    に変更する

という方法でも、エラーメッセージを日本語に変更する事が出来ます。
ただ、既に日本語化された物が配布されているので、そちらをインストールして設定を変更した方が正確にメッセージの日本語化が出来るのではと思い、こちらの方法で実装致しました。

LGTMを押していただけると励みになります。
ここまで読んで頂き誠にありがとうございます!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?