对validation的提示错误信息的看法
近来要用到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里面增加一个自定义错误函数.
我也遇到了同样的问题。
错误提示都是英文。。我在尝试找出upload库读取和设置错误消息的地方。找到这样的消息之后再汉化它。我已经改好了
我是要改写文件上传提示错误信息。我就直接在system\language\english目录下修改了upload_lang.php文件。刚才看了一下楼主的问题。不知道下面的方式能解决不。你先试试看。
在你的set_rules()之后加入以下代码:
$fields['username'] = '用户名';
$fields['email'] = '电邮';
你看看提示消息是不是中文了。
详细信息请参考user guide中form validation一章中Re-populating the form的那一节
页:
[1]