翻译 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 表单验证,无法获取验证错误

Codeigniter 3:不要在表单验证错误时重新加载表单

创建自定义 codeigniter 验证规则

javascript 变量未在表单中显示 codeigniter 的验证错误

Codeigniter 在表单中验证数组

Codeigniter 表单验证 - 成功后如何取消设置表单值?