Browse Source

DOCUMENTATION French: sync and clean manual

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@15485 44c647ce-9c0f-0410-b52a-842ac1e357ba
mikaelkael 16 năm trước cách đây
mục cha
commit
f984b892e7
20 tập tin đã thay đổi với 2347 bổ sung1524 xóa
  1. 32 16
      documentation/manual/fr/module_specs/Zend_Pdf-Create.xml
  2. 496 391
      documentation/manual/fr/module_specs/Zend_Pdf-Drawing.xml
  3. 40 21
      documentation/manual/fr/module_specs/Zend_Pdf-Introduction.xml
  4. 67 44
      documentation/manual/fr/module_specs/Zend_Pdf-Pages.xml
  5. 173 120
      documentation/manual/fr/module_specs/Zend_Pdf-Properties.xml
  6. 17 10
      documentation/manual/fr/module_specs/Zend_Pdf-Save.xml
  7. 14 6
      documentation/manual/fr/module_specs/Zend_Pdf-Usage.xml
  8. 46 24
      documentation/manual/fr/module_specs/Zend_ProgressBar.xml
  9. 78 31
      documentation/manual/fr/module_specs/Zend_ProgressBar_Adapter_Console.xml
  10. 23 14
      documentation/manual/fr/module_specs/Zend_ProgressBar_Adapter_JsPull.xml
  11. 81 36
      documentation/manual/fr/module_specs/Zend_ProgressBar_Adapter_JsPush.xml
  12. 116 56
      documentation/manual/fr/module_specs/Zend_Registry.xml
  13. 19 12
      documentation/manual/fr/module_specs/Zend_Rest.xml
  14. 83 46
      documentation/manual/fr/module_specs/Zend_Rest_Client.xml
  15. 26 13
      documentation/manual/fr/module_specs/Zend_Rest_Server.xml
  16. 147 94
      documentation/manual/fr/module_specs/Zend_Search_Lucene-Advanced.xml
  17. 516 370
      documentation/manual/fr/module_specs/Zend_Search_Lucene-BestPractice.xml
  18. 145 104
      documentation/manual/fr/module_specs/Zend_Search_Lucene-Charset.xml
  19. 192 100
      documentation/manual/fr/module_specs/Zend_Search_Lucene-IndexCreation.xml
  20. 36 16
      documentation/manual/fr/module_specs/Zend_Search_Lucene-JavaLucene.xml

+ 32 - 16
documentation/manual/fr/module_specs/Zend_Pdf-Create.xml

@@ -1,17 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13835 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15341 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.pdf.create">
     <title>Créer et charger des documents PDF</title>
 
-    <para>La classe <classname>Zend_Pdf</classname> représente le document PDF en lui-même et fournis des méthodes pour manipuler
-    l'ensemble du document.</para>
+    <para>
+        La classe <classname>Zend_Pdf</classname> représente le document PDF en lui-même et
+        fournis des méthodes pour manipuler l'ensemble du document.
+    </para>
 
-    <para>Pour créer un nouveau document, un nouvel objet <classname>Zend_Pdf</classname> doit être créé.</para>
+    <para>
+        Pour créer un nouveau document, un nouvel objet <classname>Zend_Pdf</classname> doit
+        être créé.
+    </para>
 
-    <para>La classe <classname>Zend_Pdf</classname> fournis deux méthodes statiques pour charger un PDF existant. Ce sont les
-    méthodes <classname>Zend_Pdf::load()</classname> et <classname>Zend_Pdf::parse()</classname>. Les deux retournent un objet
-    <classname>Zend_Pdf</classname> ou lève une exception en cas d'erreur.</para>
+    <para>
+        La classe <classname>Zend_Pdf</classname> fournis deux méthodes statiques pour charger
+        un PDF existant. Ce sont les méthodes <classname>Zend_Pdf::load()</classname> et
+        <classname>Zend_Pdf::parse()</classname>. Les deux retournent un objet
+        <classname>Zend_Pdf</classname> ou lève une exception en cas d'erreur.
+    </para>
 
     <example id="zend.pdf.create.example-1">
         <title>Créer un nouveau document PDF ou en charger un existant</title>
@@ -30,15 +38,23 @@ $pdf3 = Zend_Pdf::parse($pdfString);
 ]]></programlisting>
     </example>
 
-    <para>Le format de fichier PDF supporte la mise à jour incrémentale d'un document. Ainsi chaque fois que le document
-    est mis à jour, une nouvelle version du document est créée. Le module <classname>Zend_Pdf</classname> supporte la récupération
-    d'une version spécifique.</para>
+    <para>
+        Le format de fichier PDF supporte la mise à jour incrémentale d'un document. Ainsi
+        chaque fois que le document est mis à jour, une nouvelle version du document est créée. Le
+        module <classname>Zend_Pdf</classname> supporte la récupération d'une version
+        spécifique.
+    </para>
 
-    <para>La version peut-être donnée en second paramètre des méthodes <classname>Zend_Pdf::load()</classname> et
-    <classname>Zend_Pdf::parse()</classname> ou obligatoire dans le cas d'un appel à <classname>Zend_Pdf::rollback()</classname> <footnote>
-            <para>La méthode <classname>Zend_Pdf::rollback()</classname> doit être appelée avant tout changement. Sinon le
-            comportement est indéfini.</para>
-        </footnote></para>
+    <para>
+        La version peut-être donnée en second paramètre des méthodes
+        <classname>Zend_Pdf::load()</classname> et <classname>Zend_Pdf::parse()</classname> ou
+        obligatoire dans le cas d'un appel à <classname>Zend_Pdf::rollback()</classname> <footnote>
+            <para>
+                La méthode <classname>Zend_Pdf::rollback()</classname> doit être appelée avant
+                tout changement. Sinon le comportement est indéfini.
+            </para>
+            </footnote>
+        </para>
 
     <example id="zend.pdf.create.example-2">
         <title>Demander une version particulière d'un document PDF</title>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 496 - 391
documentation/manual/fr/module_specs/Zend_Pdf-Drawing.xml


+ 40 - 21
documentation/manual/fr/module_specs/Zend_Pdf-Introduction.xml

@@ -1,20 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13835 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15103 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.pdf.introduction">
     <!-- @todo review and revise upon completion of refactoring -->
 
     <title>Introduction</title>
 
-    <para><classname>Zend_Pdf</classname> est un composant entièrement écrit en PHP5 permettant la manipulation de documents PDF
-    (Portable Document Format). Il peut charger des documents, créer, modifier et les sauvegarder. Cela peut aider toute
-    les applications PHP à générer dynamiquement des documents PDF en modifiant un modèle existant ou en générant un
-    document à partir de rien. <classname>Zend_Pdf</classname> supporte les fonctionnalités suivantes :<itemizedlist>
-            <listitem>
-                <para>Créer un nouveau document ou en charger un qui existe déjà. <footnote>
-                        <para>Les documents aux format PDF V1.4 (Acrobat 5) sont désormais supportés au
-                        chargement.</para>
-                    </footnote></para>
+    <para>
+        <classname>Zend_Pdf</classname> est un composant entièrement écrit en PHP5 permettant
+        la manipulation de documents PDF (Portable Document Format). Il peut charger des documents,
+        créer, modifier et les sauvegarder. Cela peut aider toute les applications PHP à générer
+        dynamiquement des documents PDF en modifiant un modèle existant ou en générant un document à
+        partir de rien. <classname>Zend_Pdf</classname> supporte les fonctionnalités suivantes
+        :<itemizedlist>
+                <listitem>
+                <para>
+                    Créer un nouveau document ou en charger un qui existe déjà. <footnote>
+                        <para>
+                            Les documents aux format PDF V1.4 (Acrobat 5) sont désormais
+                            supportés au chargement.
+                        </para>
+                        </footnote>
+                    </para>
             </listitem>
 
             <listitem>
@@ -22,17 +29,24 @@
             </listitem>
 
             <listitem>
-                <para>Manipuler les pages d'un document. Changer l'ordre des pages, ajouter des nouvelles pages, retirer
-                des pages.</para>
+                <para>
+                    Manipuler les pages d'un document. Changer l'ordre des pages, ajouter des
+                    nouvelles pages, retirer des pages.
+                </para>
             </listitem>
 
             <listitem>
-                <para>Différents outils de dessins (lignes, rectangles, polygones, cercles, ellipses et
-                secteurs).</para>
+                <para>
+                    Différents outils de dessins (lignes, rectangles, polygones, cercles,
+                    ellipses et secteurs).
+                </para>
             </listitem>
 
             <listitem>
-                <para>Dessiner du texte en utilisant une des 14 polices standard ou vos propres polices TrueType.</para>
+                <para>
+                    Dessiner du texte en utilisant une des 14 polices standard ou vos propres
+                    polices TrueType.
+                </para>
             </listitem>
 
             <listitem>
@@ -40,14 +54,19 @@
             </listitem>
 
             <listitem>
