| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="performance.localization">
- <title>Internationalisierung (I18n) und Lokalisierung (L10n)</title>
- <para>
- Internationalisierte und Lokalisierte Sites sind ein fantastischer Weg um seine
- Zuschaueranzahl zu expandieren und sicherzustellen das alle Besucher die Information
- bekommen die Sie benötigen. Trotzdem kommt es oft zu einem Geschwindigkeitsverlust. Anbei
- sind einige Strategien die man verwenden kann um den Overhead von I18n und L10n zu
- verkleinern.
- </para>
- <sect2 id="performance.localization.translationadapter">
- <title>Welchen Übersetzungsadapter sollte ich verwenden?</title>
- <para>
- Nicht alle Übersetzungadapter sind gleich gemacht. Einige haben mehr Feature als
- andere, und einige sind performanter als andere. Zusätzlich kann es sein das man
- geschäftliche Notwendigkeiten hat die einen zwingen einen bestimmten Adapter zu
- verwenden. Trotzdem, welcher Adapter ist der schnellste, wenn man die Wahl hat?
- </para>
- <sect3 id="performance.localization.translationadapter.fastest">
- <title>Verwende nicht-XML Übersetzungsadapter für die größte Geschwindigkeit</title>
- <para>
- Zend Framework wird mit einer Vielzahl von Übersetzungsadaptern ausgeliefert. Die
- Hälfte von Ihnen verwenden ein <acronym>XML</acronym> Format, welches viel Speicher
- benötigt und eine Geschwindkeitseinbuße bedeutet. Glücklicherweise gibt es
- verschiedene Adapter die andere Formate verwenden, die viel schneller geparst
- werden können. In der Reihenfolge Ihrer Geschwindigkeit, vom Schnellsten zum
- Langsamsten, sind das:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Array</emphasis>: Das ist der Schnellste, weil er, von seiner
- Definition her, sofort in ein natives <acronym>PHP</acronym> Format geparst
- und sofort eingefügt wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><acronym>CSV</acronym></emphasis>: Verwendet
- <methodname>fgetcsv()</methodname> um eine <acronym>CSV</acronym> Datei zu
- parsen und transformiert es in ein natives <acronym>PHP</acronym> Format.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><acronym>INI</acronym></emphasis>: Verwendet
- <methodname>parse_ini_file()</methodname> um eine <acronym>INI</acronym>
- Datei zu lesen und Sie in ein natives <acronym>PHP</acronym> Format zu
- transformieren. Dieser und der <acronym>CSV</acronym> Adapter sind in Ihrer
- Geschwindigkeit ziemlich identisch.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Gettext</emphasis>: Der Gettext Adapter von Zend Framework
- verwendet <emphasis>nicht</emphasis> die Gettext Erweiterung da diese nicht
- Threadsicher ist und es nicht erlaubt mehr als ein Gebietsschema pro Server
- zu definieren. Als Ergebnis, ist ist er langsamer als die Gettext
- Erweiterung direkt, aber, weil das Gettext Format binär ist, ist es
- schneller geparst als <acronym>XML</acronym>.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Wenn hohe Geschwindigkeit eine der eigenen Bedenken sind, empfehlen wir die
- Verwendung einer der obigen Adapter.
- </para>
- </sect3>
- </sect2>
- <sect2 id="performance.localization.cache">
- <title>Wie kann ich Übersetzungen und Lokalisierungen sogar noch schneller machen?</title>
- <para>
- Aus Geschäftsgründen kann es möglich sein, das man auf einen
- <acronym>XML</acronym>-basierenden Übersetzungsadapter limitiert ist. Oder vielleicht
- will man die Dinge sogar noch schneller machen. Oder vielleicht will man L10n
- Operationen schneller machen. Wie kann man das tun?
- </para>
- <sect3 id="performance.localization.cache.usage">
- <title>Verwenden von Übersetzungs und Lokalisierungs Caches</title>
- <para>
- Beide, <classname>Zend_Translate</classname> und <classname>Zend_Locale</classname>
- implementieren eine Caching Funktionalität welche die Geschwindigkeit großartig
- verbessern kann. In jedem der Fälle ist dass das Nadelöhr typischerweise das Lesen
- der Dateien, nicht das effektive Nachschauen; die Verwendung eines Caches eliminiert
- die Notwendigkeit die Übersetzungsdateien und/oder Lokalisierungsdateien zu lesen.
- </para>
- <para>
- Man kann an den folgenden Orten mehr über das Cachen von Übersetzungs und
- Lokalisierungsstrings nachlesen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <link
- linkend="zend.translate.adapter.caching"><classname>Zend_Translate</classname>
- Adapter Caching</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="zend.locale.cache"><classname>Zend_Locale</classname>
- Caching</link>
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
- </sect1>
|