<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.currency.usage">
    <title>Utiliser Zend_Currency</title>

    <sect2 id="zend.currency.usage.generic">
        <title>Utilisation de base</title>

        <para>
            La manière la plus simple consiste à se reposer sur la locale de l'utilisateur. Lorsque vous créez
            une instance de <classname>Zend_Currency</classname> sans préciser d'options, la locale du client sera alors
            utilisée.
        </para>

        <example id="zend.currency.usage.generic.example-1">
            <title>Créer une monnaie avec les paramètres du client</title>

            <para>
                Imaginons un client dont la locale est "en_US" dans son navigateur. Dans ce cas,
                <classname>Zend_Currency</classname> détectera automatiquement la monnaie à utiliser.
            </para>

            <programlisting language="php"><![CDATA[
$currency = new Zend_Currency();

// Voyons les paramètres par défaut régis par la locale utilisateur
// var_dump($currency);
]]></programlisting>

            <para>
                L'objet crée va alors contenir une monnaie "US Dollar" car il s'agit de la monnaie affectée
                aux USA. D'autres options ont aussi été affectées comme le signe "$" ou l'abbréviation
                 "USD".
            </para>
        </example>

        <note>
            <title>La détection automatique par locale ne fonctionne pas toujours</title>

            <para>
                La détection automatique par locale ne fonctionne pas toujours car
                <classname>Zend_Currency</classname> nécessite une locale incluant la région. Si le client
                utilise une locale courte ("en"), <classname>Zend_Currency</classname> ne sait pas quelle
                région parmi les 30 possibles choisir. Une exception sera alors levée.
            </para>

            <para>
                Un client peut aussi déregler la locale dans son navigateur, ou la supprimer. Ainsi le paramètre
                de l'environnement sera alors utilisé pour la locale, ce qui peut mener à des comportements non
                attendus ou des exceptions.
            </para>
        </note>
    </sect2>

    <sect2 id="zend.currency.usage.locale">
        <title>Créer une monnaie basée sur une locale</title>

        <para>
            Pour éviter ce genre de problème, précisez manuellement la locale à utiliser.
        </para>

        <programlisting language="php"><![CDATA[
$currency = new Zend_Currency('en_US');

// Utilisation de l'option 'locale'
// $currency = new Zend_Currency(array('locale' => 'en_US'));

// Voir la monnaie avec les paramètres actuels fixés à 'en_US'
// var_dump($currency);
]]></programlisting>

        <para>
            Dans l'exemple ci-dessus, nous ne sommes plus dépendant du client.
        </para>

        <para>
            <classname>Zend_Currency</classname> supporte aussi l'utilisation d'une locale globale.
            Mettez une instance de <classname>Zend_Locale</classname> dans le registre comme montré
            ci-après. Dans un tel cas, l'option locale n'est plus obligatoire pour chaque instance
            et la même locale sera utilisée partout, tout le temps.
        </para>

        <programlisting language="php"><![CDATA[
// dans le bootstrap
$locale = new Zend_Locale('de_AT');
Zend_Registry::set('Zend_Locale', $locale);

// quelque part dans l'application
$currency = new Zend_Currency();
]]></programlisting>
    </sect2>

    <sect2 id="zend.currency.usage.territory">
        <title>Création de monnaie basée sur un pays</title>

        <para>
            <classname>Zend_Currency</classname> est aussi capable de travailler à partir d'un pays
            fourni en utilisant <classname>Zend_Locale</classname> en interne.
        </para>

        <programlisting language="php"><![CDATA[
$currency = new Zend_Currency('US');

// Voir le réglage courant qui vaut 'en_US'
// var_dump($currency);
]]></programlisting>

        <note>
            <title>Mettre en majuscule les pays</title>

            <para>
                Quand vous savez que vous utilisez un pays, vous devez le mettre en majuscule.
                Sinon vous pourriez croire que vous recevez un fausse locale. Par exemple quan
                vous donnez "om", vous pourriez alors espérer retrouver "ar_OM". Mais en ait
                il s'agira de "om" qui est aussi une langue.
            </para>

            <para>
                Ainsi mettez toujours en majuscule l'entrée quand vous savez qu'il s'agit d'un
                pays.
            </para>
        </note>
    </sect2>
</sect1>