-                <para>Inclure des images. <footnote>
-                        <para>Les images au format JPG, PNG [jusqu'à 8bit par canaux+Alpha] et TIFF sont
-                        supportées.</para>
-                    </footnote></para>
+                <para>
+                    Inclure des images. <footnote>
+                        <para>
+                            Les images au format JPG, PNG [jusqu'à 8bit par canaux+Alpha] et
+                            TIFF sont supportées.
+                        </para>
+                        </footnote>
+                    </para>
             </listitem>
 
             <listitem>
                 <para>Mise à jour incrémentale des fichiers PDF.</para>
             </listitem>
-        </itemizedlist></para>
+            </itemizedlist>
+        </para>
 </sect1>

+ 67 - 44
documentation/manual/fr/module_specs/Zend_Pdf-Pages.xml

@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13863 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15157 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.pdf.pages">
     <title>Les pages d'un document</title>
@@ -7,43 +7,62 @@
     <sect2 id="zend.pdf.pages.creation">
         <title>Création de page</title>
 
-        <para>Les pages d'un document PDF sont représentés par la classe <classname>Zend_Pdf_Page</classname></para>
-
-        <para>Les pages d'un PDF proviennent d'un PDF existant, ou sont créées à partir de rien.</para>
-
-        <para>Une nouvelle page peut-être obtenu en créant un nouvel objet <classname>Zend_Pdf_Page</classname> ou en appelant la
-        méthode <classname>Zend_Pdf::newPage()</classname>qui retourne un objet <classname>Zend_Pdf_Page</classname>. La différence est que
-        la méthode <classname>Zend_Pdf::newPage()</classname> crée une page directement attachée au document. A la différence des
-        pages non attachées à un document, elle ne peut-être utilisée dans plusieurs documents PDF, mais est un peu plus
-        performante. <footnote>
-                <para>C'est une limitation de la version courante du module <classname>Zend_Pdf</classname>. Ce sera corrigé dans une future
-                version. Mais les pages non attachées à un document donneront toujours de meilleurs résultats pour
-                partager une page entre plusieurs documents.</para>
-            </footnote>. C'est à vous de choisir quel approche doit-être utilisée.</para>
-
-        <para>Les méthodes <classname>Zend_Pdf::newPage()</classname> et <classname>Zend_Pdf_Page</classname> prennent le même paramètre.
-        C'est la taille de la page ($x, $y) en point (1/72 inch soit 0,352778 mm), ou une constante prédéfinie, qui
-        correspond au format du papier : <itemizedlist>
-                <listitem>
-                    <para>Zend_Pdf_Page::SIZE_A4</para>
-                </listitem>
-
-                <listitem>
-                    <para>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</para>
-                </listitem>
-
-                <listitem>
-                    <para>Zend_Pdf_Page::SIZE_LETTER</para>
-                </listitem>
-
-                <listitem>
-                    <para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para>
-                </listitem>
-            </itemizedlist></para>
-
-        <para>Les pages du document sont stockées dans l'attribut public <code>$pages</code> de la classe
-        <classname>Zend_Pdf</classname>. C'est un tableau d'objet <classname>Zend_Pdf_Page</classname>. Il définit l'ensemble des pages,
-        ainsi que l'ordre de celle-ci et peut-être manipulé comme un tableau classique :</para>
+        <para>
+            Les pages d'un document PDF sont représentés par la classe
+            <classname>Zend_Pdf_Page</classname>
+        </para>
+
+        <para>
+            Les pages d'un PDF proviennent d'un PDF existant, ou sont créées à partir de
+            rien.
+        </para>
+
+        <para>
+            Une nouvelle page peut-être obtenu en créant un nouvel objet
+            <classname>Zend_Pdf_Page</classname> ou en appelant la méthode
+            <classname>Zend_Pdf::newPage()</classname>qui retourne un objet
+            <classname>Zend_Pdf_Page</classname>. La différence est que la méthode
+            <classname>Zend_Pdf::newPage()</classname> crée une page directement attachée au
+            document. A la différence des pages non attachées à un document, elle ne peut-être
+            utilisée dans plusieurs documents PDF, mais est un peu plus performante. <footnote>
+                <para>
+                    C'est une limitation de la version courante du module
+                    <classname>Zend_Pdf</classname>. Ce sera corrigé dans une future version. Mais
+                    les pages non attachées à un document donneront toujours de meilleurs résultats
+                    pour partager une page entre plusieurs documents.
+                </para>
+                </footnote>. C'est à vous de choisir quel approche doit-être utilisée.
+            </para>
+
+        <para>
+            Les méthodes <classname>Zend_Pdf::newPage()</classname> et
+            <classname>Zend_Pdf_Page</classname> prennent le même paramètre. C'est la taille de la
+            page ($x, $y) en point (1/72 inch soit 0,352778 mm), ou une constante prédéfinie, qui
+            correspond au format du papier : <itemizedlist>
+                    <listitem>
+                        <para>Zend_Pdf_Page::SIZE_A4</para>
+                    </listitem>
+    
+                    <listitem>
+                        <para>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</para>
+                    </listitem>
+    
+                    <listitem>
+                        <para>Zend_Pdf_Page::SIZE_LETTER</para>
+                    </listitem>
+    
+                    <listitem>
+                        <para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+
+        <para>
+            Les pages du document sont stockées dans l'attribut public <code>$pages</code> de
+            la classe <classname>Zend_Pdf</classname>. C'est un tableau d'objet
+            <classname>Zend_Pdf_Page</classname>. Il définit l'ensemble des pages, ainsi que l'ordre
+            de celle-ci et peut-être manipulé comme un tableau classique :
+        </para>
 
         <example id="zend.pdf.pages.example-1">
             <title>Gestion des pages d'un document PDF</title>
@@ -68,8 +87,10 @@ unset($pdf->pages[$id]);
     <sect2 id="zend.pdf.pages.cloning">
         <title>Clonage de page</title>
 
-        <para>Les pages existantes d'un PDF peuvent être clonées en créant un nouvel objet <classname>Zend_Pdf_Page</classname>
-        avec la page existante comme paramètre :</para>
+        <para>
+            Les pages existantes d'un PDF peuvent être clonées en créant un nouvel objet
+            <classname>Zend_Pdf_Page</classname> avec la page existante comme paramètre :
+        </para>
 
         <example id="zend.pdf.pages.example-2">
             <title>Cloner une page existante</title>
@@ -98,9 +119,11 @@ unset($pdf->pages[$templatePageIndex]);
         <para>C'est pratique si plusieurs pages doivent être créées sur le même modèle.</para>
 
         <caution>
-            <para>Important ! La page clonée partage quelques ressources PDF avec la page modèle, donc ceci doit être
-            utilisé seulement dans le même document qu'une page modèle. Le document modifié peut être sauvegardé comme
-            nouveau document.</para>
+            <para>
+                Important ! La page clonée partage quelques ressources PDF avec la page
+                modèle, donc ceci doit être utilisé seulement dans le même document qu'une page
+                modèle. Le document modifié peut être sauvegardé comme nouveau document.
+            </para>
         </caution>
     </sect2>
 </sect1>

+ 173 - 120
documentation/manual/fr/module_specs/Zend_Pdf-Properties.xml

@@ -1,166 +1,219 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13835 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15157 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.pdf.info">
     <!-- @todo review and revise upon completion of refactoring -->
 
     <title>Informations du document et métadonnées</title>
 
-    <para>Un document PDF peut inclure des informations générales comme le titre du document, l'auteur et les dates de
-    création ou de modification.</para>
-
-    <para>Historiquement ces informations sont stockées dans une structure spéciale Info. Cette structure est disponible
-    en lecture/écriture sous la forme d'un tableau associatif en utilisant la propriété publique <code>properties</code>
-    des objets <classname>Zend_Pdf</classname> : <programlisting role="php"><![CDATA[
-$pdf = Zend_Pdf::load($pdfPath);
-
-echo $pdf->properties['Title'] . "\n";
-echo $pdf->properties['Author'] . "\n";
-
-$pdf->properties['Title'] = 'Nouveau Titre.';
-$pdf->save($pdfPath);
-]]></programlisting></para>
-
-    <para>Les clés suivantes sont définies par la norme PDF v1.4 (Acrobat 5) : <itemizedlist>
-            <listitem>
-                <para><emphasis>Title</emphasis> - string, optionnel, le titre du document.</para>
+    <para>
+        Un document PDF peut inclure des informations générales comme le titre du document,
+        l'auteur et les dates de création ou de modification.
+    </para>
+
+    <para>
+        Historiquement ces informations sont stockées dans une structure spéciale Info. Cette
+        structure est disponible en lecture/écriture sous la forme d'un tableau associatif en
+        utilisant la propriété publique <code>properties</code> des objets
+        <classname>Zend_Pdf</classname> : <programlisting role="php"><![CDATA[
+    $pdf = Zend_Pdf::load($pdfPath);
+    
+    echo $pdf->properties['Title'] . "\n";
+    echo $pdf->properties['Author'] . "\n";
+    
+    $pdf->properties['Title'] = 'Nouveau Titre.';
+    $pdf->save($pdfPath);
+    ]]></programlisting></para>
+    
+    <para>
+        Les clés suivantes sont définies par la norme PDF v1.4 (Acrobat 5) : <itemizedlist>
+                <listitem>
+                <para>
+                    <emphasis>Title</emphasis> - string, optionnel, le titre du
+                    document.
+                </para>
             </listitem>
 
             <listitem>
-                <para><emphasis>Author</emphasis> - string, optionnel, le nom de la personne qui a créé le
-                document.</para>
+                <para>
+                    <emphasis>Author</emphasis> - string, optionnel, le nom de la personne qui
+                    a créé le document.
+                </para>
             </listitem>
 
             <listitem>
-                <para><emphasis>Subject</emphasis> - string, optionnel, le sujet du document.</para>
+                <para>
+                    <emphasis>Subject</emphasis> - string, optionnel, le sujet du
+                    document.
+                </para>
             </listitem>
 
             <listitem>
-                <para><emphasis>Keywords</emphasis> - string, optionnel, les mots clés associés au document.</para>
+                <para>
+                    <emphasis>Keywords</emphasis> - string, optionnel, les mots clés associés
+                    au document.
+                </para>
             </listitem>
 
             <listitem>
-                <para><emphasis>Creator</emphasis> - string, optionnel, si le document a été converti en PDF à partir
-                d'un autre format, le nom de l'application (par exemple, Adobe FrameMaker®) qui a créé le document
-                original à partir duquel il a été converti.</para>
+                <para>
+                    <emphasis>Creator</emphasis> - string, optionnel, si le document a été
+                    converti en PDF à partir d'un autre format, le nom de l'application (par
+                    exemple, Adobe FrameMaker®) qui a créé le document original à partir duquel il a
+                    été converti.
+                </para>
             </listitem>
 
             <listitem>
-                <para><emphasis>Producer</emphasis> - string, optionnel, si le document a été converti en PDF à partir
-                d'un autre format, le nom de l'application (par exemple, Acrobat Distiller) qui l'a converti en
-                PDF.</para>
+                <para>
+                    <emphasis>Producer</emphasis> - string, optionnel, si le document a été
+                    converti en PDF à partir d'un autre format, le nom de l'application (par
+                    exemple, Acrobat Distiller) qui l'a converti en PDF.
+                </para>
             </listitem>
 
             <listitem>
-                <para><emphasis>CreationDate</emphasis> - string, optionnel, la date et l'heure auxquelles le document a
-                été créé sous la forme suivante : "D:YYYYMMDDHHmmSSOHH'mm'", où : <itemizedlist>
-                        <listitem>
-                            <para><emphasis>YYYY</emphasis> est la date.</para>
+                <para>
+                    <emphasis>CreationDate</emphasis> - string, optionnel, la date et l'heure
+                    auxquelles le document a été créé sous la forme suivante :
+                    "D:YYYYMMDDHHmmSSOHH'mm'", où : <itemizedlist>
+                            <listitem>
+                                <para><emphasis>YYYY</emphasis> est la date.</para>
+                            </listitem>
+    
+                            <listitem>
+                                <para><emphasis>MM</emphasis> est le mois.</para>
+                            </listitem>
+    
+                            <listitem>
+                                <para><emphasis>DD</emphasis> est le jour (01–31).</para>
+                            </listitem>
+    
+                            <listitem>
+                                <para><emphasis>HH</emphasis> est l'heure (00–23).</para>
+                            </listitem>
+    
+                            <listitem>
+                                <para><emphasis>mm</emphasis> est la minute (00–59).</para>
+                            </listitem>
+    
+                            <listitem>
+                                <para><emphasis>SS</emphasis> est la seconde (00–59).</para>
+                            </listitem>
+    
+                            <listitem>
+                            <para>
+                                <emphasis>O</emphasis> est la différence de l'heure locale par
+                                rapport au temps universel (UT), dénoté par un des caractères +, de
+                                −, ou de Z (voir ci-dessous).
+                            </para>
                         </listitem>
 
                         <listitem>
-                            <para><emphasis>MM</emphasis> est le mois.</para>
+                            <para>
+                                <emphasis>HH</emphasis> suivi par ' est la valeur absolue du
+                                décalage par rapport à l'UT en heures (00–23).
+                            </para>
                         </listitem>
 
                         <listitem>
-                            <para><emphasis>DD</emphasis> est le jour (01–31).</para>
+                            <para>
+                                <emphasis>mm</emphasis> suivi par ' est la valeur absolue du
+                                décalage par rapport à l'UT en minutes (00–59).
+                            </para>
                         </listitem>
-
-                        <listitem>
-                            <para><emphasis>HH</emphasis> est l'heure (00–23).</para>
-                        </listitem>
-
-                        <listitem>
-                            <para><emphasis>mm</emphasis> est la minute (00–59).</para>
-                        </listitem>
-
-                        <listitem>
-                            <para><emphasis>SS</emphasis> est la seconde (00–59).</para>
-                        </listitem>
-
-                        <listitem>
-                            <para><emphasis>O</emphasis> est la différence de l'heure locale par rapport au temps
-                            universel (UT), dénoté par un des caractères +, de −, ou de Z (voir ci-dessous).</para>
-                        </listitem>
-
-                        <listitem>
-                            <para><emphasis>HH</emphasis> suivi par ' est la valeur absolue du décalage par rapport à
-                            l'UT en heures (00–23).</para>
-                        </listitem>
-
-                        <listitem>
-                            <para><emphasis>mm</emphasis> suivi par ' est la valeur absolue du décalage par rapport à
-                            l'UT en minutes (00–59).</para>
-                        </listitem>
-                    </itemizedlist> Le caractère apostrophe (') après "HH" et "mm" est un élément de la syntaxe. Chaque
-                champs après l'année est optionnel. (Le préfixe "D:", bien que lui aussi optionnel, est fortement
-                recommandé.) Les valeurs par défaut pour "MM" et "DD" sont à "01" ; tous les autres champs numériques
-                ont par défaut des valeurs à zéro. Un signe plus (+) en tant que valeur pour le champs "0" signifie que
-                l'heure locale est après l'UT, un signe moins (-) que l'heure locale est avant l'UT, et la lettre "Z"
-                que l'heure locale est égale à l'UT. Si aucune information concernant l'UT n'est spécifiée, la
-                différence par rapport à l'UT est considérée inconnue. Que le décalage horaire soit connu ou non, le
-                reste de la date devrait être exprimée en heure locale.</para>
-
-                <para>Par exemple la date "23 décembre 1998 à 19:52 (heure locale U.S. Pacifique)" est représentée par
-                la chaîne "D:199812231952−08'00'".</para>
+                    </itemizedlist> Le caractère apostrophe (') après "HH" et "mm" est un
+                élément de la syntaxe. Chaque champs après l'année est optionnel. (Le préfixe
+                "D:", bien que lui aussi optionnel, est fortement recommandé.) Les valeurs par
+                défaut pour "MM" et "DD" sont à "01" ; tous les autres champs numériques ont par
+                défaut des valeurs à zéro. Un signe plus (+) en tant que valeur pour le champs
+                "0" signifie que l'heure locale est après l'UT, un signe moins (-) que l'heure
+                locale est avant l'UT, et la lettre "Z" que l'heure locale est égale à l'UT. Si
+                aucune information concernant l'UT n'est spécifiée, la différence par rapport à
+                l'UT est considérée inconnue. Que le décalage horaire soit connu ou non, le
+                    reste de la date devrait être exprimée en heure locale.
+                </para>
+
+                <para>
+                    Par exemple la date "23 décembre 1998 à 19:52 (heure locale U.S.
+                    Pacifique)" est représentée par la chaîne "D:199812231952−08'00'".
+                </para>
             </listitem>
 
             <listitem>
-                <para><emphasis>ModDate</emphasis> - string, optionnel, la date et l'heure auxquelles le document a été
-                le plus récemment modifié, sous la même forme que <emphasis>CreationDate</emphasis>.</para>
+                <para>
+                    <emphasis>ModDate</emphasis> - string, optionnel, la date et l'heure
+                    auxquelles le document a été le plus récemment modifié, sous la même forme que
+                    <emphasis>CreationDate</emphasis>.
+                </para>
             </listitem>
 
             <listitem>
-                <para><emphasis>Trapped</emphasis> - boolean, optionnel, indique si le document à été modifié pour
-                inclure une information de "trapping". <itemizedlist>
-                        <listitem>
-                            <para><emphasis>true</emphasis> - Le document a été entièrement "trappé" ; aucun autre
-                            "trapping" n'est nécessaire.</para>
+                <para>
+                    <emphasis>Trapped</emphasis> - boolean, optionnel, indique si le document
+                    à été modifié pour inclure une information de "trapping". <itemizedlist>
+                            <listitem>
+                            <para>
+                                <emphasis>true</emphasis> - Le document a été entièrement
+                                "trappé" ; aucun autre "trapping" n'est nécessaire.
+                            </para>
                         </listitem>
 
                         <listitem>
-                            <para><emphasis>false</emphasis> - Le document n'a pas encore été "trappé" ; tout "trapping"
-                            reste encore à réaliser.</para>
+                            <para>
+                                <emphasis>false</emphasis> - Le document n'a pas encore été
+                                "trappé" ; tout "trapping" reste encore à réaliser.
+                            </para>
                         </listitem>
 
                         <listitem>
-                            <para><emphasis>null</emphasis> - Soit il est impossible de savoir si le document a été
-                            "trappé", soit il a été partiellement "trappé" ; certains "trapping" additionnels sont
-                            nécessaires.</para>
+                            <para>
+                                <emphasis>null</emphasis> - Soit il est impossible de savoir
+                                si le document a été "trappé", soit il a été partiellement "trappé"
+                                ; certains "trapping" additionnels sont nécessaires.
+                            </para>
                         </listitem>
-                    </itemizedlist></para>
+                        </itemizedlist>
+                    </para>
             </listitem>
-        </itemizedlist></para>
-
-    <para>Depuis la version v1.6 de la norme PDF, les métadonnées peuvent être stockées dans un document XML spécial
-    attaché au document PDF (XMP - <ulink url="http://www.adobe.com/products/xmp/">eXtensible Metadata
-    Platform</ulink>).</para>
-
-    <para>Ce document XML peut être récupéré et attaché au document PDF avec les méthodes
-    <classname>Zend_Pdf::getMetadata()</classname> et <classname>Zend_Pdf::setMetadata($metadata)</classname> : <programlisting
-    role="php"><![CDATA[
-$pdf = Zend_Pdf::load($pdfPath);
-$metadata = $pdf->getMetadata();
-$metadataDOM = new DOMDocument();
-$metadataDOM->loadXML($metadata);
-
-$xpath = new DOMXPath($metadataDOM);
-$pdfPreffixNamespaceURI = $xpath->query('/rdf:RDF/rdf:Description')
-                                ->item(0)
-                                ->lookupNamespaceURI('pdf');
-$xpath->registerNamespace('pdf', $pdfPreffixNamespaceURI);
-
-$titleNode = $xpath->query('/rdf:RDF/rdf:Description/pdf:Title')
-                   ->item(0);
-$title = $titleNode->nodeValue;
-...
-
-$titleNode->nodeValue = 'Nouveau titre';
-$pdf->setMetadata($metadataDOM->saveXML());
-$pdf->save($pdfPath);
-]]></programlisting></para>
-
-    <para>Les propriétés communes du document sont dupliquées dans la structure Info et dans le document de métadonnées
-    (s'il est présent). Il est de la responsabilité de l'utilisateur de l'application de les maintenir
-    synchronisées.</para>
+            </itemizedlist>
+        </para>
+
+    <para>
+        Depuis la version v1.6 de la norme PDF, les métadonnées peuvent être stockées dans un
+        document XML spécial attaché au document PDF (XMP - <ulink
+        url="http://www.adobe.com/products/xmp/">eXtensible Metadata Platform</ulink>).
+    </para>
+
+    <para>
+        Ce document XML peut être récupéré et attaché au document PDF avec les méthodes
+        <classname>Zend_Pdf::getMetadata()</classname> et
+        <classname>Zend_Pdf::setMetadata($metadata)</classname> : <programlisting
+        role="php"><![CDATA[
+    $pdf = Zend_Pdf::load($pdfPath);
+    $metadata = $pdf->getMetadata();
+    $metadataDOM = new DOMDocument();
+    $metadataDOM->loadXML($metadata);
+    
+    $xpath = new DOMXPath($metadataDOM);
+    $pdfPreffixNamespaceURI = $xpath->query('/rdf:RDF/rdf:Description')
+                                    ->item(0)
+                                    ->lookupNamespaceURI('pdf');
+    $xpath->registerNamespace('pdf', $pdfPreffixNamespaceURI);
+    
+    $titleNode = $xpath->query('/rdf:RDF/rdf:Description/pdf:Title')
+                       ->item(0);
+    $title = $titleNode->nodeValue;
+    ...
+    
+    $titleNode->nodeValue = 'Nouveau titre';
+    $pdf->setMetadata($metadataDOM->saveXML());
+    $pdf->save($pdfPath);
+    ]]></programlisting></para>
+    
+    <para>
+        Les propriétés communes du document sont dupliquées dans la structure Info et dans le
+        document de métadonnées (s'il est présent). Il est de la responsabilité de l'utilisateur de
+        l'application de les maintenir synchronisées.
+    </para>
 </sect1>

+ 17 - 10
documentation/manual/fr/module_specs/Zend_Pdf-Save.xml

@@ -1,19 +1,26 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13835 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15157 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.pdf.save">
     <title>Sauvegarder les changement dans un document PDF</title>
 
-    <para>Il y a deux méthodes qui permettent la sauvegarde dans un document PDF. Ce sont <classname>Zend_Pdf::save()</classname>
-    et <classname>Zend_Pdf::render()</classname>.</para>
+    <para>
+        Il y a deux méthodes qui permettent la sauvegarde dans un document PDF. Ce sont
+        <classname>Zend_Pdf::save()</classname> et <classname>Zend_Pdf::render()</classname>.
+    </para>
 
-    <para>La méthode <classname>Zend_Pdf::save($filename, $updateOnly = false)</classname> sauvegarde un document dans un fichier.
-    Si <code>$updateOnly</code> est à <code>true</code>, alors seulement les nouvelles sections PDF sont ajoutées au
-    fichier. Sinon le fichier est écrasé.</para>
+    <para>
+        La méthode <classname>Zend_Pdf::save($filename, $updateOnly = false)</classname>
+        sauvegarde un document dans un fichier. Si <code>$updateOnly</code> est à <code>true</code>,
+        alors seulement les nouvelles sections PDF sont ajoutées au fichier. Sinon le fichier est
+        écrasé.
+    </para>
 
-    <para>La méthode <classname>Zend_Pdf::render($filename, $newSegmentOnly = false)</classname> retourne le document PDF dans une
-    chaîne. Si <code>$newSegmentOnly</code> est à <code>true</code>, alors seulement les nouvelles sections du PDF sont
-    retournées.</para>
+    <para>
+        La méthode <classname>Zend_Pdf::render($filename, $newSegmentOnly = false)</classname>
+        retourne le document PDF dans une chaîne. Si <code>$newSegmentOnly</code> est à
+        <code>true</code>, alors seulement les nouvelles sections du PDF sont retournées.
+    </para>
 
     <example id="zend.pdf.save.example-1">
         <title>Sauvegarder un document PDF</title>

+ 14 - 6
documentation/manual/fr/module_specs/Zend_Pdf-Usage.xml

@@ -1,15 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13910 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15341 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.pdf.usage">
     <title>Exemple d'utilisation du module Zend_Pdf</title>
 
-    <para>Cette section propose un exemple d'utilisation du module <classname>Zend_Pdf</classname>.</para>
+    <para>
+        Cette section propose un exemple d'utilisation du module
+        <classname>Zend_Pdf</classname>.
+    </para>
 
-    <para>Le code source de l'exemple est disponible dans le fichier
-    <filename>demos/Zend/Pdf/demo.php</filename>.</para>
+    <para>
+        Le code source de l'exemple est disponible dans le fichier
+        <filename>demos/Zend/Pdf/demo.php</filename>.
+    </para>
 
-    <para>Il y a aussi un fichier <filename>test.pdf</filename>, qui peut être utilisé pour réaliser des tests.</para>
+    <para>
+        Il y a aussi un fichier <filename>test.pdf</filename>, qui peut être utilisé pour
+        réaliser des tests.
+    </para>
 
     <example id="zend.pdf.usage.example-1">
         <title>Exemple d'utilisation du module Zend_Pdf</title>

+ 46 - 24
documentation/manual/fr/module_specs/Zend_ProgressBar.xml

@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13910 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15215 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.progressbar.introduction" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Zend_ProgressBar</title>
@@ -7,18 +7,26 @@
     <sect2 id="zend.progressbar.whatisit">
         <title>Introduction</title>
 
-        <para><classname>Zend_ProgressBar</classname> est un composant pour créer et mettre à jour les barres de progression dans
-        différents environnements. Il consiste en un backend unique, qui affiche la progression au travers de l'un des
-        multiples adaptateurs. A chaque mise à jour, il prend un chemin absolu et un message d'état, et appelle ensuite
-        l'adaptateur avec certaines valeurs précalculées comme le pourcentage et le temps restant estimé.</para>
+        <para>
+            <classname>Zend_ProgressBar</classname> est un composant pour créer et mettre à
+            jour les barres de progression dans différents environnements. Il consiste en un backend
+            unique, qui affiche la progression au travers de l'un des multiples adaptateurs. A
+            chaque mise à jour, il prend un chemin absolu et un message d'état, et appelle ensuite
+            l'adaptateur avec certaines valeurs précalculées comme le pourcentage et le temps
+            restant estimé.
+        </para>
     </sect2>
 
     <sect2 id="zend.progressbar.basic">
         <title>Utilisation basique de Zend_Progressbar</title>
 
-        <para><classname>Zend_ProgressBar</classname> est assez simple d'utilisation. Vous créez simplement une nouvelle instance
-        de <classname>Zend_Progressbar</classname>, en définissant des valeurs minimum et maximum, et en choisissant un adaptateur
-        pour afficher les données. Si vous voulez travailler avec un fichier, vous pouvez faire comme ceci :</para>
+        <para>
+            <classname>Zend_ProgressBar</classname> est assez simple d'utilisation. Vous créez
+            simplement une nouvelle instance de <classname>Zend_Progressbar</classname>, en
+            définissant des valeurs minimum et maximum, et en choisissant un adaptateur pour
+            afficher les données. Si vous voulez travailler avec un fichier, vous pouvez faire comme
+            ceci :
+        </para>
 
         <programlisting role="php"><![CDATA[
 $progressBar = new Zend_ProgressBar(0, $fileSize, $adapter);
@@ -32,39 +40,53 @@ while (!feof($fp)) {
 $progressBar->finish();
 ]]></programlisting>
 
-        <para>Dans un premier temps, une instance de <classname>Zend_ProgressBar</classname>, avec une valeur minimum de 0, une
-        valeur maximum correspondant à la taille totale du fichier et un adaptateur spécifique. Ensuite on travaille
-        avec le fichier et à chaque boucle la barre de progression est mise à jour avec le nombre d'octets courant. A la
-        fin de la boucle, le statut de la barre de progression est réglé à terminé.</para>
-
-        <para><classname>Zend_ProgressBar</classname> possède aussi une méthode <code>refresh()</code> qui recalcule le temps
-        restant estimé et met à jour l'adaptateur. Ceci est pratique quand il n'y a aucune donnée à mettre à jour mais
-        que vous souhaitez que la barre de progression soit mise à jour.</para>
+        <para>
+            Dans un premier temps, une instance de <classname>Zend_ProgressBar</classname>,
+            avec une valeur minimum de 0, une valeur maximum correspondant à la taille totale du
+            fichier et un adaptateur spécifique. Ensuite on travaille avec le fichier et à chaque
+            boucle la barre de progression est mise à jour avec le nombre d'octets courant. A la fin
+            de la boucle, le statut de la barre de progression est réglé à terminé.
+        </para>
+
+        <para>
+            <classname>Zend_ProgressBar</classname> possède aussi une méthode
+            <code>refresh()</code> qui recalcule le temps restant estimé et met à jour l'adaptateur.
+            Ceci est pratique quand il n'y a aucune donnée à mettre à jour mais que vous souhaitez
+            que la barre de progression soit mise à jour.
+        </para>
     </sect2>
 
     <sect2 id="zend.progressbar.adapters">
         <title>Adaptateurs standard</title>
 
-        <para><classname>Zend_ProgressBar</classname> est fourni avec les deux adaptateurs suivants : <itemizedlist
-                mark="opencircle">
-                <listitem>
+        <para>
+            <classname>Zend_ProgressBar</classname> est fourni avec les deux adaptateurs
+            suivants : <itemizedlist mark="opencircle">
+                    <listitem>
                     <para>
-                        <xref linkend="zend.progressbar.adapter.console" />
+                        
+                            <xref linkend="zend.progressbar.adapter.console" />
+                        
                     </para>
                 </listitem>
 
                 <listitem>
                     <para>
-                        <xref linkend="zend.progressbar.adapter.jspush" />
+                        
+                            <xref linkend="zend.progressbar.adapter.jspush" />
+                        
                     </para>
                 </listitem>
 
                 <listitem>
                     <para>
-                        <xref linkend="zend.progressbar.adapter.jspull" />
+                        
+                            <xref linkend="zend.progressbar.adapter.jspull" />
+                        
                     </para>
                 </listitem>
-            </itemizedlist></para>
+                </itemizedlist>
+            </para>
 
         <xi:include href="Zend_ProgressBar_Adapter_Console.xml" />
 

+ 78 - 31
documentation/manual/fr/module_specs/Zend_ProgressBar_Adapter_Console.xml

@@ -1,76 +1,123 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13834 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15103 -->
 <!-- Reviewed: no -->
 <sect3 id="zend.progressbar.adapter.console">
     <title>Zend_ProgressBar_Adapter_Console</title>
 
-    <para><classname>Zend_ProgressBar_Adapter_Console</classname> est un adaptateur de type texte pour les terminaux. Il peut
-    automatiquement détecter la largeur du terminal mais supporte aussi des largeurs personnalisées. Vous pouvez définir
-    quels éléments seront affichés avec la barre de progression et personnaliser leur ordre. Vous pouvez aussi définir
-    le style de la barre de progression elle-même.</para>
+    <para>
+        <classname>Zend_ProgressBar_Adapter_Console</classname> est un adaptateur de type
+        texte pour les terminaux. Il peut automatiquement détecter la largeur du terminal mais
+        supporte aussi des largeurs personnalisées. Vous pouvez définir quels éléments seront
+        affichés avec la barre de progression et personnaliser leur ordre. Vous pouvez aussi définir
+        le style de la barre de progression elle-même.
+    </para>
 
     <note>
         <title>Reconnaissance automatique de la largeur de la console</title>
 
-        <para><code>shell_exec</code> est nécessaire pour que ceci fonctionne sur les systèmes de type *nix. Sur
-        Windows, il y a toujours un terminal fixe de 80 caractères de large, donc la reconnaissance automatique n'est
-        pas nécessaire.</para>
+        <para>
+            <code>shell_exec</code> est nécessaire pour que ceci fonctionne sur les systèmes
+            de type *nix. Sur Windows, il y a toujours un terminal fixe de 80 caractères de large,
+            donc la reconnaissance automatique n'est pas nécessaire.
+        </para>
     </note>
 
-    <para>Vous pouvez paramétrer les options de l'adaptateur soit via les méthodes <code>set*</code> soit en fournissant
-    un tableau ("array") ou une instance <classname>Zend_Config</classname> en tant que premier paramètre du constructeur. Les
-    options disponibles sont :</para>
+    <para>
+        Vous pouvez paramétrer les options de l'adaptateur soit via les méthodes
+        <code>set*</code> soit en fournissant un tableau ("array") ou une instance
+        <classname>Zend_Config</classname> en tant que premier paramètre du constructeur. Les
+        options disponibles sont&#160;:
+    </para>
 
     <itemizedlist>
+         <listitem>
+             <para>
+                <code>outputStream</code>&#160;: un flux de sortie différent, si vous ne souhaitez pas
+                utiliser STDOUT. Peut être n'importe quel autre flux come <code>php://stderr</code>
+                ou un chemin vers un fichier.
+            </para>
+        </listitem>
+
         <listitem>
-            <para><code>width</code> : soit un entier ou la constante <code>AUTO</code> de
-            <classname>Zend_Console_ProgressBar</classname>.</para>
+            <para>
+                <code>width</code>&#160;: soit un entier ou la constante <code>AUTO</code> de
+                <classname>Zend_Console_ProgressBar</classname>.
+            </para>
         </listitem>
 
         <listitem>
-            <para><code>elements</code> : soit <code>NULL</code> par défaut ou un tableau avec au moins l'une des
-            constantes de <classname>Zend_Console_ProgressBar</classname> suivantes comme valeur :</para>
+            <para>
+                <code>elements</code>&#160;: soit <code>NULL</code> par défaut ou un tableau avec
+                au moins l'une des constantes de <classname>Zend_Console_ProgressBar</classname>
+                suivantes comme valeur&#160;:
+            </para>
 
             <itemizedlist>
                 <listitem>
-                    <para><code>ELEMENT_PERCENT</code> : la valeur courante en pourcentage.</para>
+                    <para>
+                        <code>ELEMENT_PERCENT</code>&#160;: la valeur courante en
+                        pourcentage.
+                    </para>
                 </listitem>
 
                 <listitem>
-                    <para><code>ELEMENT_BAR</code> : la barre qui va représenter le pourcentage.</para>
+                    <para>
+                        <code>ELEMENT_BAR</code>&#160;: la barre qui va représenter le
+                        pourcentage.
+                    </para>
                 </listitem>
 
                 <listitem>
-                    <para><code>ELEMENT_ETA</code> : le calcul automatique du temps restant estimé (NDT. : "Estimated
-                    Time for Accomplishment"). Cet élément est affiché pour la première fois qu'après cinq secondes, car
-                    durant ce temps, il n'est pas possible de calculer des résultats précis.</para>
+                    <para>
+                        <code>ELEMENT_ETA</code>&#160;: le calcul automatique du temps restant
+                        estimé (NDT.&#160;: "Estimated Time for Accomplishment"). Cet élément est affiché
+                        pour la première fois qu'après cinq secondes, car durant ce temps, il n'est
+                        pas possible de calculer des résultats précis.
+                    </para>
                 </listitem>
 
                 <listitem>
-                    <para><code>ELEMENT_TEXT</code> : un message de statut optionnel concernant le processus
-                    courant.</para>
+                    <para>
+                        <code>ELEMENT_TEXT</code>&#160;: un message de statut optionnel concernant
+                        le processus courant.
+                    </para>
                 </listitem>
             </itemizedlist>
         </listitem>
 
         <listitem>
-            <para><code>textWidth</code> : largeur en caractères de l'élément <code>ELEMENT_TEXT</code>. Par défaut vaut
-            20.</para>
+            <para>
+                <code>textWidth</code>&#160;: largeur en caractères de l'élément
+                <code>ELEMENT_TEXT</code>. Par défaut vaut 20.
+            </para>
+        </listitem>
+
+         <listitem>
+             <para>
+                <code>charset</code>&#160;: encodage de l'élément <code>ELEMENT_TEXT</code>. Par défaut
+                vaut "utf-8".
+            </para>
         </listitem>
 
         <listitem>
-            <para><code>barLeftChar</code> : un caractère qui est utilisé du côté gauche de l'indicateur de la barre de
-            progression.</para>
+            <para>
+                <code>barLeftChar</code>&#160;: un caractère qui est utilisé du côté gauche de
+                l'indicateur de la barre de progression.
+            </para>
         </listitem>
 
         <listitem>
-            <para><code>barRightChar</code> : un caractère qui est utilisé du côté droit de l'indicateur de la barre de
-            progression.</para>
+            <para>
+                <code>barRightChar</code>&#160;: un caractère qui est utilisé du côté droit de
+                l'indicateur de la barre de progression.
+            </para>
         </listitem>
 
         <listitem>
-            <para><code>barIndicatorChar</code> : un caractère qui est utilisé pour l'indicateur de la barre de
-            progression. Celui-ci peut être vide.</para>
+            <para>
+                <code>barIndicatorChar</code>&#160;: un caractère qui est utilisé pour l'indicateur
+                de la barre de progression. Celui-ci peut être vide.
+            </para>
         </listitem>
     </itemizedlist>
 </sect3>

+ 23 - 14
documentation/manual/fr/module_specs/Zend_ProgressBar_Adapter_JsPull.xml

@@ -1,24 +1,33 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13910 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15103 -->
 <!-- Reviewed: no -->
 <sect3 id="zend.progressbar.adapter.jspull">
     <title>Zend_ProgressBar_Adapter_JsPull</title>
 
-    <para><classname>Zend_ProgressBar_Adapter_JsPull</classname> est l'opposé de jsPush, car il requiert de venir récupérer les
-    nouvelles mises à jour, plutôt que d'envoyer les mises à jour vers le navigateur. Généralement, vous devriez
-    utiliser l'adaptateur avec l'option de persistance de <classname>Zend_ProgressBar</classname>. Lors de l'appel, l'adaptateur
-    envoie une chaîne JSON vers le navigateur, qui est comparable à la chaîne JSON envoyée par l'adaptateur jsPush. La
-    seule différence est qu'il contient un paramètre supplémentaire "<code>finished</code>", qui vaut <code>false</code>
-    quand <code>update()</code> est appelée ou <code>true</code> quand <code>finish()</code> est appelée.</para>
+    <para>
+        <classname>Zend_ProgressBar_Adapter_JsPull</classname> est l'opposé de jsPush, car il
+        requiert de venir récupérer les nouvelles mises à jour, plutôt que d'envoyer les mises à
+        jour vers le navigateur. Généralement, vous devriez utiliser l'adaptateur avec l'option de
+        persistance de <classname>Zend_ProgressBar</classname>. Lors de l'appel, l'adaptateur envoie
+        une chaîne JSON vers le navigateur, qui est comparable à la chaîne JSON envoyée par
+        l'adaptateur jsPush. La seule différence est qu'il contient un paramètre supplémentaire
+        "<code>finished</code>", qui vaut <code>false</code> quand <code>update()</code> est appelée
+        ou <code>true</code> quand <code>finish()</code> est appelée.
+    </para>
 
-    <para>Vous pouvez paramétrer les options de l'adaptateur soit avec les méthodes <code>set*</code> soit en
-    fournissant un tableau ("array") ou une instance de <classname>Zend_Config</classname> contenant les options en tant que
-    premier paramètre du constructeur. Les options disponibles sont :</para>
+    <para>
+        Vous pouvez paramétrer les options de l'adaptateur soit avec les méthodes
+        <code>set*</code> soit en fournissant un tableau ("array") ou une instance de
+        <classname>Zend_Config</classname> contenant les options en tant que premier paramètre du
+        constructeur. Les options disponibles sont :
+    </para>
 
     <itemizedlist>
         <listitem>
-            <para><code>exitAfterSend</code> : sort de la requête courante après que les données aient été envoyées au
-            navigateur. Vaut <code>true</code> par défaut.</para>
+            <para>
+                <code>exitAfterSend</code> : sort de la requête courante après que les données
+                aient été envoyées au navigateur. Vaut <code>true</code> par défaut.
+            </para>
         </listitem>
     </itemizedlist>
-</sect3>
+</sect3>

+ 81 - 36
documentation/manual/fr/module_specs/Zend_ProgressBar_Adapter_JsPush.xml

@@ -1,36 +1,52 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13910 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15157 -->
 <!-- Reviewed: no -->
 <sect3 id="zend.progressbar.adapter.jspush">
     <title>Zend_ProgressBar_Adapter_JsPush</title>
 
-    <para><classname>Zend_ProgressBar_Adapter_JsPush</classname> est un adaptateur qui vous permet de mettre à jour une barre de
-    progression dans un navigateur au travers de Javascript. Ceci veut dire qu'une seconde connexion n'est pas
-    nécessaire pour recueillir le statut du processus courant, mais que le processus lui-même envoie son statut
-    directement au navigateur.</para>
-
-    <para>Vous pouvez paramétrer les options de l'adaptateur soit avec les méthodes <code>set*</code> soit en
-    fournissant un tableau ("array") ou une instance de <classname>Zend_Config</classname> contenant les options en tant que
-    premier paramètre du constructeur. Les options disponibles sont :</para>
+    <para>
+        <classname>Zend_ProgressBar_Adapter_JsPush</classname> est un adaptateur qui vous
+        permet de mettre à jour une barre de progression dans un navigateur au travers de
+        Javascript. Ceci veut dire qu'une seconde connexion n'est pas nécessaire pour recueillir le
+        statut du processus courant, mais que le processus lui-même envoie son statut directement au
+        navigateur.
+    </para>
+
+    <para>
+        Vous pouvez paramétrer les options de l'adaptateur soit avec les méthodes
+        <code>set*</code> soit en fournissant un tableau ("array") ou une instance de
+        <classname>Zend_Config</classname> contenant les options en tant que premier paramètre du
+        constructeur. Les options disponibles sont :
+    </para>
 
     <itemizedlist>
         <listitem>
-            <para><code>updateMethodName</code> : la méthode Javascript qui sera appelée à chaque mise à jour. La valeur
-            par défaut est <classname>Zend_ProgressBar_Update</classname>.</para>
+            <para>
+                <code>updateMethodName</code> : la méthode Javascript qui sera appelée à
+                chaque mise à jour. La valeur par défaut est
+                <classname>Zend_ProgressBar_Update</classname>.
+            </para>
         </listitem>
 
         <listitem>
-            <para><code>finishMethodName</code> : la méthode Javascript qui sera appelée lorsque le statut terminé sera
-            atteint. La valeur par défaut est <code>NULL</code>, qui veut dire que rien n'est fait.</para>
+            <para>
+                <code>finishMethodName</code> : la méthode Javascript qui sera appelée lorsque
+                le statut terminé sera atteint. La valeur par défaut est <code>NULL</code>, qui veut
+                dire que rien n'est fait.
+            </para>
         </listitem>
     </itemizedlist>
 
-    <para>L'utilisation de cet adaptateur est assez simple. Premièrement vous créez une barre de progression pour le
-    navigateur, soit avec Javascript ou auparavant en pur HTML. Ensuite vous définissez une méthode de mise à jour et
-    optionnellement une méthode de finalisation en Javascript, les deux acceptant un objet JSON en tant qu'unique
-    argument. Ensuite vous appelez une page Web avec un processus chronophage dans une balise <code>iframe</code> ou
-    <code>object</code> masqué. Pendant que le processus tourne, l'adaptateur appelle la méthode de mise à jour à chaque
-    mise à jour avec un objet JSON, contenant le paramètres suivants :</para>
+    <para>
+        L'utilisation de cet adaptateur est assez simple. Premièrement vous créez une barre de
+        progression pour le navigateur, soit avec Javascript ou auparavant en pur HTML. Ensuite vous
+        définissez une méthode de mise à jour et optionnellement une méthode de finalisation en
+        Javascript, les deux acceptant un objet JSON en tant qu'unique argument. Ensuite vous
+        appelez une page Web avec un processus chronophage dans une balise <code>iframe</code> ou
+        <code>object</code> masqué. Pendant que le processus tourne, l'adaptateur appelle la méthode
+        de mise à jour à chaque mise à jour avec un objet JSON, contenant le paramètres suivants
+        :
+    </para>
 
     <itemizedlist>
         <listitem>
@@ -46,11 +62,17 @@
         </listitem>
 
         <listitem>
-            <para><code>timeTaken</code> : le temps depuis quand le processus courant est en marche</para>
+            <para>
+                <code>timeTaken</code> : le temps depuis quand le processus courant est en
+                marche
+            </para>
         </listitem>
 
         <listitem>
-            <para><code>timeRemaining</code> : le temps estimé pour que le processus se termine</para>
+            <para>
+                <code>timeRemaining</code> : le temps estimé pour que le processus se
+                termine
+            </para>
         </listitem>
 
         <listitem>
@@ -61,7 +83,10 @@
     <example id="zend.progressbar-adapter.jspush.example">
         <title>Exemple basique du fonctionnement côté-client</title>
 
-        <para>Cet exemple illustre un paramétrage basique du HTML, CSS et JavaScript pour l'adaptateur JsPush :</para>
+        <para>
+            Cet exemple illustre un paramétrage basique du HTML, CSS et JavaScript pour
+            l'adaptateur JsPush :
+        </para>
 
         <programlisting role="html"><![CDATA[
 <div id="zend-progressbar-container">
@@ -104,29 +129,46 @@ function Zend_ProgressBar_Update(data)
 }
 ]]></programlisting>
 
-        <para>Ceci créera un simple conteneur avec une bordure noire et un bloc qui indique le niveau du processus
-        courant. Vous ne devez pas masquer l'<code>iframe</code> ou l'<code>object</code> par <code>display:
-        none;</code>, car dans ce cas les navigateurs comme Safari 2 ne chargeront pas le contenu réel.</para>
+        <para>
+            Ceci créera un simple conteneur avec une bordure noire et un bloc qui indique le
+            niveau du processus courant. Vous ne devez pas masquer l'<code>iframe</code> ou
+            l'<code>object</code> par <code>display: none;</code>, car dans ce cas les navigateurs
+            comme Safari 2 ne chargeront pas le contenu réel.
+        </para>
 
-        <para>Plutôt que de créer votre barre de progression personnalisée, vous pouvez utiliser une de celles
-        disponibles dans les librairies JavaScript comme Dojo, jQuery etc. Par exemple, il existe :</para>
+        <para>
+            Plutôt que de créer votre barre de progression personnalisée, vous pouvez utiliser
+            une de celles disponibles dans les librairies JavaScript comme Dojo, jQuery etc. Par
+            exemple, il existe :
+        </para>
 
         <itemizedlist>
             <listitem>
-                <para>Dojo : <ulink
-                url="http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/user-assistance-and-feedback/progress-bar"></ulink></para>
+                <para>
+                    Dojo : <ulink
+                    url="http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/user-assistance-and-feedback/progress-bar"></ulink>
+                </para>
             </listitem>
 
             <listitem>
-                <para>jQuery : <ulink url="http://t.wits.sg/2008/06/20/jquery-progress-bar-11/"></ulink></para>
+                <para>
+                    jQuery : <ulink
+                    url="http://t.wits.sg/2008/06/20/jquery-progress-bar-11/"></ulink>
+                </para>
             </listitem>
 
             <listitem>
-                <para>MooTools : <ulink url="http://davidwalsh.name/dw-content/progress-bar.php"></ulink></para>
+                <para>
+                    MooTools : <ulink
+                    url="http://davidwalsh.name/dw-content/progress-bar.php"></ulink>
+                </para>
             </listitem>
 
             <listitem>
-                <para>Prototype : <ulink url="http://livepipe.net/control/progressbar"></ulink></para>
+                <para>
+                    Prototype : <ulink
+                    url="http://livepipe.net/control/progressbar"></ulink>
+                </para>
             </listitem>
         </itemizedlist>
     </example>
@@ -134,8 +176,11 @@ function Zend_ProgressBar_Update(data)
     <note>
         <title>Intervalle de mise à jour</title>
 
-        <para>Vous devez faire attention à ne pas envoyer trop de mises à jour, puisque chaque mise à jour a une taille
-        minimum de 1ko. Ceci est requis par le navigateur Safari pour rendre et exécuter l'appel de fonction. Internet
-        Explorer possède une limitation similaire mais à 256 octets.</para>
+        <para>
+            Vous devez faire attention à ne pas envoyer trop de mises à jour, puisque chaque
+            mise à jour a une taille minimum de 1ko. Ceci est requis par le navigateur Safari pour
+            rendre et exécuter l'appel de fonction. Internet Explorer possède une limitation
+            similaire mais à 256 octets.
+        </para>
     </note>
 </sect3>

+ 116 - 56
documentation/manual/fr/module_specs/Zend_Registry.xml

@@ -1,22 +1,30 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13945 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15215 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.registry.using">
     <title>Utiliser le registre</title>
 
-    <para>Un registre est un conteneur pour stocker des objets et des valeurs dans l'espace d'application. En stockant
-    la valeur dans le registre, le même objet est toujours disponible partout dans votre application. Ce mécanisme est
-    une alternative à l'utilisation du stockage global.</para>
+    <para>
+        Un registre est un conteneur pour stocker des objets et des valeurs dans l'espace
+        d'application. En stockant la valeur dans le registre, le même objet est toujours disponible
+        partout dans votre application. Ce mécanisme est une alternative à l'utilisation du stockage
+        global.
+    </para>
 
-    <para>L'utilisation typique des registres dans Zend Framework est par des méthodes statiques dans la classe
-    <classname>Zend_Registry</classname>. Alternativement, la classe est un tableau, donc vous pouvez avoir accès aux éléments
-    stockés avec une interface semblable au tableau.</para>
+    <para>
+        L'utilisation typique des registres dans Zend Framework est par des méthodes statiques
+        dans la classe <classname>Zend_Registry</classname>. Alternativement, la classe est un
+        tableau, donc vous pouvez avoir accès aux éléments stockés avec une interface semblable au
+        tableau.
+    </para>
 
     <sect2 id="zend.registry.using.storing">
         <title>Mettre des valeurs dans le registre</title>
 
-        <para>Pour enregistrer une valeur dans le registre, il faut utiliser la méthode statique
-        <code>set()</code>.</para>
+        <para>
+            Pour enregistrer une valeur dans le registre, il faut utiliser la méthode statique
+            <code>set()</code>.
+        </para>
 
         <example id="zend.registry.using.storing.example">
             <title>Exemple avec la méthode <code>set()</code></title>
@@ -26,16 +34,25 @@ Zend_Registry::set('index', $value);
 ]]></programlisting>
         </example>
 
-        <para>La valeur peut être un objet, un tableau, ou un scalaire. Vous pouvez changer la valeur stockée dans une
-        entrée spécifique du registre en utilisant <code>set()</code> pour enregistrer une nouvelle valeur.</para>
+        <para>
+            La valeur peut être un objet, un tableau, ou un scalaire. Vous pouvez changer la
+            valeur stockée dans une entrée spécifique du registre en utilisant <code>set()</code>
+            pour enregistrer une nouvelle valeur.
+        </para>
 
-        <para>L'index peut être un scalaire (<code>null</code>, chaîne, ou nombre), comme un tableau ordinaire.</para>
+        <para>
+            L'index peut être un scalaire (<code>null</code>, chaîne, ou nombre), comme un
+            tableau ordinaire.
+        </para>
     </sect2>
 
     <sect2 id="zend.registry.using.retrieving">
         <title>Lire des valeurs du registre</title>
 
-        <para>Pour récupérer une entrée dans le registre,il faut utiliser la méthode statique <code>get()</code>.</para>
+        <para>
+            Pour récupérer une entrée dans le registre,il faut utiliser la méthode statique
+            <code>get()</code>.
+        </para>
 
         <example id="zend.registry.using.retrieving.example">
             <title>Exemple avec la méthode <code>get()</code></title>
@@ -45,8 +62,10 @@ $value = Zend_Registry::get('index');
 ]]></programlisting>
         </example>
 
-        <para>La méthode <code>getInstance()</code> retourne l'objet registre en entier. Un objet registre est itératif,
-        rendant les valeurs stockées facilement accessibles.</para>
+        <para>
+            La méthode <code>getInstance()</code> retourne l'objet registre en entier. Un
+            objet registre est itératif, rendant les valeurs stockées facilement accessibles.
+        </para>
 
         <example id="zend.registry.using.retrieving.example-iterating">
             <title>Exemple d'itération du registre</title>
@@ -65,15 +84,22 @@ foreach ($registry as $index => $value) {
     <sect2 id="zend.registry.using.constructing">
         <title>Construire un objet registre</title>
 
-        <para>En plus de pouvoir accéder au registre grâce aux méthodes statiques, vous pous pouvez créer une instance
-        directement et l'utiliser en tant qu'objet.</para>
+        <para>
+            En plus de pouvoir accéder au registre grâce aux méthodes statiques, vous pous
+            pouvez créer une instance directement et l'utiliser en tant qu'objet.
+        </para>
 
-        <para>L'instance du registre à laquelle vous avez accès par les méthodes statiques est simplement une instance
-        et il est plus commode qu'il soit stocké statiquement, afin d'y avoir accès partout dans votre
-        application.</para>
+        <para>
+            L'instance du registre à laquelle vous avez accès par les méthodes statiques est
+            simplement une instance et il est plus commode qu'il soit stocké statiquement, afin d'y
+            avoir accès partout dans votre application.
+        </para>
 
-        <para>Utiliser le constructeur traditionnel <code>new</code> pour créer une instance du registre. Ceci vous
-        donne la possibilité d'initialiser les entrées du registre avec un tableau associatif.</para>
+        <para>
+            Utiliser le constructeur traditionnel <code>new</code> pour créer une instance du
+            registre. Ceci vous donne la possibilité d'initialiser les entrées du registre avec un
+            tableau associatif.
+        </para>
 
         <example id="zend.registry.using.constructing.example">
             <title>Exemple de construction d'un registre</title>
@@ -83,8 +109,11 @@ $registry = new Zend_Registry(array('index' => $value));
 ]]></programlisting>
         </example>
 
