performance-localization.xml 5.0 KB

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