ソースを参照

Added some french doc translations

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16892 44c647ce-9c0f-0410-b52a-842ac1e357ba
doctorrock83 16 年 前
コミット
aed68a9384

+ 93 - 0
documentation/manual/fr/module_specs/Zend_Application-AvailableResources-Modules.xml

@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.available-resources.modules">
+    <title>Zend_Application_Resource_Modules</title>
+
+    <para>
+        <classname>Zend_Application_Resource_Modules</classname> est utilisé pour initialiser
+        les modules de votre application. Si votre module possède un fichier
+        <filename>Bootstrap.php</filename> à sa racine, et que celui-ci contient une classe nommée
+        <classname>Module_Bootstrap</classname> (où "Module" est le nom du module),
+        alors celle-ci sera utiliser pour lancer votre module.
+    </para>
+
+    <para>
+        Par défaut, une instance de
+        <classname>Zend_Application_Module_Autoloader</classname> sera créee pour le module en question
+        , utilisant le nom du module et son dossier pour s'initialiser.
+    </para>
+
+    <note>
+        <title>Dépendance envers le contrôleur frontal</title>
+
+        <para>
+            La ressource Modules possède une dépendance envers <link
+                linkend="zend.application.available-resources.frontcontroller">la ressource Front
+            Controller</link>. Vous pouvez bien sûr proposer votre propre implémentation de la ressource
+            du contrôleur frontal, si tant est que sa classe se termine par "Frontcontroller", ou, si vous
+            choisissez d'utiliser une méthode d'initialisation, celle-ci doit être "_initFrontController".
+        </para>
+    </note>
+
+    <example id="zend.application.available-resources.modules.configExample">
+        <title>Configurer les Modules</title>
+        <para>
+            Vous pouvez passer de la configuration en utilisant le nom du module commme préfixe de section
+            dans le fichier de configuration.
+        </para>
+
+        <para>
+            Par exemple, supposons que vous possédiez un module appelé "news". Voici des exemples
+            <acronym>INI</acronym> et <acronym>XML</acronym> de fichiers de configuration pour ce module.
+        </para>
+
+        <programlisting language="ini"><![CDATA[
+[production]
+news.resources.db.adapter = "pdo_mysql"
+news.resources.db.params.host = "localhost"
+news.resources.db.params.username = "webuser"
+news.resources.db.params.password = "XXXXXXX"
+news.resources.db.params.dbname = "news"
+news.resources.layout.layout = "news"
+]]></programlisting>
+
+        <programlisting language="xml"><![CDATA[
+<?xml version="1.0"?>
+<config>
+    <production>
+        <news>
+            <resources>
+                <db>
+                    <adapter>pdo_mysql</adapter>
+                    <params>
+                        <host>localhost</host>
+                        <username>webuser</username>
+                        <password>XXXXXXX</password>
+                        <dbname>news</dbname>
+                    </params>
+                    <isDefaultAdapter>true</isDefaultAdapter>
+                </db>
+            </resources>
+        </news>
+    </production>
+</config>
+]]></programlisting>
+    </example>
+
+    <example id="zend.application.available-resources.modules.retrieveBootstrapExample">
+        <title>Récupérer un bootstrap de module</title>
+
+        <para>
+            Il peut être utilise de pouvoir récupérer l'objet bootstrap de votre module, pour en exécuter
+            par exemple des méthodes spécifiques, ou encore pour en récupérer l'autoloader. La méthode
+            <methodname>getExecutedBootstraps()</methodname> peut être utilisée dans ce cas là, elle s'applique
+            sur un objet ressource de Modules.
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$resource = $bootstrap->getPluginResource('modules');
+$moduleBootstraps = $resource->getExecutedBootstraps();
+$newsBootstrap = $moduleBootstraps['news'];
+]]></programlisting>
+    </example>
+</sect2>

+ 82 - 0
documentation/manual/fr/module_specs/Zend_Application-AvailableResources-Session.xml

@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.available-resources.session">
+    <title>Zend_Application_Resource_Session</title>
+
+    <para>
+        <classname>Zend_Application_Resource_Session</classname> est utilisé pour configurer
+        <classname>Zend_Session</classname> et éventuellement un support de sauvegarde sessions
+        (SaveHandler).
+    </para>
+
+    <para>
+        Pour créer un support de sauvegarde session, passez la clé <property>saveHandler</property>
+        (case insensitive) à la ressource. La valeur d'une telle option peut être:
+    </para>
+
+    <itemizedlist>
+        <listitem><para>
+            <type>Une chaine</type>: cette chaine indique le nom d'une classe implémentant
+            <classname>Zend_Session_SaveHandler_Interface</classname>.
+        </para></listitem>
+
+        <listitem><para>
+            <type>Un tableau</type>: avec les clés "class" et optionnellement
+            "options", indiquant une classe à instancier (implémentant
+            <classname>Zend_Session_SaveHandler_Interface</classname>) et un tableau d'options
+            à passer à son constructeur.
+        </para></listitem>
+
+        <listitem><para>
+            <classname>Un objet implémentant Zend_Session_SaveHandler_Interface</classname>.
+        </para></listitem>
+    </itemizedlist>
+
+    <para>
+        Toute autre option non reconnue sera alors passée à 
+        <methodname>Zend_Session::setOptions()</methodname> pour configurer
+        <classname>Zend_Session</classname>.
+    </para>
+
+    <example id="zend.application.available-resources.session.configExample">
+        <title>Exemple de ressource Session</title>
+
+        <para>
+            Voici un fichier <acronym>INI</acronym> permettant de configurer une session via la
+            resource. Il affecte des options à <classname>Zend_Session</classname> et configure
+            une instance de <classname>Zend_Session_SaveHandler_DbTable</classname>.
+        </para>
+
+        <programlisting language="ini"><![CDATA[
+resources.session.save_path = APPLICATION_PATH "/../data/session"
+resources.session.use_only_cookies = true
+resources.session.remember_me_seconds = 864000
+resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
+resources.session.saveHandler.options.name = "session"
+resources.session.saveHandler.options.primary.session_id = "session_id"
+resources.session.saveHandler.options.primary.save_path = "save_path"
+resources.session.saveHandler.options.primary.name = "name"
+resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
+resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
+resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
+resources.session.saveHandler.options.modifiedColumn = "modified"
+resources.session.saveHandler.options.dataColumn = "session_data"
+resources.session.saveHandler.options.lifetimeColumn = "lifetime"
+]]></programlisting>
+    </example>
+
+    <note>
+        <title>Configurez votre base de données avant!</title>
+
+        <para>
+            Si vous configurez le gestionnaire
+            <classname>Zend_Session_SaveHandler_DbTable</classname>, vous devez configurer votre
+            base de données avant. Pour cela, servez vous de la ressource<link
+                linkend="zend.application.available-resources.db">Db</link> et assurez vous que la clé
+            "<emphasis>resources.db</emphasis>" apparait bien avant la clé
+            "<emphasis>resources.session</emphasis>". Vous pouvez aussi utiliser votre propre ressource
+            qui initialise la base de données et affecte l'adaptateur
+            <classname>Zend_Db_Table</classname> par défaut.
+        </para>
+    </note>
+</sect2>

