验证提示信息支持多语言

This commit is contained in:
thinkphp
2017-10-27 11:54:59 +08:00
parent 0ba3eb1c9c
commit f85f897070
2 changed files with 172 additions and 117 deletions

View File

@@ -82,4 +82,53 @@ return [
'mimetype to upload is not allowed' => '上传文件MIME类型不允许', 'mimetype to upload is not allowed' => '上传文件MIME类型不允许',
'filesize not match' => '上传文件大小不符!', 'filesize not match' => '上传文件大小不符!',
'directory {:path} creation failed' => '目录 {:path} 创建失败!', 'directory {:path} creation failed' => '目录 {:path} 创建失败!',
// Validate Error Message
':attribute require' => ':attribute不能为空',
':attribute must be numeric' => ':attribute必须是数字',
':attribute must be integer' => ':attribute必须是整数',
':attribute must be float' => ':attribute必须是浮点数',
':attribute must be bool' => ':attribute必须是布尔值',
':attribute not a valid email address' => ':attribute格式不符',
':attribute not a valid mobile' => ':attribute格式不符',
':attribute must be a array' => ':attribute必须是数组',
':attribute must be yes,on or 1' => ':attribute必须是yes、on或者1',
':attribute not a valid datetime' => ':attribute不是一个有效的日期或时间格式',
':attribute not a valid file' => ':attribute不是有效的上传文件',
':attribute not a valid image' => ':attribute不是有效的图像文件',
':attribute must be alpha' => ':attribute只能是字母',
':attribute must be alpha-numeric' => ':attribute只能是字母和数字',
':attribute must be alpha-numeric, dash, underscore' => ':attribute只能是字母、数字和下划线_及破折号-',
':attribute not a valid domain or ip' => ':attribute不是有效的域名或者IP',
':attribute must be chinese' => ':attribute只能是汉字',
':attribute must be chinese or alpha' => ':attribute只能是汉字、字母',
':attribute must be chinese,alpha-numeric' => ':attribute只能是汉字、字母和数字',
':attribute must be chinese,alpha-numeric,underscore, dash' => ':attribute只能是汉字、字母、数字和下划线_及破折号-',
':attribute not a valid url' => ':attribute不是有效的URL地址',
':attribute not a valid ip' => ':attribute不是有效的IP地址',
':attribute must be dateFormat of :rule' => ':attribute必须使用日期格式 :rule',
':attribute must be in :rule' => ':attribute必须在 :rule 范围内',
':attribute be notin :rule' => ':attribute不能在 :rule 范围内',
':attribute must between :1 - :2' => ':attribute只能在 :1 - :2 之间',
':attribute not between :1 - :2' => ':attribute不能在 :1 - :2 之间',
'size of :attribute must be :rule' => ':attribute长度不符合要求 :rule',
'max size of :attribute must be :rule' => ':attribute长度不能超过 :rule',
'min size of :attribute must be :rule' => ':attribute长度不能小于 :rule',
':attribute cannot be less than :rule' => ':attribute日期不能小于 :rule',
':attribute cannot exceed :rule' => ':attribute日期不能超过 :rule',
':attribute not within :rule' => '不在有效期内 :rule',
'access IP is not allowed' => '不允许的IP访问',
'access IP denied' => '禁止的IP访问',
':attribute out of accord with :2' => ':attribute和确认字段:2不一致',
':attribute cannot be same with :2' => ':attribute和比较字段:2不能相同',
':attribute must greater than or equal :rule' => ':attribute必须大于等于 :rule',
':attribute must greater than :rule' => ':attribute必须大于 :rule',
':attribute must less than or equal :rule' => ':attribute必须小于等于 :rule',
':attribute must less than :rule' => ':attribute必须小于 :rule',
':attribute must equal :rule' => ':attribute必须等于 :rule',
':attribute has exists' => ':attribute已存在',
':attribute not conform to the rules' => ':attribute不符合指定规则',
'invalid Request method' => '无效的请求类型',
'invalid token' => '令牌数据无效',
'not conform to the rules' => '规则错误',
]; ];

View File

