Zend_View-Helpers-Translate.xml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 13826 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.view.helpers.initial.translate">
  5. <title>L'aide de vue Translate</title>
  6. <para>Souvent le sites Web sont disponibles en plusieurs langues. Pour traduire le contenu d'un site, vous pouvez
  7. simplement utiliser <link linkend="zend.translate.introduction">Zend Translate</link> et pour intégrer <code>Zend
  8. Translate</code> à l'intérieur de vos vues, vous devriez utiliser l'aide de vue <code>Translate</code>.</para>
  9. <para>Dans tous les exemples suivants nous allons utiliser l'adaptateur de traduction <code>Array</code>. Bien sûr
  10. vous pouvez aussi utiliser toute instance de <classname>Zend_Translate</classname> ainsi que toutes sous-classes de
  11. <classname>Zend_Translate_Adapter</classname>. Il y a plusieurs manières d'initialiser l'aide de vue <code>Translate</code>
  12. :</para>
  13. <itemizedlist>
  14. <listitem>
  15. <para>enregistré préalablement dans <classname>Zend_Registry</classname></para>
  16. </listitem>
  17. <listitem>
  18. <para>après, par l'interface fluide</para>
  19. </listitem>
  20. <listitem>
  21. <para>directement en initialisant la classe</para>
  22. </listitem>
  23. </itemizedlist>
  24. <para>Une instance préalablement enregistré de <classname>Zend_Translate</classname> est l'utilisation préférée pour cette
  25. aide. Vous pouvez ainsi sélectionner la locale à utiliser avant d'ajouter l'adaptateur dans le registre.</para>
  26. <note>
  27. <para>Nous parlons de locales et non de langues car une langue peut aussi contenir une région. Par exemple
  28. l'anglais est parlé en différents dialectes. Il peut y avoir une traduction pour l'anglais et une pour
  29. l'américain. Ainsi, nous disons "locale" plutôt que "langues".</para>
  30. </note>
  31. <example id="zend.view.helpers.initial.translate.registered">
  32. <title>Instance enregistrée</title>
  33. <para>Pour utiliser une instance enregistrée, créez une instance de <classname>Zend_Translate</classname> ou
  34. <classname>Zend_Translate_Adapter</classname> et enregistrez la dans <classname>Zend_Registry</classname> en utilisant la clé
  35. <classname>Zend_Translate</classname>.</para>
  36. <programlisting role="php"><![CDATA[
  37. // notre adaptateur d'exemple
  38. $adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
  39. Zend_Registry::set('Zend_Translate', $adapter);
  40. // à l'intérieur de votre vue
  41. echo $this->translate('simple');
  42. // ceci retourne 'einfach'
  43. ]]></programlisting>
  44. </example>
  45. <para>Si vous êtes plus familier avec l'interface fluide, alors vous pouvez aussi créer une instance à l'intérieur
  46. de votre vue et initialiser l'aide ensuite.</para>
  47. <example id="zend.view.helpers.initial.translate.afterwards">
  48. <title>A l'intérieur de la vue</title>
  49. <para>Pour utiliser l'interface fluide, créez une instance de <classname>Zend_Translate</classname> ou
  50. <classname>Zend_Translate_Adapter</classname>, appelez l'aide sans paramètres, et appelez la méthode
  51. <code>setTranslator()</code>.</para>
  52. <programlisting role="php"><![CDATA[
  53. // à l'intérieur de votre vue
  54. $adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
  55. $this->translate()->setTranslator($adapter)->translate('simple');
  56. // ceci retourne 'einfach'
  57. ]]></programlisting>
  58. </example>
  59. <para>Si vous utilisez votre aide sans <classname>Zend_View</classname>, alors vous pouvez aussi l'utiliser
  60. directement.</para>
  61. <example id="zend.view.helpers.initial.translate.directly">
  62. <title>Utilisation directe</title>
  63. <programlisting role="php"><![CDATA[
  64. // notre adaptateur d'exemple
  65. $adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
  66. // initialiser l'adaptateur
  67. $translate = new Zend_View_Helper_Translate($adapter);
  68. print $translate->translate('simple');
  69. // ceci retourne 'einfach'
  70. ]]></programlisting>
  71. <para>Vous devriez utiliser cette façon de faire si vous ne travaillez pas avec <classname>Zend_View</classname> et que
  72. vous avez besoin de créer des affichages traduits.</para>
  73. </example>
  74. <para>Comme vu auparavant, la méthode <code>translate()</code> est utilisé pour retourner la traduction. Appelez la
  75. simplement avec l'identifiant de message de votre adaptateur de traduction. Mais il peut aussi avoir à remplacer des
  76. paramètres dans la chaîne de traduction. Donc, il accepte des paramètres de deux manières : soit comme une liste de
  77. paramètres, soit comme un tableau de paramètres. Par exemple :</para>
  78. <example id="zend.view.helpers.initial.translate.parameter">
  79. <title>Paramètres unique</title>
  80. <para>Pour utiliser un paramètre unique, ajoutez le en fin de méthode :</para>
  81. <programlisting role="php"><![CDATA[
  82. // à l'intérieur de votre vue
  83. $date = "Monday";
  84. $this->translate("Today is %1\$s", $date);
  85. // ceci retourne 'Heute ist Monday'
  86. ]]></programlisting>
  87. </example>
  88. <note>
  89. <para>Gardez à l'esprit que si vous utilisez des paramètres qui sont aussi des textes, vous pouvez aussi avoir à
  90. traduire ces paramètres.</para>
  91. </note>
  92. <example id="zend.view.helpers.initial.translate.parameterlist">
  93. <title>Liste de paramètres</title>
  94. <para>Ou utiliser une liste de paramètres et ajoutez les en fin de méthode :</para>
  95. <programlisting role="php"><![CDATA[
  96. // à l'intérieur de votre vue
  97. $date = "Monday";
  98. $month = "April";
  99. $time = "11:20:55";
  100. $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s",
  101. $date,
  102. $month,
  103. $time);
  104. // ceci retourne 'Heute ist Monday in April. Aktuelle Zeit: 11:20:55'
  105. ]]></programlisting>
  106. </example>
  107. <example id="zend.view.helpers.initial.translate.parameterarray">
  108. <title>Tableau de paramètres</title>
  109. <para>Ou utiliser un tableau de paramètres et ajoutez le en fin de méthode :</para>
  110. <programlisting role="php"><![CDATA[
  111. // à l'intérieur de votre vue
  112. $date = array("Monday", "April", "11:20:55");
  113. $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s", $date);
  114. // Could return 'Heute ist Monday in April. Aktuelle Zeit: 11:20:55'
  115. ]]></programlisting>
  116. </example>
  117. <para>Parfois il est nécessaire de changer la locale pour une traduction. Ceci peut être fait soit dynamiquement par
  118. traduction ou statiquement pour toutes les traductions suivantes. Et vous pouvez utiliser ceci avec une liste de
  119. paramètres ou un tableau de paramètres. Dans les deux cas la locale doit être fournie comme un paramètre unique
  120. final.</para>
  121. <example id="zend.view.helpers.initial.translate.dynamic">
  122. <title>Changement dynamique de la locale</title>
  123. <programlisting role="php"><![CDATA[
  124. // à l'intérieur de votre vue
  125. $date = array("Monday", "April", "11:20:55");
  126. $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s", $date, 'it');
  127. ]]></programlisting>
  128. </example>
  129. <para>Cet exemple retourne la traduction italienne pour l'identifiant de message. Mais la locale ne sera utilisée
  130. qu'une seule fois. La traduction suivante utilisera la locale de l'adaptateur. Normalement vous réglerez la locale
  131. au niveau de votre adaptateur avant de le mettre dans le registre. Mais vous pouvez aussi paramétrer la locale avec
  132. l'aide de vue :</para>
  133. <example id="zend.view.helpers.initial.translate.static">
  134. <title>Changement statique de la locale</title>
  135. <programlisting role="php"><![CDATA[
  136. // à l'intérieur de votre vue
  137. $date = array("Monday", "April", "11:20:55");
  138. $this->translate()->setLocale('it');
  139. $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s", $date);
  140. ]]></programlisting>
  141. </example>
  142. <para>L'exemple ci-dessus paramètre <code>'it'</code> comme nouvelle locale par défaut, elle sera utilisée pour
  143. toutes les traductions ultérieures.</para>
  144. <para>Bien sûr il existe aussi la méthode <code>getLocale()</code> pour récupérer le réglage courant de la
  145. locale.</para>
  146. <example id="zend.view.helpers.initial.translate.getlocale">
  147. <title>Récupération de la locale courante</title>
  148. <programlisting role="php"><![CDATA[
  149. // à l'intérieur de votre vue
  150. $date = array("Monday", "April", "11:20:55");
  151. // retourne 'de' comme réglé dans les exemples précédents
  152. $this->translate()->getLocale();
  153. $this->translate()->setLocale('it');
  154. $this->translate("Today is %1\$s in %2\$s. Actual time: %3\$s", $date);
  155. // retourne 'it' comme nouvelle locale par défaut
  156. $this->translate()->getLocale();
  157. ]]></programlisting>
  158. </example>
  159. </sect3>