| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- <!-- EN-Revision: 13826 -->
- <sect3 id="zend.view.helpers.initial.translate">
- <title>L'aide de vue Translate</title>
- <para>Souvent le sites Web sont disponibles en plusieurs langues. Pour traduire le contenu d'un site, vous pouvez
- simplement utiliser <link linkend="zend.translate.introduction">Zend Translate</link> et pour intégrer <code>Zend
- Translate</code> à l'intérieur de vos vues, vous devriez utiliser l'aide de vue <code>Translate</code>.</para>
- <para>Dans tous les exemples suivants nous allons utiliser l'adaptateur de traduction <code>Array</code>. Bien sûr
- vous pouvez aussi utiliser toute instance de <classname>Zend_Translate</classname> ainsi que toutes sous-classes de
- <classname>Zend_Translate_Adapter</classname>. Il y a plusieurs manières d'initialiser l'aide de vue <code>Translate</code>
- :</para>
- <itemizedlist>
- <listitem>
- <para>enregistré préalablement dans <classname>Zend_Registry</classname></para>
- </listitem>
- <listitem>
- <para>après, par l'interface fluide</para>
- </listitem>
- <listitem>
- <para>directement en initialisant la classe</para>
- </listitem>
- </itemizedlist>
- <para>Une instance préalablement enregistré de <classname>Zend_Translate</classname> est l'utilisation préférée pour cette
- aide. Vous pouvez ainsi sélectionner la locale à utiliser avant d'ajouter l'adaptateur dans le registre.</para>
- <note>
- <para>Nous parlons de locales et non de langues car une langue peut aussi contenir une région. Par exemple
- l'anglais est parlé en différents dialectes. Il peut y avoir une traduction pour l'anglais et une pour
- l'américain. Ainsi, nous disons "locale" plutôt que "langues".</para>
- </note>
- <example id="zend.view.helpers.initial.translate.registered">
- <title>Instance enregistrée</title>
- <para>Pour utiliser une instance enregistrée, créez une instance de <classname>Zend_Translate</classname> ou
- <classname>Zend_Translate_Adapter</classname> et enregistrez la dans <classname>Zend_Registry</classname> en utilisant la clé
- <classname>Zend_Translate</classname>.</para>
- <programlisting role="php"><![CDATA[
- // notre adaptateur d'exemple
- $adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
- Zend_Registry::set('Zend_Translate', $adapter);
- // à l'intérieur de votre vue
- echo $this->translate('simple');
- // ceci retourne 'einfach'
- ]]></programlisting>
- </example>
- <para>Si vous êtes plus familier avec l'interface fluide, alors vous pouvez aussi créer une instance à l'intérieur
- de votre vue et initialiser l'aide ensuite.</para>
- <example id="zend.view.helpers.initial.translate.afterwards">
- <title>A l'intérieur de la vue</title>
- <para>Pour utiliser l'interface fluide, créez une instance de <classname>Zend_Translate</classname> ou
- <classname>Zend_Translate_Adapter</classname>, appelez l'aide sans paramètres, et appelez la méthode
- <code>setTranslator()</code>.</para>
- <programlisting role="php"><![CDATA[
- // à l'intérieur de votre vue
- $adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
- $this->translate()->setTranslator($adapter)->translate('simple');
- // ceci retourne 'einfach'
- ]]></programlisting>
- </example>
- <para>Si vous utilisez votre aide sans <classname>Zend_View</classname>, alors vous pouvez aussi l'utiliser
- directement.</para>
- <example id="zend.view.helpers.initial.translate.directly">
- <title>Utilisation directe</title>
- <programlisting role="php"><![CDATA[
- // notre adaptateur d'exemple
- $adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
- // initialiser l'adaptateur
- $translate = new Zend_View_Helper_Translate($adapter);
- print $translate->translate('simple');
- // ceci retourne 'einfach'
- ]]></programlisting>
- <para>Vous devriez utiliser cette façon de faire si vous ne travaillez pas avec <classname>Zend_View</classname> et que
- vous avez besoin de créer des affichages traduits.</para>
- </example>
- <para>Comme vu auparavant, la méthode <code>translate()</code> est utilisé pour retourner la traduction. Appelez la
- simplement avec l'identifiant de message de votre adaptateur de traduction. Mais il peut aussi avoir à remplacer des
- paramètres dans la chaîne de traduction. Donc, il accepte des paramètres de deux manières : soit comme une liste de
- paramètres, soit comme un tableau de paramètres. Par exemple :</para>
- <example id="zend.view.helpers.initial.translate.parameter">
- <title>Paramètres unique</title>
- <para>Pour utiliser un paramètre unique, ajoutez le en fin de méthode :</para>
- <programlisting role="php"><![CDATA[
- // à l'intérieur de votre vue
- $date = "Monday";
- $this->translate("Today is %1\$s", $date);
- // ceci retourne 'Heute ist Monday'
- ]]></programlisting>
- </example>
- <note>
- <para>Gardez à l'esprit que si vous utilisez des paramètres qui sont aussi des textes, vous pouvez aussi avoir à
- traduire ces paramètres.</para>
- </note>
- <example id="zend.view.helpers.initial.translate.parameterlist">
- <title>Liste de paramètres</title>
- <para>Ou utiliser une liste de paramètres et ajoutez les en fin de méthode :</para>
- <programlisting role="php"><![CDATA[
- // à l'intérieur de votre vue
- $date = "Monday";
- $month = "April";
- $time = "11:20:55";
- $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s",
- $date,
- $month,
- $time);
- // ceci retourne 'Heute ist Monday in April. Aktuelle Zeit: 11:20:55'
- ]]></programlisting>
- </example>
- <example id="zend.view.helpers.initial.translate.parameterarray">
- <title>Tableau de paramètres</title>
- <para>Ou utiliser un tableau de paramètres et ajoutez le en fin de méthode :</para>
- <programlisting role="php"><![CDATA[
- // à l'intérieur de votre vue
- $date = array("Monday", "April", "11:20:55");
- $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s", $date);
- // Could return 'Heute ist Monday in April. Aktuelle Zeit: 11:20:55'
- ]]></programlisting>
- </example>
- <para>Parfois il est nécessaire de changer la locale pour une traduction. Ceci peut être fait soit dynamiquement par
- traduction ou statiquement pour toutes les traductions suivantes. Et vous pouvez utiliser ceci avec une liste de
- paramètres ou un tableau de paramètres. Dans les deux cas la locale doit être fournie comme un paramètre unique
- final.</para>
- <example id="zend.view.helpers.initial.translate.dynamic">
- <title>Changement dynamique de la locale</title>
- <programlisting role="php"><![CDATA[
- // à l'intérieur de votre vue
- $date = array("Monday", "April", "11:20:55");
- $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s", $date, 'it');
- ]]></programlisting>
- </example>
- <para>Cet exemple retourne la traduction italienne pour l'identifiant de message. Mais la locale ne sera utilisée
- qu'une seule fois. La traduction suivante utilisera la locale de l'adaptateur. Normalement vous réglerez la locale
- au niveau de votre adaptateur avant de le mettre dans le registre. Mais vous pouvez aussi paramétrer la locale avec
- l'aide de vue :</para>
- <example id="zend.view.helpers.initial.translate.static">
- <title>Changement statique de la locale</title>
- <programlisting role="php"><![CDATA[
- // à l'intérieur de votre vue
- $date = array("Monday", "April", "11:20:55");
- $this->translate()->setLocale('it');
- $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s", $date);
- ]]></programlisting>
- </example>
- <para>L'exemple ci-dessus paramètre <code>'it'</code> comme nouvelle locale par défaut, elle sera utilisée pour
- toutes les traductions ultérieures.</para>
- <para>Bien sûr il existe aussi la méthode <code>getLocale()</code> pour récupérer le réglage courant de la
- locale.</para>
- <example id="zend.view.helpers.initial.translate.getlocale">
- <title>Récupération de la locale courante</title>
- <programlisting role="php"><![CDATA[
- // à l'intérieur de votre vue
- $date = array("Monday", "April", "11:20:55");
- // retourne 'de' comme réglé dans les exemples précédents
- $this->translate()->getLocale();
- $this->translate()->setLocale('it');
- $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s", $date);
- // retourne 'it' comme nouvelle locale par défaut
- $this->translate()->getLocale();
- ]]></programlisting>
- </example>
- </sect3>
|