如何同时使用两种不同语言的codeigniter表单验证库?
我试图使用codeigniter表单验证库同时以两种不同的语言显示两行不同的代码,但它抛出了一个错误:如何同时使用两种不同语言的codeigniter表单验证库?,codeigniter,codeigniter-2,codeigniter-form-helper,Codeigniter,Codeigniter 2,Codeigniter Form Helper,我试图使用codeigniter表单验证库同时以两种不同的语言显示两行不同的代码,但它抛出了一个错误: $this -> form_validation -> set_message('required', 'Warning %s should not be empty! <br /> Dikkat %s alanı boş bırakılmamalıdır.'); core/libraries/form_validation.php中第525行的sprintf()函数
$this -> form_validation -> set_message('required', 'Warning %s should not be empty! <br /> Dikkat %s alanı boş bırakılmamalıdır.');
core/libraries/form_validation.php中第525行的sprintf()函数只有两个参数
$message = sprintf($line, $this->_translate_fieldname($row['label']));
第一个参数必须是具有指定插入点的字符串。以下参数(在sprintf函数中)必须与插入点的数量匹配。而codeigniter只使用一个
从Codeigniter用户指南:
如果在错误字符串中包含%s,则在设置规则时,它将替换为字段中使用的“人员”名称。
但是,您的问题的解决方案是:
$this->form_validation->set_message('required', 'Warning %1$s should not be empty! <br /> Dikkat %1$s alanı boş bırakılmamalıdır.');
$this->form_validation->set_message('required','Warning%1$s不应为空!
Dikkat%1$s alanıboıbırakılmamalıdır.);
%1$s表示sprintf()中字符串参数后的第一个参数。这里的示例对此进行了很好的解释:我使用了您的建议,但错误仍然相同。遇到了一个PHP错误严重性:警告消息:sprintf():参数太少文件名:libraries/Form_validation.PHP行号:525Aha%2$s不工作,但%1$s工作正常!你是怎么想到这个的?这背后的逻辑是什么?我很好奇座右铭:我已经编辑了答案并链接到php手册。这些例子很好地解释了这一点。
$this->form_validation->set_message('required', 'Warning %1$s should not be empty! <br /> Dikkat %1$s alanı boş bırakılmamalıdır.');