-        <para>Après avoir construit cette instance, vous pouvez l'utiliser avec les fonctions habituelles de tableau, ou
-        vous pouvez rendre cette instance statique en utilisant la méthode <code>setInstance()</code>.</para>
+        <para>
+            Après avoir construit cette instance, vous pouvez l'utiliser avec les fonctions
+            habituelles de tableau, ou vous pouvez rendre cette instance statique en utilisant la
+            méthode <code>setInstance()</code>.
+        </para>
 
         <example id="zend.registry.using.constructing.example-setinstance">
             <title>Exemple d'initialisation d'un registre statique</title>
@@ -96,15 +125,20 @@ Zend_Registry::setInstance($registry);
 ]]></programlisting>
         </example>
 
-        <para>La méthode <code>setInstance()</code> lèvera une <classname>Zend_Exception</classname> si un registre statique a
-        déjà été initialisé lors de son premier accès.</para>
+        <para>
+            La méthode <code>setInstance()</code> lèvera une
+            <classname>Zend_Exception</classname> si un registre statique a déjà été initialisé lors
+            de son premier accès.
+        </para>
     </sect2>
 
     <sect2 id="zend.registry.using.array-access">
         <title>Accéder au registre comme à un tableau</title>
 
-        <para>Si vous avez plusieurs valeurs à récupérer ou à enregistrer, vous pouvez trouver intéressant d'avoir accès
-        au registre avec une notation de type tableau.</para>
+        <para>
+            Si vous avez plusieurs valeurs à récupérer ou à enregistrer, vous pouvez trouver
+            intéressant d'avoir accès au registre avec une notation de type tableau.
+        </para>
 
         <example id="zend.registry.using.array-access.example">
             <title>Exemple d'accès de type tableau</title>
