| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="performance.localization">
- <title>Internationalisation (i18n) and Localisation (l10n)</title>
- <para>
- Internationaliser et localiser un site sont des manières fantastiques d'étendre votre
- audience et de s'assurer que tous les visiteurs peuvent trouver l'information dont ils ont
- besoin. Cependant, ceci entraîne souvent une dégradation de performance. Ci-dessous vous
- trouverez des stratégies à utiliser pour réduire la surcharge due à l'I18N et à la
- L10N.
- </para>
- <sect2 id="performance.localization.translationadapter">
- <title>Quel adaptateur de traduction dois-je utiliser ?</title>
- <para>
- Tous les adaptateurs de traduction ne sont pas conçus de la même façon. Certains
- ont plus de fonctionnalités que d'autres, et certains sont plus performants que
- d'autres. De plus, vous pouvez avoir des contraintes qui vous forcent à utiliser un
- adaptateur en particulier. Cependant si vous avez le choix, quels adaptateurs sont les
- plus rapides ?
- </para>
- <sect3 id="performance.localization.translationadapter.fastest">
- <title>Utiliser les adaptateurs de traduction non-XML pour plus de rapidité</title>
- <para>
- Zend Framework embarque toute une variété d'adaptateurs de traduction. Une
- moitié de ceux-ci utilisent un format XML, entraînant une surcharge mémoire et des
- pertes de performance. Heureusement, il existe plusieurs adaptateurs basés sur
- d'autres formats qui peuvent être analysés beaucoup plus rapidement. Par ordre de
- vitesse, du plus rapide au plus lent, ils sont :
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Array</emphasis> : celui-ci est le plus rapide, puisqu'il
- est, par définition, analysé dans un format natif de PHP immédiatement lors
- de son inclusion.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>CSV</emphasis> : utilises <code>fgetcsv()</code> pour
- analyser un fichier CSV file et le transforme en un format PHP natif.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>INI</emphasis> : utilises <code>parse_ini_file()</code> pour
- analyser un fichier INI file et le transforme en un format PHP natif.
- Celui-ci et l'adaptateur CSV sont équivalent en terme de performance.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Gettext</emphasis> : l'adaptateur Gettext de Zend Framework
- <emphasis>n'utilise pas</emphasis> l'extension gettext puisqu'elle n'est pas
- thread safe et ne permet pas de spécifier plus d'une locale par serveur. En
- conséquence, il est plus lent que d'utiliser l'extension Gettext
- directement, mais comme le format Gettext est binaire, il reste plus rapide
- à analyser qu'un format XML.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Si l'un de vos besoins principaux est la performance, nous vous conseillons
- d'utiliser l'un des adaptateurs ci-dessus.
- </para>
- </sect3>
- </sect2>
- <sect2 id="performance.localization.cache">
- <title>
- Comment peut-on améliorer les performances de la traduction et de la localisation ?
- </title>
- <para>
- Peut-être, pour certaines raisons, vous êtes limité à un adaptateur de traduction
- de type XML. Ou peut-être vous voudriez accélérer des choses encore plus. Ou peut-être
- vous voulez rendre des opérations de localisation plus rapides. Comment pouvez-vous
- faire ceci ?
- </para>
- <sect3 id="performance.localization.cache.usage">
- <title>Utiliser les caches de traductions et de localisation</title>
- <para>
- A la fois <classname>Zend_Translate</classname> et
- <classname>Zend_Locale</classname> implémente une fonctionnalité de mise en cache
- qui peuvent considérablement améliorer les performances. Dans chacun des cas, le
- goulot principal est typiquement la lecture des fichiers, pas la réelle
- consultation ; la mise en cache élimine la nécessité de relire de nouveau les
- fichiers de traduction ou de localisation.
- </para>
- <para>
- Vous pouvez lire plus d'informations concernant la mise en cache
- d'informations de traduction ou de localisation dans les paragraphes suivants :
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <link linkend="zend.translate.adapter.caching">Mise en cache pour
- <classname>Zend_Translate</classname></link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="zend.locale.cache">Mise en cache pour
- <classname>Zend_Locale</classname></link>
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
- </sect1>
|