| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <?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>
|