@@ -122,17 +156,23 @@ var_dump( $registry['index'] );
     <sect2 id="zend.registry.using.array-object">
         <title>Accéder au registre comme à un objet</title>
 
-        <para>Vous pouvez trouver aussi intéressant d'accéder au registre d'une manière orientée objet en utilisant les
-        noms d'index comme des propriétés d'objet. Pour cela, vous devez spécifier au constructeur du registre l'option
-        <code>ArrayObject::ARRAY_AS_PROPS</code> et initialiser l'instance statique. Vous devez faire ceci avant
-        d'accéder au registre statique. <emphasis>Attention</emphasis> en utilisant cette option, puisque
-        certaines versions de PHP ont des bugs quand il utilise le registre avec cette option.</para>
+        <para>
+            Vous pouvez trouver aussi intéressant d'accéder au registre d'une manière orientée
+            objet en utilisant les noms d'index comme des propriétés d'objet. Pour cela, vous devez
+            spécifier au constructeur du registre l'option <code>ArrayObject::ARRAY_AS_PROPS</code>
+            et initialiser l'instance statique. Vous devez faire ceci avant d'accéder au registre
+            statique. <emphasis>Attention</emphasis> en utilisant cette option, puisque certaines
+            versions de PHP ont des bugs quand il utilise le registre avec cette option.
+        </para>
 
         <warning>
-            <title>Problèmes connus avec l'option <code>ArrayObject::ARRAY_AS_PROPS</code></title>
+            <title>Problèmes connus avec l'option
+            <code>ArrayObject::ARRAY_AS_PROPS</code></title>
 
-            <para>Certaines versions de PHP sont réputées buggués lors de l'utilisation de l'option de registre
-            <code>ArrayObject::ARRAY_AS_PROPS</code>.</para>
+            <para>
+                Certaines versions de PHP sont réputées buggués lors de l'utilisation de
+                l'option de registre <code>ArrayObject::ARRAY_AS_PROPS</code>.
+            </para>
         </warning>
 
         <example id="zend.registry.using.array-object.example">
@@ -158,8 +198,10 @@ var_dump($registry->index);
     <sect2 id="zend.registry.using.isset">
         <title>Vérifier si un index existe</title>
 
-        <para>Pour savoir si un index particulier du registre a une valeur, il faut utiliser la méthode statique
-        <code>isRegistered()</code>.</para>
+        <para>
+            Pour savoir si un index particulier du registre a une valeur, il faut utiliser la
+            méthode statique <code>isRegistered()</code>.
+        </para>
 
         <example id="zend.registry.using.isset.example-isregistered">
             <title>Exemple avec la méthode i<code>sRegistered()</code></title>
@@ -171,8 +213,11 @@ if (Zend_Registry::isRegistered($index)) {
 ]]></programlisting>
         </example>
 
-        <para>Pour savoir si un index particulier du registre de type tableau a une valeur, il faut utiliser la fonction
-        <code>isset()</code> comme vous le feriez avec un tableau ordinaire.</para>
+        <para>
+            Pour savoir si un index particulier du registre de type tableau a une valeur, il
+            faut utiliser la fonction <code>isset()</code> comme vous le feriez avec un tableau
+            ordinaire.
+        </para>
 
         <example id="zend.registry.using.isset.example-isset">
             <title>Exemple avec la méthode <code>isset()</code></title>
@@ -196,10 +241,14 @@ if (isset($registry->index)) {
     <sect2 id="zend.registry.using.subclassing">
         <title>Étendre le registre</title>
 
-        <para>Le registre statique est une instance de la classe <classname>Zend_Registry</classname>. Si vous voulez ajouter une
-        fonctionnalité au registre, vous pouvez créer une classe qui étend <classname>Zend_Registry</classname> et ensuite vous
-        pouvez spécifier cette classe comme la classe à utiliser pour le registre statique. Utilisez la méthode statique
-        <code>setClassName()</code> pour spécifier la classe.</para>
+        <para>
+            Le registre statique est une instance de la classe
+            <classname>Zend_Registry</classname>. Si vous voulez ajouter une fonctionnalité au
+            registre, vous pouvez créer une classe qui étend <classname>Zend_Registry</classname> et
+            ensuite vous pouvez spécifier cette classe comme la classe à utiliser pour le registre
+            statique. Utilisez la méthode statique <code>setClassName()</code> pour spécifier la
+            classe.
+        </para>
 
         <note>
             <para>La classe doit étendre <classname>Zend_Registry</classname>.</para>
@@ -215,28 +264,39 @@ Zend_Registry::set('index', $value);
 ]]></programlisting>
         </example>
 
-        <para>L'enregistrement lève une <classname>Zend_Exception</classname> si vous essayez d'affecter un nom de classe après
-        que le registre ait eu un premier accès. Il est recommandé de spécifier le nom de classe pour votre registre
-        statique dans le fichier de lancement de votre application.</para>
+        <para>
+            L'enregistrement lève une <classname>Zend_Exception</classname> si vous essayez
+            d'affecter un nom de classe après que le registre ait eu un premier accès. Il est
+            recommandé de spécifier le nom de classe pour votre registre statique dans le fichier de
+            lancement de votre application.
+        </para>
     </sect2>
 
     <sect2 id="zend.registry.using.unsetting">
         <title>Décharger le registre statique</title>
 
-        <para>Bien que ce ne soit pas normalement nécessaire, vous pouvez décharger l'instance de votre registre.
-        Utilisez la méthode statique <code>_unsetInstance()</code>.</para>
+        <para>
+            Bien que ce ne soit pas normalement nécessaire, vous pouvez décharger l'instance
+            de votre registre. Utilisez la méthode statique <code>_unsetInstance()</code>.
+        </para>
 
         <note>
             <title>Risque de perte de données</title>
 
-            <para>Quand vous utilisez le code <code>_unsetInstance()</code>, toutes les données dans le registre
-            statique sont perdues et ne peuvent pas être récupérées.</para>
+            <para>
+                Quand vous utilisez le code <code>_unsetInstance()</code>, toutes les données
+                dans le registre statique sont perdues et ne peuvent pas être récupérées.
+            </para>
         </note>
 
-        <para>Vous pourriez utiliser cette méthode, par exemple, si vous voulez utiliser <code>setInstance()</code> ou
-        <code>setClassName()</code> après que l'objet de registre statique a été initialisé. Décharger l'instance
-        statique vous permet d'utiliser ces méthodes même après instanciation de l'objet registre. Utiliser
-        <classname>Zend_Registry</classname> de cette manière n'est pas recommandé dans les applications.</para>
+        <para>
+            Vous pourriez utiliser cette méthode, par exemple, si vous voulez utiliser
+            <code>setInstance()</code> ou <code>setClassName()</code> après que l'objet de registre
+            statique a été initialisé. Décharger l'instance statique vous permet d'utiliser ces
+            méthodes même après instanciation de l'objet registre. Utiliser
+            <classname>Zend_Registry</classname> de cette manière n'est pas recommandé dans les
+            applications.
+        </para>
 
         <example id="zend.registry.using.unsetting.example">
             <title>Exemple avec la méthode <code>_unsetInstance()</code></title>

+ 19 - 12
documentation/manual/fr/module_specs/Zend_Rest.xml

@@ -1,18 +1,25 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13832 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 14978 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.rest.introduction">
     <title>Introduction</title>
 
-    <para>Les services Web REST utilisent des formats XML spécifiques. Ces normes ad-hoc signifient que la façon
-    d'accéder à un service Web REST est différente pour chaque service. Les services Web REST utilise typiquement les
-    paramètres URL (données GET) ou les informations du chemin pour demander des données, et les données POST pour
-    envoyer des données.</para>
+    <para>
+        Les services Web REST utilisent des formats XML spécifiques. Ces normes ad-hoc
+        signifient que la façon d'accéder à un service Web REST est différente pour chaque service.
+        Les services Web REST utilise typiquement les paramètres URL (données GET) ou les
+        informations du chemin pour demander des données, et les données POST pour envoyer des
+        données.
+    </para>
 
-    <para>Zend Framework fournit les possibilités de client et de serveur, qui, une fois utilisées ensemble tiennent
-    compte de beaucoup plus d'expérience d'interface "locale" par l'intermédiaire de l'accès aux propriétés d'objet
-    virtuel. Le composant serveur comporte l'exposition automatique des fonctions et des classes employant un format
-    compréhensible et simple de XML. En accédant à ces services via le client, il est possible de rechercher facilement
-    les données retournées lors de l'appel à distance. Si vous souhaitez employer le client avec un service non basé sur
-    le service Zend_Rest_Server, il fournira un accès plus facile aux données.</para>
+    <para>
+        Zend Framework fournit les possibilités de client et de serveur, qui, une fois
+        utilisées ensemble tiennent compte de beaucoup plus d'expérience d'interface "locale" par
+        l'intermédiaire de l'accès aux propriétés d'objet virtuel. Le composant serveur comporte
+        l'exposition automatique des fonctions et des classes employant un format compréhensible et
+        simple de XML. En accédant à ces services via le client, il est possible de rechercher
+        facilement les données retournées lors de l'appel à distance. Si vous souhaitez employer le
+        client avec un service non basé sur le service Zend_Rest_Server, il fournira un accès plus
+        facile aux données.
+    </para>
 </sect1>

+ 83 - 46
documentation/manual/fr/module_specs/Zend_Rest_Client.xml

@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13832 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15157 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.rest.client">
     <title>Zend_Rest_Client</title>
@@ -7,10 +7,14 @@
     <sect2 id="zend.rest.client.introduction">
         <title>Introduction</title>
 
-        <para>Utiliser le <classname>Zend_Rest_Client</classname> est très semblable à l'utilisation des objets de
-        <code>SoapClient</code> (<ulink url="http://www.php.net/soap">SOAP web service extension</ulink>). Vous pouvez
-        simplement appeler les procédures de service de REST comme méthodes de <classname>Zend_Rest_Client</classname>. Vous devez
-        indiquer l'adresse complète du service dans le constructeur de <classname>Zend_Rest_Client</classname>.</para>
+        <para>
+            Utiliser le <classname>Zend_Rest_Client</classname> est très semblable à
+            l'utilisation des objets de <code>SoapClient</code> (<ulink
+            url="http://www.php.net/soap">SOAP web service extension</ulink>). Vous pouvez
+            simplement appeler les procédures de service de REST comme méthodes de
+            <classname>Zend_Rest_Client</classname>. Vous devez indiquer l'adresse complète du
+            service dans le constructeur de <classname>Zend_Rest_Client</classname>.
+        </para>
 
         <example id="zend.rest.client.introduction.example-1">
             <title>Une requête REST basique</title>
@@ -31,10 +35,14 @@ echo $client->sayHello('Davey', 'Day')->get();
         <note>
             <title>Différences dans les appels</title>
 
-            <para><classname>Zend_Rest_Client</classname> tente de rendre les méthodes distantes de la même manière que ses
-            propres méthodes, la seule différence étant que vous devez suivre l'appel de méthode <code>get()</code>,
-            <code>post()</code>, <code>put()</code> ou <code>delete()</code>. Cet appel peut être fait par
-            l'intermédiaire de méthodes enchaînées ou dans des appels séparés de méthode :</para>
+            <para>
+                <classname>Zend_Rest_Client</classname> tente de rendre les méthodes distantes
+                de la même manière que ses propres méthodes, la seule différence étant que vous
+                devez suivre l'appel de méthode <code>get()</code>, <code>post()</code>,
+                <code>put()</code> ou <code>delete()</code>. Cet appel peut être fait par
+                l'intermédiaire de méthodes enchaînées ou dans des appels séparés de méthode
+                :
+            </para>
 
             <programlisting role="php"><![CDATA[
 $client->sayHello('Davey', 'Day');
@@ -46,13 +54,17 @@ echo $client->get();
     <sect2 id="zend.rest.client.return">
         <title>Réponses</title>
 
-        <para>Toutes les demandes faites en utilisant <classname>Zend_Rest_Client</classname> retourne un objet
-        <classname>Zend_Rest_Client_Response</classname>. Cet objet a beaucoup de propriétés qui facilitent l'accès aux
-        résultats.</para>
+        <para>
+            Toutes les demandes faites en utilisant <classname>Zend_Rest_Client</classname>
+            retourne un objet <classname>Zend_Rest_Client_Response</classname>. Cet objet a beaucoup
+            de propriétés qui facilitent l'accès aux résultats.
+        </para>
 
-        <para>Quand le service est basé sur <classname>Zend_Rest_Server</classname>, Zend_Rest_Client peut faire plusieurs
-        suppositions au sujet de la réponse, y compris le statut de réponse (succès ou échec) et le type de
-        retour.</para>
+        <para>
+            Quand le service est basé sur <classname>Zend_Rest_Server</classname>,
+            Zend_Rest_Client peut faire plusieurs suppositions au sujet de la réponse, y compris le
+            statut de réponse (succès ou échec) et le type de retour.
+        </para>
 
         <example id="zend.rest.client.return.example-1">
             <title>État de la réponse</title>
@@ -66,17 +78,24 @@ if ($result->isSuccess()) {
 ]]></programlisting>
         </example>
 
-        <para>Dans l'exemple ci-dessus, vous pouvez voir que nous utilisons le résultat de la demande comme un objet,
-        pour appeler <code>isSuccess()</code>, et puis grâce à <code>__toString()</code>, nous pouvons simplement faire
-        <code>echo</code> sur l'objet pour récupérer le résultat. <classname>Zend_Rest_Client_Response</classname> vous permettra
-        de afficher n'importe quelle valeur scalaire. Pour les types complexes, vous pouvez employer la notation type
-        objet ou type tableau.</para>
-
-        <para>Si cependant, vous souhaitez questionner un service n'employant pas <classname>Zend_Rest_Server</classname> l'objet
-        de <classname>Zend_Rest_Client_Response</classname> se comportera comme un <code>SimpleXMLElement</code>. Cependant, pour
-        faciliter les choses, il questionnera automatiquement le XML en utilisant XPath si la propriété n'est pas un
-        descendant direct de l'élément racine du document. En plus, si vous accédez à une propriété comme à une méthode,
-        vous recevrez la valeur de PHP pour l'objet, ou un tableau de résultats.</para>
+        <para>
+            Dans l'exemple ci-dessus, vous pouvez voir que nous utilisons le résultat de la
+            demande comme un objet, pour appeler <code>isSuccess()</code>, et puis grâce à
+            <code>__toString()</code>, nous pouvons simplement faire <code>echo</code> sur l'objet
+            pour récupérer le résultat. <classname>Zend_Rest_Client_Response</classname> vous
+            permettra de afficher n'importe quelle valeur scalaire. Pour les types complexes, vous
+            pouvez employer la notation type objet ou type tableau.
+        </para>
+
+        <para>
+            Si cependant, vous souhaitez questionner un service n'employant pas
+            <classname>Zend_Rest_Server</classname> l'objet de
+            <classname>Zend_Rest_Client_Response</classname> se comportera comme un
+            <code>SimpleXMLElement</code>. Cependant, pour faciliter les choses, il questionnera
+            automatiquement le XML en utilisant XPath si la propriété n'est pas un descendant direct
+            de l'élément racine du document. En plus, si vous accédez à une propriété comme à une
+            méthode, vous recevrez la valeur de PHP pour l'objet, ou un tableau de résultats.
+        </para>
 
         <example id="zend.rest.client.return.example-2">
             <title>Utiliser le service REST Technorati</title>
@@ -125,27 +144,36 @@ echo $result->firstname() .' '. $result->lastname();
 ]]></programlisting>
         </example>
 
-        <para>Ici nous accédons aux propriétés <code>firstname</code> et <code>lastname</code>.Bien que ce ne soient pas
-        les éléments supérieurs, elles sont automatiquement retournées quand on accède par le nom.</para>
+        <para>
+            Ici nous accédons aux propriétés <code>firstname</code> et
+            <code>lastname</code>.Bien que ce ne soient pas les éléments supérieurs, elles sont
+            automatiquement retournées quand on accède par le nom.
+        </para>
 
         <note>
             <title>Éléments multiples</title>
 
-            <para>Si des éléments multiples sont trouvés en accédant à une valeur de nom, un tableau d'élément
-            SimpleXMLElement sera retourné ; l'accès par l'intermédiaire de la notation de méthode retournera un tableau
-            de valeurs.</para>
+            <para>
+                Si des éléments multiples sont trouvés en accédant à une valeur de nom, un
+                tableau d'élément SimpleXMLElement sera retourné ; l'accès par l'intermédiaire de la
+                notation de méthode retournera un tableau de valeurs.
+            </para>
         </note>
     </sect2>
 
     <sect2 id="zend.rest.client.args">
         <title>Arguments de requêtes</title>
 
-        <para>A moins que vous ne fassiez une demande à un service basé sur <classname>Zend_Rest_Server</classname>, il y a des
-        chances que vous devez envoyer des arguments multiples avec votre requête. Ceci est fait en appelant une méthode
-        avec le nom de l'argument, en passant la valeur comme premier (et seul) argument. Chacun de ces appels de
-        méthode renvoie l'objet lui-même, tenant compte de l'enchaînement, ou de l'utilisation habituelle. Le premier
-        appel, ou le premier argument si vous passez plus d'un argument, est toujours considéré comme la méthode en
-        appelant un service <classname>Zend_Rest_Server</classname>.</para>
+        <para>
+            A moins que vous ne fassiez une demande à un service basé sur
+            <classname>Zend_Rest_Server</classname>, il y a des chances que vous devez envoyer des
+            arguments multiples avec votre requête. Ceci est fait en appelant une méthode avec le
+            nom de l'argument, en passant la valeur comme premier (et seul) argument. Chacun de ces
+            appels de méthode renvoie l'objet lui-même, tenant compte de l'enchaînement, ou de
+            l'utilisation habituelle. Le premier appel, ou le premier argument si vous passez plus
+            d'un argument, est toujours considéré comme la méthode en appelant un service
+            <classname>Zend_Rest_Server</classname>.
+        </para>
 
         <example id="zend.rest.client.args.example-1">
             <title>Affecter des arguments de requêtes</title>
@@ -163,19 +191,28 @@ $client->arg('value1')->arg2('value2')->get();
 ]]></programlisting>
         </example>
 
-        <para>Les deux méthodes dans l'exemple ci-dessus, auront comme conséquence l'obtention des arguments suivants :
-        <code>?method=arg&amp;arg1=value1&amp;arg=value1&amp;arg2=value2</code></para>
+        <para>
+            Les deux méthodes dans l'exemple ci-dessus, auront comme conséquence l'obtention
+            des arguments suivants :
+            <code>?method=arg&amp;arg1=value1&amp;arg=value1&amp;arg2=value2</code>
+        </para>
 
-        <para>Vous noterez que le premier appel de <code>$client-&gt;arg('value1');</code> a eu comme conséquence
-        <code>method=arg&amp;arg1=value1</code> et <code>arg=value1</code> ; ceci afin que <classname>Zend_Rest_Server</classname>
-        puisse comprendre la demande correctement, plutôt que d'exiger la connaissance préalable du service.</para>
+        <para>
+            Vous noterez que le premier appel de <code>$client-&gt;arg('value1');</code> a eu
+            comme conséquence <code>method=arg&amp;arg1=value1</code> et <code>arg=value1</code> ;
+            ceci afin que <classname>Zend_Rest_Server</classname> puisse comprendre la demande
+            correctement, plutôt que d'exiger la connaissance préalable du service.
+        </para>
 
         <warning>
             <title>Sévérité de Zend_Rest_Client</title>
 
-            <para>Tout service REST qui est strict au sujet des arguments qu'il reçoit échouera probablement en
-            utilisant <classname>Zend_Rest_Client</classname>, en raison du comportement décrit ci-dessus. Ce n'est pas une
-            pratique courante et ne devrait pas poser des problèmes.</para>
+            <para>
+                Tout service REST qui est strict au sujet des arguments qu'il reçoit échouera
+                probablement en utilisant <classname>Zend_Rest_Client</classname>, en raison du
+                comportement décrit ci-dessus. Ce n'est pas une pratique courante et ne devrait pas
+                poser des problèmes.
+            </para>
         </warning>
     </sect2>
 </sect1>

