2
0

performance-localization.xml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 16566 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="performance.localization">
  5. <title>Internationalisierung (I18n) und Lokalisierung (L10n)</title>
  6. <para>
  7. Internationalisierte und Lokalisierte Sites sind ein fantastischer Weg um seine
  8. Zuschaueranzahl zu expandieren und sicherzustellen das alle Besucher die Information
  9. bekommen die Sie benötigen. Trotzdem kommt es oft zu einem Geschwindigkeitsverlust. Anbei
  10. sind einige Strategien die man verwenden kann um den Overhead von I18n und L10n zu
  11. verkleinern.
  12. </para>
  13. <sect2 id="performance.localization.translationadapter">
  14. <title>Welchen Übersetzungsadapter sollte ich verwenden?</title>
  15. <para>
  16. Nicht alle Übersetzungadapter sind gleich gemacht. Einige haben mehr Feature als
  17. andere, und einige sind performanter als andere. Zusätzlich kann es sein das man
  18. geschäftliche Notwendigkeiten hat die einen zwingen einen bestimmten Adapter zu
  19. verwenden. Trotzdem, welcher Adapter ist der schnellste, wenn man die Wahl hat?
  20. </para>
  21. <sect3 id="performance.localization.translationadapter.fastest">
  22. <title>Verwende nicht-XML Übersetzungsadapter für die größte Geschwindigkeit</title>
  23. <para>
  24. Zend Framework wird mit einer Vielzahl von Übersetzungsadaptern ausgeliefert. Die
  25. Hälfte von Ihnen verwenden ein <acronym>XML</acronym> Format, welches viel Speicher
  26. benötigt und eine Geschwindkeitseinbuße bedeutet. Glücklicherweise gibt es
  27. verschiedene Adapter die andere Formate verwenden, die viel schneller geparst
  28. werden können. In der Reihenfolge Ihrer Geschwindigkeit, vom Schnellsten zum
  29. Langsamsten, sind das:
  30. </para>
  31. <itemizedlist>
  32. <listitem><para>
  33. <emphasis>Array</emphasis>: Das ist der Schnellste, weil er, von seiner
  34. Definition her, sofort in ein natives <acronym>PHP</acronym> Format geparst und
  35. sofort eingefügt wird.
  36. </para></listitem>
  37. <listitem><para>
  38. <emphasis><acronym>CSV</acronym></emphasis>: Verwendet
  39. <methodname>fgetcsv()</methodname> um eine <acronym>CSV</acronym> Datei zu
  40. parsen und transformiert es in ein natives <acronym>PHP</acronym> Format.
  41. </para></listitem>
  42. <listitem><para>
  43. <emphasis><acronym>INI</acronym></emphasis>: Verwendet
  44. <methodname>parse_ini_file()</methodname> um eine <acronym>INI</acronym> Datei
  45. zu lesen und Sie in ein natives <acronym>PHP</acronym> Format zu
  46. transformieren. Dieser und der <acronym>CSV</acronym> Adapter sind in Ihrer
  47. Geschwindigkeit ziemlich identisch.
  48. </para></listitem>
  49. <listitem><para>
  50. <emphasis>Gettext</emphasis>: Der Gettext Adapter von Zend Framework verwendet
  51. <emphasis>nicht</emphasis> die Gettext Erweiterung da diese nicht Threadsicher
  52. ist und es nicht erlaubt mehr als ein Gebietsschema pro Server zu definieren.
  53. Als Ergebnis, ist ist er langsamer als die Gettext Erweiterung direkt, aber,
  54. weil das Gettext Format binär ist, ist es schneller geparst als
  55. <acronym>XML</acronym>.
  56. </para></listitem>
  57. </itemizedlist>
  58. <para>
  59. Wenn hohe Geschwindigkeit eine der eigenen Bedenken sind, empfehlen wir die
  60. Verwendung einer der obigen Adapter.
  61. </para>
  62. </sect3>
  63. </sect2>
  64. <sect2 id="performance.localization.cache">
  65. <title>Wie kann ich Übersetzungen und Lokalisierungen sogar noch schneller machen?</title>
  66. <para>
  67. Aus Geschäftsgründen kann es möglich sein, das man auf einen
  68. <acronym>XML</acronym>-basierenden Übersetzungsadapter limitiert ist. Oder vielleicht
  69. will man die Dinge sogar noch schneller machen. Oder vielleicht will man L10n
  70. Operationen schneller machen. Wie kann man das tun?
  71. </para>
  72. <sect3 id="performance.localization.cache.usage">
  73. <title>Verwenden von Übersetzungs und Lokalisierungs Caches</title>
  74. <para>
  75. Beide, <classname>Zend_Translate</classname> und <classname>Zend_Locale</classname>
  76. implementieren eine Caching Funktionalität welche die Geschwindigkeit großartig
  77. verbessern kann. In jedem der Fälle ist das das Nadelöhr typischerweise das Lesen
  78. der Dateien, nicht das effektive Nachschauen; die Verwendung eines Caches eliminiert
  79. die Notwendigkeit die Übersetzungsdateien und/oder Lokalisierungsdateien zu lesen.
  80. </para>
  81. <para>
  82. Man kann an den folgenden Orten mehr über das Cachen von Übersetzungs und
  83. Lokalisierungsstrings nachlesen:
  84. </para>
  85. <itemizedlist>
  86. <listitem>
  87. <para>
  88. <link linkend="zend.translate.adapter.caching"><classname>Zend_Translate</classname>
  89. Adapter Caching</link>
  90. </para>
  91. </listitem>
  92. <listitem>
  93. <para>
  94. <link linkend="zend.locale.cache"><classname>Zend_Locale</classname>
  95. Caching</link>
  96. </para>
  97. </listitem>
  98. </itemizedlist>
  99. </sect3>
  100. </sect2>
  101. </sect1>
  102. <!--
  103. vim:se ts=4 sw=4 et:
  104. -->