| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <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 language="php"><![CDATA[
- // notre adaptateur d'exemple
- $adapter = new Zend_Translate(
- array(
- 'adapter' => 'array',
- 'content' => array('simple' => 'einfach'),
- 'locale' => '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
- <methodname>setTranslator()</methodname>.
- </para>
- <programlisting language="php"><![CDATA[
- // à l'intérieur de votre vue
- $adapter = new Zend_Translate(
- array(
- 'adapter' => 'array',
- 'content' => array('simple' => 'einfach'),
- 'locale' => '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 language="php"><![CDATA[
- // notre adaptateur d'exemple
- $adapter = new Zend_Translate(
- array(
- 'adapter' => 'array',
- 'content' => array('simple' => 'einfach'),
- 'locale' => '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 <methodname>translate()</methodname> 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 language="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 language="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 language="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 language="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 language="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 <methodname>getLocale()</methodname> 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 language="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>
|