[fuelPHP] valid_stringのエラーメッセージのparam部分を日本語にする
- 公開日:2015/8/21
この記事は最終更新日から9年以上が経過しています。
以前、validationのエラーメッセージを日本語化にする方法を書きました。
[fuelPHP]validationのエラーメッセージを日本語にする
しかしながら、これだけではvalid_stringのエラーのとき、
「◯◯は numeric, dashes で入力してください。」となり、一部英語が残ってしまいます。
ちなみに、ここで「valid_string(numeric, dashes)」と表現されるようだったら、言語ファイルの記述が「:rule(:param:1)」となっていると思うので「:param:1」だけにしておいた方が後で楽です。
というわけで、valid_stringのparam部分も日本語にしたいと思います。
手順
コアを拡張
fuel/app/classes/validation/error.php
(ファイルが存在しなければ追加する)
class Validation_Error extends Fuel\Core\Validation_Error { protected function _replace_tags($msg) { $msg = parent::_replace_tags($msg); $find = __('validation.valid_string_params'); if( $find ){ $msg = str_replace('valid_string(', '', $msg); $msg = str_replace(')', '', $msg); foreach( $find as $param => $str ){ $msg = str_replace($param, $str, $msg); } } return $msg; } }
言語ファイルを準備
fuel/app/lang/ja/validation.php
return array( 'valid_string_params' => array( ',' => '、', 'alpha' => 'アルファベット', 'numeric' => '整数', 'spaces' => 'スペース', 'newlines' => '改行', 'tabs' => 'タブ', 'dots' => 'ピリオド', 'punctuation' => '区切り文字', 'dashes' => 'ハイフン', ), );
bootstrapで読み込む
fuel/app/bootstrap.php
Autoloader::add_classes(array( 'Validation_Error' => APPPATH . 'classes/validation/error.php', ));
これで、さっきのエラーメッセージが「◯◯は 整数、ハイフン で入力してください。」に変わるけども、なんだかなー。
応急措置感がハンパない。個別メッセージ対応にした方がいい???