Zend_Validate-Messages.xml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.validate.messages">
  5. <title>Messages de validation</title>
  6. <para>
  7. Chaque validateur basé sur <classname>Zend_Validate</classname> propose un ou plusieurs messages
  8. dans le cas d'un échec. Vous pouvez utiliser ces informations pour créer vos propres messages
  9. ou pour traduire les messages présents.
  10. </para>
  11. <para>
  12. Ces messages sont représentés par des constantes se trouvant en haut de chaque classe de validateur.
  13. Voyons <classname>Zend_Validate_GreaterThan</classname> pour un exemple complet:
  14. </para>
  15. <programlisting language="php"><![CDATA[
  16. protected $_messageTemplates = array(
  17. self::NOT_GREATER => "'%value%' n'est pas plus grande que '%min%'",
  18. );
  19. ]]></programlisting>
  20. <para>
  21. Comme vous le voyez, la constante <constant>self::NOT_GREATER</constant> fait référence à un échec et est
  22. utilisée comme clé, le message lui-même est utilisé comme valeur dans le tableau des messages.
  23. </para>
  24. <para>
  25. Vous pouvez récupérer les templates de messages d'un validateur en utilisant la méthode
  26. <methodname>getMessageTemplates()</methodname>. Elle vous retourne le tableau comme vu ci-dessus qui contient
  27. tous les messages que le validateur pourrait retourner en cas d'échec de validation.
  28. </para>
  29. <programlisting language="php"><![CDATA[
  30. $validator = new Zend_Validate_GreaterThan();
  31. $messages = $validator->getMessageTemplates();
  32. ]]></programlisting>
  33. <para>
  34. La méthode <methodname>setMessage()</methodname> permet de modifier un message unique correspondant à un
  35. cas particulier d'échec de validation.
  36. </para>
  37. <programlisting language="php"><![CDATA[
  38. $validator = new Zend_Validate_GreaterThan();
  39. $validator->setMessage('Entrez une valeur plus petite', Zend_Validate_GreaterThan::NOT_GREATER);
  40. ]]></programlisting>
  41. <para>
  42. Le deuxième paramètre indique le cas d'échec à surcharger. Lorsque vous omettez ce paramètre,
  43. alors le message précisé sera affecté comme message pour tous les cas d'échec possibles du validateur.
  44. </para>
  45. <sect2 id="zend.validate.messages.pretranslated">
  46. <title>Utiliser les messages de validations pré-traduits</title>
  47. <para>
  48. Zend Framework est livré avec plus de 45 validateurs différents et plus de 200 messages d'échecs.
  49. Cela peut-être pénible de tous les traduire. Pour votre convenance, Zend Framework est livré avec
  50. des messages d'échec pré-traduits. Vous les trouverez dans <filename>/resources/languages</filename>
  51. de votre installation de Zend Framework.
  52. </para>
  53. <note>
  54. <title>Chemin utilisé</title>
  55. <para>
  56. Les fichiers de ressources sont en dehors du dossier library car les traductions sont sensées
  57. être en dehors de ce chemin.
  58. </para>
  59. </note>
  60. <para>
  61. Donc pour traduire les messages de validation en français par exemple, tout ce qu'il y a à faire est
  62. d'attacher un objet de traduction à <classname>Zend_Validate</classname> en utilisant les fichiers
  63. de ressources (pré-traductions).
  64. </para>
  65. <programlisting language="php"><![CDATA[
  66. $translator = new Zend_Translate(
  67. array(
  68. 'adapter' => 'array',
  69. 'content' => '/resources/languages',
  70. 'locale' => $language,
  71. 'scan' => Zend_Translate::LOCALE_DIRECTORY
  72. )
  73. );
  74. Zend_Validate_Abstract::setDefaultTranslator($translator);
  75. ]]></programlisting>
  76. <note>
  77. <title>Adaptateur de traduction utilisé</title>
  78. <para>
  79. L'adaptateur array a été utilisé, ceci pour permettre une modification simple des
  80. messages pré-traduits.
  81. </para>
  82. </note>
  83. <note>
  84. <title>Langues supportées</title>
  85. <para>
  86. Cette caractéristique de pré-traduction est jeune, donc le nombre de langues supportées peut
  87. ne pas être complet. De nouvelles langues seront ajoutées dans les sorties futures.
  88. </para>
  89. <para>
  90. Vous pouvez aussi partir de ces fichiers pré-traduits pour créer vos propres traductions,
  91. par exemple.
  92. </para>
  93. </note>
  94. </sect2>
  95. <sect2 id="zend.validate.messages.limitation">
  96. <title>Limiter la taille d'un message de validation</title>
  97. <para>
  98. Il peut être nécessaire parfois de limiter la taille en caractères des messages d'erreur
  99. retournés. par exemple si une vue n'autorise que 100 caractères par ligne.
  100. <classname>Zend_Validate</classname> propose une telle option.
  101. </para>
  102. <para>
  103. La taille actuelle est
  104. <methodname>Zend_Validate::getMessageLength()</methodname>. -1 signifie que le message ne
  105. sera pas tronqué et entièrement retourné, c'est le comportement par défaut.
  106. </para>
  107. <para>
  108. Pour limiter la taille, utilisez
  109. <methodname>Zend_Validate::setMessageLength()</methodname>. Lorsque la taille excède cette valeur,
  110. le message sera alors tronqué et suivi de '<emphasis>...</emphasis>'.
  111. </para>
  112. <programlisting language="php"><![CDATA[
  113. Zend_Validate::setMessageLength(100);
  114. ]]></programlisting>
  115. <note>
  116. <title>Où ce paramètre est-il utilisé ?</title>
  117. <para>
  118. La taille des messages affecte aussi les messages personnalisés enregistrés, dès
  119. que le validateur considéré étend <classname>Zend_Validate_Abstract</classname>.
  120. </para>
  121. </note>
  122. </sect2>
  123. </sect1>