Преглед изворни кода

DOCUMENTATION French: sync manual

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@15490 44c647ce-9c0f-0410-b52a-842ac1e357ba
mikaelkael пре 16 година
родитељ
комит
dd30cc2b49

+ 98 - 98
documentation/manual/fr/module_specs/Zend_Search_Lucene-BestPractice.xml

@@ -25,31 +25,31 @@
             linkend="zend.search.lucene.searching.results-scoring">score</link> de hit. Si le
             linkend="zend.search.lucene.searching.results-scoring">score</link> de hit. Si le
             document indexé possède les mêmes champs stockés, vous devrez utiliser la méthode
             document indexé possède les mêmes champs stockés, vous devrez utiliser la méthode
             <code>getDocument()</code> pour y accéder :<programlisting role="php"><![CDATA[
             <code>getDocument()</code> pour y accéder :<programlisting role="php"><![CDATA[
-    $hits = $index->find($query);
-    
-    foreach ($hits as $hit) {
-        // Récupérer le champ de document 'title'
-        $title = $hit->title;
-    
-        // Récupérer le champ de document 'contents'
-        $contents = $hit->contents;
-    
-        // Récupérer l'id interne du document Lucene
-        $id = $hit->id;
-    
-        // Récupérer le score de hit
-        $score = $hit->score;
-    
-        // Récupérer le champ de document 'id'
-        $docId = $hit->getDocument()->id;
-    
-        // Récupérer le champ de document 'score'
-        $docId = $hit->getDocument()->score;
-    
-        // Un autre moyen de récupérer le champ 'title'
-        $title = $hit->getDocument()->title;
-    }
-    ]]></programlisting></para>
+$hits = $index->find($query);
+
+foreach ($hits as $hit) {
+    // Récupérer le champ de document 'title'
+    $title = $hit->title;
+
+    // Récupérer le champ de document 'contents'
+    $contents = $hit->contents;
+
+    // Récupérer l'id interne du document Lucene
+    $id = $hit->id;
+
+    // Récupérer le score de hit
+    $score = $hit->score;
+
+    // Récupérer le champ de document 'id'
+    $docId = $hit->getDocument()->id;
+
+    // Récupérer le champ de document 'score'
+    $docId = $hit->getDocument()->score;
+
+    // Un autre moyen de récupérer le champ 'title'
+    $title = $hit->getDocument()->title;
+}
+]]></programlisting></para>
         </sect2>
         </sect2>
     
     
         <sect2 id="zend.search.lucene.best-practice.indexing-performance">
         <sect2 id="zend.search.lucene.best-practice.indexing-performance">
@@ -80,10 +80,10 @@
         <para>
         <para>
             L'optimisation complète de l'index peut être effectuée avec la méthode
             L'optimisation complète de l'index peut être effectuée avec la méthode
             <code>optimize()</code> :<programlisting role="php"><![CDATA[
             <code>optimize()</code> :<programlisting role="php"><![CDATA[
-    $index = Zend_Search_Lucene::open($indexPath);
-    
-    $index->optimize();
-    ]]></programlisting></para>
+$index = Zend_Search_Lucene::open($indexPath);
+
+$index->optimize();
+]]></programlisting></para>
     
     
         <para>
         <para>
             L'optimisation d'index fonctionne avec des "data streams" et ne consomme pas pas
             L'optimisation d'index fonctionne avec des "data streams" et ne consomme pas pas
@@ -321,20 +321,20 @@
         <para>
         <para>
             Le premier est de forcer l'index à sortir de la portée (du scope) :<programlisting
             Le premier est de forcer l'index à sortir de la portée (du scope) :<programlisting
             role="php"><![CDATA[
             role="php"><![CDATA[
-    $index = Zend_Search_Lucene::open($indexPath);
-    
-    ...
-    
-    unset($index);
-    ]]></programlisting></para>
+$index = Zend_Search_Lucene::open($indexPath);
+
+...
+
+unset($index);
+]]></programlisting></para>
     
     
         <para>
         <para>
             Le second est d'effectuer une opération de commit avant la fin du script exécution
             Le second est d'effectuer une opération de commit avant la fin du script exécution
             :<programlisting role="php"><![CDATA[
             :<programlisting role="php"><![CDATA[
-    $index = Zend_Search_Lucene::open($indexPath);
-    
-    $index->commit();
-    ]]></programlisting> Cette possibilité est également décrite dans la section "<link
+$index = Zend_Search_Lucene::open($indexPath);
+
+$index->commit();
+]]></programlisting> Cette possibilité est également décrite dans la section "<link
             linkend="zend.search.lucene.advanced.static">Avancé - Utiliser les propriétés statiques
             linkend="zend.search.lucene.advanced.static">Avancé - Utiliser les propriétés statiques
             de l'index</link>".
             de l'index</link>".
         </para>
         </para>
@@ -358,40 +358,40 @@
         <para>
         <para>
             C'est plus efficace que d'utiliser la méthode <code>find()</code> :<programlisting
             C'est plus efficace que d'utiliser la méthode <code>find()</code> :<programlisting
             role="php"><![CDATA[
             role="php"><![CDATA[
-    // Récupération de documents avec la méthode find()
-    // en utilisant une querystring
-    $query = $idFieldName . ':' . $docId;
-    $hits  = $index->find($query);
-    foreach ($hits as $hit) {
-        $title    = $hit->title;
-        $contents = $hit->contents;
-        ...
-    }
+// Récupération de documents avec la méthode find()
+// en utilisant une querystring
+$query = $idFieldName . ':' . $docId;
+$hits  = $index->find($query);
+foreach ($hits as $hit) {
+    $title    = $hit->title;
+    $contents = $hit->contents;
     ...
     ...
-    
-    // Récupération de documents avec la méthode find()
-    // en utilisant l'API de requête.
-    $term = new Zend_Search_Lucene_Index_Term($docId, idFieldName);
-    $query = new Zend_Search_Lucene_Search_Query_Term($term);
-    $hits  = $index->find($query);
-    foreach ($hits as $hit) {
-        $title    = $hit->title;
-        $contents = $hit->contents;
-        ...
-    }
-    
+}
+...
+
+// Récupération de documents avec la méthode find()
+// en utilisant l'API de requête.
+$term = new Zend_Search_Lucene_Index_Term($docId, idFieldName);
+$query = new Zend_Search_Lucene_Search_Query_Term($term);
+$hits  = $index->find($query);
+foreach ($hits as $hit) {
+    $title    = $hit->title;
+    $contents = $hit->contents;
     ...
     ...
-    
-    // Récupération de documents avec la méthode termDocs()
-    $term = new Zend_Search_Lucene_Index_Term($docId, idFieldName);
-    $docIds  = $index->termDocs($term);
-    foreach ($docIds as $id) {
-        $doc = $index->getDocument($id);
-        $title    = $doc->title;
-        $contents = $doc->contents;
-        ...
-    }
-    ]]></programlisting></para>
+}
+
+...
+
+// Récupération de documents avec la méthode termDocs()
+$term = new Zend_Search_Lucene_Index_Term($docId, idFieldName);
+$docIds  = $index->termDocs($term);
+foreach ($docIds as $id) {
+    $doc = $index->getDocument($id);
+    $title    = $doc->title;
+    $contents = $doc->contents;
+    ...
+}
+]]></programlisting></para>
         </sect2>
         </sect2>
     
     
         <sect2 id="zend.search.lucene.best-practice.memory-usage">
         <sect2 id="zend.search.lucene.best-practice.memory-usage">
