| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <!-- EN-Revision: 12893 -->
- <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>
|