|
近来要用到validation来测试表单提示错误.
如:view.php
......
<form>
<input type="text" name="username">
<input type="text" name="email">
</form>
..........
controller.php
$rules['username'] = "trim|required";
$rules['email'] = "trim|required";
$this->validation->set_rules($rules);
在测试中,本来是config里是指向language里一个englist语言文件,这里测试结果是当username,email都为空时)
错误提示:
username is required...
email is required....
看到这些英文,在中国不知有几个人可以看明,特别是中国大多数网民都是学了9年english的.
这些不友好的提示,使我不高兴,所以我就在language里复制一份english,改名cn,然后在config里修改指向cn.
然后,我试着翻译cn/validation_lang.php这个文件,
把: $lang['required'] = "The %s field is required.";
译成lang['required'] = "%s 不能为空.";
于是再测试一下当username,email都为空时)
错误提示:
username不能为空
email不能为空
搞什么啊???username/email是什么啊??还是好多国人不明吧,这也不是友好的提示吧.
这里的username,email就是表单域的属性,在错误信息里出现不太好.无论是可读性还是安全性都不是可取的.
况且,有时,我的表单域名可以是my_usr_name,tel_number,这类的东东,不是所有人都明吧,
当一个人填写表单时,出现这些"my_usr_name不能为空"时,如何去面对呢??
可以是ci里不能为每个表单域自简单分配一个错提示信息.如果通过callback回调函数,这样也太浪费太麻烦了吧,
如果是好多表单个域,要写那多的callback,不太科学.
在CI里有个set_error_message函数,可时这个函数只是设置某一类的规则错误提示,如
set_errors_massage("required", '不能为空');这样相当于没有搞什么东西,错误提示依然没有什么价值..
可以看出,CI还得在validation里面增加一个自定义错误函数. |
|