+ 306 - 0
documentation/manual/fr/module_specs/Zend_Application-CoreFunctionality-Application.xml

@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.application">
+    <title>Zend_Application</title>
+
+    <para>
+        <classname>Zend_Application</classname> est la classe de base du composant
+        et le point d'entrée de votre application Zend Framework. Ses buts sont multiples
+        : configurer l'environnement <acronym>PHP</acronym> environment (incluant l'autoloading)
+        et exécuter le bootstrap de votre application.
+    </para>
+
+    <para>
+        Typiquement, vous allez passer toute la configuration au constructeur de
+        <classname>Zend_Application</classname>, mais vous pouvez aussi configurer l'objet via ses méthodes
+        . Ce chapitre illustrera les deux aspects.
+    </para>
+
+    <table id="zend.application.core-functionality.application.api.options">
+        <title>Zend_Application options</title>
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Option</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><property>phpSettings</property></entry>
+                    <entry><para>
+                        Tableau de paramètres <filename>php.ini</filename> à utiliser. Les clés doivent être
+                        des clés reconnues dans <filename>php.ini</filename>.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><property>includePaths</property></entry>
+                    <entry><para>
+                        Chemins additionnels à ajouter à
+                        <emphasis>include_path</emphasis>. Ces chemins sont ajoutés avant l'include_path.
+                        L'option doit être un tableau de chemins.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><property>autoloaderNamespaces</property></entry>
+                    <entry><para>
+                        Tableau d'espaces de noms à enregistrer dans
+                        <classname>Zend_Loader_Autoloader</classname>.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><property>bootstrap</property></entry>
+                    <entry><para>
+                        Soit une chaine vers le fichier contenant la classe de bootstrap, soit un tableau
+                        avec les clés 'path' et 'class' menant vers le bootstrap.
+                    </para></entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+
+    <note>
+        <title>Noms des options</title>
+
+        <para>
+            Notez que les noms des options ne sont pas sensibles à la casse.
+        </para>
+    </note>
+
+    <table id="zend.application.core-functionality.application.api.table">
+        <title>Méthodes dans Zend_Application</title>
+        <tgroup cols="4">
+            <thead>
+                <row>
+                    <entry>Methode</entry>
+                    <entry>Valeur de retour</entry>
+                    <entry>Paramètres</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry>
+                        <methodname>__construct($environment, $options = null)</methodname>
+                    </entry>
+                    <entry><type>Void</type></entry>
+                    <entry><itemizedlist>
+                            <listitem><para>
+                                <varname>$environment</varname>: <emphasis>requis</emphasis>,.
+                                Chaine représentant l'environnement actuel dans lequel tourne l'application
+                                Par exemple "development", "testing", "qa", ou "production".
+                                Les significations de ces chaines sont à définir par la suite.
+                            </para></listitem>
+
+                            <listitem>
+                            <para>
+                                <varname>$options</varname>: <emphasis>optionnel</emphasis>.
+                            </para>
+                            <itemizedlist>
+                                <listitem><para>
+                                    <emphasis><type>String</type></emphasis>: chemin vers un fichier
+                                    <classname>Zend_Config</classname> à charger pour la configuration de
+                                    votre application.
+                                    <varname>$environment</varname> sera utilisé pour determiner la section de
+                                    configuration à charger depuis le fichier.
+                                </para></listitem>
+
+                                <listitem><para>
+                                    <emphasis><type>Array</type></emphasis>: tableau associatif de données de configuration
+                                    pour votre application.
+                                </para></listitem>
+
+                                <listitem><para>
+                                    <emphasis><classname>Zend_Config</classname></emphasis>:
+                                    Instance de Zend_Config.
+                                </para></listitem>
+                            </itemizedlist>
+                        </listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Une instance de
+                        <classname>Zend_Loader_Autoloader</classname> est enregistrée lors de l'instanciation.
+                        Les options passées au constructeur sont passées à <methodname>setOptions()</methodname>.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getEnvironment()</methodname></entry>
+                    <entry><type>String</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère l'environnement passé au constructeur.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getAutoloader()</methodname></entry>
+                    <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère l'objet <classname>Zend_Loader_Autoloader</classname>
+                        enregistré lors de l'instanciation.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>setOptions(array $options)</methodname></entry>
+                    <entry><classname>Zend_Application</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$options</varname>: <emphasis>requis</emphasis>.
+                            Un tableau d'options pour l'application.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Toutes les options sont stockées en interne, et appeler plusieurs fois la même
+                        méthode fusionnera les options qu'elle définit. Les options qui correspondent aux diverses
+                        méthodes setter seront passées à ces méthodes. Par exemple, l'option "phpSettings"
+                        sera passée à <methodname>setPhpSettings()</methodname>.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getOptions()</methodname></entry>
+                    <entry><type>Array</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère toutes les options utilisées pour initialiser l'objet.
+                        Pourrait être utilisé pour mettre en cache les options <classname>Zend_Config</classname>
+                        entre chaque requête, par exemple.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>hasOption($key)</methodname></entry>
+                    <entry><type>Boolean</type></entry>
+                    <entry>
+                    <itemizedlist>
+                        <listitem><para>
+                            <varname>$key</varname>: La clé de l'option à chercher
+                        </para></listitem>
+                    </itemizedlist>
+                    </entry>
+                    <entry><para>
+                        Indique si une option correspondant à une clé précise a été utilisée ou pas.
+                        Les clés sont insensibles à la casse.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getOption($key)</methodname></entry>
+                    <entry>
+                        <type>Mixed</type>
+                    </entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$key</varname>: La clé de l'option à récupérer
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Récupère l'option correspondant à la clé passée, null si celle-ci n'existe pas.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry>
+                        <methodname>setPhpSettings(array $settings, $prefix = '')</methodname>
+                    </entry>
+                    <entry><classname>Zend_Application</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$settings</varname>: <emphasis>requis</emphasis>.
+                            Tableau associatif de paramètres <acronym>PHP</acronym> <acronym>INI</acronym>
+                        </para></listitem>
+
+                        <listitem><para>
+                            <varname>$prefix</varname>: <emphasis>optionnel</emphasis>.
+                            Préfixe pour construire la chaine des clés d'options.
+                            Utilisée en interne pour les tableau à plusieurs niveaux concernant
+                            <filename>php.ini</filename> keys. En temps normal, cet argument ne devrait
+                            jamais être utilisé par l'utilisateur.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Affecte à la volée des paramètres de <filename>php.ini</filename>. Les paramètres séparés
+                        par des points peuvent être nichés hiérarchiquement (comme dans le cas des paramètre
+                        <acronym>INI</acronym> de <classname>Zend_Config</classname>).
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry>
+                        <methodname>setAutoloaderNamespaces(array $namespaces)</methodname>
+                    </entry>
+                    <entry><classname>Zend_Application</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$namespaces</varname>: <emphasis>requis</emphasis>.
+                            Tableau de chaines représentant les espaces de noms à enregistrer dans
+                            <classname>Zend_Loader_Autoloader</classname>.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Enregistre des espaces de noms dans <classname>Zend_Loader_Autoloader</classname>.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>setBootstrap($path, $class = null)</methodname></entry>
+                    <entry><classname>Zend_Application</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$path</varname>: <emphasis>requis</emphasis>. Peut être soit un objet de
+                            <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                            , soit une chaine représentant le chemib vers la classe de bootstrap, soit un tableau associatif
+                            nom de classe =&gt; chemin de fichier, ou encore un tableau associatif avec les clés
+                            'class' et 'path'.
+                        </para></listitem>
+
+                        <listitem><para>
+                            <varname>$class</varname>: <emphasis>optionnel</emphasis>.
+                            Si <varname>$path</varname> est une chaine,
+                            <varname>$class</varname> doit être indiqué et doit être une chaine
+                            représentant le nom d'une classe contenue dans le fichier représenté par $path.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getBootstrap()</methodname></entry>
+                    <entry>
+                        <constant>NULL</constant> |
+                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                    </entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère l'instance du bootstrap enregistrée.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>bootstrap()</methodname></entry>
+                    <entry><type>Void</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Appelle la méthode <methodname>bootstrap()</methodname> du bootstrap pour
+                        lancer l'application.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>run()</methodname></entry>
+                    <entry><type>Void</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Appelle la méthode <methodname>run()</methodname> du bootstrap pour
+                        lancer le dispatch de l'application.
+                    </para></entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect2>

