6

Есть ли способ перевести сообщения об ошибках проверки формы CodeIgniter, не касаясь системных файлов?Перевод сообщения об ошибках проверки формы кода Igniter

+0

это мой ответ http://stackoverflow.com/a/36331269/3143384. Нам нужно изменить файл lang validation, но таким образом вы можете настроить настраиваемое сообщение в любое поле. –

ответ

25

Если вы говорите о переводе на другой язык, это можно сделать, установив значение конфигурации $config['language'] на нужный язык. Если вы не хотите, чтобы изменить фактический файл config.php вы можете сделать это за счет использования set_item() функции объекта Config как это:

$this->config->set_item('language', 'spanish'); 

См: CodeIgniter Doc for the Config Class

Это предполагает, что у вас есть испанский каталог в вашем каталоге language, по крайней мере, с файлом form_validation_lang.php.

Однако, если вы просто хотите создать пользовательские сообщения для объекта Form_validation, вы можете скопировать файл form_validation_lang.php из каталога system\language и перенести его в каталог application\language. Теперь вы можете редактировать новый языковой файл, чтобы он отражал любые другие сообщения, которые вы хотите. Вы также можете легко вернуться к сообщениям по умолчанию, удалив файл из каталога application/language.

Другой способ сделать это, если вы не хотите прикасаться даже к файлам language, это вручную переопределить сообщения. Вы можете сделать это через объект Form_validation библиотеки как так: метод CodeIgniter Doc for the Form Validation Class

+1

Это действительно отличный ответ. –

+1

Языковые пакеты: https://github.com/EllisLab/CodeIgniter/wiki/Language-Translation. Однако многие из этих ссылок мертвы, к сожалению :( – user2019515

+0

Применять метод, который упоминал @wescrow. и перейдите на языковой пакет. Вот официальная рабочая новая ссылка для языков CI 3.x. https://github.com/bcit-ci/codeigniter3-translations – TechCare99

0

Если вам необходимо установить пользовательское сообщение об ошибке для конкретного поля на некотором определенном правиле, используйте set_rules():

$this->form_validation->set_message('required', 'This is a required item!');` 

См :

$this->form_validation->set_rules('field_name', 'Field Label', 'rule1|rule2|rule3', 
     array('rule2' => 'Error Message on rule2 for this field_name') 
); 

Это решит вашу проблему с любыми полями независимо. :)

Смежные вопросы