6

システムファイルに触れることなくCodeIgniterのフォーム検証エラーメッセージを翻訳することはありますか?CodeIgniterのフォーム検証エラーメッセージの翻訳

+0

これは私の答えhttp://stackoverflow.com/a/36331269/3143384です。検証用のlangファイルを変更する必要がありますが、カスタムメッセージを任意のフィールドに設定することができます。 –

答えて

25

実際に別の言語に翻訳することについて話している場合は、設定値$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

+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_rules('field_name', 'Field Label', 'rule1|rule2|rule3', 
     array('rule2' => 'Error Message on rule2 for this field_name') 
); 

これは、すべてのフィールドの問題を個別に解決します。 :)

関連する問題