+ 26 - 13
documentation/manual/fr/module_specs/Zend_Rest_Server.xml

@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 11089 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15235 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.rest.server">
     <title>Zend_Rest_Server</title>
@@ -7,8 +7,10 @@
     <sect2 id="zend.rest.server.introduction">
         <title>Introduction</title>
 
-        <para>Zend_Rest_Server est prévu comme un serveur supportant l'ensemble des fonctionnalités d'un serveur
-        REST.</para>
+        <para>
+            Zend_Rest_Server est prévu comme un serveur supportant l'ensemble des
+            fonctionnalités d'un serveur REST.
+        </para>
     </sect2>
 
     <sect2 id="zend.rest.server.usage">
@@ -50,10 +52,13 @@ $server->handle();
     <sect2 id="zend.rest.server.args">
         <title>Appelé un service Zend_Rest_Server</title>
 
-        <para>Pour appeler un service <classname>Zend_Rest_Server</classname>, vous devez fournir un argument de
-        <code>method</code> GET/POST avec une valeur qui est la méthode que vous souhaitez appeler. Vous pouvez alors
-        ajouter tout nombre d'arguments en utilisant le nom de l'argument (c.-à-d. "qui ") ou en utilisant 'arg' suivi
-        de la position numérique de l'argument (c.-à-d. "arg1").</para>
+        <para>
+            Pour appeler un service <classname>Zend_Rest_Server</classname>, vous devez
+            fournir un argument de <code>method</code> GET/POST avec une valeur qui est la méthode
+            que vous souhaitez appeler. Vous pouvez alors ajouter tout nombre d'arguments en
+            utilisant le nom de l'argument (c.-à-d. "qui ") ou en utilisant 'arg' suivi de la
+            position numérique de l'argument (c.-à-d. "arg1").
+        </para>
 
         <note>
             <title>Index numérique</title>
@@ -61,7 +66,10 @@ $server->handle();
             <para>Les arguments numériques utilisent 1 comme point de départ.</para>
         </note>
 
-        <para>Pour appeler le <code>ditBonjour</code> de l'exemple ci-dessus, vous pouvez employer soit :</para>
+        <para>
+            Pour appeler le <code>ditBonjour</code> de l'exemple ci-dessus, vous pouvez
+            employer soit :
+        </para>
 
         <para><code>?method=ditBonjour&amp;qui=Davey&amp;quand=journée</code></para>
 
@@ -73,8 +81,10 @@ $server->handle();
     <sect2 id="zend.rest.server.customstatus">
         <title>Envoyer un statut personnalisé</title>
 
-        <para>En envoyant des valeurs, pour ajouter un statut personnalisé, vous pouvez envoyer un tableau avec une clé
-        <code>status</code>.</para>
+        <para>
+            En envoyant des valeurs, pour ajouter un statut personnalisé, vous pouvez envoyer
+            un tableau avec une clé <code>status</code>.
+        </para>
 
         <example id="zend.rest.server.customstatus.example-1">
             <title>Renvoyer un statut personnalisé</title>
@@ -102,8 +112,11 @@ $server->handle();
     <sect2 id="zend.rest.server.customxml">
         <title>Renvoyer une réponse XML personnalisée</title>
 
-        <para>Si vous voulez retourner du XML personnalisé, retournez simplement un objet <code>DOMDocument</code>,
-        <code>DOMElement</code> ou <code>SimpleXMLElement</code>.</para>
+        <para>
+            Si vous voulez retourner du XML personnalisé, retournez simplement un objet
+            <code>DOMDocument</code>, <code>DOMElement</code> ou
+            <code>SimpleXMLElement</code>.
+        </para>
 
         <example id="zend.rest.server.customxml.example-1">
             <title>Renvoyer une réponse XML personnalisée</title>

+ 147 - 94
documentation/manual/fr/module_specs/Zend_Search_Lucene-Advanced.xml

@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 14448 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15346 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.search.lucene.advanced">
     <title>Avancé</title>
@@ -7,120 +7,173 @@
     <sect2 id="zend.search.lucene.advanced.format_migration">
         <title>Depuis Zend Framework 1.6, gestion des transformations de format d'index</title>
 
-        <para><classname>Zend_Search_Lucene</classname> fonctionne avec les index Lucene Java 1.4-1.9, 2.1 et 2.3.</para>
-
-        <para>Le format actuel de l'index peut être obtenu par <code>$index-&gt;getFormatVersion()</code>. Ceci retourne
-        une de ces valeurs : <itemizedlist>
-                <listitem>
-                    <para><classname>Zend_Search_Lucene::FORMAT_PRE_2_1</classname> pour le format 1.4-1.9.</para>
+        <para>
+            <classname>Zend_Search_Lucene</classname> fonctionne avec les index Lucene Java
+            1.4-1.9, 2.1 et 2.3.
+        </para>
+
+        <para>
+            Le format actuel de l'index peut être obtenu par
+            <code>$index-&gt;getFormatVersion()</code>. Ceci retourne une de ces valeurs :
+            <itemizedlist>
+                    <listitem>
+                    <para>
+                        <classname>Zend_Search_Lucene::FORMAT_PRE_2_1</classname> pour le
+                        format 1.4-1.9.
+                    </para>
                 </listitem>
 
                 <listitem>
-                    <para><classname>Zend_Search_Lucene::FORMAT_2_1</classname> pour le format 2.1 (utilisé aussi pour
-                    2.2).</para>
+                    <para>
+                        <classname>Zend_Search_Lucene::FORMAT_2_1</classname> pour le format
+                        2.1 (utilisé aussi pour 2.2).
+                    </para>
                 </listitem>
 
                 <listitem>
-                    <para><classname>Zend_Search_Lucene::FORMAT_2_3</classname> pour le format 2.3.</para>
+                    <para>
+                        <classname>Zend_Search_Lucene::FORMAT_2_3</classname> pour le format
+                        2.3.
+                    </para>
                 </listitem>
-            </itemizedlist></para>
-
-        <para>Les modifications de l'index n'arrivent <emphasis>que</emphasis> si une mise à jour de
-        l'index est faite. Ceci arrive lorsqu'un nouveau document est ajouté à l'index, ou lors de l'optimisation
-        manuelle de l'index par <code>$index-&gt;optimize()</code>.</para>
-
-        <para>Dans un tel cas, Zend_Search_Lucene peut convertir l'index vers une version plus haute. Ceci arrive
-        <emphasis>toujours</emphasis> pour le format <classname>Zend_Search_Lucene::FORMAT_PRE_2_1</classname>,
-        alors transformé en format 2.1.</para>
-
-        <para>Vous pouvez gérer ces conversions et notamment le format d'arrivée avec
-        <code>$index-&gt;setFormatVersion()</code>, qui prend comme paramètre
-        <classname>Zend_Search_Lucene::FORMAT_2_1</classname> ou <classname>Zend_Search_Lucene::FORMAT_2_3</classname> :<itemizedlist>
-                <listitem>
-                    <para><classname>Zend_Search_Lucene::FORMAT_2_1</classname> ne fait rien puisque les format pre-2.1 sont
-                    convertis vers ce format (2.1)</para>
+                </itemizedlist>
+            </para>
+
+        <para>
+            Les modifications de l'index n'arrivent <emphasis>que</emphasis> si une mise à
+            jour de l'index est faite. Ceci arrive lorsqu'un nouveau document est ajouté à l'index,
+            ou lors de l'optimisation manuelle de l'index par
+            <code>$index-&gt;optimize()</code>.
+        </para>
+
+        <para>
+            Dans un tel cas, Zend_Search_Lucene peut convertir l'index vers une version plus
+            haute. Ceci arrive <emphasis>toujours</emphasis> pour le format
+            <classname>Zend_Search_Lucene::FORMAT_PRE_2_1</classname>, alors transformé en format
+            2.1.
+        </para>
+
+        <para>
+            Vous pouvez gérer ces conversions et notamment le format d'arrivée avec
+            <code>$index-&gt;setFormatVersion()</code>, qui prend comme paramètre
+            <classname>Zend_Search_Lucene::FORMAT_2_1</classname> ou
+            <classname>Zend_Search_Lucene::FORMAT_2_3</classname> :<itemizedlist>
+                    <listitem>
+                    <para>
+                        <classname>Zend_Search_Lucene::FORMAT_2_1</classname> ne fait rien
+                        puisque les format pre-2.1 sont convertis vers ce format (2.1)
+                    </para>
                 </listitem>
 
                 <listitem>
-                    <para><classname>Zend_Search_Lucene::FORMAT_2_3</classname> force la conversion vers le format 2.3.</para>
+                    <para>
+                        <classname>Zend_Search_Lucene::FORMAT_2_3</classname> force la
+                        conversion vers le format 2.3.
+                    </para>
                 </listitem>
-            </itemizedlist></para>
+                </itemizedlist>
+            </para>
 
-        <para>Les conversions vers des versions antérieure de formats ne sont pas supportées.</para>
+        <para>
+            Les conversions vers des versions antérieure de formats ne sont pas
+            supportées.
+        </para>
 
         <note>
             <title>Important!</title>
 
-            <para>Les formats ne peuvent pas être convertis vers des versions antérieures. Gardez une copie de
-            sauvegarde si ceci s'avère nécessaire, car après une conversion il ne sera plus possible de faire marche
-            arrière.</para>
+            <para>
+                Les formats ne peuvent pas être convertis vers des versions antérieures.
+                Gardez une copie de sauvegarde si ceci s'avère nécessaire, car après une conversion
+                il ne sera plus possible de faire marche arrière.
+            </para>
         </note>
     </sect2>
 
     <sect2 id="zend.search.lucene.advanced.static">
         <title>Utiliser les propriétés statiques de l'index</title>
 
-        <para>L'objet <classname>Zend_Search_Lucene</classname> utilise la méthode de destructeur pour valider ses changements et
-        faire ses optimisations et nettoyages.</para>
-
-        <para>Il stocke les documents ajoutés en mémoire et les vide dans un segment sur le disque en fonction du
-        paramètre <code>MaxBufferedDocs</code>.</para>
-
-        <para>Si la limite <code>MaxBufferedDocs</code> n'est pas atteinte, alors il y aura des documents non
-        sauvegardés qui seront sauvés comme nouveau segment lors de la destruction de l'objet. La procédure
-        d'optimisation automatique est lancée si nécessaire, cela dépend des paramètres <code>MaxBufferedDocs</code>,
-        <code>MaxMergeDocs</code> et <code>MergeFactor</code>.</para>
-
-        <para>Les propriétés statiques d'un objet sont détruites <emphasis>après</emphasis> la dernière ligne de code
-        exécutée. <programlisting role="php"><![CDATA[
-class Searcher {
-    private static $_index;
-
-    public static function initIndex() {
-        self::$_index = Zend_Search_Lucene::open('path/to/index');
+        <para>
+            L'objet <classname>Zend_Search_Lucene</classname> utilise la méthode de
+            destructeur pour valider ses changements et faire ses optimisations et
+            nettoyages.
+        </para>
+
+        <para>
+            Il stocke les documents ajoutés en mémoire et les vide dans un segment sur le
+            disque en fonction du paramètre <code>MaxBufferedDocs</code>.
+        </para>
+
+        <para>
+            Si la limite <code>MaxBufferedDocs</code> n'est pas atteinte, alors il y aura des
+            documents non sauvegardés qui seront sauvés comme nouveau segment lors de la destruction
+            de l'objet. La procédure d'optimisation automatique est lancée si nécessaire, cela
+            dépend des paramètres <code>MaxBufferedDocs</code>, <code>MaxMergeDocs</code> et
+            <code>MergeFactor</code>.
+        </para>
+
+        <para>
+            Les propriétés statiques d'un objet sont détruites <emphasis>après</emphasis> la
+            dernière ligne de code exécutée. <programlisting role="php"><![CDATA[
+    class Searcher {
+        private static $_index;
+    
+        public static function initIndex() {
+            self::$_index = Zend_Search_Lucene::open('path/to/index');
+        }
     }
-}
-
-Searcher::initIndex();
-]]></programlisting></para>
-
-        <para>Aussi, le destructeur est correctement invoqué à ce point de l'exécution du programme.</para>
-
-        <para>Un problème potentiel peut être les exceptions. Celles envoyées dans un destructeur d'un objet statique
-        n'ont pas de contexte, car le destructeur est appelé après la fin d'exécution du script.</para>
-
-        <para>Vous pouvez alors voir une "Fatal error: Exception thrown without a stack frame in Unknown on line 0" au
-        lieu de l'exception décrivant réellement le contexte.</para>
-
-        <para><classname>Zend_Search_Lucene</classname> propose alors un détournement de ce problème avec la méthode
-        <code>commit()</code>. Elle sauvegarde les changements et libère la mémoire utilisée pour stocker les segments.
-        Vous pouvez utiliser la méthode commit n'importe quand, même plusieurs fois, pendant l'exécution de votre
-        script. Vous pouvez aussi continuer à utiliser l'objet <classname>Zend_Search_Lucene</classname> pour rechercher, ajouter
-        ou supprimer des document, même après une opération de commit (validation). L'appel à <code>commit()</code> est
-        simplement une sécurité pour éviter les problème d'exception dans le destructeur de
-        <classname>Zend_Search_Lucene</classname> :<programlisting role="php"><![CDATA[
-class Searcher {
-    private static $_index;
-
-    public static function initIndex() {
-        self::$_index = Zend_Search_Lucene::open('path/to/index');
+    
+    Searcher::initIndex();
+    ]]></programlisting></para>
+    
+        <para>
+            Aussi, le destructeur est correctement invoqué à ce point de l'exécution du
+            programme.
+        </para>
+
+        <para>
+            Un problème potentiel peut être les exceptions. Celles envoyées dans un
+            destructeur d'un objet statique n'ont pas de contexte, car le destructeur est appelé
+            après la fin d'exécution du script.
+        </para>
+
+        <para>
+            Vous pouvez alors voir une "Fatal error: Exception thrown without a stack frame in
+            Unknown on line 0" au lieu de l'exception décrivant réellement le contexte.
+        </para>
+
+        <para>
+            <classname>Zend_Search_Lucene</classname> propose alors un détournement de ce
+            problème avec la méthode <code>commit()</code>. Elle sauvegarde les changements et
+            libère la mémoire utilisée pour stocker les segments. Vous pouvez utiliser la méthode
+            commit n'importe quand, même plusieurs fois, pendant l'exécution de votre script. Vous
+            pouvez aussi continuer à utiliser l'objet <classname>Zend_Search_Lucene</classname> pour
+            rechercher, ajouter ou supprimer des document, même après une opération de commit
+            (validation). L'appel à <code>commit()</code> est simplement une sécurité pour éviter
+            les problème d'exception dans le destructeur de
+            <classname>Zend_Search_Lucene</classname> :<programlisting role="php"><![CDATA[
+    class Searcher {
+        private static $_index;
+    
+        public static function initIndex() {
+            self::$_index = Zend_Search_Lucene::open('path/to/index');
+        }
+    
+        ...
+    
+        public static function commit() {
+            self::$_index->commit();
+        }
     }
-
+    
+    Searcher::initIndex();
+    
     ...
-
-    public static function commit() {
-        self::$_index->commit();
-    }
-}
-
-Searcher::initIndex();
-
-...
-
-// Script shutdown routine
-...
-Searcher::commit();
-...
-]]></programlisting></para>
-    </sect2>
-</sect1>
+    
+    // Script shutdown routine
+    ...
+    Searcher::commit();
+    ...
+    ]]></programlisting></para>
+        </sect2>
+    </sect1>

+ 516 - 370
documentation/manual/fr/module_specs/Zend_Search_Lucene-BestPractice.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 13831 -->
+<!-- EN-Revision: 15341 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.search.lucene.best-practice">
     <title>Bonnes pratiques</title>
@@ -7,425 +7,571 @@
     <sect2 id="zend.search.lucene.best-practice.field-names">
         <title>Nommage des champs</title>
 
-        <para>Il n'y a pas de limitation pour les noms de champs dans
-        <classname>Zend_Search_Lucene</classname>.</para>
-
-        <para>Cependant, il est préférable de ne pas utiliser les noms '<emphasis>id</emphasis>' et
-        '<emphasis>score</emphasis>' afin d'éviter toute ambiguïté dans les propriétés de
-        <code>QueryHit</code>.</para>
-
-        <para>Les propriétés <code>id</code> et <code>score</code> de
-        <classname>Zend_Search_Lucene_Search_QueryHit</classname> font toujours référence à l'identifiant
-        interne du document Lucene et au <link
-        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>
-    </sect2>
-
-    <sect2 id="zend.search.lucene.best-practice.indexing-performance">
-        <title>Performance de l'indexation</title>
-
-        <para>La performance de l'indexation est un compromis entre les ressources utilisées, le
-        temps d'indexation et la qualité de l'index.</para>
-
-        <para>La qualité de l'index est complètement déterminée par le nombre de segments de
-        l'index.</para>
-
-        <para>Chaque segment d'index et un portion de données entièrement indépendante. Ainsi plus
-        un index contient de segments, plus il sera gourmand en mémoire et en temps de calcul lors
-        de la recherche.</para>
-
-        <para>L'optimisation d'index est un processus consistant à fusionner plusieurs segments en
-        un seul nouveau segment. Un index totalement optimisé ne contient qu'un seul segment.</para>
-
-        <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>
-
-        <para>L'optimisation d'index fonctionne avec des "data streams" et ne consomme pas pas une
-        grande quantité de mémoire, mais nécessite des ressources de processeur et du temps.</para>
-
-        <para>Par nature, les segments d'index de Lucene ne peuvent pas être mis à jour (l'opération
-        de mise à jour nécessite une réécriture complète du segment). Ainsi, l'ajout de nouveau(x)
-        document(s) à un index implique toujours la génération d'un nouveau segment. De fait, cela
-        dégrade la qualité de l'index.</para>
-
-        <para>Une optimisation automatique d'un index est effectuée après chaque génération de
-        segment et consiste en la fusion des segments partiels.</para>
-
-        <para>Il y a trois options pour contrôler le comportement de l'auto-optimisation (voir la
-        section <link linkend="zend.search.lucene.index-creation.optimization">Optimisation
-        d'index</link>) :<itemizedlist>
-                <listitem>
-                    <para><emphasis>MaxBufferedDocs</emphasis> représente le nombre maximum de
-                    documents qui peuvent être mis en mémoire tampon avant qu'un nouveau segment
-                    soit généré et écrit sur le disque dur.</para>
+        <para>
+            Il n'y a pas de limitation pour les noms de champs dans
+            <classname>Zend_Search_Lucene</classname>.
+        </para>
+
+        <para>
+            Cependant, il est préférable de ne pas utiliser les noms '<emphasis>id</emphasis>'
+            et '<emphasis>score</emphasis>' afin d'éviter toute ambiguïté dans les propriétés de
+            <code>QueryHit</code>.
+        </para>
+
+        <para>
+            Les propriétés <code>id</code> et <code>score</code> de
+            <classname>Zend_Search_Lucene_Search_QueryHit</classname> font toujours référence à
+            l'identifiant interne du document Lucene et au <link
+            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>
+        </sect2>
+    
+        <sect2 id="zend.search.lucene.best-practice.indexing-performance">
+            <title>Performance de l'indexation</title>
+    
+        <para>
+            La performance de l'indexation est un compromis entre les ressources utilisées, le
+            temps d'indexation et la qualité de l'index.
+        </para>
+
+        <para>
+            La qualité de l'index est complètement déterminée par le nombre de segments de
+            l'index.
+        </para>
+
+        <para>
+            Chaque segment d'index et un portion de données entièrement indépendante. Ainsi
+            plus un index contient de segments, plus il sera gourmand en mémoire et en temps de
+            calcul lors de la recherche.
+        </para>
+
+        <para>
+            L'optimisation d'index est un processus consistant à fusionner plusieurs segments
+            en un seul nouveau segment. Un index totalement optimisé ne contient qu'un seul
+            segment.
+        </para>
+
+        <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>
+    
+        <para>
+            L'optimisation d'index fonctionne avec des "data streams" et ne consomme pas pas
+            une grande quantité de mémoire, mais nécessite des ressources de processeur et du
+            temps.
+        </para>
+
+        <para>
+            Par nature, les segments d'index de Lucene ne peuvent pas être mis à jour
+            (l'opération de mise à jour nécessite une réécriture complète du segment). Ainsi,
+            l'ajout de nouveau(x) document(s) à un index implique toujours la génération d'un
+            nouveau segment. De fait, cela dégrade la qualité de l'index.
+        </para>
+
+        <para>
+            Une optimisation automatique d'un index est effectuée après chaque génération de
+            segment et consiste en la fusion des segments partiels.
+        </para>
+
+        <para>
+            Il y a trois options pour contrôler le comportement de l'auto-optimisation (voir
+            la section <link linkend="zend.search.lucene.index-creation.optimization">Optimisation
+            d'index</link>) :<itemizedlist>
+                    <listitem>
+                    <para>
+                        <emphasis>MaxBufferedDocs</emphasis> représente le nombre maximum de
+                        documents qui peuvent être mis en mémoire tampon avant qu'un nouveau segment
+                        soit généré et écrit sur le disque dur.
+                    </para>
                 </listitem>
 
                 <listitem>
-                    <para><emphasis>MaxMergeDocs</emphasis> représente le nombre maximum de
-                    documents qui seront fusionnés dans un nouveau segment lors du processus
-                    d'auto-optimisation.</para>
+                    <para>
+                        <emphasis>MaxMergeDocs</emphasis> représente le nombre maximum de
+                        documents qui seront fusionnés dans un nouveau segment lors du processus
+                        d'auto-optimisation.
+                    </para>
                 </listitem>
 
                 <listitem>
-                    <para><emphasis>MergeFactor</emphasis> détermine à quelle fréquence
-                    l'auto-optimisation est effectuée.</para>
+                    <para>
+                        <emphasis>MergeFactor</emphasis> détermine à quelle fréquence
+                        l'auto-optimisation est effectuée.
+                    </para>
                 </listitem>
             </itemizedlist> <note>
-                <para>Toutes ces options sont des propriétés de la classe
-                <classname>Zend_Search_Lucene</classname>, pas des propriétés d'index. Elles n'affectent que
-                les instances de <classname>Zend_Search_Lucene</classname> et peuvent varier selon les
-                scripts.</para>
-            </note></para>
-
-        <para><emphasis>MaxBufferedDocs</emphasis> n'a aucun effet si vous n'indexez qu'un seul
-        document par exécution de script. En revanche, il est très important pour les indexations
-        massives ("batch indexing"). Plus sa valeur est élevée, meilleures seront les performances
-        d'indexation, mais plus la consommation de mémoire sera importante.</para>
-
-        <para>Il n'existe pas de manière simple de calculer la meilleure valeur pour le paramètre
-        <emphasis>MaxBufferedDocs</emphasis> car cela dépend de la taille moyenne des documents, de
-        l'analyseur utilisé et de la mémoire disponible.</para>
-
-        <para>Une bonne méthode pour trouver une valeur correcte consiste à effectuer plusieurs
-        tests avec les documents les plus volumineux que vous vous attendez à voir figurer dans
-        l'index.<footnote>
-                <para><code>memory_get_usage()</code> et <code>memory_get_peak_usage()</code>
-                peuvent être utilisées pour contrôler l'utilisation de la mémoire.</para>
+                <para>
+                    Toutes ces options sont des propriétés de la classe
+                    <classname>Zend_Search_Lucene</classname>, pas des propriétés d'index. Elles
+                    n'affectent que les instances de <classname>Zend_Search_Lucene</classname> et
+                    peuvent varier selon les scripts.
+                </para>
+                </note>
+            </para>
+
+        <para>
+            <emphasis>MaxBufferedDocs</emphasis> n'a aucun effet si vous n'indexez qu'un seul
+            document par exécution de script. En revanche, il est très important pour les
+            indexations massives ("batch indexing"). Plus sa valeur est élevée, meilleures seront
+            les performances d'indexation, mais plus la consommation de mémoire sera
+            importante.
+        </para>
+
+        <para>
+            Il n'existe pas de manière simple de calculer la meilleure valeur pour le
+            paramètre <emphasis>MaxBufferedDocs</emphasis> car cela dépend de la taille moyenne des
+            documents, de l'analyseur utilisé et de la mémoire disponible.
+        </para>
+
+        <para>
+            Une bonne méthode pour trouver une valeur correcte consiste à effectuer plusieurs
+            tests avec les documents les plus volumineux que vous vous attendez à voir figurer dans
+            l'index.<footnote>
+                <para>
+                    <code>memory_get_usage()</code> et <code>memory_get_peak_usage()</code>
+                    peuvent être utilisées pour contrôler l'utilisation de la mémoire.
+                </para>
             </footnote>. Une bonne pratique consiste à ne pas utiliser plus de la moitié de la
-        mémoire allouée.</para>
-
-        <para><emphasis>MaxMergeDocs</emphasis> limite la taille d'un segment (en termes de nombre
-        de documents). De ce fait, il limite également la durée de l'auto-optimisation en
-        garantissant que la méthode <code>addDocument()</code> ne sera pas exécutée plus d'un
-        certain nombre de fois. C'est très important dans le cadre d'applications
-        interactives.</para>
-
-        <para>Diminuer la valeur du paramètre <emphasis>MaxMergeDocs</emphasis> peut aussi améliorer
-        les performances lors de l'indexation en masse ("batch indexing"). L'auto-optimisation est
-        un processus itératif et utilise une technique ascendante. Les petits segments sont
-        fusionnés vers de plus gros segments qui sont eux-mêmes fusionnés vers des segments encore
-        plus gros, etc. L'optimisation complète est achevée lorsqu'il ne reste qu'un seul gros
-        segment.</para>
-
-        <para>De petits segments détériore généralement la qualité de l'index. Un grand nombre de
-        petits segments peut aussi déclencher l'erreur "Too many open files" déterminée par les
-        limitations du système d'exploitation<footnote>
-                <para><classname>Zend_Search_Lucene</classname> maintient chaque segment ouvert pour améliorer
-                les performances de recherche.</para>
-            </footnote>.</para>
-
-        <para>En général, l'optimisation d'index en arrière-plan devrait être effectuée pour les
-        modes d'indexation interactifs et la valeur de <emphasis>MaxMergeDocs</emphasis> ne devrait
-        pas être trop faible pour les indexations de masse ("batch indexing").</para>
-
-        <para><emphasis>MergeFactor</emphasis> affecte la fréquence d'auto-optimisation. De faibles
-        valeurs augmenteront la qualité des index non-optimisés. Des valeurs plus importantes
-        amélioreront les performances de l'indexation, mais également le nombre de segments
-        fusionnés. Ce qui peut également déclencher l'erreur "Too many open files".</para>
-
-        <para><emphasis>MergeFactor</emphasis> groupe les segments d'index par leur taille :
-        <orderedlist>
-                <listitem>
-                    <para>Pas plus grand que <emphasis>MaxBufferedDocs</emphasis>.</para>
+            mémoire allouée.
+        </para>
+
+        <para>
+            <emphasis>MaxMergeDocs</emphasis> limite la taille d'un segment (en termes de
+            nombre de documents). De ce fait, il limite également la durée de l'auto-optimisation en
+            garantissant que la méthode <code>addDocument()</code> ne sera pas exécutée plus d'un
+            certain nombre de fois. C'est très important dans le cadre d'applications
+            interactives.
+        </para>
+
+        <para>
+            Diminuer la valeur du paramètre <emphasis>MaxMergeDocs</emphasis> peut aussi
+            améliorer les performances lors de l'indexation en masse ("batch indexing").
+            L'auto-optimisation est un processus itératif et utilise une technique ascendante. Les
+            petits segments sont fusionnés vers de plus gros segments qui sont eux-mêmes fusionnés
+            vers des segments encore plus gros, etc. L'optimisation complète est achevée lorsqu'il
+            ne reste qu'un seul gros segment.
+        </para>
+
+        <para>
+            De petits segments détériore généralement la qualité de l'index. Un grand nombre
+            de petits segments peut aussi déclencher l'erreur "Too many open files" déterminée par
+            les limitations du système d'exploitation<footnote>
+                <para>
+                    <classname>Zend_Search_Lucene</classname> maintient chaque segment ouvert
+                    pour améliorer les performances de recherche.
+                </para>
+                </footnote>.
+            </para>
+
+        <para>
+            En général, l'optimisation d'index en arrière-plan devrait être effectuée pour les
+            modes d'indexation interactifs et la valeur de <emphasis>MaxMergeDocs</emphasis> ne
+            devrait pas être trop faible pour les indexations de masse ("batch indexing").
+        </para>
+
+        <para>
+            <emphasis>MergeFactor</emphasis> affecte la fréquence d'auto-optimisation. De
+            faibles valeurs augmenteront la qualité des index non-optimisés. Des valeurs plus
+            importantes amélioreront les performances de l'indexation, mais également le nombre de
+            segments fusionnés. Ce qui peut également déclencher l'erreur "Too many open
+            files".
+        </para>
+
+        <para>
+            <emphasis>MergeFactor</emphasis> groupe les segments d'index par leur taille :
+            <orderedlist>
+                    <listitem>
+                        <para>Pas plus grand que <emphasis>MaxBufferedDocs</emphasis>.</para>
+                    </listitem>
+    
+                    <listitem>
+                    <para>
+                        Plus grand que <emphasis>MaxBufferedDocs</emphasis>, mais pas plus
+                        grand que
+                        <emphasis>MaxBufferedDocs</emphasis>*<emphasis>MergeFactor</emphasis>.
+                    </para>
                 </listitem>
 
                 <listitem>