@@ -36,55 +36,55 @@ class Validate
// 验证规则默认提示信息 // 验证规则默认提示信息
protected static $typeMsg = [ protected static $typeMsg = [
'require' => ':attribute不能为空', 'require' => ':attribute require',
'number' => ':attribute必须是数字', 'number' => ':attribute must be numeric',
'integer' => ':attribute必须是整数', 'integer' => ':attribute must be integer',
'float' => ':attribute必须是浮点数', 'float' => ':attribute must be float',
'boolean' => ':attribute必须是布尔值', 'boolean' => ':attribute must be bool',
'email' => ':attribute格式不符', 'email' => ':attribute not a valid email address',
'array' => ':attribute必须是数组', 'mobile' => ':attribute not a valid mobile',
'accepted' => ':attribute必须是yes、on或者1', 'array' => ':attribute must be a array',
'date' => ':attribute格式不符合', 'accepted' => ':attribute must be yes,on or 1',
'file' => ':attribute不是有效的上传文件', 'date' => ':attribute not a valid datetime',
'image' => ':attribute不是有效的图像文件', 'file' => ':attribute not a valid file',
'alpha' => ':attribute只能是字母', 'image' => ':attribute not a valid image',
'alphaNum' => ':attribute只能是字母和数字', 'alpha' => ':attribute must be alpha',
'alphaDash' => ':attribute只能是字母、数字和下划线_及破折号-', 'alphaNum' => ':attribute must be alpha-numeric',
'activeUrl' => ':attribute不是有效的域名或者IP', 'alphaDash' => ':attribute must be alpha-numeric, dash, underscore',
'chs' => ':attribute只能是汉字', 'activeUrl' => ':attribute not a valid domain or ip',
'chsAlpha' => ':attribute只能是汉字、字母', 'chs' => ':attribute must be chinese',
'chsAlphaNum' => ':attribute只能是汉字、字母和数字', 'chsAlpha' => ':attribute must be chinese or alpha',
'chsDash' => ':attribute只能是汉字、字母、数字和下划线_及破折号-', 'chsAlphaNum' => ':attribute must be chinese,alpha-numeric',
'url' => ':attribute不是有效的URL地址', 'chsDash' => ':attribute must be chinese,alpha-numeric,underscore, dash',
'ip' => ':attribute不是有效的IP地址', 'url' => ':attribute not a valid url',
'dateFormat' => ':attribute必须使用日期格式 :rule', 'ip' => ':attribute not a valid ip',
'in' => ':attribute必须在 :rule 范围内', 'dateFormat' => ':attribute must be dateFormat of :rule',
'notIn' => ':attribute不能在 :rule 范围内', 'in' => ':attribute must be in :rule',
'between' => ':attribute只能在 :1 - :2 之间', 'notIn' => ':attribute be notin :rule',
'notBetween' => ':attribute不能在 :1 - :2 之间', 'between' => ':attribute must between :1 - :2',
'length' => ':attribute长度不符合要求 :rule', 'notBetween' => ':attribute not between :1 - :2',
'max' => ':attribute长度不能超过 :rule', 'length' => 'size of :attribute must be :rule',
'min' => ':attribute长度不能小于 :rule', 'max' => 'max size of :attribute must be :rule',
'after' => ':attribute日期不能小于 :rule', 'min' => 'min size of :attribute must be :rule',
'before' => ':attribute日期不能超过 :rule', 'after' => ':attribute cannot be less than :rule',
'expire' => '不在有效期内 :rule', 'before' => ':attribute cannot exceed :rule',
'allowIp' => '不允许的IP访问', 'expire' => ':attribute not within :rule',
'denyIp' => '禁止的IP访问', 'allowIp' => 'access IP is not allowed',
'confirm' => ':attribute和确认字段:2不一致', 'denyIp' => 'access IP denied',
'different' => ':attribute和比较字段:2不能相同', 'confirm' => ':attribute out of accord with :2',
'egt' => ':attribute必须大于等于 :rule', 'different' => ':attribute cannot be same with :2',
'gt' => ':attribute必须大于 :rule', 'egt' => ':attribute must greater than or equal :rule',
'elt' => ':attribute必须小于等于 :rule', 'gt' => ':attribute must greater than :rule',
'lt' => ':attribute必须小于 :rule', 'elt' => ':attribute must less than or equal :rule',
'eq' => ':attribute必须等于 :rule', 'lt' => ':attribute must less than :rule',
'unique' => ':attribute已存在', 'eq' => ':attribute must equal :rule',
'regex' => ':attribute不符合指定规则', 'unique' => ':attribute has exists',
'method' => '无效的请求类型', 'regex' => ':attribute not conform to the rules',
'token' => '令牌数据无效', 'method' => 'invalid Request method',
'fileSize' => '上传文件大小不符', 'token' => 'invalid token',
'fileExt' => '上传文件后缀不符', 'fileSize' => 'filesize not match',
'fileMime' => '上传文件类型不符', 'fileExt' => 'extensions to upload is not allowed',
'fileMime' => 'mimetype to upload is not allowed',
]; ];
// 当前验证场景 // 当前验证场景
@@ -847,7 +847,11 @@ class Validate
} }
$pk = strval(isset($rule[3]) ? $rule[3] : $db->getPk()); $pk = strval(isset($rule[3]) ? $rule[3] : $db->getPk());
if (isset($rule[2])) { if(is_array($pk)){
foreach($pk as $key){
$map[$key] = ['neq',]
}
}elseif (isset($rule[2])) {
$map[$pk] = ['neq', $rule[2]]; $map[$pk] = ['neq', $rule[2]];
} elseif (isset($data[$pk])) { } elseif (isset($data[$pk])) {
$map[$pk] = ['neq', $data[$pk]]; $map[$pk] = ['neq', $data[$pk]];
@@ -1233,11 +1237,13 @@ class Validate
} elseif (0 === strpos($type, 'require')) { } elseif (0 === strpos($type, 'require')) {
$msg = self::$typeMsg['require']; $msg = self::$typeMsg['require'];
} else { } else {
$msg = $title . '规则错误'; $msg = $title . Lang::get('not conform to the rules');
} }
if (is_string($msg) && 0 === strpos($msg, '{%')) { if (is_string($msg) && 0 === strpos($msg, '{%')) {
$msg = Lang::get(substr($msg, 2, -1)); $msg = Lang::get(substr($msg, 2, -1));
}elseif(Lang::has($msg)){
$msg = Lang::get($msg);
} }
if (is_string($msg) && is_scalar($rule) && false !== strpos($msg, ':')) { if (is_string($msg) && is_scalar($rule) && false !== strpos($msg, ':')) {