@@ -476,14 +476,14 @@
         <para>
         <para>
             L'encodage peut être explicitement spécifié en passant un paramètre optionnel à la
             L'encodage peut être explicitement spécifié en passant un paramètre optionnel à la
             méthode de création d'un champ :<programlisting role="php"><![CDATA[
             méthode de création d'un champ :<programlisting role="php"><![CDATA[
-    $doc = new Zend_Search_Lucene_Document();
-    $doc->addField(Zend_Search_Lucene_Field::Text('title',
-                                                  $title,
-                                                  'iso-8859-1'));
-    $doc->addField(Zend_Search_Lucene_Field::UnStored('contents',
-                                                      $contents,
-                                                      'utf-8'));
-    ]]></programlisting> C'est le meilleur moyen d'éviter toute ambiguïté dans les encodages
+$doc = new Zend_Search_Lucene_Document();
+$doc->addField(Zend_Search_Lucene_Field::Text('title',
+                                              $title,
+                                              'iso-8859-1'));
+$doc->addField(Zend_Search_Lucene_Field::UnStored('contents',
+                                                  $contents,
+                                                  'utf-8'));
+]]></programlisting> C'est le meilleur moyen d'éviter toute ambiguïté dans les encodages
             utilisés.
             utilisés.
         </para>
         </para>
 
 
@@ -491,15 +491,15 @@
             Si le paramètre optionnel de l'encodage est omis, la locale courante est utilisée.
             Si le paramètre optionnel de l'encodage est omis, la locale courante est utilisée.
             La locale courante peut contenir des données d'encodage en plus des spécification de
             La locale courante peut contenir des données d'encodage en plus des spécification de
             langue :<programlisting role="php"><![CDATA[
             langue :<programlisting role="php"><![CDATA[
-    setlocale(LC_ALL, 'fr_FR');
-    ...
-    
-    setlocale(LC_ALL, 'de_DE.iso-8859-1');
-    ...
-    
-    setlocale(LC_ALL, 'ru_RU.UTF-8');
-    ...
-    ]]></programlisting></para>
+setlocale(LC_ALL, 'fr_FR');
+...
+
+setlocale(LC_ALL, 'de_DE.iso-8859-1');
+...
+
+setlocale(LC_ALL, 'ru_RU.UTF-8');
+...
+]]></programlisting></para>
     
     
         <para>
         <para>
             La même approche est utilisée pour définir l'encodage des chaînes de
             La même approche est utilisée pour définir l'encodage des chaînes de