-                    <para>Plus grand que <emphasis>MaxBufferedDocs</emphasis>, mais pas plus grand
-                    que
-                    <emphasis>MaxBufferedDocs</emphasis>*<emphasis>MergeFactor</emphasis>.</para>
-                </listitem>
-
-                <listitem>
-                    <para>Plus grand que
-                    <emphasis>MaxBufferedDocs</emphasis>*<emphasis>MergeFactor</emphasis>, mais pas
-                    plus grand que
-                    <emphasis>MaxBufferedDocs</emphasis>*<emphasis>MergeFactor</emphasis>*<emphasis>MergeFactor</emphasis>.</para>
+                    <para>
+                        Plus grand que
+                        <emphasis>MaxBufferedDocs</emphasis>*<emphasis>MergeFactor</emphasis>, mais
+                        pas plus grand que
+                        <emphasis>MaxBufferedDocs</emphasis>*<emphasis>MergeFactor</emphasis>*<emphasis>MergeFactor</emphasis>.
+                    </para>
                 </listitem>
 
                 <listitem>
                     <para>...</para>
                 </listitem>
-            </orderedlist></para>
-
-        <para><classname>Zend_Search_Lucene</classname> vérifie à chaque appel de <code>addDocument()</code>
-        si la fusion de n'importe quel segment pour déplacer le segment nouvellement créé dans le
-        groupe suivant. Si c'est le cas, la fusion est effectuée.</para>
-
-        <para>Ainsi, un index avec N groupes peut contenir <emphasis>MaxBufferedDocs</emphasis> +
-        (N-1)*<emphasis>MergeFactor</emphasis> segments et contient au moins
-        <emphasis>MaxBufferedDocs</emphasis>*<emphasis>MergeFactor</emphasis><superscript>(N-1)</superscript>
-        documents.</para>
-
-        <para>La formule ci-dessous donne une bonne approximation du nombre de segments dans un
-        index :</para>
-
-        <para><emphasis>Nombre de segments</emphasis> &lt;= <emphasis>MaxBufferedDocs</emphasis> +
-        <emphasis>MergeFactor</emphasis>*log <subscript><emphasis>MergeFactor</emphasis></subscript>
-        (<emphasis>Nombre de documents</emphasis>/<emphasis>MaxBufferedDocs</emphasis>)</para>
-
-        <para><emphasis>MaxBufferedDocs</emphasis> est déterminé par la mémoire allouée. Cela permet
-        pour le facteur de fusion (MergeFactor) approprié d'avoir un nombre raisonnable de
-        segments.</para>
-
-        <para>L'optimisation du paramètre <emphasis>MergeFactor</emphasis> est plus efficace pour
-        les performances de l'indexation de masse (batch indexing) que
-        <emphasis>MaxMergeDocs</emphasis>. Mais cette méthode manque un peu de finesse. Le mieux est
-        d'utiliser l'estimation ci-dessus pour optimiser <emphasis>MergeFactor</emphasis>, puis de
-        jouer avec <emphasis>MaxMergeDocs</emphasis> pour obtenir les meilleures performances
-        d'indexation de masse (batch indexing).</para>
+                </orderedlist>
+            </para>
+
+        <para>
+            <classname>Zend_Search_Lucene</classname> vérifie à chaque appel de
+            <code>addDocument()</code> si la fusion de n'importe quel segment pour déplacer le
+            segment nouvellement créé dans le groupe suivant. Si c'est le cas, la fusion est
+            effectuée.
+        </para>
+
+        <para>
+            Ainsi, un index avec N groupes peut contenir <emphasis>MaxBufferedDocs</emphasis>
+            + (N-1)*<emphasis>MergeFactor</emphasis> segments et contient au moins
+            <emphasis>MaxBufferedDocs</emphasis>*<emphasis>MergeFactor</emphasis><superscript>(N-1)</superscript>
+            documents.
+        </para>
+
+        <para>
+            La formule ci-dessous donne une bonne approximation du nombre de segments dans un
+            index :
+        </para>
+
+        <para>
+            <emphasis>Nombre de segments</emphasis> &lt;= <emphasis>MaxBufferedDocs</emphasis>
+            + <emphasis>MergeFactor</emphasis>*log
+            <subscript><emphasis>MergeFactor</emphasis></subscript> (<emphasis>Nombre de
+            documents</emphasis>/<emphasis>MaxBufferedDocs</emphasis>)
+        </para>
+
+        <para>
+            <emphasis>MaxBufferedDocs</emphasis> est déterminé par la mémoire allouée. Cela
+            permet pour le facteur de fusion (MergeFactor) approprié d'avoir un nombre raisonnable
+            de segments.
+        </para>
+
+        <para>
+            L'optimisation du paramètre <emphasis>MergeFactor</emphasis> est plus efficace
+            pour les performances de l'indexation de masse (batch indexing) que
+            <emphasis>MaxMergeDocs</emphasis>. Mais cette méthode manque un peu de finesse. Le mieux
+            est d'utiliser l'estimation ci-dessus pour optimiser <emphasis>MergeFactor</emphasis>,
+            puis de jouer avec <emphasis>MaxMergeDocs</emphasis> pour obtenir les meilleures
+            performances d'indexation de masse (batch indexing).
+        </para>
     </sect2>
 
     <sect2 id="zend.search.lucene.best-practice.shutting-down">
         <title>Indexation à l'arrêt du programme</title>
 
-        <para>L'instance de <classname>Zend_Search_Lucene</classname> effectue quelques tâches à la sortie du
-        programme si des documents ont été ajoutés à l'index mais pas écrits dans un nouveau
-        segment.</para>
+        <para>
+            L'instance de <classname>Zend_Search_Lucene</classname> effectue quelques tâches à
+            la sortie du programme si des documents ont été ajoutés à l'index mais pas écrits dans
+            un nouveau segment.
+        </para>
 
         <para>Elle peut également déclencher le processus d'auto-optimisation.</para>
 
-        <para>L'objet qui représente l'index est automatiquement fermé lorsque lui, ainsi que tous
-        les objets de résultats de requête qui lui sont associés, sont hors de portée du script
-        principal.</para>
-
-        <para>Si l'objet d'index est stocké dans une variable globale, il ne sera fermé qu'à la fin
-        de l'exécution du script<footnote>
-                <para>Cela peut aussi se produire s'il y a une référence à l'index ou à l'un de ses
-                résultats de recherche dans une structure de données cyclique, car le
-                ramasse-miettes de PHP ne récupère les objets avec des références cycliques qu'en
-                fin d'exécution de script</para>
-            </footnote>.</para>
+        <para>
+            L'objet qui représente l'index est automatiquement fermé lorsque lui, ainsi que
+            tous les objets de résultats de requête qui lui sont associés, sont hors de portée du
+            script principal.
+        </para>
+
+        <para>
+            Si l'objet d'index est stocké dans une variable globale, il ne sera fermé qu'à la
+            fin de l'exécution du script<footnote>
+                <para>
+                    Cela peut aussi se produire s'il y a une référence à l'index ou à l'un de
+                    ses résultats de recherche dans une structure de données cyclique, car le
+                    ramasse-miettes de PHP ne récupère les objets avec des références cycliques
+                    qu'en fin d'exécution de script
+                </para>
+                </footnote>.
+            </para>
 
         <para>Le processus d'exception de PHP est également fermé à ce moment.</para>
 
-        <para>Cela n'empêche pas la fermeture normale du processus de l'index, mais cela peut
-        empêcher un diagnostic d'erreur précis si une erreur survient durant la fermeture.</para>
+        <para>
+            Cela n'empêche pas la fermeture normale du processus de l'index, mais cela peut
+            empêcher un diagnostic d'erreur précis si une erreur survient durant la
+            fermeture.
+        </para>
 
         <para>Il y a deux moyens qui peuvent permettre d'éviter ce problème.</para>
 
-        <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>
-
-        <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
-        linkend="zend.search.lucene.advanced.static">Avancé - Utiliser les propriétés statiques de
-        l'index</link>".</para>
+        <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>
+    
+        <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
+            linkend="zend.search.lucene.advanced.static">Avancé - Utiliser les propriétés statiques
+            de l'index</link>".
+        </para>
     </sect2>
 
     <sect2 id="zend.search.lucene.best-practice.unique-id">
         <title>Récupération de documents par leur id unique</title>
 
-        <para>C'est une pratique commune de stocker un identifiant unique de document dans l'index.
-        Par exemple, une url, un chemin ou un identifiant tiré d'une base de données.</para>
-
-        <para><classname>Zend_Search_Lucene</classname> fournit une méthode <code>termDocs()</code> pour
-        récupérer des documents contenant les termes spécifiés.</para>
-
-        <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 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;
+        <para>
+            C'est une pratique commune de stocker un identifiant unique de document dans
+            l'index. Par exemple, une url, un chemin ou un identifiant tiré d'une base de
+            données.
+        </para>
+
+        <para>
+            <classname>Zend_Search_Lucene</classname> fournit une méthode
+            <code>termDocs()</code> pour récupérer des documents contenant les termes
+            spécifiés.
+        </para>
+
+        <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 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;
+    
+    // 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;
+        ...
+    }
+    
     ...
-}
-]]></programlisting></para>
-    </sect2>
-
-    <sect2 id="zend.search.lucene.best-practice.memory-usage">
-        <title>Utilisation de la mémoire</title>
-
-        <para><classname>Zend_Search_Lucene</classname> est un module relativement gourmand en mémoire.</para>
-
-        <para>Il utilise la mémoire pour mettre en cache certaines informations et optimiser la
-        recherche, ainsi que les performances de l'indexation.</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">
+            <title>Utilisation de la mémoire</title>
+    
+        <para>
+            <classname>Zend_Search_Lucene</classname> est un module relativement gourmand en
+            mémoire.
+        </para>
+
+        <para>
+            Il utilise la mémoire pour mettre en cache certaines informations et optimiser la
+            recherche, ainsi que les performances de l'indexation.
+        </para>
 
         <para>La mémoire requise diffère selon les modes.</para>
 
-        <para>L'index du dictionnaire des termes est chargé durant la recherche. Il s'agit de chaque
-        128<superscript>ème</superscript><footnote>
-                <para>Le format de fichier Lucene permet de configurer ce nombre, mais
-                <classname>Zend_Search_Lucene</classname> n'expose pas cette possibilité dans l'API. Cependant
-                vous pouvez toujours configurer ce nombre si l'index est géré par une autre
-                implémentation de Lucene.</para>
-            </footnote> terme du dictionnaire complet.</para>
-
-        <para>De fait, la consommation de mémoire augmente si vous avez un grand nombre de termes
-        uniques. Cela peut arriver si vous utilisez des phrases non "tokenizées" comme champ de
-        recherche ou que vous indexez un large volume d'informations non-textuelles.</para>
-
-        <para>Un index non-optimisé consiste en plusieurs segments. Cela augmente également
-        l'utilisation de mémoire. Les segments étant indépendants, chacun possède son propre
-        dictionnaire de termes et index de dictionnaire de termes. Si un index consiste en
-        <emphasis>N</emphasis> segments, il risque, dans le pire des cas, de multiplier par
-        <emphasis>N</emphasis> la consommation de mémoire. Lancez l'optimisation de l'index en
-        fusionnant tous les segments afin d'éviter de telles consommations de mémoire.</para>
-
-        <para>L'indexation utilise la même quantité de mémoire que la recherche, plus de la mémoire
-        pour mettre les documents en tampon. La quantité de mémoire peut être gérée par le paramètre
-        <emphasis>MaxBufferedDocs</emphasis>.</para>
-
-        <para>L'optimisation d'index (complète ou partielle) utilise un processus de type flux
-        ("streaming") et ne requiert pas une grosse quantité de mémoire.</para>
+        <para>
+            L'index du dictionnaire des termes est chargé durant la recherche. Il s'agit de
+            chaque 128<superscript>ème</superscript><footnote>
+                <para>
+                    Le format de fichier Lucene permet de configurer ce nombre, mais
+                    <classname>Zend_Search_Lucene</classname> n'expose pas cette possibilité dans
+                    l'API. Cependant vous pouvez toujours configurer ce nombre si l'index est géré
+                    par une autre implémentation de Lucene.
+                </para>
+                </footnote> terme du dictionnaire complet.
+            </para>
+
+        <para>
+            De fait, la consommation de mémoire augmente si vous avez un grand nombre de
+            termes uniques. Cela peut arriver si vous utilisez des phrases non "tokenizées" comme
+            champ de recherche ou que vous indexez un large volume d'informations
+            non-textuelles.
+        </para>
+
+        <para>
+            Un index non-optimisé consiste en plusieurs segments. Cela augmente également
+            l'utilisation de mémoire. Les segments étant indépendants, chacun possède son propre
+            dictionnaire de termes et index de dictionnaire de termes. Si un index consiste en
+            <emphasis>N</emphasis> segments, il risque, dans le pire des cas, de multiplier par
+            <emphasis>N</emphasis> la consommation de mémoire. Lancez l'optimisation de l'index en
+            fusionnant tous les segments afin d'éviter de telles consommations de mémoire.
+        </para>
+
+        <para>
+            L'indexation utilise la même quantité de mémoire que la recherche, plus de la
+            mémoire pour mettre les documents en tampon. La quantité de mémoire peut être gérée par
+            le paramètre <emphasis>MaxBufferedDocs</emphasis>.
+        </para>
+
+        <para>
+            L'optimisation d'index (complète ou partielle) utilise un processus de type flux
+            ("streaming") et ne requiert pas une grosse quantité de mémoire.
+        </para>
     </sect2>
 
     <sect2 id="zend.search.lucene.best-practice.encoding">
         <title>Encodage</title>
 
