6

Czy istnieje sposób na przetłumaczenie komunikatów o błędach sprawdzania poprawności formularza CodeIgniter bez dotykania plików systemowych?Tłumaczenie kodu Komunikaty błędów sprawdzania poprawności formularzy

+0

to jest moja odpowiedź http://stackoverflow.com/a/36331269/3143384. Musimy zmienić plik lang walidacyjny, ale w ten sposób można ustawić niestandardową wiadomość do dowolnego pola. –

Odpowiedz

25

Jeśli mówisz o tłumaczeniu na inny język, można to zrobić, ustawiając wartość konfiguracji $config['language'] na żądany język. Jeśli nie chcesz zmieniać rzeczywisty plik config.php można to zrobić poprzez zastosowanie set_item() funkcji obiektu config wygląda tak:

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

Patrz: CodeIgniter Doc for the Config Class

ta zakłada, że ​​masz katalog hiszpański w twoim katalogu language z co najmniej plikiem form_validation_lang.php.

Jeśli jednak chcesz tylko tworzyć niestandardowe komunikaty dla obiektu Form_validation, możesz skopiować plik form_validation_lang.php z katalogu system\language i przenieść go do katalogu application\language. Możesz teraz edytować nowy plik językowy, aby odzwierciedlał on dowolne inne wiadomości. Możesz także łatwo przywrócić domyślne komunikaty, usuwając plik z katalogu application/language.

Innym sposobem na zrobienie tego, jeśli nie chcesz dotykać nawet plików language, jest ręczne nadpisywanie wiadomości. Można to zrobić za pośrednictwem obiektu Form_validation biblioteki tak:

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

widoczny

: metodę CodeIgniter Doc for the Form Validation Class

+1

to jest naprawdę doskonała odpowiedź –

+1

Pakiety językowe: https://github.com/EllisLab/CodeIgniter/wiki/Language-Translation - Niestety wiele z tych linków jest niestety nieaktualnych :( – user2019515

+0

Zastosuj metodę, o której wspomniał @wescrow. i przejdź do pakietu językowego. Oto oficjalny nowy działający link dla języków CI 3.x https://github.com/bcit-ci/codeigniter3-translations – TechCare99

0

Jeśli trzeba ustawić niestandardowy komunikat o błędzie dla danego pola na jakiejś konkretnej reguły, użyj set_rules() :

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

To rozwiąże problem wszystkich pól niezależnie. :)

Powiązane problemy