@@ -514,20 +514,20 @@
         <para>
         <para>
             L'encodage peut être passée comme paramètre optionnel si la requête est analysée
             L'encodage peut être passée comme paramètre optionnel si la requête est analysée
             explicitement avant la recherche :<programlisting role="php"><![CDATA[
             explicitement avant la recherche :<programlisting role="php"><![CDATA[
-    $query =
-        Zend_Search_Lucene_Search_QueryParser::parse($queryStr, 'iso-8859-5');
-    $hits = $index->find($query);
-    ...
-    ]]></programlisting></para>
+$query =
+    Zend_Search_Lucene_Search_QueryParser::parse($queryStr, 'iso-8859-5');
+$hits = $index->find($query);
+...
+]]></programlisting></para>
     
     
         <para>
         <para>
             L'encodage par défaut peut également être spécifié avec la méthode
             L'encodage par défaut peut également être spécifié avec la méthode
             <code>setDefaultEncoding()</code> :<programlisting role="php"><![CDATA[
             <code>setDefaultEncoding()</code> :<programlisting role="php"><![CDATA[
-    Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('iso-8859-1');
-    $hits = $index->find($queryStr);
-    ...
-     chaîne vide sous-entend "locale courante".
- </para>
+Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('iso-8859-1');
+$hits = $index->find($queryStr);
+...
+ chaîne vide sous-entend "locale courante".
+]]></programlisting></para>
 
 
         <para>
         <para>
             Si l'encodage correct est spécifié, il pourra être correctement interprété par
             Si l'encodage correct est spécifié, il pourra être correctement interprété par

+ 143 - 76
documentation/manual/fr/module_specs/Zend_Validate-Set.xml

@@ -1,114 +1,155 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 14766 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15157 -->
 <!-- Reviewed: no -->
 <!-- Reviewed: no -->
 <sect1 id="zend.validate.set" xmlns:xi="http://www.w3.org/2001/XInclude">
 <sect1 id="zend.validate.set" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Classes de validation standard</title>
     <title>Classes de validation standard</title>
 
 
-    <para>Zend Framework est fourni avec un jeu de classes de validation standard, qui sont directement utilisables par
-    votre application.</para>
+    <para>
+        Zend Framework est fourni avec un jeu de classes de validation standard, qui sont
+        directement utilisables par votre application.
+    </para>
 
 
     <sect2 id="zend.validate.set.alnum">
     <sect2 id="zend.validate.set.alnum">
         <title>Alnum</title>
         <title>Alnum</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> contient seulement des caractères
-        alphabétiques et numériques. Ce validateur inclue une option permettant la validation possible des caractères
-        espace.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> contient
+            seulement des caractères alphabétiques et numériques. Ce validateur inclue une option
+            permettant la validation possible des caractères espace.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.alpha">
     <sect2 id="zend.validate.set.alpha">
         <title>Alpha</title>
         <title>Alpha</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> contient seulement des caractères
-        alphabétiques. Ce validateur inclue une option permettant la validation possible des caractères espace.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> contient
+            seulement des caractères alphabétiques. Ce validateur inclue une option permettant la
+            validation possible des caractères espace.
+        </para>
 
 
         <note>
         <note>
-            <para>Les caractères alphabétiques comprennent les caractères destinés à constituer des mots dans chaque
-            langue. Cependant l'alphabet anglais est aussi utilisé pour les langues suivantes : chinois, japonais et
-            coréen. La langue est spécifiée par <classname>Zend_Locale</classname>.</para>
+            <para>
+                Les caractères alphabétiques comprennent les caractères destinés à constituer
+                des mots dans chaque langue. Cependant l'alphabet anglais est aussi utilisé pour les
+                langues suivantes : chinois, japonais et coréen. La langue est spécifiée par
+                <classname>Zend_Locale</classname>.
+            </para>
         </note>
         </note>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.barcode">
     <sect2 id="zend.validate.set.barcode">
         <title>Barcode</title>
         <title>Barcode</title>
 
 
-        <para>Ce validateur est instancié avec le type de code-barres suivant lequel vous souhaitez valider une valeur.
-        Il supporte actuellement les types de code-barres "<code>UPC-A</code>" (Universal Product Code) et
-        "<code>EAN-13</code>" (European Article Number), et la méthode <code>isValid()</code> retourne <code>true</code>
-        si et seulement si la valeur fournie est validée par l'algorithme de validation du code-barres. Vous devez
-        retirer tous les caractères exceptés les nombres compris entre zéro et neuf (0-9) de la valeur à tester avant de
-        la fournir au validateur.</para>
+        <para>
+            Ce validateur est instancié avec le type de code-barres suivant lequel vous
+            souhaitez valider une valeur. Il supporte actuellement les types de code-barres
+            "<code>UPC-A</code>" (Universal Product Code) et "<code>EAN-13</code>" (European Article
+            Number), et la méthode <code>isValid()</code> retourne <code>true</code> si et seulement
+            si la valeur fournie est validée par l'algorithme de validation du code-barres. Vous
+            devez retirer tous les caractères exceptés les nombres compris entre zéro et neuf (0-9)
+            de la valeur à tester avant de la fournir au validateur.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.between">
     <sect2 id="zend.validate.set.between">
         <title>Between</title>
         <title>Between</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> est compris entre les valeurs minimum et
-        maximum définies. La comparaison inclue par défaut les bornes (<code>$value</code> peut égaler le minimum ou le
-        maximum), bien que ceci puisse être surchargé pour avoir une comparaison stricte, où <code>$value</code> doit
-        être strictement supérieur au minimum et strictement inférieur au maximum.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> est compris
+            entre les valeurs minimum et maximum définies. La comparaison inclue par défaut les
+            bornes (<code>$value</code> peut égaler le minimum ou le maximum), bien que ceci puisse
+            être surchargé pour avoir une comparaison stricte, où <code>$value</code> doit être
+            strictement supérieur au minimum et strictement inférieur au maximum.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.ccnum">
     <sect2 id="zend.validate.set.ccnum">
         <title>Ccnum</title>
         <title>Ccnum</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> respecte <ulink
-        url="http://fr.wikipedia.org/wiki/Luhn">l'algorithme de Luhn ("module 10")</ulink> pour les numéros de cartes de
-        crédits.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> respecte <ulink
+            url="http://fr.wikipedia.org/wiki/Luhn">l'algorithme de Luhn ("module 10")</ulink> pour
+            les numéros de cartes de crédits.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.date">
     <sect2 id="zend.validate.set.date">
         <title>Date</title>
         <title>Date</title>
 
 
-        <para>Retourne <code>true</code> si <code>$value</code> est une date valide au format <code>YYYY-MM-DD</code>.
-        Si l'option <code>locale</code> est fournie alors la date sera validé suivant le paramètre local. Enfin si
-        l'option <code>format</code> est fournie ce format est utilisé pour la validation. Pour plus de détails
-        concernant les paramètres optionnel, referez vous à <link
-        linkend="zend.date.others.comparison.table">Zend_Date::isDate()</link>.</para>
+        <para>
+            Retourne <code>true</code> si <code>$value</code> est une date valide au format
+            <code>YYYY-MM-DD</code>. Si l'option <code>locale</code> est fournie alors la date sera
+            validé suivant le paramètre local. Enfin si l'option <code>format</code> est fournie ce
+            format est utilisé pour la validation. Pour plus de détails concernant les paramètres
+            optionnel, referez vous à <link
+            linkend="zend.date.others.comparison.table">Zend_Date::isDate()</link>.
+        </para>
     </sect2>
     </sect2>
 
 
+    <xi:include href="Zend_Validate-Db.xml">
+        <xi:fallback><xi:include href="../../en/module_specs/Zend_Validate-Db.xml" /></xi:fallback>
+    </xi:include>
+
     <sect2 id="zend.validate.set.digits">
     <sect2 id="zend.validate.set.digits">
         <title>Digits</title>
         <title>Digits</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> contient seulement des caractères
-        numériques.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> contient
+            seulement des caractères numériques.
+        </para>
     </sect2>
     </sect2>
 
 
-    <!--xi:include href="Zend_Validate-EmailAddress.xml" /-->
+    <xi:include href="Zend_Validate-EmailAddress.xml" />
 
 
     <sect2 id="zend.validate.set.float">
     <sect2 id="zend.validate.set.float">
         <title>Float</title>
         <title>Float</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> est une valeur en virgule flottante. A
-        partir de Zend Framework 1.8 ce validateur prend en considération la locale courante issue du navigateur, de
-        l'environnement ou de l'application. Vous pouvez bien sûr utiliser les accesseurs <code>get/setLocale</code>
-        pour changer ou la fournir au moment de la création de l'instance de ce validateur.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> est une valeur
+            en virgule flottante. A partir de Zend Framework 1.8 ce validateur prend en
+            considération la locale courante issue du navigateur, de l'environnement ou de
+            l'application. Vous pouvez bien sûr utiliser les accesseurs <code>get/setLocale</code>
+            pour changer ou la fournir au moment de la création de l'instance de ce
+            validateur.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.greater_than">
     <sect2 id="zend.validate.set.greater_than">
         <title>GreaterThan</title>
         <title>GreaterThan</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> est supérieure à une valeur minimum
-        fournie.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> est supérieure à
+            une valeur minimum fournie.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.hex">
     <sect2 id="zend.validate.set.hex">
         <title>Hex</title>
         <title>Hex</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> contient seulement des caractères
-        numériques hexadécimaux.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> contient
+            seulement des caractères numériques hexadécimaux.
+        </para>
     </sect2>
     </sect2>
 
 
-    <!--xi:include href="Zend_Validate-Hostname.xml" /-->
+    <xi:include href="Zend_Validate-Hostname.xml" />
 
 
     <sect2 id="zend.validate.set.iban">
     <sect2 id="zend.validate.set.iban">
         <title>Iban</title>
         <title>Iban</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> contient un IBAN valide (International
-        Bank Account Number = Numéro de compte bancaire international). Les numéros IBAN sont validés suivant le pays
-        dans lequel ils sont utilisés et par un somme de contrôle.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> contient un IBAN
+            valide (International Bank Account Number = Numéro de compte bancaire international).
+            Les numéros IBAN sont validés suivant le pays dans lequel ils sont utilisés et par un
+            somme de contrôle.
+        </para>
 
 
-        <para>Il existe deux manières de valider les numéros IBAN. En premier lieu, vous pouvez fournir une locale qui
-        représente un pays. Tout numéro IBAN fourni sera donc validé suivant ce pays.</para>
+        <para>
+            Il existe deux manières de valider les numéros IBAN. En premier lieu, vous pouvez
+            fournir une locale qui représente un pays. Tout numéro IBAN fourni sera donc validé
+            suivant ce pays.
+        </para>
 
 
         <programlisting role="php"><![CDATA[
         <programlisting role="php"><![CDATA[
 $validator = new Zend_Validate_Iban('de_AT');
 $validator = new Zend_Validate_Iban('de_AT');
@@ -123,8 +164,11 @@ if ($validator->isValid($iban)) {
 }
 }
 ]]></programlisting>
 ]]></programlisting>
 
 
-        <para>Vous pouvez aussi vouloir valider les numéros IBAN pour des pays uniques. La manière la plus simple est
-        donc de ne pas fournir de locale comme dans l'exemple suivant.</para>
+        <para>
+            Vous pouvez aussi vouloir valider les numéros IBAN pour des pays uniques. La
+            manière la plus simple est donc de ne pas fournir de locale comme dans l'exemple
+            suivant.
+        </para>
 
 
         <programlisting role="php"><![CDATA[
         <programlisting role="php"><![CDATA[
 $validator = new Zend_Validate_Iban();
 $validator = new Zend_Validate_Iban();
@@ -136,53 +180,72 @@ if ($validator->isValid($iban)) {
 }
 }
 ]]></programlisting>
 ]]></programlisting>
 
 
