I have a validator error translator associated with my form
class My_Lib_Forms_Form extends Zend_Form {
public function init()
{
parent::init();
$translator = new Zend_Translate('array', APPLICATION_PATH . '/languages/errors.php');
$this->setTranslator($translator);
}
}
Here is the validator validation error translation code:
<?php
return $errors = array(
Zend_Validate_Alnum::STRING_EMPTY => " ",
Zend_Validate_Date::INVALID_DATE => ' --',
Zend_Validate_Date::INVALID => ' ',
Zend_Validate_Date::FALSEFORMAT => ' ',
Zend_Validate_EmailAddress::INVALID_FORMAT => "asdasd",
Zend_Validate_EmailAddress::INVALID_FORMAT => " . local-part@hostname",
Zend_Validate_EmailAddress::INVALID_HOSTNAME => "'%hostname%' '%value%'",
Zend_Validate_EmailAddress::INVALID_MX_RECORD => "'%hostname%' MX- '%value%'",
Zend_Validate_EmailAddress::DOT_ATOM => "'%localPart%' dot-atom",
Zend_Validate_EmailAddress::QUOTED_STRING => "'%localPart%' quoted-string",
Zend_Validate_EmailAddress::INVALID_LOCAL_PART => "'%localPart%' '%value%'",
Zend_Validate_Int::NOT_INT => ' ',
Zend_Validate_NotEmpty::IS_EMPTY => ' ',
Zend_Validate_StringLength::TOO_SHORT => ' %min% ',
Zend_Validate_StringLength::TOO_LONG => ' %max% ',
My_Lib_Validate_EqualInputs::NOT_EQUAL => ' ',
My_Lib_Validate_Password::INVALID => ' ',
My_Lib_Validate_Password::INVALID_LENGTH => ' 7 30 ',
Zend_Captcha_Word::BAD_CAPTCHA => ' ',
Zend_Captcha_Word::MISSING_VALUE => ' ',
'userAgreement' => ' ',
);
How to change validation error message for custom item?
I am trying to do it like this:
$validatorNotEmpty = new Zend_Validate_NotEmpty();
$validatorNotEmpty->setMessages(array(
Zend_Validate_NotEmpty::IS_EMPTY => 'agreeRules'));
$userAgreement = new Zend_Form_Element_Checkbox('userAgreement', array(
'required' => true,
'label' => ', :',
'validators' => array($validatorNotEmpty),
));
And this way too:
$validatorNotEmpty = new Zend_Validate_NotEmpty();
$validatorNotEmpty->setMessage( ' ',
Zend_Validate_NotEmpty::IS_EMPTY);
$userAgreement = new Zend_Form_Element_Checkbox('userAgreement', array(
'required' => true,
'label' => ', :',
'validators' => array($validatorNotEmpty),
));
In any case, I get the message from the translator file, and not my text written by the user.