如何在Zend Framework中翻译自定义验证器的消息?
我通过扩展
Zend_Validate_Abstract
来创建一个自定义验证器来验证关于Zend_Captcha
的CAPTCHA输入:
class My_Validate_Captcha extends Zend_Validate_Abstract {
const CAPTCHA = 'captcha';
protected $_messageTemplates = array(
self::CAPTCHA => "'%value%' isn't the right solution"
);
protected $_id;
public function __construct($captchaId) {
$this->setId($captchaId);
}
public function setId($id) {
$this->_id = $id;
return $this;
}
public function getId() {
return $this->_id;
}
public function isValid($value) {
$this->_setValue($value);
$captcha = new Zend_Captcha_Image();
if(!$captcha->isValid(array('input' => $value, 'id' => $this->getId()))) {
$this->_error(self::CAPTCHA);
return false;
}
return true;
}
}
它适用于Zend_Filter_Input
。如您所见,我为输入值无效的情况定义了一条错误消息。
现在我尝试将此消息翻译成德语,就像翻译来自Zend_Validate_*
类的其他消息一样。我用Zend_Translate
提供阵列适配器。
return array(
// Zend_Validate_Alnum
'notAlnum' => "'%value%' darf nur Buchstaben und Zahlen enthalten",
'stringEmpty' => "'%value%' Dieser Wert darf nicht leer sein",
// ...
// My_Validate_Captcha
'captcha' => "'%value%' ist nicht die richtige Lösung"
)
我的问题是来自Zend_Validate_*
的消息按照此处的定义进行翻译,但来自My_Validate_Captcha
的消息未翻译。如果翻译数组中存在'captcha'
,我会收到一条空信息。如果它不存在,我会在验证器类中定义英语消息。
如何实现自定义验证器的消息也使用相同的机制进行转换?
没有找到相关结果
已邀请:
3 个回复
悍蕾驮苇袜
的翻译功能可以被Poedit调用和捕获。
}
糖固傻染
然后在我的翻译中我有
然后我只是添加这样的错误
它有效, 我也有自己的助推器
旦彤