-        <para>Mais ceci montre un gros problème : si vous ne devez accepter que les numéros IBAN que pour un pays en
-        particulier, par exemple l'Allemagne, alors les numéros IBAN des autres pays seront aussi valides. Dans ce cas,
-        souvenez vous d'une chose : quand vous devez valider un numéro IBAN pour un pays donné, vous avez juste à
-        fournir la locale correspondante. Et quand vous acceptez tous les numéros IBAN sans restriction de pays, enlevez
-        simplement cette locale.</para>
+        <para>
+            Mais ceci montre un gros problème : si vous ne devez accepter que les numéros IBAN
+            que pour un pays en particulier, par exemple l'Allemagne, alors les numéros IBAN des
+            autres pays seront aussi valides. Dans ce cas, souvenez vous d'une chose : quand vous
+            devez valider un numéro IBAN pour un pays donné, vous avez juste à fournir la locale
+            correspondante. Et quand vous acceptez tous les numéros IBAN sans restriction de pays,
+            enlevez simplement cette locale.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.in_array">
     <sect2 id="zend.validate.set.in_array">
         <title>InArray</title>
         <title>InArray</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> est contenue dans un tableau. Si
-        l'option stricte est à <code>true</code>, alors le type de <code>$value</code> est aussi vérifié.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> est contenue
+            dans un tableau. Si l'option stricte est à <code>true</code>, alors le type de
+            <code>$value</code> est aussi vérifié.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.int">
     <sect2 id="zend.validate.set.int">
         <title>Int</title>
         <title>Int</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> est une valeur entière. A partir de Zend
-        Framework 1.8 ce validateur prend en considération la locale courante issue du navigateur, de l'environnement ou
-        de l'application. Vous pouvez bien sûr utiliser les accesseurs <code>get/setLocale</code> pour changer ou la
-        fournir au moment de la création de l'instance de ce validateur.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> est une valeur
+            entière. A partir de Zend Framework 1.8 ce validateur prend en considération la locale
+            courante issue du navigateur, de l'environnement ou de l'application. Vous pouvez bien
+            sûr utiliser les accesseurs <code>get/setLocale</code> pour changer ou la fournir au
+            moment de la création de l'instance de ce validateur.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.ip">
     <sect2 id="zend.validate.set.ip">
         <title>Ip</title>
         <title>Ip</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> est une adresse IP valide.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> est une adresse
+            IP valide.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.less_than">
     <sect2 id="zend.validate.set.less_than">
         <title>LessThan</title>
         <title>LessThan</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> est inférieure à une valeur maximum
-        fournie.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> est inférieure à
+            une valeur maximum fournie.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.not_empty">
     <sect2 id="zend.validate.set.not_empty">
         <title>NotEmpty</title>
         <title>NotEmpty</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> est une valeur non vide.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> est une valeur
+            non vide.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.set.regex">
     <sect2 id="zend.validate.set.regex">
         <title>Regex</title>
         <title>Regex</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si <code>$value</code> respecte une expression régulière
-        fournie.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si <code>$value</code> respecte une
+            expression régulière fournie.
+        </para>
     </sect2>
     </sect2>
 
 
     <xi:include href="Zend_Validate-Sitemap.xml">
     <xi:include href="Zend_Validate-Sitemap.xml">
