Zend_Translate-Introduction.xml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.translate.introduction">
  5. <title>Introduction</title>
  6. <para>
  7. <classname>Zend_Translate</classname> est la solution de Zend Framework pour des
  8. applications multilingues.
  9. </para>
  10. <para>
  11. Dans des applications multilingues, le contenu doit être traduit en plusieurs langues
  12. et l'affichage du contenu dépend de la langue de l'utilisateur. <acronym>PHP</acronym> offre déjà plusieurs
  13. manières de manipuler de tels problèmes, toutefois la solution <acronym>PHP</acronym> a quelques problèmes
  14. :
  15. </para>
  16. <itemizedlist>
  17. <listitem>
  18. <para>
  19. <emphasis>API contradictoire :</emphasis> Il n'y a pas d'API unique pour les
  20. différents formats de source. L'utilisation du gettext par exemple est très
  21. compliquée.
  22. </para>
  23. </listitem>
  24. <listitem>
  25. <para>
  26. <emphasis>PHP supporte seulement gettext et les tableaux natifs :</emphasis>
  27. <acronym>PHP</acronym> lui-même offre seulement le support des tableaux ou du gettext. Tous autres
  28. formats de source doivent être codés manuellement, parce qu'il n'y a aucun support
  29. native.
  30. </para>
  31. </listitem>
  32. <listitem>
  33. <para>
  34. <emphasis>Pas de détection de la langue par défaut :</emphasis> La langue par
  35. défaut de l'utilisateur ne peut pas être détectée sans une connaissance plus
  36. approfondie des différents navigateurs Web.
  37. </para>
  38. </listitem>
  39. <listitem>
  40. <para>
  41. <emphasis>Gettext n'est pas "thread-safe" :</emphasis> La bibliothèque gettext
  42. de <acronym>PHP</acronym> n'est pas "thread safe", et elle ne devrait pas être employée dans un
  43. environnement multi-threading. C'est dû à des problèmes de gettext lui-même, pas de
  44. <acronym>PHP</acronym>, mais c'est un problème existant.
  45. </para>
  46. </listitem>
  47. </itemizedlist>
  48. <para>
  49. <classname>Zend_Translate</classname> n'a pas les problèmes ci-dessus. C'est pourquoi
  50. nous recommandons d'employer <classname>Zend_Translate</classname> au lieu des fonctions
  51. natives de <acronym>PHP</acronym>. Les avantages de <classname>Zend_Translate</classname> sont :
  52. </para>
  53. <itemizedlist>
  54. <listitem>
  55. <para>
  56. <emphasis>Support des formats multiples de source :</emphasis>
  57. <classname>Zend_Translate</classname> supporte plusieurs formats de source, y
  58. compris ceux supportés par <acronym>PHP</acronym>, et d'autres formats comprenant les fichiers de type
  59. TMX et CSV.
  60. </para>
  61. </listitem>
  62. <listitem>
  63. <para>
  64. <emphasis>Thread-safe gettext :</emphasis> Le lecteur de gettext de
  65. <classname>Zend_Translate</classname> est "thread-safe". Il n'y a aucun problème en
  66. utilisant le dans les environnements multi-threadés.
  67. </para>
  68. </listitem>
  69. <listitem>
  70. <para>
  71. <emphasis>API générique et facile :</emphasis> L'API de
  72. <classname>Zend_Translate</classname> est très simple et exige seulement une poignée
  73. de fonctions. Ainsi il est facile d'apprendre et facile à maintenir. Tous les
  74. formats de source sont manipulés la même manière, ainsi si le format de vos fichiers
  75. source changent de Gettext en TMX, vous devez seulement changer une ligne de code
  76. pour indiquer l'adaptateur de stockage.
  77. </para>
  78. </listitem>
  79. <listitem>
  80. <para>
  81. <emphasis>Détection de la langue de l'utilisateur :</emphasis>
  82. <classname>Zend_Translate</classname> peut détecter et se servir de la langue
  83. préférée de l'utilisateur accédant à l'application.
  84. </para>
  85. </listitem>
  86. <listitem>
  87. <para>
  88. <emphasis>Détection automatique de la source :</emphasis>
  89. <classname>Zend_Translate</classname> est capable de détecter et d'intégrer des
  90. fichiers source multiples et de détecter de plus la localisation à utiliser selon
  91. les répertoires ou les noms de fichier.
  92. </para>
  93. </listitem>
  94. </itemizedlist>
  95. <sect2 id="zend.translate.introduction.adapters">
  96. <title>Démarrer avec le multi-linguisme</title>
  97. <para>
  98. Ce que nous voulons faire c'est traduire les chaînes de caractère générées afin
  99. que la vue produise un contenu traduit. Autrement nous devrions écrire une vue pour
  100. chaque langue, et personne ne voudraient faire ceci. Généralement, les sites
  101. multilingues sont très simples dans leur conception. Il y a seulement quatre étapes que
  102. vous devrez faire :
  103. </para>
  104. <orderedlist numeration="arabic">
  105. <listitem>
  106. <para>Décider quel adaptateur vous voulez utiliser</para>
  107. </listitem>
  108. <listitem>
  109. <para>
  110. Créer votre vue et intégrer <classname>Zend_Translate</classname> à votre
  111. code
  112. </para>
  113. </listitem>
  114. <listitem>
  115. <para>Créer le fichier source de votre code</para>
  116. </listitem>
  117. <listitem>
  118. <para>Traduire votre fichier source dans les langues désirées.</para>
  119. </listitem>
  120. </orderedlist>
  121. <para>
  122. Les sections suivantes vous guident par chacune des quatre étapes. Lisez les pages
  123. suivantes pour créer votre propre application Web multilingue.
  124. </para>
  125. </sect2>
  126. </sect1>