-        <para><classname>Zend_Search_Lucene</classname> travaille avec des chaînes en UTF-8 en interne. Ainsi
-        toutes les chaînes de caractères retournée par <classname>Zend_Search_Lucene</classname> sont encodées
-        en UTF-8.</para>
-
-        <para>Vous ne devriez pas être concernés par l'encodage si vous travaillez avec des chaîne
-        purement ASCII, mais vous devez être prudent si ce n'est pas le cas.</para>
-
-        <para>Un mauvais encodage peut causer des notices (erreur) durant la conversation
-        d'encodage, voire la perte de données.</para>
-
-        <para><classname>Zend_Search_Lucene</classname> offre un large éventail de possibilités d'encodage
-        pour les documents indexés et les requêtes analysées.</para>
-
-        <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
-        utilisés.</para>
-
-        <para>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>
-
-        <para>La même approche est utilisée pour définir l'encodage des chaînes de requête.</para>
-
-        <para>Si l'encodage n'est pas spécifié, la locale courante est utilisée pour le
-        déterminer.</para>
-
-        <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>
-
-        <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);
-...
-]]></programlisting>Une chaîne vide sous-entend "locale courante".</para>
-
-        <para>Si l'encodage correct est spécifié, il pourra être correctement interprété par
-        l'analyseur. Le comportement dépend de quel analyseur est utilisé. Consultez la section sur
-        les <link linkend="zend.search.lucene.charset">Jeu de caractères</link> pour plus de
-        détails.</para>
+        <para>
+            <classname>Zend_Search_Lucene</classname> travaille avec des chaînes en UTF-8 en
+            interne. Ainsi toutes les chaînes de caractères retournée par
+            <classname>Zend_Search_Lucene</classname> sont encodées en UTF-8.
+        </para>
+
+        <para>
+            Vous ne devriez pas être concernés par l'encodage si vous travaillez avec des
+            chaîne purement ASCII, mais vous devez être prudent si ce n'est pas le cas.
+        </para>
+
+        <para>
+            Un mauvais encodage peut causer des notices (erreur) durant la conversation
+            d'encodage, voire la perte de données.
+        </para>
+
+        <para>
+            <classname>Zend_Search_Lucene</classname> offre un large éventail de possibilités
+            d'encodage pour les documents indexés et les requêtes analysées.
+        </para>
+
+        <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
+            utilisés.
+        </para>
+
+        <para>
+            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>
+    
+        <para>
+            La même approche est utilisée pour définir l'encodage des chaînes de
+            requête.
+        </para>
+
+        <para>
+            Si l'encodage n'est pas spécifié, la locale courante est utilisée pour le
+            déterminer.
+        </para>
+
+        <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>
+    
+        <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>
+
+        <para>
+            Si l'encodage correct est spécifié, il pourra être correctement interprété par
+            l'analyseur. Le comportement dépend de quel analyseur est utilisé. Consultez la section
+            sur les <link linkend="zend.search.lucene.charset">Jeu de caractères</link> pour plus de
+            détails.
+        </para>
     </sect2>
 
     <sect2 id="zend.search.lucene.best-practice.maintenance">
         <title>Maintenance de l'index</title>
 
-        <para>Il devrait être clair que <classname>Zend_Search_Lucene</classname> comme toute autre
-        implémentation de Lucene ne comporte pas de "base de données".</para>
-
-        <para>Les index ne devrait pas être utilisés pour du stockage de données. Ils ne fournissent
-        pas de fonctionnalités de backup/restauration partiel, journalisation, logs, transactions et
-        beaucoup d'autres fonctionnalités assimilées aux systèmes de gestion de bases de
-        données.</para>
-
-        <para>Cependant, <classname>Zend_Search_Lucene</classname> tente de garder ses index dans un état
-        constant en tout temps.</para>
-
-        <para>Le backup et la restauration d'un index devrait être effectué en copiant le contenu du
-        répertoire de l'index.</para>
-
-        <para>Si pour une raison quelconque, un index devait être corrompu, il devrait être restauré
-        ou complètement reconstruit.</para>
-
-        <para>C'est donc une bonne idée de faire des backups des gros index et de stocker les logs
-        de modifications pour pouvoir effectuer des restaurations manuelles et des opérations de
-        "roll-forward" si nécessaire. Cette pratique réduit considérablement le temps de
-        restauration.</para>
+        <para>
+            Il devrait être clair que <classname>Zend_Search_Lucene</classname> comme toute
+            autre implémentation de Lucene ne comporte pas de "base de données".
+        </para>
+
+        <para>
+            Les index ne devrait pas être utilisés pour du stockage de données. Ils ne
+            fournissent pas de fonctionnalités de backup/restauration partiel, journalisation, logs,
+            transactions et beaucoup d'autres fonctionnalités assimilées aux systèmes de gestion de
+            bases de données.
+        </para>
+
+        <para>
+            Cependant, <classname>Zend_Search_Lucene</classname> tente de garder ses index
+            dans un état constant en tout temps.
+        </para>
+
+        <para>
+            Le backup et la restauration d'un index devrait être effectué en copiant le
+            contenu du répertoire de l'index.
+        </para>
+
+        <para>
+            Si pour une raison quelconque, un index devait être corrompu, il devrait être
+            restauré ou complètement reconstruit.
+        </para>
+
+        <para>
+            C'est donc une bonne idée de faire des backups des gros index et de stocker les
+            logs de modifications pour pouvoir effectuer des restaurations manuelles et des
+            opérations de "roll-forward" si nécessaire. Cette pratique réduit considérablement le
+            temps de restauration.
+        </para>
     </sect2>
 </sect1>

+ 145 - 104
documentation/manual/fr/module_specs/Zend_Search_Lucene-Charset.xml

@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13831 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15157 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.search.lucene.charset">
     <title>Jeu de caractères</title>
@@ -7,122 +7,163 @@
     <sect2 id="zend.search.lucene.charset.description">
         <title>Support UTF-8 et caractères sur un octet</title>
 
-        <para><classname>Zend_Search_Lucene</classname> utilise l'UTF-8 en interne. Les fichiers d'index stockent des données
-        Unicode dans le "format UTF-8 modifié" de Java. <classname>Zend_Search_Lucene</classname> supporte totalement ce format, à
-        une exception près. <footnote>
-                <para>Zend_Search_Lucene supporte seulement les caractères Basic Multilingual Plane (BMP) (de 0x0000 à
-                0xFFFF) et ne supporte pas les "caractères supplémentaires" (caractères dont les codes sont supérieurs à
-                0xFFFF).</para>
-
-                <para>Java 2 représente ces caractères comme une paire de char (16-bit), le premier depuis l'échelle
-                haute (0xD800-0xDBFF), le second pour l'échelle basse (0xDC00-0xDFFF). Ils sont alors encodés comme des
-                caractères UTF-8 standards sur six octets. La représentation UTF-8 standard utilise elle 4 octets pour
-                les caractères supplémentaires.</para>
-            </footnote></para>
-
-        <para>L'encodage des caractères d'entrée peut être spécifié grâce à l'API de <classname>Zend_Search_Lucene</classname>.
-        Les données seront converties automatiquement en UTF-8.</para>
+        <para>
+            <classname>Zend_Search_Lucene</classname> utilise l'UTF-8 en interne. Les fichiers
+            d'index stockent des données Unicode dans le "format UTF-8 modifié" de Java.
+            <classname>Zend_Search_Lucene</classname> supporte totalement ce format, à une exception
+            près. <footnote>
+                <para>
+                    Zend_Search_Lucene supporte seulement les caractères Basic Multilingual
+                    Plane (BMP) (de 0x0000 à 0xFFFF) et ne supporte pas les "caractères
+                    supplémentaires" (caractères dont les codes sont supérieurs à 0xFFFF).
+                </para>
+
+                <para>
+                    Java 2 représente ces caractères comme une paire de char (16-bit), le
+                    premier depuis l'échelle haute (0xD800-0xDBFF), le second pour l'échelle basse
+                    (0xDC00-0xDFFF). Ils sont alors encodés comme des caractères UTF-8 standards sur
+                    six octets. La représentation UTF-8 standard utilise elle 4 octets pour les
+                    caractères supplémentaires.
+                </para>
+                </footnote>
+            </para>
+
+        <para>
+            L'encodage des caractères d'entrée peut être spécifié grâce à l'API de
+            <classname>Zend_Search_Lucene</classname>. Les données seront converties automatiquement
+            en UTF-8.
+        </para>
     </sect2>
 
     <sect2 id="zend.search.lucene.charset.default_analyzer">
         <title>Analyseur de texte par défaut</title>
 
-        <para>Cependant, l'analyseur de texte par défaut (aussi utilisé par l'analyseur de requête) utilise
-        <code>ctype_alpha()</code>.</para>
-
-        <para><code>ctype_alpha()</code> n'est pas compatible UTF-8, donc l'analyseur convertit le texte vers
-        "ASCII//TRANSLIT" avant l'indexation. Le même processus est utilisé de manière transparente lors du requêtage.
-        <footnote>
-                <para>La conversion vers 'ASCII//TRANSLIT' peut dépendre de la locale courante ou de l'OS.</para>
-            </footnote></para>
+        <para>
+            Cependant, l'analyseur de texte par défaut (aussi utilisé par l'analyseur de
+            requête) utilise <code>ctype_alpha()</code>.
+        </para>
+
+        <para>
+            <code>ctype_alpha()</code> n'est pas compatible UTF-8, donc l'analyseur convertit
+            le texte vers "ASCII//TRANSLIT" avant l'indexation. Le même processus est utilisé de
+            manière transparente lors du requêtage. <footnote>
+                <para>
+                    La conversion vers 'ASCII//TRANSLIT' peut dépendre de la locale courante
+                    ou de l'OS.
+                </para>
+                </footnote>
+            </para>
 
         <note>
-            <title/>
-            <para>L'analyseur par défaut isole les chiffres. Utilisez le parseur "Num" si vous voulez que les chiffres
-            soient considérés comme des mots.</para>
+            <title></title>
+
+            <para>
+                L'analyseur par défaut isole les chiffres. Utilisez le parseur "Num" si vous
+                voulez que les chiffres soient considérés comme des mots.
+            </para>
         </note>
     </sect2>
 
     <sect2 id="zend.search.lucene.charset.utf_analyzer">
         <title>Analyseurs de texte compatibles UTF-8</title>
 
-        <para><classname>Zend_Search_Lucene</classname> contient aussi des analyseurs compatibles UTF-8 :
-        <classname>Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8</classname>,
-        <classname>Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num</classname>,
-        <classname>Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive</classname>,
-        <classname>Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive</classname>.</para>
-
-        <para>N'importe quel analyseur peut être activé avec un code comme celui-ci: <programlisting
-        role="php"><![CDATA[
-Zend_Search_Lucene_Analysis_Analyzer::setDefault(
-    new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8());
-            ]]></programlisting></para>
+        <para>
+            <classname>Zend_Search_Lucene</classname> contient aussi des analyseurs
+            compatibles UTF-8 :
+            <classname>Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8</classname>,
+            <classname>Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num</classname>,
+            <classname>Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive</classname>,
+            <classname>Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive</classname>.
+        </para>
+
+        <para>
+            N'importe quel analyseur peut être activé avec un code comme celui-ci:
+            <programlisting role="php"><![CDATA[
+    Zend_Search_Lucene_Analysis_Analyzer::setDefault(
+        new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8());
+                ]]></programlisting>
+            </para>
 
         <warning>
-            <title/>
-            <para>Les analyseurs UTF-8 ont été améliorés dans Zend Framework 1.5. Les anciennes versions considéraient les
-            caractères non-ASCII comme des lettres. Les nouveaux analyseurs sont quant à eux plus précis sur ce
-            point.</para>
-
-            <para>Ceci pourrait vous obliger à reconstruire votre index afin que vos données et vos requêtes de
-            recherche soient au même format. Des résultats faux peuvent apparaître sinon.</para>
+            <title></title>
+
+            <para>
+                Les analyseurs UTF-8 ont été améliorés dans Zend Framework 1.5. Les anciennes
+                versions considéraient les caractères non-ASCII comme des lettres. Les nouveaux
+                analyseurs sont quant à eux plus précis sur ce point.
+            </para>
+
+            <para>
+                Ceci pourrait vous obliger à reconstruire votre index afin que vos données et
+                vos requêtes de recherche soient au même format. Des résultats faux peuvent
+                apparaître sinon.
+            </para>
         </warning>
 
-        <para>Tous ces analyseurs nécessitent que la libraire PCRE (Perl-compatible regular expressions) soit compilée
-        avec le support d'UTF-8. Ce support d'UTF-8 pour PCRE est activé par défaut dans les sources des libraires PCRE
-        livrées avec PHP, mais si vous avez utilisé des librairies partagées pour la compilation de PHP, alors le
-        support d'UTF-8 peut dépendre de l'OS.</para>
-
-        <para>Utilisez ce code pour vérifier si le support d'UTF-8 est assuré pour PCRE : <programlisting
-        role="php"><![CDATA[
-if (@preg_match('/\pL/u', 'a') == 1) {
-    echo "support UTF-8 pour PCRE activé.\n";
-} else {
-    echo "support UTF-8 pour PCRE désactivé.\n";
-}
-]]></programlisting></para>
-
-        <para>Les analyseurs UTF-8 insensibles à la casse ont aussi besoin de l'extension <ulink
-        url="http://www.php.net/manual/en/ref.mbstring.php">mbstring</ulink> pour être activés.</para>
-
-        <para>Si vous voulez les analyseurs UTF-8 insensibles à la casse, mais que vous n'avez pas mbstring, normalisez
-        alors vos données avant de les indexer ainsi que vos requêtes avant vos recherches, ceci en les tranformant en
-        casse minuscule : <programlisting role="php"><![CDATA[
-// Indexation
-setlocale(LC_CTYPE, 'de_DE.iso-8859-1');
-
-...
-
-Zend_Search_Lucene_Analysis_Analyzer::setDefault(
-    new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8());
-
-...
-
-$doc = new Zend_Search_Lucene_Document();
-
-$doc->addField(Zend_Search_Lucene_Field::UnStored(
-                    'contents', strtolower($contents))
-              );
-
-// champ titre (indexed, unstored)
-$doc->addField(Zend_Search_Lucene_Field::UnStored(
-                    'title', strtolower($title))
-              );
-
-// champ titre (unindexed, stored)
-$doc->addField(Zend_Search_Lucene_Field::UnIndexed('_title', $title));
-            ]]></programlisting> <programlisting role="php"><![CDATA[
-// Recherche
-setlocale(LC_CTYPE, 'de_DE.iso-8859-1');
-
-...
-
-Zend_Search_Lucene_Analysis_Analyzer::setDefault(
-    new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8());
-
-...
-
-$hits = $index->find(strtolower($query));
-]]></programlisting></para>
-    </sect2>
-</sect1>
+        <para>
+            Tous ces analyseurs nécessitent que la libraire PCRE (Perl-compatible regular
+            expressions) soit compilée avec le support d'UTF-8. Ce support d'UTF-8 pour PCRE est
+            activé par défaut dans les sources des libraires PCRE livrées avec PHP, mais si vous
+            avez utilisé des librairies partagées pour la compilation de PHP, alors le support
+            d'UTF-8 peut dépendre de l'OS.
+        </para>
+
+        <para>
+            Utilisez ce code pour vérifier si le support d'UTF-8 est assuré pour PCRE :
+            <programlisting role="php"><![CDATA[
+    if (@preg_match('/\pL/u', 'a') == 1) {
+        echo "support UTF-8 pour PCRE activé.\n";
+    } else {
+        echo "support UTF-8 pour PCRE désactivé.\n";
+    }
+    ]]></programlisting></para>
+    
+        <para>
+            Les analyseurs UTF-8 insensibles à la casse ont aussi besoin de l'extension <ulink
+            url="http://www.php.net/manual/en/ref.mbstring.php">mbstring</ulink> pour être
+            activés.
+        </para>
+
+        <para>
+            Si vous voulez les analyseurs UTF-8 insensibles à la casse, mais que vous n'avez
+            pas mbstring, normalisez alors vos données avant de les indexer ainsi que vos requêtes
+            avant vos recherches, ceci en les tranformant en casse minuscule : <programlisting
+            role="php"><![CDATA[
+    // Indexation
+    setlocale(LC_CTYPE, 'de_DE.iso-8859-1');
+    
+    ...
+    
+    Zend_Search_Lucene_Analysis_Analyzer::setDefault(
+        new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8());
+    
+    ...
+    
+    $doc = new Zend_Search_Lucene_Document();
+    
+    $doc->addField(Zend_Search_Lucene_Field::UnStored(
+                        'contents', strtolower($contents))
+                  );
+    
+    // champ titre (indexed, unstored)
+    $doc->addField(Zend_Search_Lucene_Field::UnStored(
+                        'title', strtolower($title))
+                  );
+    
+    // champ titre (unindexed, stored)
+    $doc->addField(Zend_Search_Lucene_Field::UnIndexed('_title', $title));
+                ]]></programlisting> <programlisting role="php"><![CDATA[
+    // Recherche
+    setlocale(LC_CTYPE, 'de_DE.iso-8859-1');
+    
+    ...
+    
+    Zend_Search_Lucene_Analysis_Analyzer::setDefault(
+        new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8());
+    
+    ...
+    
+    $hits = $index->find(strtolower($query));
+    ]]></programlisting></para>
+        </sect2>
+    </sect1>

+ 192 - 100
documentation/manual/fr/module_specs/Zend_Search_Lucene-IndexCreation.xml

@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13910 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15341 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.search.lucene.index-creation">
     <title>Créer des index</title>
@@ -7,12 +7,17 @@
     <sect2 id="zend.search.lucene.index-creation.creating">
         <title>Créer un nouvel index</title>
 
-        <para>La création et la mise à jour des index sont implémentées dans le composant
-        <classname>Zend_Search_Lucene</classname>, ainsi que dans le projet Java Lucene. Vous pouvez utiliser l'une ou l'autre de
-        ces options pour créer des index dans lesquels <classname>Zend_Search_Lucene</classname> pourra chercher.</para>
+        <para>
+            La création et la mise à jour des index sont implémentées dans le composant
+            <classname>Zend_Search_Lucene</classname>, ainsi que dans le projet Java Lucene. Vous
+            pouvez utiliser l'une ou l'autre de ces options pour créer des index dans lesquels
+            <classname>Zend_Search_Lucene</classname> pourra chercher.
+        </para>
 
-        <para>Le listing ci-dessous donne un exemple d'indexation d'un fichier en utilisant l'API d'indexation de
-        <classname>Zend_Search_Lucene</classname> :</para>
+        <para>
+            Le listing ci-dessous donne un exemple d'indexation d'un fichier en utilisant
+            l'API d'indexation de <classname>Zend_Search_Lucene</classname> :
+        </para>
 
         <programlisting role="php"><![CDATA[
 // Création de l'index
@@ -30,14 +35,19 @@ $doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $docContent));
 $index->addDocument($doc);
 ]]></programlisting>
 
-        <para>Les documents nouvellement ajoutés sont immédiatement recherchables dans l'index.</para>
+        <para>
+            Les documents nouvellement ajoutés sont immédiatement recherchables dans
+            l'index.
+        </para>
     </sect2>
 
     <sect2 id="zend.search.lucene.index-creation.updating">
         <title>Mettre à jour un index</title>
 
