codeigniter多语言form_validation_lang.php

时间:2015-05-03 20:24:28

标签: codeigniter multilingual

我正在尝试使用Codeigniter创建一个多语言网站,并且通过从控制器动态加载来自正确语言文件夹的_lang.php文件,内容工作正常。只是因为form_validation_lang.php file我无法做到这一点。

有没有办法设置应该从控制器获取_lang.php文件的文件夹?

这是我使用的,留下大多数set_rules()行。

  $this->lang->load('MY_register_lang', $this->_language);
  $this->load->library('form_validation');
  $this->lang->load('form_validation', $this->_language);

  $this->form_validation->set_rules('username', 'lang:un', 'trim|required|min_length[3]|max_length[25]|alpha_dash|is_unique[user.username]');
  $this->form_validation->set_rules('pass2', 'lang:pass2', 'trim|required|matches[pass1]');
  $this->form_validation->set_message('matches', $this->lang->line('no_match')); 

它确实加载了正确的MY_register_lang.php,但没有加载form_validation_lang.php(是的,尝试添加_lang)。它确实使用了set_message()方法中的正确语言,但它来自加载的文件。

2 个答案:

答案 0 :(得分:0)

请查看CI文档Loading A Language File

它说要从特定文件中获取一行,您必须先加载该文件。使用以下代码加载语言文件。

$this->lang->load('filename', 'language');

所以你的情况应该是

$this->lang->load('form_validation', 'YOUR_SPECIFIC_LANGUAGE');

但是在使用表单验证规则之前以及加载库($this->load->library('form_validation');

之后加载文件

答案 1 :(得分:0)

如果您需要为某个特定规则的特定字段设置自定义错误消息,请使用带有lang的set_rules()方法:

    $this->form_validation->set_rules('field_name', 'Field Label', 'rule1|rule2|rule3',
        array('rule2' => lang('your_lang_keyword'))
);

这将独立解决您的所有字段问题。 :)