翻译 CodeIgniter 的表单验证错误消息
Posted
技术标签:
【中文标题】翻译 CodeIgniter 的表单验证错误消息【英文标题】:Translating CodeIgniter's form validation error messages 【发布时间】:2012-02-22 14:56:06 【问题描述】:是否可以在不涉及系统文件的情况下?
【问题讨论】:
这是我的回答***.com/a/36331269/3143384。我们需要更改验证语言文件,但这样您可以将自定义消息设置到任何字段。 【参考方案1】:如果您正在谈论实际翻译成另一种语言,可以通过将配置值 $config['language']
设置为您想要的语言来完成。如果您不想更改实际的 config.php 文件,您可以通过使用 Config 对象的 set_item()
函数来完成,如下所示:
$this->config->set_item('language', 'spanish');
见:CodeIgniter Doc for the Config Class
这假设您的language
目录中有一个西班牙语目录,其中至少包含form_validation_lang.php
文件。
但是,如果您只想为 Form_validation 对象创建自定义消息,您可以从system\language
目录复制form_validation_lang.php
文件并将其移动到application\language
目录。您现在可以编辑新语言文件以使其反映您想要的任何不同的消息。您还可以通过从application/language
目录中删除文件轻松恢复为默认消息。
如果您不想碰language
文件,另一种方法是手动覆盖消息。您可以通过 Form_validation
库对象来做到这一点,如下所示:
$this->form_validation->set_message('required', 'This is a required item!');`
见:CodeIgniter Doc for the Form Validation Class
【讨论】:
语言包:github.com/EllisLab/CodeIgniter/wiki/Language-Translation - 但是不幸的是,很多链接都死了:( 应用@wescrow 提到的方法。并去语言包。这是 CI 3.x 语言的官方工作新链接github.com/bcit-ci/codeigniter3-translations【参考方案2】:如果您需要为某个特定规则的特定字段设置自定义错误消息,请使用 set_rules() 方法:
$this->form_validation->set_rules('field_name', 'Field Label', 'rule1|rule2|rule3',
array('rule2' => 'Error Message on rule2 for this field_name')
);
这将独立解决您的所有领域问题。 :)
【讨论】:
以上是关于翻译 CodeIgniter 的表单验证错误消息的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter 3:不要在表单验证错误时重新加载表单