+ 20 - 0
documentation/manual/fr/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.bootstrap-bootstrap">
+    <title>Zend_Application_Bootstrap_Bootstrap</title>
+
+    <para>
+        <classname>Zend_Application_Bootstrap_Bootstrap</classname> est une implémentation concrète de
+        <link
+            linkend="zend.application.core-functionality.bootstrap-bootstrapabstract">Zend_Application_Bootstrap_BootstrapAbstract</link>.
+        Ces caractéristiques principales sont l'enregistrement de la<link
+            linkend="zend.application.available-resources.frontcontroller">ressource Front
+            Controller</link>, et la méthode <methodname>run()</methodname> vérifie d'abord la présence d'un module par défaut
+        dans le contrôleur frontal, avant de lancer le dispatching.
+    </para>
+
+    <para>
+        Dans la plupart des cas, vous étendrez cette classe dans vos bootstraps, ou encore vous utiliserez cette classe en lui
+        fournissant une liste de plugins à utiliser.
+    </para>
+</sect2>

+ 121 - 0
documentation/manual/fr/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrapper.xml

@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.bootstrap-bootstrapper">
+    <title>Zend_Application_Bootstrap_Bootstrapper</title>
+
+    <para>
+        <classname>Zend_Application_Bootstrap_Bootstrapper</classname> est l'interface de base
+        que toutes les classes de bootstrap doivent implémenter. Les fonctionnalités apportées sont
+        la configuration, l'identification des ressources, le bootstrap (d'une ressource ou de
+        l'application entière), et le lancement (dispatching) de l'application.
+    </para>
+
+    <para>
+        Voici les méthodes définies par l'interface.
+    </para>
+
+    <table id="zend.application.core-functionality.bootstrap-bootstrapper.methods-table">
+        <title>Méthodes de Zend_Application_Bootstrap_Bootstrapper</title>
+        <tgroup cols="4">
+            <thead>
+                <row>
+                    <entry>Méthode</entry>
+                    <entry>Valeur de retour</entry>
+                    <entry>Paramètres</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><methodname>__construct($application)</methodname></entry>
+                    <entry><type>Void</type></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$application</varname>: <emphasis>requis</emphasis>.
+                            Accepte un argument instance de <classname>Zend_Application</classname>
+                            ou de <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Constructeur. Accepte un argument instance de 
+                        <classname>Zend_Application</classname>ou de
+                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>setOptions(array $options)</methodname></entry>
+                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$options</varname>: <emphasis>requis</emphasis>.
+                            Tableaux d'options à configurer.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Une option qui correspond à un setter lui sera passé, sinon l'option
+                        est stockée pour pouvoir être utilisée plus tard.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getApplication()</methodname></entry>
+                    <entry>
+                        <classname>Zend_Application</classname> |
+                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                    </entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère l'objet d'application passé au contructeur.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getEnvironment()</methodname></entry>
+                    <entry><type>String</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère la chaine d'environnement enregistrée dans l'objet
+                        d'application.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getClassResources()</methodname></entry>
+                    <entry><type>Array</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Retourne la liste des classes utilisées comme classes de ressources.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>bootstrap($resource = null)</methodname></entry>
+                    <entry>
+                        <type>Mixed</type>
+                    </entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$resource</varname>: <emphasis>optionnel</emphasis>.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Si <varname>$resource</varname> est vide, exécute toutes les ressources.
+                        Si une chaine est passée, exécute uniquement la ressource considérée.
+                        Enfin, si un tableau de chaines est passé, toutes les ressources
+                        représentées par ses chaines sont exécutées.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>run()</methodname></entry>
+                    <entry><type>Void</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Définies la logique à lancer après avoir lancé le bootstrap.
+                    </para></entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect2>

+ 144 - 0
documentation/manual/fr/module_specs/Zend_Application-CoreFunctionality-Bootstrap_ResourceBootstrapper.xml

@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.bootstrap-resourcebootstrapper">
+    <title>Zend_Application_Bootstrap_ResourceBootstrapper</title>
+
+    <para>
+        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname> est une interface
+        utilisée lorsqu'une classe de bootstrap chargera une ressource externe, ce qui signifie que les
+        ressources peuvent ne pas être définies comme de simples méthodes, mais via des classes "plugins".
+        Cette interface devrait être utilisée avec <link
+            linkend="zend.application.core-functionality.bootstrap-bootstrapper">Zend_Application_Bootstrap_Bootstrapper</link>;
+        <link
+            linkend="zend.application.core-functionality.bootstrap-bootstrapabstract">Zend_Application_Bootstrap_BootstrapAbstract</link>
+        implemente cette fonctionnalité.
+    </para>
+
+    <para>
+        Voici les méthodes définies par l'interface.
+    </para>
+
+    <table id="zend.application.core-functionality.bootstrap-resourcebootstrapper.methods-table">
+        <title>Méthodes de Zend_Application_Bootstrap_ResourceBootstrapper</title>
+        <tgroup cols="4">
+            <thead>
+                <row>
+                    <entry>Méthode</entry>
+                    <entry>Valeur de retour</entry>
+                    <entry>Paramètres</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry>
+                        <methodname>registerPluginResource($resource, $options = null)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+                    </entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$resource</varname>: <emphasis>requis</emphasis>.
+                            Un nom de ressource ou un objet
+                            <classname>Zend_Application_Resource_Resource</classname>
+                        </para></listitem>
+
+                        <listitem><para>
+                            <varname>$options</varname>: <emphasis>optionnel</emphasis>.
+                            Un tableau d'objets <classname>Zend_Config</classname> à passer au constructeur
+                            de la ressource.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Register a resource with the class, providing optional
+                        configuration to pass to the resource.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>unregisterPluginResource($resource)</methodname></entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+                    </entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$resource</varname>: <emphasis>requis</emphasis>.
+                            Nom de la ressource à effacer de la liste des ressources chargées.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Supprime un plugin de ressource de la classe.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>hasPluginResource($resource)</methodname></entry>
+                    <entry><type>Boolean</type></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$resource</varname>: <emphasis>requis</emphasis>.
+                            Nom de la ressource.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Détermine si une ressource donnée a été enregistrée.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getPluginResource($resource)</methodname></entry>
+                    <entry><classname>Zend_Application_Resource_Resource</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$resource</varname>: <emphasis>requis</emphasis>.
+                            Nom de la ressource à récupérer (string).
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Retrieve a plugin resource instance by name.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getPluginResourceNames()</methodname></entry>
+                    <entry><type>Array</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère une liste de noms de tous les plugins enregistrés.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry>
+                        <methodname>setPluginLoader(Zend_Loader_PluginLoader_Interface
+                            $loader)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+                    </entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$loader</varname>: <emphasis>requis</emphasis>.
+                            Instance de PluginLoader (chargeur de classes) à utiliser pour résoudre
+                            les noms de plugins en classes.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Enregistre un PluginLoader (chargeur de classes) à utiliser pour résoudre
+                        les noms de plugins en classes.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getPluginLoader()</methodname></entry>
+                    <entry><classname>Zend_Loader_PluginLoader_Interface</classname></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère l'objet pluginLoader chargé.
+                    </para></entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect2>

+ 101 - 0
documentation/manual/fr/module_specs/Zend_Application-CoreFunctionality-Resource_Resource.xml

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.resource-resource">
+    <title>Zend_Application_Resource_Resource</title>
+
+    <para>
+        <classname>Zend_Application_Resource_Resource</classname> est une interface implémentée par
+        les plugins de ressources lorsqu'ils sont utilisés par des classes de bootstrap implémentant
+        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>. Les classes de plugins
+        de ressources doivent accepter de la configuration, doivent pouvoir être lancées ("bootstrapées")
+        et doivent utiliser un pattern strategy pour initialiser la ressource.
+    </para>
+
+    <table id="zend.application.core-functionality.resource-resource.api">
+        <title>Méthodes de Zend_Application_Resource_Resource</title>
+        <tgroup cols="4">
+            <thead>
+                <row>
+                    <entry>Méthode</entry>
+                    <entry>Valeur de retour</entry>
+                    <entry>Paramètres</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><methodname>__construct($options = null)</methodname></entry>
+                    <entry><type>Void</type></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$options</varname>: <emphasis>optionnel</emphasis>.
+                            Options d'initialisation.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Le constructeur doit posséder un paramètre permettant de configurer l'état
+                        de la ressource.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry>
+                        <methodname>setBootstrap(Zend_Application_Bootstrap_Bootstrapper
+                            $bootstrap)</methodname>
+                    </entry>
+                    <entry><classname>Zend_Application_Resource_Resource</classname></entry>
+                    <entry><itemizedlist>
+                            <listitem><para>
+                                <varname>$bootstrap</varname>: <emphasis>requis</emphasis>.
+                                Bootstrap parent initialisant cette ressource.
+                            </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Doit autoriser l'enregistrement du bootstrap parent.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getBootstrap()</methodname></entry>
+                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère l'objet bootstrap enregistré.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>setOptions(array $options)</methodname></entry>
+                    <entry><classname>Zend_Application_Resource_Resource</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$options</varname>: <emphasis>requis</emphasis>.
+                            Options de configuration de la ressource
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Définit l'état d'initialisation de la ressource.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getOptions()</methodname></entry>
+                    <entry><type>Array</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère les options enregistrées.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>init()</methodname></entry>
+                    <entry><type>Mixed</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Pattern strategy: exécute l'initialisation de la ressource.
+                    </para></entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect2>

+ 198 - 0
documentation/manual/fr/module_specs/Zend_Application-CoreFunctionality-Resource_ResourceAbstract.xml

@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.resource-resourceabstract">
+    <title>Zend_Application_Resource_ResourceAbstract</title>
+
+    <para>
+        <classname>Zend_Application_Resource_ResourceAbstract</classname> est une classe abstaite
+        implementant <link
+            linkend="zend.application.core-functionality.resource-resource">Zend_Application_Resource_Resource</link>,
+        c'est un bon point de départ pour créer vos propres plugins de ressources.
+    </para>
+
+    <para>
+        Note: Cette classe abstraite n'implémente pas la méthode <methodname>init()</methodname>; elle doit donc
+        être implémentée par les extensions concrêtes de cette classe.
+    </para>
+
+    <table id="zend.application.core-functionality.resource-resourceabstract.api">
+        <title>Méthodes de Zend_Application_Resource_ResourceAbstract</title>
+        <tgroup cols="4">
+            <thead>
+                <row>
+                    <entry>Méthode</entry>
+                    <entry>Valeur de retour</entry>
+                    <entry>Paramètres</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><methodname>__construct($options = null)</methodname></entry>
+                    <entry><type>Void</type></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$options</varname>: <emphasis>optionnel</emphasis>.
+                            Options de configuration de la ressource.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Le constructeur doit accepter un paramètres permettant de définir l'état de la
+                        ressource.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry>
+                        <methodname>setBootstrap(Zend_Application_Bootstrap_Bootstrapper
+                            $bootstrap)</methodname>
+                    </entry>
+                    <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
+                    <entry><itemizedlist>
+                            <listitem><para>
+                                <varname>$bootstrap</varname>: <emphasis>requis</emphasis>.
+                                Bootstrap parent initialisant cette resource.
+                            </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Doit accepter l'enregistrement du bootstrap parent.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getBootstrap()</methodname></entry>
+                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Récupère l'objet bootstrap enregistré.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>setOptions(array $options)</methodname></entry>
+                    <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <varname>$options</varname>: <emphasis>required</emphasis>.
+                            Options de la ressource.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Définit l'état de la ressource.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getOptions()</methodname></entry>
+                    <entry><type>Array</type></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Retourne les options enregistrées.
+                    </para></entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+
+    <sect3 id="zend.application.core-functionality.resource-resourceabstract.names">
+        <title>Noms des resources</title>
+
+        <para>
+            Lorque vous enregistrez des plugins de ressources, il existe alors 3 manières d'y faire
+            référence dans la classe du bootstrap parent, en fonction de la manière dont vous avez
+            configuré le bootstrap.
+        </para>
+
+        <para>
+            D'abord, si vos classes de plugins existent dans un chemin précis, vous pouvez alors y faire
+            référence simplement par leur nom court -- la portion du nom de la classe située après le préfixe
+            de classe. Par exemple, la classe "<classname>Zend_Application_Resource_View</classname>" peut
+            être référencée simplement via "View" car le préfixe "<classname>Zend_Application_Resource</classname>"
+            est déja enregistré. Vous pouvez aussi utiliser le nom long de classe complet:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$app = new Zend_Application(APPLICATION_ENV, array(
+    'pluginPaths' => array(
+        'My_Resource' => 'My/Resource/',
+    ),
+    'resources' => array(
+        // Si la classe suivante existe:
+        'My_Resource_View' => array(),
+
+        // alors ceci est équivalent:
+        'View' => array(),
+    ),
+));
+]]></programlisting>
+
+        <para>
+            Quoiqu'il en soit, vous pouvez lancer (bootstrap) la ressource ou la récupérer via son nom court:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$bootstrap->bootstrap('view');
+$view = $bootstrap->getResource('view');
+]]></programlisting>
+
+        <para>
+            Ensuite, si aucun chemin précis n'est enregistré, il reste possible de passer ses plugins de ressources
+            via leur nom de classe complet:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$app = new Zend_Application(APPLICATION_ENV, array(
+    'resources' => array(
+        // Ceci va charger le plugin de ressource standard 'View':
+        'View' => array(),
+
+        // Alors que ceci charge une classe spécifiquement via son nom:
+        'My_Resource_View' => array(),
+    ),
+));
+]]></programlisting>
+
+        <para>
+            La récupération de ces objets se fait alors de manière plus clarifiée:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$bootstrap->bootstrap('My_Resource_View');
+$view = $bootstrap->getResource('My_Resource_View');
+]]></programlisting>
+
+        <para>
+            La troisième méthode découle des deux précédentes. Il est possible de donner un nom
+            court à n'importe quelle classe. Ajoutez une variable publique <varname>$_explicitType</varname>
+            dans la classe du plugin, sa valeur sera alors utilisée comme nom court pour référencer le plugin
+            dans le bootstrap. Définissons par exemple notre propre vue:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
+{
+    public $_explicitType = 'My_View';
+
+    public function init()
+    {
+        // du code ici...
+    }
+}
+]]></programlisting>
+
+        <para>
+            Nous pouvons dès lors lancer cette ressource (bootstrap) ou la récupérer via le nom
+            "<classname>My_View</classname>":
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$bootstrap->bootstrap('My_View');
+$view = $bootstrap->getResource('My_View');
+]]></programlisting>
+
+        <para>
+            Grâce à ses différentes manières de faire, vous pouvez redéfinir des plugins existants, en ajouter
+            ou encore les mixer pour accomplir des tâches d'initialisation complexes.
+        </para>
+    </sect3>
+</sect2>

+ 18 - 0
documentation/manual/fr/module_specs/Zend_Application-CoreFunctionality.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.application.core-functionality" xmlns:xi="http://www.w3.org/2001/XInclude">
+    <title>Fonctionnalités principales</title>
+
+    <para>
+        Ici vous trouverez une documentation type <acronym>API</acronym> concernant les composants coeurs de
+        <classname>Zend_Application</classname>.
+    </para>
+
+    <xi:include href="Zend_Application-CoreFunctionality-Application.xml" />
+    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_Bootstrapper.xml" />
+    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_ResourceBootstrapper.xml" />
+    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_BootstrapAbstract.xml" />
+    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml" />
+    <xi:include href="Zend_Application-CoreFunctionality-Resource_Resource.xml" />
+    <xi:include href="Zend_Application-CoreFunctionality-Resource_ResourceAbstract.xml" />
+</sect1>

+ 13 - 0
documentation/manual/fr/module_specs/Zend_Application-Introduction.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.application.introduction">
+    <title>Introduction</title>
+
+    <para>
+        <classname>Zend_Application</classname> propose une interface de lancement (bootstrap)
+        pour vos applications, permettant la réutilisabilité des ressources utilisées, 
+        la vérification de dépendances et des classes de bootstrap basées sur des modules MVC.
+        Ce composant s'occupe aussi de configurer l'environnement <acronym>PHP</acronym>
+        et propose l'autoload par défaut.
+    </para>
+</sect1>

+ 208 - 0
documentation/manual/fr/module_specs/Zend_Controller-Router-Route-Chain.xml

@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect3 id="zend.controller.router.routes.chain">
+    <title>Zend_Controller_Router_Route_Chain</title>
+
+    <para>
+        <classname>Zend_Controller_Router_Route_Chain</classname> est une route permettant le chainage
+        d'autres routes. Ceci permet de chainer des routes hostnames à des routes de chemin, ou de multiples
+        routes de chemin entre elles, par exemple. Le chainage se configure via des méthodes ou un fichier 
+        de configuration.
+    </para>
+
+    <note>
+        <title>Priorité des paramètres</title>
+        <para>
+            En chainant des routes entre elles, les paramètres de la route la plus externe
+            (la plus proche) ont une prioprité supérieure aux paramètres des routes les plus
+            internes (encapsulées). Définir un contrôleur dans la route externe, puis dans la route
+            interne, c'est celui de la route externe qui sera sélectionné.
+        </para>
+    </note>
+
+    <para>
+        En réalisant le chainage via les méthodes, il existe 2 manières de procéder. La première
+        est de créer un objet <classname>Zend_Controller_Router_Route_Chain</classname> puis 
+        d'appeler la méthode <code>chain()</code> plusieurs fois en lui passant les routes à chainer.
+        La deuxième méthode consiste à créer la première route, par exemple une route hostname, puis
+        d'appeler sa méthode <code>chain()</code> en passant comme paramètre la route qui devrait
+        être ajoutée. Ceci ne modifiera pas la route hostname, mais retournera une instance de
+        <classname>Zend_Controller_Router_Route_Chain</classname> possédant les 2 routes chainées:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+// Créer deux routes
+$hostnameRoute = new Zend_Controller_Router_Route_Hostname(...);
+$pathRoute     = new Zend_Controller_Router_Route(...);
+
+// Première méthode, utiliser l'objet de chainage
+$chainedRoute = new Zend_Controller_Router_Route_Chain();
+$chainedRoute->chain($hostnameRoute)
+             ->chain($pathRoute);
+
+// Deuxième méthode, chainage direct
+$chainedRoute = $hostnameRoute->chain($pathRoute);
+]]></programlisting>
+
+    <para>
+        Le chainage utilise le slash comme séparateur par défaut entre les routes.
+        Pour utiliser un séparateur différent, procédez comme suite:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+// Créer deux routes
+$firstRoute  = new Zend_Controller_Router_Route('foo');
+$secondRoute = new Zend_Controller_Router_Route('bar');
+
+// Chainer les routes avec un séparateur particulier
+$chainedRoute = $firstRoute->chain($secondRoute, '-');
+
+// Assemble la route: "foo-bar"
+echo $chainedRoute->assemble();
+]]></programlisting>
+
+    <sect4 id="zend.controller.router.routes.chain.config">
+        <title>Chainer des routes via Zend_Config</title>
+
+        <para>
+            Pour chainer les route grâce à un fichier de configuration, il faut considérer des paramètres
+            additionnels. L'approche la plus simple consiste à utiliser les paramètres de la
+            section <code>chains</code>. Il s'agit simplement d'une liste de routes qui seront chainées à
+            la route parente. Ce n'est ni le parent, ni un des enfants qui sera ajouté au routeur, mais bien
+            le résultat de la chaine générale. Le nom de cette chaine dans le routeur sera constitué du nom
+            de la route parente séparé du nom des enfants par un tiret (-) par défaut. Voici un exemple:
+        </para>
+
+        <programlisting language="xml"><![CDATA[
+<routes>
+    <www type="Zend_Controller_Router_Route_Hostname">
+        <route>www.example.com</route>
+        <chains>
+            <language type="Zend_Controller_Router_Route">
+                <route>:language</route>
+                <reqs language="[a-z]{2}">
+                <chains>
+                    <index type="Zend_Controller_Router_Route_Static">
+                        <route></route>
+                        <defaults module="default" controller="index" action="index" />
+                    </index>
+                    <imprint type="Zend_Controller_Router_Route_Static">
+                        <route>imprint</route>
+                        <defaults module="default" controller="index" action="index" />
+                    </imprint>
+                </chains>
+            </language>
+        </chains>
+    </www>
+    <users type="Zend_Controller_Router_Route_Hostname">
+        <route>users.example.com</route>
+        <chains>
+            <profile type="Zend_Controller_Router_Route">
+                <route>:username</route>
+                <defaults module="users" controller="profile" action="index" />
+            </profile>
+        </chains>
+    </users>
+    <misc type="Zend_Controller_Router_Route_Static">
+        <route>misc</route>
+    </misc>
+</routes>
+]]></programlisting>
+
+        <para>
+            Le résultat sera 3 routes <code>www-language-index</code>,
+            <code>www-language-imprint</code> et
+            <code>users-language-profile</code> qui seront utilisées en fonction du nom d'hote
+            et de la route <code>misc</code>, qui elle sera utilisée pour tout nom d'hôte.
+        </para>
+
+        <para>
+            Autre manière de faire : utiliser les nom des routes directement. Cela ne peut se faire
+            que pour le niveau racine:
+        </para>
+
+        <programlisting language="xml"><![CDATA[
+<routes>
+    <www type="Zend_Controller_Router_Route_Chain">
+        <route>www.example.com</route>
+    </www>
+    <language type="Zend_Controller_Router_Route">
+        <route>:language</route>
+        <reqs language="[a-z]{2}">
+    </language>
+    <index type="Zend_Controller_Router_Route_Static">
+        <route></route>
+        <defaults module="default" controller="index" action="index" />
+    </index>
+    <imprint type="Zend_Controller_Router_Route_Static">
+        <route>imprint</route>
+        <defaults module="default" controller="index" action="index" />
+    </imprint>
+
+    <www-index type="Zend_Controller_Router_Route_Chain">
+        <chain>www, language, index</chain>
+    </www-index>
+    <www-imprint type="Zend_Controller_Router_Route_Chain">
+        <chain>www, language, imprint</chain>
+    </www-imprint>
+</routes>
+]]></programlisting>
+
+        <para>
+            On peut aussi passer un tableau à <code>chain</code> plutôt que les noms de route séparés par des virgules:
+        </para>
+
+        <programlisting language="xml"><![CDATA[
+<routes>
+    <www-index type="Zend_Controller_Router_Route_Chain">
+        <chain>www</chain>
+        <chain>language</chain>
+        <chain>index</chain>
+    </www-index>
+    <www-imprint type="Zend_Controller_Router_Route_Chain">
+        <chain>www</chain>
+        <chain>language</chain>
+        <chain>imprint</chain>
+    </www-imprint>
+</routes>
+]]></programlisting>
+        <para>
+            Pour spécifier le séparateur de routes avec <classname>Zend_Config</classname>
+            , agissez comme suit:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$config = new Zend_Config(array(
+    'chainName' => array(
+        'type'   => 'Zend_Controller_Router_Route_Static',
+        'route'  => 'foo',
+        'chains' => array(
+            'subRouteName' => array(
+                'type'     => 'Zend_Controller_Router_Route_Static',
+                'route'    => 'bar',
+                'defaults' => array(
+                    'module'      => 'module',
+                     'controller' => 'controller',
+                     'action'     => 'action'
+                )
+            )
+        )
+    )
+));
+
+// Affecte un séparateur avant configuration
+$router->setChainNameSeparator('_separator_')
+
+// Ajoute la configuration
+$outer->addConfig($config);
+
+// La nom de notre route est maintenant: chainName_separator_subRouteName
+echo $this->_router->assemble(array(), 'chainName_separator_subRouteName');
+
+// La preuve: cela affiche /foo/bar
+]]></programlisting>
+    </sect4>
+</sect3>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 166 - 0
documentation/manual/fr/module_specs/Zend_Controller-Router-Route-Rest.xml

