Laravel4でバリデーションメッセージの日本語化

今日は、Laravel4でバリデーションのエラーメッセージを日本語に変換するための方法を調べてみたいと思います。

1. 前回の『Laravelの認証設定(その1)』でユーザー登録するときに、入力値がバリデーションルール外なら、エラー表示がされるのですが、下記のように英語表記になっています。

laravel4_048

2. そこで、そのエラーメッセージを日本語に変換したいと思います。まず、lang/jaフォルダ内のvalidation.phpファイルを開きます。※jaフォルダを作成していない方は、enフォルダをそのまま(中のファイルごと)コピーしてフォルダ名をjaに変更してください。※Laravel4の初期設定参照。

laravel4/app/lang/ja/validation.php

<?php
return array(
"accepted" => "The :attribute must be accepted.",
 "active_url" => "The :attribute is not a valid URL.",
 "after" => "The :attribute must be a date after :date.",
 "alpha" => "The :attribute may only contain letters.",
 "alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.",
 "alpha_num" => "The :attribute may only contain letters and numbers.",
 "before" => "The :attribute must be a date before :date.",
 "between" => array(
 "numeric" => "The :attribute must be between :min - :max.",
 "file" => "The :attribute must be between :min - :max kilobytes.",
 "string" => "The :attribute must be between :min - :max characters.",
 ),
 "confirmed" => "The :attribute confirmation does not match.",
 "date" => "The :attribute is not a valid date.",
 "date_format" => "The :attribute does not match the format :format.",
 "different" => "The :attribute and :other must be different.",
 "digits" => "The :attribute must be :digits digits.",
 "digits_between" => "The :attribute must be between :min and :max digits.",
 "email" => "The :attribute format is invalid.",
 "exists" => "The selected :attribute is invalid.",
 "image" => "The :attribute must be an image.",
 "in" => "The selected :attribute is invalid.",
 "integer" => "The :attribute must be an integer.",
 "ip" => "The :attribute must be a valid IP address.",
 "max" => array(
 "numeric" => "The :attribute may not be greater than :max.",
 "file" => "The :attribute may not be greater than :max kilobytes.",
 "string" => "The :attribute may not be greater than :max characters.",
 ),
 "mimes" => "The :attribute must be a file of type: :values.",
 "min" => array(
 "numeric" => "The :attribute must be at least :min.",
 "file" => "The :attribute must be at least :min kilobytes.",
 "string" => "The :attribute must be at least :min characters.",
 ),
 "not_in" => "The selected :attribute is invalid.",
 "numeric" => "The :attribute must be a number.",
 "regex" => "The :attribute format is invalid.",
 "required" => "The :attribute field is required.",
 "required_with" => "The :attribute field is required when :values is present.",
 "required_without" => "The :attribute field is required when :values is not present.",
 "same" => "The :attribute and :other must match.",
 "size" => array(
 "numeric" => "The :attribute must be :size.",
 "file" => "The :attribute must be :size kilobytes.",
 "string" => "The :attribute must be :size characters.",
 ),
 "unique" => "The :attribute has already been taken.",
 "url" => "The :attribute format is invalid.",

'custom' => array(),

'attributes' => array(),
);

3. それでは、まず上記の55行目、実際のファイルでは、90行目以下を下記のように修正します。これで、プレースホルダー文字の:attributeが日本語に変換されます。

'attributes' => array(
 'username'=>'ユーザー名',
 'email'=>'Eメールアドレス',
 'password'=>'パスワード',
 ),

4. 実際にブラウザで確認してみます。usernameがユーザー名に、emailがEメールアドレスに、passwordがパスワードに変換されています。

laravel4_049

5. 次にvalidation.phpの41行目、実際のファイルの54行目を下記のように修正します。

"required" => "「:attribute」は必須項目です。",

プレースホルダーの:attributeはそのまま残して、残りを日本語に書き換えます。

6. 再度、ブラウザで確認してみます。

laravel4_050

7. どうですか、面白いですよね。やり方が分かれば簡単だと思います。残りは各自で作成してみてください。楽しいですよ。また、英語の得意な方なら、残りの言語ファイルも作成して配布すると喜ばれますよ。

本日は以上です。

売上アップの秘訣はアクセス解析にあり!

無料でできる多機能アクセス解析

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

トラックバック&コメント

この投稿のトラックバックURL:

トラックバック

コメント

  1. HiroKws より:

    言語ファイルはこちらからどうぞ
    https://github.com/HiroKws/laravel/tree/develop/app/lang

  2. たきゃはし より:

    偶然この前コミットしたやつがあったのでどうぞ。
    https://github.com/caouecs/Laravel4-lang/tree/master/ja


コメントをどうぞ

このページの先頭へ