@@ -192,15 +255,19 @@ if ($validator->isValid($iban)) {
     <sect2 id="zend.validate.set.string_length">
     <sect2 id="zend.validate.set.string_length">
         <title>StringLength</title>
         <title>StringLength</title>
 
 
-        <para>Retourne <code>true</code> si et seulement si la longueur de la chaîne <code>$value</code> est supérieure
-        à une valeur minimum et inférieure à une valeur maximum (quand l'option max n'est pas à <code>null</code>). La
-        méthode <code>setMin()</code> lève une exception si la valeur fournie pour la longueur minimum est supérieure à
-        celle fournie pour la longueur maximum, et la méthode <code>setMax()</code> lève une exception si la valeur
-        fournie pour la longueur maximum est supérieure à celle fournie pour la longueur minimum. Cette classe supporte
-        l'UTF-8 et les autres encodages, en se basant sur la valeur courante de <ulink
-                url="http://www.php.net/manual/fr/ref.iconv.php#iconv.configuration">
-                <code>iconv.internal_encoding</code>
-            </ulink>. Si vous avez besoin de régler un autre encodage, vous pouvez le faire avec les accesseurs
-        <code>getEncoding()</code> et <code>setEncoding()</code>.</para>
+        <para>
+            Retourne <code>true</code> si et seulement si la longueur de la chaîne
+            <code>$value</code> est supérieure à une valeur minimum et inférieure à une valeur
+            maximum (quand l'option max n'est pas à <code>null</code>). La méthode
+            <code>setMin()</code> lève une exception si la valeur fournie pour la longueur minimum
+            est supérieure à celle fournie pour la longueur maximum, et la méthode
+            <code>setMax()</code> lève une exception si la valeur fournie pour la longueur maximum
+            est supérieure à celle fournie pour la longueur minimum. Cette classe supporte l'UTF-8
+            et les autres encodages, en se basant sur la valeur courante de <ulink
+                    url="http://www.php.net/manual/fr/ref.iconv.php#iconv.configuration">
+                    <code>iconv.internal_encoding</code>
+                </ulink>. Si vous avez besoin de régler un autre encodage, vous pouvez le faire avec
+            les accesseurs <code>getEncoding()</code> et <code>setEncoding()</code>.
+        </para>
     </sect2>
     </sect2>
 </sect1>
 </sect1>

+ 253 - 137
documentation/manual/fr/module_specs/Zend_Validate.xml

@@ -1,170 +1,286 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 12116 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15343 -->
 <!-- Reviewed: no -->
 <!-- Reviewed: no -->
 <sect1 id="zend.validate.introduction">
 <sect1 id="zend.validate.introduction">
     <title>Introduction</title>
     <title>Introduction</title>
 
 
-    <para>Le composant <classname>Zend_Validate</classname> fournit un ensemble de validateurs usuels. Il fournit également un
-    mécanisme simple de chaînage permettant d'appliquer de multiples validateurs à une donnée dans un ordre défini par
-    l'utilisateur.</para>
+    <para>
+        Le composant <classname>Zend_Validate</classname> fournit un ensemble de validateurs
+        usuels. Il fournit également un mécanisme simple de chaînage permettant d'appliquer de
+        multiples validateurs à une donnée dans un ordre défini par l'utilisateur.
+    </para>
 
 
     <sect2 id="zend.validate.introduction.definition">
     <sect2 id="zend.validate.introduction.definition">
         <title>Qu'est-ce qu'un validateur ?</title>
         <title>Qu'est-ce qu'un validateur ?</title>
 
 
-        <para>Un validateur examine ce qui lui est soumis suivant certaines règles et retourne un résultat booléen, si
-        la donnée est conforme aux exigences. Si ce n'est pas le cas, un validateur peut de manière optionnelle fournir
-        des informations concernant la (ou les) règle(s) non remplie(s).</para>
+        <para>
+            Un validateur examine ce qui lui est soumis suivant certaines règles et retourne
+            un résultat booléen, si la donnée est conforme aux exigences. Si ce n'est pas le cas, un
+            validateur peut de manière optionnelle fournir des informations concernant la (ou les)
+            règle(s) non remplie(s).
+        </para>
 
 
-        <para>Par exemple, une application Web peut réclamer qu'un identifiant comprennent entre six et douze caractères
-        et ne contiennent que des caractères alphanumériques. Un validateur peut être utilisé pour s'assurer que les
-        identifiants remplissent ces règles. Si un identifiant donné ne respecte pas l'une ou plusieurs de ces règles,
-        il sera utile de savoir laquelle ou lesquelles en particulier.</para>
+        <para>
+            Par exemple, une application Web peut réclamer qu'un identifiant comprennent entre
+            six et douze caractères et ne contiennent que des caractères alphanumériques. Un
+            validateur peut être utilisé pour s'assurer que les identifiants remplissent ces règles.
+            Si un identifiant donné ne respecte pas l'une ou plusieurs de ces règles, il sera utile
+            de savoir laquelle ou lesquelles en particulier.
+        </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.validate.introduction.using">
     <sect2 id="zend.validate.introduction.using">
         <title>Utilisation basique des validateurs</title>
         <title>Utilisation basique des validateurs</title>
 
 
-        <para>Avoir défini la validation de cette manière fournit la fondation de <classname>Zend_Validate_Interface</classname>,
-        qui définit deux méthodes, <code>isValid()</code> et <code>getMessages()</code>. La méthode
-        <code>isValid()</code> réalise la validation sur la valeur fournie, en retournant <code>true</code> si et
-        seulement si la valeur respecte les critères de validation.</para>
-
-        <para>Si <code>isValid()</code> retourne <code>false</code>, <code>getMessages()</code> retourne un tableau de
-        messages expliquant la(es) raison(s) de l'échec de la validation. Les clés du tableau sont des chaînes courtes
-        qui identifient les raisons de l'échec de la validation, et les valeurs du tableau sont les chaînes de messages
-        humainement lisibles correspondantes. Les clés et les valeurs sont dépendantes de la classe ; chaque classe de
-        validation définit son propre jeu de messages d'échec de validation et les clés uniques qui les identifient.
-        Chaque classe possède aussi une définition de constantes ("<code>const</code>") qui rattachent tout
-        identificateur à une cause d'échec de validation.</para>
-
-        <para>La méthode <code>getErrors()</code> retourne un tableau d'informations courtes qui identifient la(es)
-        raison(s) de l'échec de la validation. Ces chaînes sont fournies pour identifier les erreurs. Elles sont
-        destinées à votre code d'application, et non à être affichées pour l'utilisateur. Ces chaînes sont dépendantes
-        de la classe ; chaque classe de validation définit ces propres chaînes pour identifier la cause des erreurs.
-        Chaque classe fournit de plus des constantes (<code>const</code>) qui correspondent aux identificateurs
-        d'erreur.</para>
+        <para>
+            Avoir défini la validation de cette manière fournit la fondation de
+            <classname>Zend_Validate_Interface</classname>, qui définit deux méthodes,
+            <code>isValid()</code> et <code>getMessages()</code>. La méthode <code>isValid()</code>
+            réalise la validation sur la valeur fournie, en retournant <code>true</code> si et
+            seulement si la valeur respecte les critères de validation.
+        </para>
+
+        <para>
+            Si <code>isValid()</code> retourne <code>false</code>, <code>getMessages()</code>
+            retourne un tableau de messages expliquant la(es) raison(s) de l'échec de la validation.
+            Les clés du tableau sont des chaînes courtes qui identifient les raisons de l'échec de
+            la validation, et les valeurs du tableau sont les chaînes de messages humainement
+            lisibles correspondantes. Les clés et les valeurs sont dépendantes de la classe ; chaque
+            classe de validation définit son propre jeu de messages d'échec de validation et les
+            clés uniques qui les identifient. Chaque classe possède aussi une définition de
+            constantes ("<code>const</code>") qui rattachent tout identificateur à une cause d'échec
+            de validation.
+        </para>
+
+        <para>
+            La méthode <code>getErrors()</code> retourne un tableau d'informations courtes qui
+            identifient la(es) raison(s) de l'échec de la validation. Ces chaînes sont fournies pour
+            identifier les erreurs. Elles sont destinées à votre code d'application, et non à être
+            affichées pour l'utilisateur. Ces chaînes sont dépendantes de la classe ; chaque classe
+            de validation définit ces propres chaînes pour identifier la cause des erreurs. Chaque
+            classe fournit de plus des constantes (<code>const</code>) qui correspondent aux
+            identificateurs d'erreur.
+        </para>
 
 
         <note>
         <note>
-            <para>La méthode <code>getMessages()</code> retourne des informations sur l'échec de validation seulement
-            pour l'appel le plus récent de <code>isValid()</code>. Chaque appel de <code>isValid()</code> efface les
-            messages et les erreurs déclenchées par l'appel précédent, car il est probable que chaque appel de
-            <code>isValid()</code> est réalisé pour des données d'entrée différentes.</para>
+            <para>
+                La méthode <code>getMessages()</code> retourne des informations sur l'échec de
+                validation seulement pour l'appel le plus récent de <code>isValid()</code>. Chaque
+                appel de <code>isValid()</code> efface les messages et les erreurs déclenchées par
+                l'appel précédent, car il est probable que chaque appel de <code>isValid()</code>
+                est réalisé pour des données d'entrée différentes.
+            </para>
         </note>
         </note>
 
 
-        <para>L'exemple suivant illustre la validation d'une adresse émail : <programlisting role="php"><![CDATA[
-$validator = new Zend_Validate_EmailAddress();
+        <para>
+            L'exemple suivant illustre la validation d'une adresse émail : <programlisting
+            role="php"><![CDATA[
+    $validator = new Zend_Validate_EmailAddress();
+    
+    if ($validator->isValid($email)) {
+        // l'email est valide
+    } else {
+        // l'email est invalide ; affichons pourquoi
+        foreach ($validator->getMessages() as $messageId => $message) {
+            echo "Echec de validation '$messageId' : $message\n";
+        }
+    }
+    ]]></programlisting></para>
+        </sect2>
+    
+        <sect2 id="zend.validate.introduction.messages">
+            <title>Messages personnalisés</title>
+    
+        <para>
+            Les classes de validation fournissent une méthode <code>setMessage()</code> avec
+            laquelle vous pouvez spécifier le format du message retourné par
+            <code>getMessages()</code> dans le cas d'un échec de validation. Le premier argument de
+            cette méthode est une chaîne contenant le message d'erreur. Vous pouvez inclure des
+            balises dans cette chaîne qui seront substituées avec les données appropriées du
+            validateur. La balise <code>%value%</code> est supportée par tous les validateurs ; elle
+            est substituée par la valeur fournie à <code>isValid()</code>. D'autres balises peuvent
+            être supportées aux cas par cas par chaque classe de validation. Par exemple,
+            <code>%max%</code> est une balise supportée par
+            <classname>Zend_Validate_LessThan</classname>. La méthode
+            <code>getMessageVariables()</code> retourne un tableau des balises de variables
+            supportées par le validateur.
+        </para>
+
+        <para>
+            Le second paramètre optionnel est une chaîne qui identifie le modèle de message
+            d'échec de validation qui doit être paramètré, ce qui est pratique quand une classe de
+            validation définit plus d'une cause d'échec. Si vous omettez ce second argument,
+            <code>setMessage()</code> considère que le message, que vous spécifiez, s'applique au
+            premier message déclaré dans la classe de validation. La plupart des classes de
+            validation n'ayant qu'un seul message d'erreur, il n'est pas nécessaire de spécifier
+            distinctement dans ce cas quel message vous affectez.
+        </para>
 
 
-if ($validator->isValid($email)) {
-    // l'email est valide
-} else {
-    // l'email est invalide ; affichons pourquoi
-    foreach ($validator->getMessages() as $messageId => $message) {
-        echo "Echec de validation '$messageId' : $message\n";
+        <para>
+            <programlisting role="php"><![CDATA[
+    $validator = new Zend_Validate_StringLength(8);
+    
+    $validator->setMessage(
+        'La chaîne \'%value%\' est trop courte ; '
+      . 'elle doit être au moins de %min% caractères',
+        Zend_Validate_StringLength::TOO_SHORT);
+    
+    if (!$validator->isValid('word')) {
+        $messages = $validator->getMessages();
+        echo current($messages);
+    
+        // affiche "La chaîne 'word' est trop courte ;
+        // elle doit être au moins de 8 caractères"
     }
     }
-}
-]]></programlisting></para>
+    ]]></programlisting></para>
+    
+        <para>
+            Vous pouvez régler des messages multiples en utilisant la méthode
+            <code>setMessages()</code>. Son argument dans ce cas est un tableau de paires
+            clé/message. <programlisting role="php"><![CDATA[
+    $validator = new Zend_Validate_StringLength(8, 12);
+    
+    $validator->setMessages( array(
+        Zend_Validate_StringLength::TOO_SHORT =>
+                'La chaîne \'%value%\' est trop courte',
+        Zend_Validate_StringLength::TOO_LONG  =>
+                'La chaîne \'%value%\' est trop longue'
+    ));
+    ]]></programlisting></para>
+    
+        <para>
+            Si votre application exige une flexibilité encore plus grande avec laquelle elle
+            rapporte les échecs de validation, vous pouvez accéder aux propriétés par le même nom
+            que les balises de message supportées par une classe de validation donnée. La propriété
+            <code>value</code> est toujours accessible dans un validateur ; il s'agit de la valeur
+            fournie comme argument à <code>isValid()</code>. D'autres propriétés peuvent être
+            supportées au cas par cas par chaque classe de validation. <programlisting
+            role="php"><![CDATA[
+    $validator = new Zend_Validate_StringLength(8, 12);
+    
+    if (!validator->isValid('word')) {
+        echo 'Echec du mot : '
+            . $validator->value
+            . ' ; sa longueur n\'est pas compris entre '
+            . $validator->min
+            . ' et '
+            . $validator->max
+            . "\n";
+    }
+    ]]></programlisting></para>
+        </sect2>
+    
+        <sect2 id="zend.validate.introduction.static">
+            <title>Utilisation de la méthode statique <code>is()</code></title>
+    
+        <para>
+            S'il est peu pratique de charger une classe de validation donnée et créer une
+            instance de validateur, vous pouvez utiliser la méthode statique
+            <classname>Zend_Validate::is()</classname> comme appel alternatif. Le premier argument
+            de cette méthode est la donnée d'entrée, que vous passeriez à la méthode
+            <code>isValid()</code>. Le deuxième argument est une chaîne, qui correspond au nom de
+            base de la classe de validation, relativement dans l'espace de noms
+            <classname>Zend_Validate</classname>. La méthode <code>is()</code> charge
+            automatiquement la classe, crée une instance et applique la méthode
+            <code>isValid()</code> à la donnée d'entrée. <programlisting role="php"><![CDATA[
+    if (Zend_Validate::is($email, 'EmailAddress')) {
+        // l'email est valide
+    }
+    ]]></programlisting></para>
+    
+        <para>
+            Vous pouvez aussi fournir un tableau de paramètres destinés au constructeur de la
+            classe, s'ils sont nécessaires pour votre classe de validation. <programlisting
+            role="php"><![CDATA[
+    if (Zend_Validate::is($value, 'Between', array(1, 12))) {
+        // $value est compris entre 1 et 12
+    }
+    ]]></programlisting></para>
+    
+        <para>
+            La méthode <code>is()</code> retourne une valeur booléenne, la même que la méthode
+            <code>isValid()</code>. Lors de l'utilisation de la méthode statique <code>is()</code>,
+            les messages d'échec de validation ne sont pas disponibles.
+        </para>
+
+        <para>
+            L'utilisation statique peut être pratique pour invoquer un validateur ad hoc, mais
+            si vous avez besoin d'exécuter un validateur pour des données multiples, il est plus
+            efficace de suivre le premier exemple ci-dessus, créant une instance de l'objet de
+            validation et appelant sa méthode <code>isValid()</code>.
+        </para>
+
+        <para>
+            De plus, la classe <classname>Zend_Filter_Input</classname> vous permet
+            d'instancier et d'exécuter des filtres multiples et des classes de validateurs sur
+            demande pour traiter l'ensemble de données saisies. Voir <xref
+            linkend="zend.filter.input" />.
+        </para>
     </sect2>
     </sect2>
 
 
-    <sect2 id="zend.validate.introduction.messages">
-        <title>Messages personnalisés</title>
-
-        <para>Les classes de validation fournissent une méthode <code>setMessage()</code> avec laquelle vous pouvez
-        spécifier le format du message retourné par <code>getMessages()</code> dans le cas d'un échec de validation. Le
-        premier argument de cette méthode est une chaîne contenant le message d'erreur. Vous pouvez inclure des balises
-        dans cette chaîne qui seront substituées avec les données appropriées du validateur. La balise
-        <code>%value%</code> est supportée par tous les validateurs ; elle est substituée par la valeur fournie à
-        <code>isValid()</code>. D'autres balises peuvent être supportées aux cas par cas par chaque classe de
-        validation. Par exemple, <code>%max%</code> est une balise supportée par <classname>Zend_Validate_LessThan</classname>. La
-        méthode <code>getMessageVariables()</code> retourne un tableau des balises de variables supportées par le
-        validateur.</para>
-
-        <para>Le second paramètre optionnel est une chaîne qui identifie le modèle de message d'échec de validation qui
-        doit être paramètré, ce qui est pratique quand une classe de validation définit plus d'une cause d'échec. Si
-        vous omettez ce second argument, <code>setMessage()</code> considère que le message, que vous spécifiez,
-        s'applique au premier message déclaré dans la classe de validation. La plupart des classes de validation n'ayant
-        qu'un seul message d'erreur, il n'est pas nécessaire de spécifier distinctement dans ce cas quel message vous
-        affectez.</para>
-
-        <para><programlisting role="php"><![CDATA[
-$validator = new Zend_Validate_StringLength(8);
-
-$validator->setMessage(
-    'La chaîne \'%value%\' est trop courte ; '
-  . 'elle doit être au moins de %min% caractères',
-    Zend_Validate_StringLength::TOO_SHORT);
-
-if (!$validator->isValid('word')) {
-    $messages = $validator->getMessages();
-    echo current($messages);
-
-    // affiche "La chaîne 'word' est trop courte ;
-    // elle doit être au moins de 8 caractères"
-}
-]]></programlisting></para>
+    <sect2 id="zend.validate.introduction.translation">
+        <title>Translating messages</title>
 
 
-        <para>Vous pouvez régler des messages multiples en utilisant la méthode <code>setMessages()</code>. Son argument
-        dans ce cas est un tableau de paires clé/message. <programlisting role="php"><![CDATA[
-$validator = new Zend_Validate_StringLength(8, 12);
+        <para>
+            Validate classes provide a <code>setTranslator()</code> method with
+            which you can specify a instance of <classname>Zend_Translate</classname> which
+            will translate the messages in case of a validation failure. The
+            <code>getTranslator()</code> method returns the set translator instance.
+        </para>
 
 
-$validator->setMessages( array(
-    Zend_Validate_StringLength::TOO_SHORT =>
-            'La chaîne \'%value%\' est trop courte',
-    Zend_Validate_StringLength::TOO_LONG  =>
-            'La chaîne \'%value%\' est trop longue'
-));
-]]></programlisting></para>
-
-        <para>Si votre application exige une flexibilité encore plus grande avec laquelle elle rapporte les échecs de
-        validation, vous pouvez accéder aux propriétés par le même nom que les balises de message supportées par une
-        classe de validation donnée. La propriété <code>value</code> est toujours accessible dans un validateur ; il
-        s'agit de la valeur fournie comme argument à <code>isValid()</code>. D'autres propriétés peuvent être supportées
-        au cas par cas par chaque classe de validation. <programlisting role="php"><![CDATA[
+        <programlisting role="php"><![CDATA[
 $validator = new Zend_Validate_StringLength(8, 12);
 $validator = new Zend_Validate_StringLength(8, 12);
+$translate = new Zend_Translate(
+    'array',
+    array(Zend_Validate_StringLength::TOO_SHORT => 'Translated \'%value%\''),
+    'en'
+);
 
 
-if (!validator->isValid('word')) {
-    echo 'Echec du mot : '
-        . $validator->value
-        . ' ; sa longueur n\'est pas compris entre '
-        . $validator->min
-        . ' et '
-        . $validator->max
-        . "\n";
-}
-]]></programlisting></para>
-    </sect2>
+$validator->setTranslator($translate);
+]]></programlisting>
 
 
-    <sect2 id="zend.validate.introduction.static">
-        <title>Utilisation de la méthode statique <code>is()</code></title>
-
-        <para>S'il est peu pratique de charger une classe de validation donnée et créer une instance de validateur, vous
-        pouvez utiliser la méthode statique <classname>Zend_Validate::is()</classname> comme appel alternatif. Le premier argument
-        de cette méthode est la donnée d'entrée, que vous passeriez à la méthode <code>isValid()</code>. Le deuxième
-        argument est une chaîne, qui correspond au nom de base de la classe de validation, relativement dans l'espace de
-        noms <classname>Zend_Validate</classname>. La méthode <code>is()</code> charge automatiquement la classe, crée une
-        instance et applique la méthode <code>isValid()</code> à la donnée d'entrée. <programlisting
-        role="php"><![CDATA[
-if (Zend_Validate::is($email, 'EmailAddress')) {
-    // l'email est valide
-}
-]]></programlisting></para>
+        <para>
+            With the static <code>setDefaultTranslator()</code> method you can set
+            a instance of <classname>Zend_Translate</classname> which will be used for all
+            validation classes, and can be retrieved with <code>getDefaultTranslator()</code>.
+            This prevents you from setting a translator manually for all validator classes,
+            and simplifies your code.
+        </para>
 
 
-        <para>Vous pouvez aussi fournir un tableau de paramètres destinés au constructeur de la classe, s'ils sont
-        nécessaires pour votre classe de validation. <programlisting role="php"><![CDATA[
-if (Zend_Validate::is($value, 'Between', array(1, 12))) {
-    // $value est compris entre 1 et 12
-}
-]]></programlisting></para>
+        <programlisting role="php"><![CDATA[
+$translate = new Zend_Translate(
+    'array',
+    array(Zend_Validate_StringLength::TOO_SHORT => 'Translated \'%value%\''),
+    'en'
+);
+Zend_Validate::setDefaultTranslator($translate);
+]]></programlisting>
 
 
-        <para>La méthode <code>is()</code> retourne une valeur booléenne, la même que la méthode <code>isValid()</code>.
-        Lors de l'utilisation de la méthode statique <code>is()</code>, les messages d'échec de validation ne sont pas
-        disponibles.</para>
+        <note>
+            <para>
+                When you have set an application wide locale within your registry, then this
+                locale will be used as default translator.
+            </para>
+        </note>
+
+        <para>
+            Sometimes it is necessary to disable the translator within a validator.
+            To archive this you can use the <code>setDisableTranslator()</code> method,
+            which accepts a boolean parameter, and <code>translatorIsDisabled()</code>
+            to get the set value.
+        </para>
 
 
-        <para>L'utilisation statique peut être pratique pour invoquer un validateur ad hoc, mais si vous avez besoin
-        d'exécuter un validateur pour des données multiples, il est plus efficace de suivre le premier exemple
-        ci-dessus, créant une instance de l'objet de validation et appelant sa méthode <code>isValid()</code>.</para>
+        <programlisting role="php"><![CDATA[
+$validator = new Zend_Validate_StringLength(8, 12);
+if (!$validator->isTranslatorDisabled()) {
+    $validator->setDisableTranslator();
+}
+]]></programlisting>
 
 
-        <para>De plus, la classe <classname>Zend_Filter_Input</classname> vous permet d'instancier et d'exécuter des filtres
-        multiples et des classes de validateurs sur demande pour traiter l'ensemble de données saisies. Voir <xref
-        linkend="zend.filter.input" />.</para>
+        <para>
+            It is also possible to use a translator instead of setting own messages with
+            <code>setMessage()</code>. But doing so, you should keep in mind, that the
+            translator works also on messages you set your own.
+        </para>
     </sect2>
     </sect2>
 </sect1>
 </sect1>

+ 53 - 7
documentation/manual/fr/module_specs/Zend_View-Helpers-Json.xml

@@ -1,12 +1,15 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 14385 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15343 -->
 <!-- Reviewed: no -->
 <!-- Reviewed: no -->
 <sect3 id="zend.view.helpers.initial.json">
 <sect3 id="zend.view.helpers.initial.json">
     <title>L'aide de vue JSON</title>
     <title>L'aide de vue JSON</title>
 
 
-    <para>Quand vous créez des vues qui retournent du JSON, il est important de paramétrer aussi les en-têtes de réponse
-    appropriés. L'aide vue JSON réalise exactement cela. De plus, par défaut, elle désactive l'éventuel layout (s'il est
-    activé), puisque les layouts sont rarement utilisés dans les réponses JSON.</para>
+    <para>
+        Quand vous créez des vues qui retournent du JSON, il est important de paramétrer aussi
+        les en-têtes de réponse appropriés. L'aide vue JSON réalise exactement cela. De plus, par
+        défaut, elle désactive l'éventuel layout (s'il est activé), puisque les layouts sont
+        rarement utilisés dans les réponses JSON.
+    </para>
 
 
     <para>L'aide de vue JSON ajoute l'en-tête suivant :</para>
     <para>L'aide de vue JSON ajoute l'en-tête suivant :</para>
 
 
