2
0
Просмотр исходного кода

DOCUMENTATION French: sync manual

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@15490 44c647ce-9c0f-0410-b52a-842ac1e357ba
mikaelkael 16 лет назад
Родитель
Сommit
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
             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[
-    $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 id="zend.search.lucene.best-practice.indexing-performance">
@@ -80,10 +80,10 @@
         <para>
             L'optimisation complète de l'index peut être effectuée avec la méthode
             <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>
             L'optimisation d'index fonctionne avec des "data streams" et ne consomme pas pas
@@ -321,20 +321,20 @@
         <para>
             Le premier est de forcer l'index à sortir de la portée (du scope) :<programlisting
             role="php"><![CDATA[
-    $index = Zend_Search_Lucene::open($indexPath);
-    
-    ...
-    
-    unset($index);
-    ]]></programlisting></para>
+$index = Zend_Search_Lucene::open($indexPath);
+
+...
+
+unset($index);
+]]></programlisting></para>
     
         <para>
             Le second est d'effectuer une opération de commit avant la fin du script exécution
             :<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
             de l'index</link>".
         </para>
@@ -358,40 +358,40 @@
         <para>
             C'est plus efficace que d'utiliser la méthode <code>find()</code> :<programlisting
             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 id="zend.search.lucene.best-practice.memory-usage">
@@ -476,14 +476,14 @@
         <para>
             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[
-    $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.
         </para>
 
@@ -491,15 +491,15 @@
             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
             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>
             La même approche est utilisée pour définir l'encodage des chaînes de
@@ -514,20 +514,20 @@
         <para>
             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[
-    $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>
             L'encodage par défaut peut également être spécifié avec la méthode
             <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>
             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 -->
 <sect1 id="zend.validate.set" xmlns:xi="http://www.w3.org/2001/XInclude">
     <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">
         <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 id="zend.validate.set.alpha">
         <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>
-            <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>
     </sect2>
 
     <sect2 id="zend.validate.set.barcode">
         <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 id="zend.validate.set.between">
         <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 id="zend.validate.set.ccnum">
         <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 id="zend.validate.set.date">
         <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>
 
+    <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">
         <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>
 
-    <!--xi:include href="Zend_Validate-EmailAddress.xml" /-->
+    <xi:include href="Zend_Validate-EmailAddress.xml" />
 
     <sect2 id="zend.validate.set.float">
         <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 id="zend.validate.set.greater_than">
         <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 id="zend.validate.set.hex">
         <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>
 
-    <!--xi:include href="Zend_Validate-Hostname.xml" /-->
+    <xi:include href="Zend_Validate-Hostname.xml" />
 
     <sect2 id="zend.validate.set.iban">
         <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[
 $validator = new Zend_Validate_Iban('de_AT');
@@ -123,8 +164,11 @@ if ($validator->isValid($iban)) {
 }
 ]]></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[
 $validator = new Zend_Validate_Iban();
@@ -136,53 +180,72 @@ if ($validator->isValid($iban)) {
 }
 ]]></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 id="zend.validate.set.in_array">
         <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 id="zend.validate.set.int">
         <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 id="zend.validate.set.ip">
         <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 id="zend.validate.set.less_than">
         <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 id="zend.validate.set.not_empty">
         <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 id="zend.validate.set.regex">
         <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>
 
     <xi:include href="Zend_Validate-Sitemap.xml">
@@ -192,15 +255,19 @@ if ($validator->isValid($iban)) {
     <sect2 id="zend.validate.set.string_length">
         <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>
 </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 -->
 <sect1 id="zend.validate.introduction">
     <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">
         <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 id="zend.validate.introduction.using">
         <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>
-            <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>
 
-        <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 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);
+$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>
 </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 -->
 <sect3 id="zend.view.helpers.initial.json">
     <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>
 
@@ -14,12 +17,55 @@
 Content-Type: application/json
 ]]></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>
 
     <programlisting role="php"><![CDATA[
 <?php echo $this->json($this->data) ?>
 ]]></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>