-        <para>La même procédure est utilisée pour mettre à jour un index existant. La seule différence est l'appel de la
-        méthode open() à la place de <code>create()</code>.</para>
+        <para>
+            La même procédure est utilisée pour mettre à jour un index existant. La seule
+            différence est l'appel de la méthode open() à la place de <code>create()</code>.
+        </para>
 
         <programlisting role="php"><![CDATA[
 // Ouverture d'un index existant
@@ -58,11 +68,17 @@ $index->addDocument($doc);
     <sect2 id="zend.search.lucene.index-creation.document-updating">
         <title>Mise à jour de Documents</title>
 
-        <para>Le format de fichier d'un index Lucene ne permet pas la mise à jour d'un document. Les documents doivent
-        être supprimés puis réinsérés dans l'index afin d'être mis à jour efficacement.</para>
+        <para>
+            Le format de fichier d'un index Lucene ne permet pas la mise à jour d'un document.
+            Les documents doivent être supprimés puis réinsérés dans l'index afin d'être mis à jour
+            efficacement.
+        </para>
 
-        <para>La méthode <classname>Zend_Search_Lucene::delete()</classname> utilise un identifiant interne de document. Cet
-        identifiant peut être récupéré dans une requête en demandant la propriété 'id' :</para>
+        <para>
+            La méthode <classname>Zend_Search_Lucene::delete()</classname> utilise un
+            identifiant interne de document. Cet identifiant peut être récupéré dans une requête en
+            demandant la propriété 'id' :
+        </para>
 
         <programlisting role="php"><![CDATA[
 $removePath = ...;
@@ -76,22 +92,32 @@ foreach ($hits as $hit) {
     <sect2 id="zend.search.lucene.index-creation.counting">
         <title>Récupération de la taille de l'index</title>
 
-        <para>Il existe deux méthodes pour récupérer la taille d'un index dans <classname>Zend_Search_Lucene</classname>.</para>
+        <para>
+            Il existe deux méthodes pour récupérer la taille d'un index dans
+            <classname>Zend_Search_Lucene</classname>.
+        </para>
 
-        <para>La méthode <classname>Zend_Search_Lucene::maxDoc()</classname> retourne un de plus que le plus grand nombre possible
-        de documents. Il s'agit en fait du nombre total de documents dans l'index, y compris les documents supprimés.
-        Cette méthode a une méthode synonyme : <classname>Zend_Search_Lucene::count()</classname>.</para>
+        <para>
+            La méthode <classname>Zend_Search_Lucene::maxDoc()</classname> retourne un de plus
+            que le plus grand nombre possible de documents. Il s'agit en fait du nombre total de
+            documents dans l'index, y compris les documents supprimés. Cette méthode a une méthode
+            synonyme : <classname>Zend_Search_Lucene::count()</classname>.
+        </para>
 
-        <para>La méthode <classname>Zend_Search_Lucene::numDocs()</classname> retourne le nombre total de documents non
-        supprimés.</para>
+        <para>
+            La méthode <classname>Zend_Search_Lucene::numDocs()</classname> retourne le nombre
+            total de documents non supprimés.
+        </para>
 
         <programlisting role="php"><![CDATA[
 $indexSize = $index->count();
 $documents = $index->numDocs();
 ]]></programlisting>
 
-        <para>La méthode <classname>Zend_Search_Lucene::isDeleted($id)</classname> peut être utilisée pour vérifier si un document
-        a été supprimé.</para>
+        <para>
+            La méthode <classname>Zend_Search_Lucene::isDeleted($id)</classname> peut être
+            utilisée pour vérifier si un document a été supprimé.
+        </para>
 
         <programlisting role="php"><![CDATA[
 for ($count = 0; $count < $index->maxDoc(); $count++) {
@@ -101,34 +127,49 @@ for ($count = 0; $count < $index->maxDoc(); $count++) {
 }
 ]]></programlisting>
 
-        <para>L'optimisation d'index retire les documents supprimés et resserre les identifiants de documents dans un
-        intervalle plus petit. Ainsi, un identifiant interne de document peut être modifié durant l'optimisation de
-        l'index.</para>
+        <para>
+            L'optimisation d'index retire les documents supprimés et resserre les identifiants
+            de documents dans un intervalle plus petit. Ainsi, un identifiant interne de document
+            peut être modifié durant l'optimisation de l'index.
+        </para>
     </sect2>
 
     <sect2 id="zend.search.lucene.index-creation.optimization">
         <title>Optimisation d'index</title>
 
-        <para>Un index Lucene est composé de plusieurs segments. Chaque segment est un ensemble de données complètement
-        indépendant des autres.</para>
-
-        <para>Les fichiers de segment d'index Lucene ne peuvent pas être mis à jour conceptuellement. Une mise à jour de
-        segment requiert une réorganisation complète de tous les segments. Consultez les formats de fichiers d'index
-        pour plus de détails (<ulink
-        url="http://lucene.apache.org/java/docs/fileformats.html">http://lucene.apache.org/java/docs/fileformats.html</ulink>)
-        <footnote>
-                <para>Le format de fichier d'index supporté actuellement est la version 2.3 (depuis Zend Framework
-                1.6).</para>
-            </footnote>Les nouveaux documents sont ajoutés à l'index en créant de nouveaux segments.</para>
-
-        <para>L'augmentation du nombre de segments réduit la qualité de l'index, mais l'optimisation de l'index remédie
-        à ce problème. L'optimisation a pour principale activité de fusionner plusieurs segments en un seul. Ce
-        processus ne met pas à jour les segments. Il génère un nouveau segment plus gros et met à jour la liste des
-        segments ('segments' file).</para>
-
-        <para>L'optimisation complète de l'index peut être déclenchée en appelant la méthode
-        <classname>Zend_Search_Lucene::optimize()</classname>. Elle va fusionner tous les segments de l'index en un seul nouveau
-        segment :</para>
+        <para>
+            Un index Lucene est composé de plusieurs segments. Chaque segment est un ensemble
+            de données complètement indépendant des autres.
+        </para>
+
+        <para>
+            Les fichiers de segment d'index Lucene ne peuvent pas être mis à jour
+            conceptuellement. Une mise à jour de segment requiert une réorganisation complète de
+            tous les segments. Consultez les formats de fichiers d'index pour plus de détails
+            (<ulink
+            url="http://lucene.apache.org/java/docs/fileformats.html">http://lucene.apache.org/java/docs/fileformats.html</ulink>)
+            <footnote>
+                <para>
+                    Le format de fichier d'index supporté actuellement est la version 2.3
+                    (depuis Zend Framework 1.6).
+                </para>
+            </footnote>Les nouveaux documents sont ajoutés à l'index en créant de nouveaux
+            segments.
+        </para>
+
+        <para>
+            L'augmentation du nombre de segments réduit la qualité de l'index, mais
+            l'optimisation de l'index remédie à ce problème. L'optimisation a pour principale
+            activité de fusionner plusieurs segments en un seul. Ce processus ne met pas à jour les
+            segments. Il génère un nouveau segment plus gros et met à jour la liste des segments
+            ('segments' file).
+        </para>
+
+        <para>
+            L'optimisation complète de l'index peut être déclenchée en appelant la méthode
+            <classname>Zend_Search_Lucene::optimize()</classname>. Elle va fusionner tous les
+            segments de l'index en un seul nouveau segment :
+        </para>
 
         <programlisting role="php"><![CDATA[
 // Ouverture d'un index existant.
@@ -138,21 +179,33 @@ $index = Zend_Search_Lucene::open('/data/my-index');
 $index->optimize();
 ]]></programlisting>
 
-        <para>L'optimisation automatique de l'index est lancée pour garder les index dans un état cohérent.</para>
+        <para>
+            L'optimisation automatique de l'index est lancée pour garder les index dans un
+            état cohérent.
+        </para>
 
-        <para>L'optimisation automatique est un processus itératif géré par plusieurs options d'index. Il s'agit de
-        fusionner les très petits segments pour obtenir de plus gros segments, puis de fusionner ces segments obtenus
-        vers des segments encore plus gros et ainsi de suite.</para>
+        <para>
+            L'optimisation automatique est un processus itératif géré par plusieurs options
+            d'index. Il s'agit de fusionner les très petits segments pour obtenir de plus gros
+            segments, puis de fusionner ces segments obtenus vers des segments encore plus gros et
+            ainsi de suite.
+        </para>
 
         <sect3 id="zend.search.lucene.index-creation.optimization.maxbuffereddocs">
-            <title>Option d'optimisation automatique <emphasis>MaxBufferedDocs</emphasis></title>
+            <title>Option d'optimisation automatique
+            <emphasis>MaxBufferedDocs</emphasis></title>
 
-            <para><emphasis>MaxBufferedDocs</emphasis> correspond au nombre minimum de documents requis avant que les
-            documents présents en mémoire dans le buffer soit écris dans un nouveau segment.</para>
+            <para>
+                <emphasis>MaxBufferedDocs</emphasis> correspond au nombre minimum de documents
+                requis avant que les documents présents en mémoire dans le buffer soit écris dans un
+                nouveau segment.
+            </para>
 
-            <para><emphasis>MaxBufferedDocs</emphasis> peut être récupéré ou défini en appelant
-            <code>$index-&gt;getMaxBufferedDocs()</code> ou
-            <code>$index-&gt;setMaxBufferedDocs($maxBufferedDocs)</code>.</para>
+            <para>
+                <emphasis>MaxBufferedDocs</emphasis> peut être récupéré ou défini en appelant
+                <code>$index-&gt;getMaxBufferedDocs()</code> ou
+                <code>$index-&gt;setMaxBufferedDocs($maxBufferedDocs)</code>.
+            </para>
 
             <para>Sa valeur par défaut est 10.</para>
         </sect3>
@@ -160,14 +213,20 @@ $index->optimize();
         <sect3 id="zend.search.lucene.index-creation.optimization.maxmergedocs">
             <title>Option d'optimisation automatique <emphasis>MaxMergeDocs</emphasis></title>
 
-            <para><emphasis>MaxMergeDocs</emphasis> correspond à un nombre maximal de documents fusionnés via
-            <code>addDocument()</code>. Des petites valeurs (p. ex., moins de 10'000) sont préférables pour de
-            l'indexation interactive, du fait que cela limite les pauses durant l'indexation à quelques secondes. Des
-            valeurs plus grandes sont meilleures pour les indexations en tâches planifiées (batch) et des recherches
-            plus rapides.</para>
-
-            <para><emphasis>MaxMergeDocs</emphasis> peut être récupéré ou défini en appelant
-            <code>$index-&gt;getMaxMergeDocs()</code> ou <code>$index-&gt;setMaxMergeDocs($maxMergeDocs)</code>.</para>
+            <para>
+                <emphasis>MaxMergeDocs</emphasis> correspond à un nombre maximal de documents
+                fusionnés via <code>addDocument()</code>. Des petites valeurs (p. ex., moins de
+                10'000) sont préférables pour de l'indexation interactive, du fait que cela limite
+                les pauses durant l'indexation à quelques secondes. Des valeurs plus grandes sont
+                meilleures pour les indexations en tâches planifiées (batch) et des recherches plus
+                rapides.
+            </para>
+
+            <para>
+                <emphasis>MaxMergeDocs</emphasis> peut être récupéré ou défini en appelant
+                <code>$index-&gt;getMaxMergeDocs()</code> ou
+                <code>$index-&gt;setMaxMergeDocs($maxMergeDocs)</code>.
+            </para>
 
             <para>Sa valeur par défaut est PHP_INT_MAX.</para>
         </sect3>
@@ -175,49 +234,73 @@ $index->optimize();
         <sect3 id="zend.search.lucene.index-creation.optimization.mergefactor">
             <title>Option d'optimisation automatique <emphasis>MergeFactor</emphasis></title>
 
-            <para><emphasis>MergeFactor</emphasis> détermine à quelle fréquence les segments d'index sont fusionnés par
-            <code>addDocument()</code>. Avec des petites valeurs, on utilise moins de RAM durant l'indexation et les
-            recherche sur des index non optimisés sont plus rapides, mais la vitesse d'indexation est plus lente. Avec
-            des valeurs plus grandes, on utilise plus de RAM durant l'indexation, et tandis que les recherches sur les
-            index non optimisés sont plus lentes, l'indexation est plus rapide. Au final, les grandes valeurs (&gt; 10)
-            sont préférables pour les indexations planifiées (batch), et les valeurs plus petites (&lt; 10) pour les
-            index qui sont maintenus de manière interactives.</para>
-
-            <para>L'option <emphasis>MergeFactor</emphasis> constitue une bonne estimation pour le nombre moyen de
-            segments fusionnés par une passe d'auto-optimisation. Des valeurs trop grandes produisent un nombre trop
-            important de segments car ils ne sont pas fusionnés. Cela peut causer l'erreur "failed to open stream: Too
-            many open files". Cette limitation est dépendante du système.</para>
-
-            <para><emphasis>MergeFactor</emphasis> peut être récupéré ou défini par les méthodes
-            <code>$index-&gt;getMergeFactor()</code> ou <code>$index-&gt;setMergeFactor($mergeFactor)</code>.</para>
+            <para>
+                <emphasis>MergeFactor</emphasis> détermine à quelle fréquence les segments
+                d'index sont fusionnés par <code>addDocument()</code>. Avec des petites valeurs, on
+                utilise moins de RAM durant l'indexation et les recherche sur des index non
+                optimisés sont plus rapides, mais la vitesse d'indexation est plus lente. Avec des
+                valeurs plus grandes, on utilise plus de RAM durant l'indexation, et tandis que les
+                recherches sur les index non optimisés sont plus lentes, l'indexation est plus
+                rapide. Au final, les grandes valeurs (&gt; 10) sont préférables pour les
+                indexations planifiées (batch), et les valeurs plus petites (&lt; 10) pour les index
+                qui sont maintenus de manière interactives.
+            </para>
+
+            <para>
+                L'option <emphasis>MergeFactor</emphasis> constitue une bonne estimation pour
+                le nombre moyen de segments fusionnés par une passe d'auto-optimisation. Des valeurs
+                trop grandes produisent un nombre trop important de segments car ils ne sont pas
+                fusionnés. Cela peut causer l'erreur "failed to open stream: Too many open files".
+                Cette limitation est dépendante du système.
+            </para>
+
+            <para>
+                <emphasis>MergeFactor</emphasis> peut être récupéré ou défini par les méthodes
+                <code>$index-&gt;getMergeFactor()</code> ou
+                <code>$index-&gt;setMergeFactor($mergeFactor)</code>.
+            </para>
 
             <para>Sa valeur par défaut est 10.</para>
 
-            <para>Lucene Java et Luke (Lucene Index Toolbox - <ulink
-            url="http://www.getopt.org/luke/">http://www.getopt.org/luke/</ulink>) peuvent aussi être utilisés pour
-            optimiser un index. La dernière version de Luke (v0.8) est basée sur Lucene v2.3 et est compatible avec
-            l'implémentation courante du composant <classname>Zend_Search_Lucene</classname> (ZF 1.6). Les versions précédentes de
-            <classname>Zend_Search_Lucene</classname> nécessitent d'autres versions des outils de Java Lucene : <itemizedlist>
-                    <listitem>
-                        <para>ZF 1.5 - Java Lucene 2.1 (Luke tool v0.7.1 - <ulink
-                        url="http://www.getopt.org/luke/luke-0.7.1/"></ulink>)</para>
+            <para>
+                Lucene Java et Luke (Lucene Index Toolbox - <ulink
+                url="http://www.getopt.org/luke/">http://www.getopt.org/luke/</ulink>) peuvent aussi
+                être utilisés pour optimiser un index. La dernière version de Luke (v0.8) est basée
+                sur Lucene v2.3 et est compatible avec l'implémentation courante du composant
+                <classname>Zend_Search_Lucene</classname> (ZF 1.6). Les versions précédentes de
+                <classname>Zend_Search_Lucene</classname> nécessitent d'autres versions des outils
+                de Java Lucene : <itemizedlist>
+                        <listitem>
+                        <para>
+                            ZF 1.5 - Java Lucene 2.1 (Luke tool v0.7.1 - <ulink
+                            url="http://www.getopt.org/luke/luke-0.7.1/"></ulink>)
+                        </para>
                     </listitem>
 
                     <listitem>
-                        <para>ZF 1.0 - Java Lucene 1.4 - 2.1 (Luke tool v0.6 - <ulink
-                        url="http://www.getopt.org/luke/luke-0.6/"></ulink>)</para>
+                        <para>
+                            ZF 1.0 - Java Lucene 1.4 - 2.1 (Luke tool v0.6 - <ulink
+                            url="http://www.getopt.org/luke/luke-0.6/"></ulink>)
+                        </para>
                     </listitem>
-                </itemizedlist></para>
+                    </itemizedlist>
+                </para>
         </sect3>
     </sect2>
 
     <sect2 id="zend.search.lucene.index-creation.permissions">
         <title>Permissions</title>
 
-        <para>Par défaut, les fichiers d'index sont disponibles en lecture et écriture par tout le monde.</para>
+        <para>
+            Par défaut, les fichiers d'index sont disponibles en lecture et écriture par tout
+            le monde.
+        </para>
 
-        <para>Il est possible de surcharger ce comportement grâce à la méthode
-        <classname>Zend_Search_Lucene_Storage_Directory_Filesystem::setDefaultFilePermissions()</classname> :</para>
+        <para>
+            Il est possible de surcharger ce comportement grâce à la méthode
+            <classname>Zend_Search_Lucene_Storage_Directory_Filesystem::setDefaultFilePermissions()</classname>
+            :
+        </para>
 
         <programlisting role="php"><![CDATA[
 // Récupération des permissions par défaut
@@ -243,14 +326,23 @@ Zend_Search_Lucene_Storage_Directory_Filesystem::setDefaultFilePermissions(0660)
         <sect3 id="zend.search.lucene.index-creation.limitations.filesystems">
             <title>Systèmes de fichiers supportés</title>
 
-            <para><classname>Zend_Search_Lucene</classname> utilise <code>flock()</code> pour fournir des recherches concurrentes,
-            la mise à jour des index et l'optimisation.</para>
-
-            <para>Selon la <ulink url="http://www.php.net/manual/en/function.flock.php">documentation</ulink> PHP,
-            "<code>flock()</code> ne fonctionnera pas sur NFS et plusieurs autres systèmes de fichiers en
-            réseaux".</para>
-
-            <para>N'utilisez pas de systèmes de fichiers en réseaux avec <classname>Zend_Search_Lucene</classname>.</para>
+            <para>
+                <classname>Zend_Search_Lucene</classname> utilise <code>flock()</code> pour
+                fournir des recherches concurrentes, la mise à jour des index et
+                l'optimisation.
+            </para>
+
+            <para>
+                Selon la <ulink
+                url="http://www.php.net/manual/en/function.flock.php">documentation</ulink> PHP,
+                "<code>flock()</code> ne fonctionnera pas sur NFS et plusieurs autres systèmes de
+                fichiers en réseaux".
+            </para>
+
+            <para>
+                N'utilisez pas de systèmes de fichiers en réseaux avec
+                <classname>Zend_Search_Lucene</classname>.
+            </para>
         </sect3>
     </sect2>
 </sect1>

+ 36 - 16
documentation/manual/fr/module_specs/Zend_Search_Lucene-JavaLucene.xml

@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 13831 -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 15157 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.search.lucene.java-lucene">
     <title>Agir avec Lucene Java</title>
@@ -7,33 +7,50 @@
     <sect2 id="zend.search.lucene.index-creation.file-formats">
         <title>Formats de fichier</title>
 
-        <para>Les formats des fichiers d'index de <classname>Zend_Search_Lucene</classname> sont compatibles avec la version de
-        Lucene Java 1.4 ou plus.</para>
-
-        <para>Une description détaillée de ce format est disponible ici: <ulink
-        url="http://lucene.apache.org/java/docs/fileformats.html"></ulink><footnote>
-                <para>La version du format de fichier supporté actuellement est la 2.3 (depuis Zend Framework 1.6).</para>
-            </footnote>.</para>
+        <para>
+            Les formats des fichiers d'index de <classname>Zend_Search_Lucene</classname> sont
+            compatibles avec la version de Lucene Java 1.4 ou plus.
+        </para>
+
+        <para>
+            Une description détaillée de ce format est disponible ici: <ulink
+            url="http://lucene.apache.org/java/docs/fileformats.html"></ulink><footnote>
+                <para>
+                    La version du format de fichier supporté actuellement est la 2.3 (depuis
+                    Zend Framework 1.6).
+                </para>
+                </footnote>.
+            </para>
     </sect2>
 
     <sect2 id="zend.search.lucene.index-creation.index-directory">
         <title>Répertoire Index</title>
 
-        <para>Après la création de l'index, le répertoire d'index contiendra plusieurs fichiers:</para>
+        <para>
+            Après la création de l'index, le répertoire d'index contiendra plusieurs
+            fichiers:
+        </para>
 
         <itemizedlist>
             <listitem>
-                <para>le fichier des <filename>segments</filename> est une liste des segments de l'index.</para>
+                <para>
+                    le fichier des <filename>segments</filename> est une liste des segments de
+                    l'index.
+                </para>
             </listitem>
 
             <listitem>
-                <para>Les fichiers <filename>*.cfs</filename> contiennent les segments de l'index. Notez qu'un index
-                optimisé a toujours un seul segment.</para>
+                <para>
+                    Les fichiers <filename>*.cfs</filename> contiennent les segments de
+                    l'index. Notez qu'un index optimisé a toujours un seul segment.
+                </para>
             </listitem>
 
             <listitem>
-                <para>Les fichiers <filename>effaçables</filename> sont des fichiers qui ne sont plus utilisés par
-                l'index, mais qui n'ont pas pu être supprimés.</para>
+                <para>
+                    Les fichiers <filename>effaçables</filename> sont des fichiers qui ne sont
+                    plus utilisés par l'index, mais qui n'ont pas pu être supprimés.
+                </para>
             </listitem>
         </itemizedlist>
     </sect2>
@@ -41,7 +58,10 @@
     <sect2 id="zend.search.lucene.java-lucene.source-code">
         <title>Code source Java</title>
 
-        <para>Le programme Java ci-après montre comment indexer un fichier en utilisant Java Lucene :</para>
+        <para>
+            Le programme Java ci-après montre comment indexer un fichier en utilisant Java
+            Lucene :
+        </para>
 
         <programlisting role="java"><![CDATA[
 /**

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác