<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect2 id="zend.application.available-resources.locale">
    <title>Zend_Application_Resource_Locale</title>

    <para>
        <classname>Zend_Application_Resource_Locale</classname> peut être utilisé pour paramétrer
        de manière globale la région dans une application qui sera alors utilisée par toutes les
        classes et les composants qui travaille avec la localisation et l'internationalisation.
        Par défaut la locale est sauvegardée dans une entrée de <classname>Zend_Registry</classname>
        avec la clé '<property>Zend_Locale</property>'.
    </para>

    <para>
        Il y a basiquement trois cas d'utilisation du plugin de ressource Locale. Chacun pouvant
        être utilisé suivant les besoins de votre application.
    </para>

    <sect3 id="zend.application.available-resources.locale.auto">
        <title>Autodétection de la locale à utiliser</title>

        <para>
            Sans spécifier d'options pour
            <classname>Zend_Application_Resource_Locale</classname>,
            <classname>Zend_Locale</classname> va détecter automatiquement la locale, que votre
            application va utiliser.
        </para>

        <para>
            Cette détection fonctionne car votre client émet la langue souhaitée à l'intérieur
            de sa requête <acronym>HTTP</acronym>. Normalement le navigateur client envoie
            les langues qu'il accepte de voir, et <classname>Zend_Locale</classname> utilise
            cette information pour la détection.
        </para>

        <para>
            Mais il y a deux problèmes avec cette approche&#160;:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    Le navigateur pourrait ne paramétrer aucune langue
                </para>
            </listitem>

            <listitem>
                <para>
                    L'utilisateur pourrait avoir manuellement paramétrer une locale qui n'existe pas
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Dans ces deux cas <classname>Zend_Locale</classname> reviendra vers d'autres
            mécanismes pour détecter la locale&#160;:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    Quand une locale inexistante a été fournie, <classname>Zend_Locale</classname>
                    essaie de réduire la chaîne.
                </para>

                <para>
                    Quand, par exemple, <emphasis>fr_ZZ</emphasis> a été paramétré, il est
                    automatiquement réduit en <emphasis>fr</emphasis>. Dans ce cas
                    <emphasis>fr</emphasis> sera utilisé en tant que locale pour votre application.
                </para>
            </listitem>

            <listitem>
                <para>
                    Quand la locale ne peut pas non plus être reconnue même après réduction, la
                    locale de votre environnement (serveur Web) sera utilisée. La plupart des
                    environnements des hébergeurs utilise <emphasis>en</emphasis> en tant que
                    locale.
                </para>
            </listitem>

            <listitem>
                <para>
                    Quand la locale de l'environnement ne peut pas non plus être détectée,
                    <classname>Zend_Locale</classname> utilisera sa locale par défaut, qui
                    est par défaut <emphasis>en</emphasis>.
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Pour de plus amples informations concernant la détection des locales, lisez <link
                linkend="zend.locale.selection.automatic">le chapitre sur la déctection automatique
                avec Zend_Locale</link>.
        </para>
    </sect3>

    <sect3 id="zend.application.available-resources.locale.fallback">
        <title>Autodétection de la locale avec ajout de votre propre valeur par défaut</title>

        <para>
            L'autodétection ci-dessus peut entraîner des problèmes quand la locale ne peut pas être
            détectée et que vous souhaitez une autre locale par défaut que <emphasis>en</emphasis>.
            Pour empêcher ceci, <classname>Zend_Application_Resource_Locale</classname> vous permet
            de paramétrer votre propre locale qui sera utilisée si aucune locale ne peut être
            détectée.
        </para>

        <example id="zend.application.available-resources.locale.configExampleDetectAndFallback">
            <title>Autodétecter la locale et paramétrer une valeur par défaut</title>

            <para>
                L'extrait suivant montre comment spécifier sa propre locale utilisée si le client
                n'envoie pas lui-même une locale.
            </para>

            <programlisting language="ini"><![CDATA[
; tentative de détection automatique,
; si impossible alors on prend fr_FR.
resources.locale.default = "fr_FR"
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.application.available-resources.locale.forcing">
        <title>Forcer l'utilisation d'une locale</title>

        <para>
            Parfois il peut être pratique de définir la locale qui devra être utilisée. Ceci peut
            être fait en utilisant l'option <property>force</property>.
        </para>

        <para>
            Dans ce cas, cette locale seule sera utilisée et la détection automatique sera
            désactivée.
        </para>

        <example id="zend.application.available-resources.locale.configExampleFallbackOnly">
            <title>Définition de la locale à utiliser</title>

            <para>
                L'extrait suivant montre comment spécifier la locale à utiliser pour toute votre
                application.
            </para>

            <programlisting language="ini"><![CDATA[
; dans tous les cas, fr_FR doit être utilisé
resources.locale.default = "fr_FR"
resources.locale.force = true
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.application.available-resources.locale.cache">
        <title>Configurer le modèle de cache</title>

        <para>
            Lorsque vous ne définissez pas de cache, <classname>Zend_Locale</classname> définit son
            propre cache avec le backend fichier par défaut. Cependant, vous pouvez utiliser un nom
            de modèle du gestionnaire de cache, ou une instance de
            <classname>Zend_Cache_Core</classname>, pour choisir le backend, ou d'autres options.
            Pour plus d'informations, veuillez vous reporter à <xref linkend="zend.locale.cache" />.
        </para>

        <example id="zend.application.available-resources.locale.configExampleCache">
            <title>Définition du cache avec un modèle du gestionnaire</title>

            <programlisting language="ini"><![CDATA[
; Optionnellement, on peut utiliser un modèle du gestionnaire de cache :
resources.locale.cache = "locale"
]]></programlisting>
        </example>
    </sect3>
</sect2>