@@ -14,12 +17,55 @@
 Content-Type: application/json
 Content-Type: application/json
 ]]></programlisting>
 ]]></programlisting>
 
 
-    <para>Beaucoup de librairies AJAX recherche cet en-tête quand elles analysent les réponses pour déterminer comment le
-    contenu doit être géré.</para>
+    <para>
+        Beaucoup de librairies AJAX recherche cet en-tête quand elles analysent les réponses
+        pour déterminer comment le contenu doit être géré.
+    </para>
 
 
     <para>L'utilisation de l'aide de vue JSON est très simple :</para>
     <para>L'utilisation de l'aide de vue JSON est très simple :</para>
 
 
     <programlisting role="php"><![CDATA[
     <programlisting role="php"><![CDATA[
 <?php echo $this->json($this->data) ?>
 <?php echo $this->json($this->data) ?>
 ]]></programlisting>
 ]]></programlisting>
+
+    <note>
+        <title>Keeping layouts and enabling encoding using Zend_Json_Expr</title>
+
+        <para>
+            Each method in the JSON helper accepts a second, optional argument.
+            This second argument can be a boolean flag to enable or disable
+            layouts, or an array of options that will be passed to
+            <classname>Zend_Json::encode()</classname> and used internally to encode data.
+        </para>
+
+        <para>
+            To keep layouts, the second parameter needs to be boolean
+            <code>true</code>. When the second parameter is an array, keeping
+            layouts can be achieved by including a <code>keepLayouts</code> key
+            with a value of a boolean <code>true</code>.
+        </para>
+
+        <programlisting role="php"><![CDATA[
+// Boolean true as second argument enables layouts:
+echo $this->json($this->data, true);
+
+// Or boolean true as "keepLayouts" key:
+echo $this->json($this->data, array('keepLayouts' => true));
+]]></programlisting>
+
+        <para>
+            <classname>Zend_Json::encode</classname> allows the encoding of native JSON
+            expressions using <classname>Zend_Json_Expr</classname> objects. This option
+            is disabled by default. To enable this option, pass a boolean
+            <code>true</code> to the <code>enableJsonExprFinder</code> key of
+            the options array:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+<?php echo $this->json($this->data, array(
+    'enableJsonExprFinder' => true,
+    'keepLayouts'          => true,
+)) ?>
+]]></programlisting>
+    </note>
 </sect3>
 </sect3>