| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.validate.messages">
- <title>Messages de validation</title>
- <para>
- Chaque validateur basé sur <classname>Zend_Validate</classname> propose un ou plusieurs messages
- dans le cas d'un échec. Vous pouvez utiliser ces informations pour créer vos propres messages
- ou pour traduire les messages présents.
- </para>
- <para>
- Ces messages sont représentés par des constantes se trouvant en haut de chaque classe de validateur.
- Voyons <classname>Zend_Validate_GreaterThan</classname> pour un exemple complet:
- </para>
- <programlisting language="php"><![CDATA[
- protected $_messageTemplates = array(
- self::NOT_GREATER => "'%value%' n'est pas plus grande que '%min%'",
- );
- ]]></programlisting>
- <para>
- Comme vous le voyez, la constante <constant>self::NOT_GREATER</constant> fait référence à un échec et est
- utilisée comme clé, le message lui-même est utilisé comme valeur dans le tableau des messages.
- </para>
- <para>
- Vous pouvez récupérer les templates de messages d'un validateur en utilisant la méthode
- <methodname>getMessageTemplates()</methodname>. Elle vous retourne le tableau comme vu ci-dessus qui contient
- tous les messages que le validateur pourrait retourner en cas d'échec de validation.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_GreaterThan();
- $messages = $validator->getMessageTemplates();
- ]]></programlisting>
- <para>
- La méthode <methodname>setMessage()</methodname> permet de modifier un message unique correspondant à un
- cas particulier d'échec de validation.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_GreaterThan();
- $validator->setMessage('Entrez une valeur plus petite', Zend_Validate_GreaterThan::NOT_GREATER);
- ]]></programlisting>
- <para>
- Le deuxième paramètre indique le cas d'échec à surcharger. Lorsque vous omettez ce paramètre,
- alors le message précisé sera affecté comme message pour tous les cas d'échec possibles du validateur.
- </para>
- <sect2 id="zend.validate.messages.pretranslated">
- <title>Utiliser les messages de validations pré-traduits</title>
- <para>
- Zend Framework est livré avec plus de 45 validateurs différents et plus de 200 messages d'échecs.
- Cela peut-être pénible de tous les traduire. Pour votre convenance, Zend Framework est livré avec
- des messages d'échec pré-traduits. Vous les trouverez dans <filename>/resources/languages</filename>
- de votre installation de Zend Framework.
- </para>
- <note>
- <title>Chemin utilisé</title>
- <para>
- Les fichiers de ressources sont en dehors du dossier library car les traductions sont sensées
- être en dehors de ce chemin.
- </para>
- </note>
- <para>
- Donc pour traduire les messages de validation en français par exemple, tout ce qu'il y a à faire est
- d'attacher un objet de traduction à <classname>Zend_Validate</classname> en utilisant les fichiers
- de ressources (pré-traductions).
- </para>
- <programlisting language="php"><![CDATA[
- $translator = new Zend_Translate(
- array(
- 'adapter' => 'array',
- 'content' => '/resources/languages',
- 'locale' => $language,
- 'scan' => Zend_Translate::LOCALE_DIRECTORY
- )
- );
- Zend_Validate_Abstract::setDefaultTranslator($translator);
- ]]></programlisting>
- <note>
- <title>Adaptateur de traduction utilisé</title>
- <para>
- L'adaptateur array a été utilisé, ceci pour permettre une modification simple des
- messages pré-traduits.
- </para>
- </note>
- <note>
- <title>Langues supportées</title>
- <para>
- Cette caractéristique de pré-traduction est jeune, donc le nombre de langues supportées peut
- ne pas être complet. De nouvelles langues seront ajoutées dans les sorties futures.
- </para>
- <para>
- Vous pouvez aussi partir de ces fichiers pré-traduits pour créer vos propres traductions,
- par exemple.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.validate.messages.limitation">
- <title>Limiter la taille d'un message de validation</title>
- <para>
- 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.
- <classname>Zend_Validate</classname> propose une telle option.
- </para>
- <para>
- La taille actuelle est
- <methodname>Zend_Validate::getMessageLength()</methodname>. -1 signifie que le message ne
- sera pas tronqué et entièrement retourné, c'est le comportement par défaut.
- </para>
- <para>
- Pour limiter la taille, utilisez
- <methodname>Zend_Validate::setMessageLength()</methodname>. Lorsque la taille excède cette valeur,
- le message sera alors tronqué et suivi de '<emphasis>...</emphasis>'.
- </para>
- <programlisting language="php"><![CDATA[
- Zend_Validate::setMessageLength(100);
- ]]></programlisting>
- <note>
- <title>Où ce paramètre est-il utilisé ?</title>
- <para>
- La taille des messages affecte aussi les messages personnalisés enregistrés, dès
- que le validateur considéré étend <classname>Zend_Validate_Abstract</classname>.
- </para>
- </note>
- </sect2>
- </sect1>
|