Messages de validation
Chaque validateur basé sur Zend_Validate propose un ou plusieurs messages
dans le cas d'un echec. Vous pouvez utiliser ces informations pour créer vos propres messages
ou pour traduire les messages présents.
These validation messages are constants which can be found at top of each validator class.
Let's look into Zend_Validate_GreaterThan for an descriptive example:
"'%value%' is not greater than '%min%'",
);
]]>
As you can see the constant self::NOT_GREATER refers to the failure and
is used as key, and the message itself is used as value of the message array.
You can retrieve all message templates from a validator by using the
getMessageTemplates() method. It returns you the above array which
contains all messages a validator could return in the case of a failed validation.
getMessageTemplates();
]]>
Using the setMessage() method you can set another message to be
returned in case of the specified failure.
setMessage('Please enter a lower value', Zend_Validate_GreaterThan::NOT_GREATER);
]]>
The second parameter defines the failure which will be overridden. When you omit this
parameter, then the given message will be set for all possible failures of this validator.
Using pre-translated validation messages
Zend Framework is shipped with more than 45 different validators with more than 200
failure messages. It can be a tendious task to translate all of these messages. But for
your convinience Zend Framework comes with already pre-translated validation messages.
You can find them within the path /resources/languages in your
Zend Framework installation.
Used path
The resource files are outside of the library path because all of your translations
should also be outside of this path.
So to translate all validation messages to german for example, all you have to do is to
attach a translator to Zend_Validate using these resource files.
Zend_Locale::LOCALE_DIRECTORY)
);
Zend_Validate_Abstract::setDefaultTranslator($translator);
]]>
Used translation adapter
As translation adapter Zend Framework choosed the array adapter. It is simple to
edit and created very fast.
Supported languages
This feature is very young, so the amount of supported languages may not be
complete. New languages will be added with each release. Additionally feel free to
use the existing resource files to make your own translations.
You could also use these resource files to rewrite existing translations. So you
are not in need to create these files manually yourself.
Limiter la taille d'un message de validation
Il peut être nécessaire parfois de limiter la taille en caractères des messages d'erreur
retournés. par exemple si une vue n'autorise que 100 caractères par ligne.
Zend_Validate propose une telle option.
La taille actuelle est
Zend_Validate::getMessageLength(). -1 signifie que le message ne
sera pas tronqué et entièrement retourné, c'est le comportement par défaut.
Pour limiter la taille, utilisez
Zend_Validate::setMessageLength(). Lorsque la taille excède cette valeur,
le message sera alors tronqué et suivi de '...'.
Où ce paramètre est-il utilisé ?
La taille des messages affecte aussi les messages personnalisés enregistrés, dès
que le validateur considéré étend Zend_Validate_Abstract.