performance-localization.xml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="performance.localization">
  5. <title>Internationalisation (i18n) and Localisation (l10n)</title>
  6. <para>
  7. Internationaliser et localiser un site sont des manières fantastiques d'étendre votre
  8. audience et de s'assurer que tous les visiteurs peuvent trouver l'information dont ils ont
  9. besoin. Cependant, ceci entraîne souvent une dégradation de performance. Ci-dessous vous
  10. trouverez des stratégies à utiliser pour réduire la surcharge due à l'I18N et à la
  11. L10N.
  12. </para>
  13. <sect2 id="performance.localization.translationadapter">
  14. <title>Quel adaptateur de traduction dois-je utiliser&#160;?</title>
  15. <para>
  16. Tous les adaptateurs de traduction ne sont pas conçus de la même façon. Certains
  17. ont plus de fonctionnalités que d'autres, et certains sont plus performants que
  18. d'autres. De plus, vous pouvez avoir des contraintes qui vous forcent à utiliser un
  19. adaptateur en particulier. Cependant si vous avez le choix, quels adaptateurs sont les
  20. plus rapides&#160;?
  21. </para>
  22. <sect3 id="performance.localization.translationadapter.fastest">
  23. <title>Utiliser les adaptateurs de traduction non-XML pour plus de rapidité</title>
  24. <para>
  25. Zend Framework embarque toute une variété d'adaptateurs de traduction. Une
  26. moitié de ceux-ci utilisent un format XML, entraînant une surcharge mémoire et des
  27. pertes de performance. Heureusement, il existe plusieurs adaptateurs basés sur
  28. d'autres formats qui peuvent être analysés beaucoup plus rapidement. Par ordre de
  29. vitesse, du plus rapide au plus lent, ils sont&#160;:
  30. </para>
  31. <itemizedlist>
  32. <listitem>
  33. <para>
  34. <emphasis>Array</emphasis>&#160;: celui-ci est le plus rapide, puisqu'il
  35. est, par définition, analysé dans un format natif de PHP immédiatement lors
  36. de son inclusion.
  37. </para>
  38. </listitem>
  39. <listitem>
  40. <para>
  41. <emphasis>CSV</emphasis>&#160;: utilises <code>fgetcsv()</code> pour
  42. analyser un fichier CSV file et le transforme en un format PHP natif.
  43. </para>
  44. </listitem>
  45. <listitem>
  46. <para>
  47. <emphasis>INI</emphasis>&#160;: utilises <code>parse_ini_file()</code> pour
  48. analyser un fichier INI file et le transforme en un format PHP natif.
  49. Celui-ci et l'adaptateur CSV sont équivalent en terme de performance.
  50. </para>
  51. </listitem>
  52. <listitem>
  53. <para>
  54. <emphasis>Gettext</emphasis>&#160;: l'adaptateur Gettext de Zend Framework
  55. <emphasis>n'utilise pas</emphasis> l'extension gettext puisqu'elle n'est pas
  56. thread safe et ne permet pas de spécifier plus d'une locale par serveur. En
  57. conséquence, il est plus lent que d'utiliser l'extension Gettext
  58. directement, mais comme le format Gettext est binaire, il reste plus rapide
  59. à analyser qu'un format XML.
  60. </para>
  61. </listitem>
  62. </itemizedlist>
  63. <para>
  64. Si l'un de vos besoins principaux est la performance, nous vous conseillons
  65. d'utiliser l'un des adaptateurs ci-dessus.
  66. </para>
  67. </sect3>
  68. </sect2>
  69. <sect2 id="performance.localization.cache">
  70. <title>
  71. Comment peut-on améliorer les performances de la traduction et de la localisation&#160;?
  72. </title>
  73. <para>
  74. Peut-être, pour certaines raisons, vous êtes limité à un adaptateur de traduction
  75. de type XML. Ou peut-être vous voudriez accélérer des choses encore plus. Ou peut-être
  76. vous voulez rendre des opérations de localisation plus rapides. Comment pouvez-vous
  77. faire ceci&#160;?
  78. </para>
  79. <sect3 id="performance.localization.cache.usage">
  80. <title>Utiliser les caches de traductions et de localisation</title>
  81. <para>
  82. A la fois <classname>Zend_Translate</classname> et
  83. <classname>Zend_Locale</classname> implémente une fonctionnalité de mise en cache
  84. qui peuvent considérablement améliorer les performances. Dans chacun des cas, le
  85. goulot principal est typiquement la lecture des fichiers, pas la réelle
  86. consultation&#160;; la mise en cache élimine la nécessité de relire de nouveau les
  87. fichiers de traduction ou de localisation.
  88. </para>
  89. <para>
  90. Vous pouvez lire plus d'informations concernant la mise en cache
  91. d'informations de traduction ou de localisation dans les paragraphes suivants&#160;:
  92. </para>
  93. <itemizedlist>
  94. <listitem>
  95. <para>
  96. <link linkend="zend.translate.adapter.caching">Mise en cache pour
  97. <classname>Zend_Translate</classname></link>
  98. </para>
  99. </listitem>
  100. <listitem>
  101. <para>
  102. <link linkend="zend.locale.cache">Mise en cache pour
  103. <classname>Zend_Locale</classname></link>
  104. </para>
  105. </listitem>
  106. </itemizedlist>
  107. </sect3>
  108. </sect2>
  109. </sect1>