ウェブログラム

実践しながらじっくり学ぶ、Webプログラム習得サイトです。自作サービスの公開までWeb開発を実践していきましょう!

Webrogram

自分のオリジナルサービスを作って運営しよう!

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

Laravel入門記事一覧はこちら webrogram.hatenadiary.jp

今回はLaravelの「バリデーションメッセージ」を日本語化する方法を紹介します。

Laravelではデフォルトで英語のエラーメッセージが表示されます。

イメージとしてはこんな感じ。

f:id:iku8:20180903233340p:plain

これを↓のように日本語化してやります。

f:id:iku8:20180903234755p:plain

では、初めましょう。

エラーメッセージが書かれている場所

まずは、エラーメッセージが書かれている場所ですが、以下になります。

resources/lang/en/validation.php

このファイルを覗いてみると。

    'required'             => 'The :attribute field is required.',

という記述がありました。どうやら未入力チェックのバリデーションメッセージはここなようです。

そして「:attribute」という部分に任意のパラメータ名が入るようです。 なのでファイルを少し編集してみましょう。

    'required'             => ':attributeが入力されていません',

これで未入力チェックのエラーについては日本語化できました。

しかしこのディレクトリは「resources/lang/en/」。

そう「en」、イングリッシュ用なんですね。 ここのファイルを日本語に無理やり編集するのはあまり良いお作法ではりません。

なので、日本語用のファイルを作成しましょう。

日本語用のエラーメッセージを作成する

いちから書くのは大変なので、「resources/lang/en/validation.php」をコピーして 「resources/lang/ja」ディレクトリを作り、同じファイル名で配置してあげましょう。

「resources/lang/ja/validation.php

コピーしたら、必要そうなエラーメッセージを日本語に直していきましょう。 私は必要になった時点でエラーメッセージを日本語に書き直していってます。

それも面倒な方は、すでに日本語化したファイルがあるのでそれを使うのも良いでしょう。 以下はLaravel5.5に対応しています。他のバージョンでも動きはしますが、バージョンによっては存在しないものメッセージもあるので、 その辺りは、プロジェクトに既に含まれているであろう「英語版」と見比べて、適宜自分で修正するのが良いでしょう。

gist.github.com

日本語用のファイルは出来ましたが、Laravelがデフォルトの設定のままだと、英語のファイルを見に行ってしまいます。

設定を修正し、デフォルトで日本語のファイルを見に行くようにしましょう。

日本語化のための設定

この設定はとても簡単で、

以下のファイルを

config/app.php

     'locale' => 'en',

     'locale' => 'ja',

と書き換えるだけです。

もう一度、エラーを起こしてみて下さい。 正しく日本語のファイルが読み込まれ、バリデーションメッセージが日本語になっていると思います。

今回はバリデーションメッセージの日本語化を紹介しました。

ウェブログラムではフォームリクエストというクラスを使った、バリデーションの方法を紹介していますので、 よかったら見てみて下さい。

webrogram.hatenadiary.jp