@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect3 id="zend.controller.router.routes.rest">
+    <title>Zend_Rest_Route</title>
+
+    <para>
+        Le composant <classname>Zend_Rest</classname> contient une route RESTful pour
+        <classname>Zend_Controller_Router_Rewrite</classname>. Cette route permet un
+        schéma de routage fonction de la méthode <acronym>HTTP</acronym> et de 
+        l'<acronym>URI</acronym> afin d'y faire correspondre un module, contrôleur,
+        et action. Le tableau suivant vous donne un aperçu du schéma de routage.
+    </para>
+
+    <table frame="all">
+        <title>Comportement de Zend_Rest_Route</title>
+
+        <tgroup cols='3' align='left' colsep='1' rowsep='1'>
+            <colspec colname='method' />
+            <colspec colname='URI' />
+            <colspec colname='route' />
+            <thead>
+                <row>
+                    <entry>Méthode</entry>
+                    <entry><acronym>URI</acronym></entry>
+                    <entry>Module_Controller::action</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry>GET</entry>
+                    <entry><filename>/product/ratings/</filename></entry>
+                    <entry><methodname>Product_RatingsController::indexAction()</methodname></entry>
+                </row>
+                <row>
+                    <entry>GET</entry>
+                    <entry><filename>/product/ratings/:id</filename></entry>
+                    <entry><methodname>Product_RatingsController::getAction()</methodname></entry>
+                </row>
+                <row>
+                    <entry>POST</entry>
+                    <entry><filename>/product/ratings</filename></entry>
+                    <entry><methodname>Product_RatingsController::postAction()</methodname></entry>
+                </row>
+                <row>
+                    <entry>PUT</entry>
+                    <entry><filename>/product/ratings/:id</filename></entry>
+                    <entry><methodname>Product_RatingsController::putAction()</methodname></entry>
+                </row>
+                <row>
+                    <entry>DELETE</entry>
+                    <entry><filename>/product/ratings/:id</filename></entry>
+                    <entry>
+                        <methodname>Product_RatingsController::deleteAction()</methodname>
+                    </entry>
+                </row>
+                <row>
+                    <entry>POST</entry>
+                    <entry><filename>/product/ratings/:id?_method="PUT"</filename></entry>
+                    <entry><methodname>Product_RatingsController::putAction()</methodname></entry>
+                </row>
+                <row>
+                    <entry>POST</entry>
+                    <entry><filename>/product/ratings/:id?_method="DELETE"</filename></entry>
+                    <entry>
+                        <methodname>Product_RatingsController::deleteAction()</methodname>
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+
+    <para>
+        Pour activer <classname>Zend_Rest_Route</classname> pour une application entière,
+        construisez en un objet sans paramètre spécifique et ajoutez le comme route par défaut dans le
+        contrôleur frontal:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+$front     = Zend_Controller_Front::getInstance();
+$restRoute = new Zend_Rest_Route($front);
+$front->getRouter()->addRoute('default', $restRoute);
+]]></programlisting>
+
+    <note>
+        <para>
+            Si <classname>Zend_Rest_Route</classname> ne trouve aucun module, contrôleur, action valides,
+            il retournera false et la route suivante sera alors analysée par le routeur.
+        </para>
+    </note>
+
+    <para>
+        Pour activer <classname>Zend_Rest_Route</classname> pour des modules spécifiques, construisez
+        l'objet avec comme troisième paramètre, un tableau de noms de modules:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+$front     = Zend_Controller_Front::getInstance();
+$restRoute = new Zend_Rest_Route($front, array(), array('product'));
+$front->getRouter()->addRoute('rest', $restRoute);
+]]></programlisting>
+
+    <para>
+        Pour activer <classname>Zend_Rest_Route</classname> pour des contrôleurs spécifiques,
+        construisez l'objet avec comme troisième paramètre, un tableau de noms de contrôleurs
+        en correspondance avec des noms de modules.
+    </para>
+
+    <programlisting language="php"><![CDATA[
+$front     = Zend_Controller_Front::getInstance();
+$restRoute = new Zend_Rest_Route($front, array(), array(
+    'product' => array('ratings')
+));
+$front->getRouter()->addRoute('rest', $restRoute);
+]]></programlisting>
+
+    <sect4 id="zend.rest.controller">
+        <title>Zend_Rest_Controller</title>
+
+        <para>
+            Pour vous aidez à utiliser des contrôleurs avec
+            <classname>Zend_Rest_Route</classname>, faites les étendre
+            <classname>Zend_Rest_Controller</classname>.
+            <classname>Zend_Rest_Controller</classname> définit les 5 opérations RESTful les
+            plus connues sous forme de méthodes abstraites.
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    <emphasis><methodname>indexAction()</methodname></emphasis> -
+                    Devrait récupérer un index des ressources et le passer à la vue.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis><methodname>getAction()</methodname></emphasis> -
+                    Devrait récupérer des données d'une ressource définie par <acronym>URI</acronym>
+                    et les passer à la vue.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis><methodname>postAction()</methodname></emphasis> -
+                    Devrait accepter une nouvelle ressource et la faire persister (la sauver).
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis><methodname>putAction()</methodname></emphasis> -
+                    Devrait accepter une ressource indentifiée par <acronym>URI</acronym> et
+                    la faire persister (la sauver).
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis><methodname>deleteAction()</methodname></emphasis> -
+                    Devrait supprimer la ressource identifiée par <acronym>URI</acronym>.
+                </para>
+            </listitem>
+        </itemizedlist>
+
+    </sect4>
+</sect3>
+<!--
+vim:se ts=4 sw=4 et:
+-->