2
0

Zend_View-Helpers-Translate.xml 9.1 KB

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