Zend_Translate-Introduction.xml 5.3 KB

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