Zend_Application-AvailableResources-Locale.xml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 22741 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.application.available-resources.locale">
  5. <title>Zend_Application_Resource_Locale</title>
  6. <para>
  7. <classname>Zend_Application_Resource_Locale</classname> kann verwendet werden um ein
  8. Anwendungsweites Gebietsschema zu setzen welches dann in allen Klassen und Komponenten
  9. verwendet wird welche mit Lokalisierung oder Internationalisierung arbeiten. Standardmäßig
  10. wird das Gebietsschema in einem <classname>Zend_Registry</classname> Eintrag mit dem
  11. Schlüssel '<property>Zend_Locale</property>' gespeichert.
  12. </para>
  13. <para>
  14. Es gibt grundsätzlich drei Anwendungsfälle für das Locale Ressource Plugin. Jeder von Ihnen
  15. sollte abhängig auf den Notwendigkeiten der Anwendung verwendet werden.
  16. </para>
  17. <sect3 id="zend.application.available-resources.locale.auto">
  18. <title>Automatische Erkennung des zu verwendenden Gebietsschemas</title>
  19. <para>
  20. Ohne Spezifikation einer Option für
  21. <classname>Zend_Application_Resource_Locale</classname>, erkennt
  22. <classname>Zend_Locale</classname> das Gebietsschema, welches in der Anwendung verwendet
  23. werden soll automatisch.
  24. </para>
  25. <para>
  26. Diese Erkennung funktioniert weil der Client die gewünschte Sprache in seiner
  27. <acronym>HTTP</acronym> Anfrage sendet. Normalerweise sendet der Client die Sprache
  28. welche er sehen will, und <classname>Zend_Locale</classname> verwendet diese Information
  29. für die Erkennung.
  30. </para>
  31. <para>
  32. Aber es gibt 2 Probleme mit diesem Verfahren:
  33. </para>
  34. <itemizedlist>
  35. <listitem>
  36. <para>
  37. Der Browser könnte so eingestellt sein das er keine Sprache sendet
  38. </para>
  39. </listitem>
  40. <listitem>
  41. <para>
  42. Der Benutzer könnte ein Gebietsschema manuell gesetzt haben das gar nicht
  43. existiert
  44. </para>
  45. </listitem>
  46. </itemizedlist>
  47. <para>
  48. In beiden Fällen wird <classname>Zend_Locale</classname> auf einen anderen Mechanismus
  49. zurückfallen um das Gebietsschema zu erkennen:
  50. </para>
  51. <itemizedlist>
  52. <listitem>
  53. <para>
  54. Wenn ein Gebietsschema gesetzt wird das nicht existiert versucht
  55. <classname>Zend_Locale</classname> diesen String degradieren.
  56. </para>
  57. <para>
  58. Wenn zum Beispiel <emphasis>en_ZZ</emphasis> gesetzt wird, dann wird es
  59. automatisch zu <emphasis>en</emphasis> degradiert. In diesem Fall wird
  60. <emphasis>en</emphasis> als Gebietsschema für die Anwendung verwendet.
  61. </para>
  62. </listitem>
  63. <listitem>
  64. <para>
  65. Wenn das Gebietsschema durch das degradieren nicht erkannt wird, dann wird
  66. das Gebietsschema der Umgebung (Web Server) verwendet. Die meisten vorhandenen
  67. Umgebungen von Web Hostern verwenden <emphasis>en</emphasis> als Gebietsschema.
  68. </para>
  69. </listitem>
  70. <listitem>
  71. <para>
  72. Wenn das Gebietsschema des Systems nicht erkannt wird, verwendet
  73. <classname>Zend_Locale</classname> sein eigenes Standardgebietsschema, welches
  74. standardmäßig auf <emphasis>en</emphasis> gesetzt wird.
  75. </para>
  76. </listitem>
  77. </itemizedlist>
  78. <para>
  79. Für weitere Informationen über die Erkennung von Gebietsschema sollte in <link
  80. linkend="zend.locale.selection.automatic">dieses Kapitel für Zend_Locale's
  81. automatischer Erkennung</link> gesehen werden.
  82. </para>
  83. </sect3>
  84. <sect3 id="zend.application.available-resources.locale.fallback">
  85. <title>Das Gebietsschema automatisch erkennen und ein eigenes Fallback hinzufügen</title>
  86. <para>
  87. Die automatische Erkennung von vorher könnte zu Problemen führen wenn das Gebietsschema
  88. nicht erkannt werden kann und man ein anderes Standardgebietsschema als
  89. <emphasis>en</emphasis> haben will. Um das zu verhindern erlaubt es
  90. <classname>Zend_Application_Resource_Locale</classname> ein eigenes Gebietsschema zu
  91. setzen welches in dem Fall verwendet wird wenn kein Gebietsschema erkannt wird.
  92. </para>
  93. <example id="zend.application.available-resources.locale.configExampleDetectAndFallback">
  94. <title>Automatische Erkennung des Gebietsschemas und setzen eines Fallbacks</title>
  95. <para>
  96. Der folgende Abschnitt zeigt wie ein eigenes Standardgebietsschema gesetzt werden
  97. kann welches verwendet wird wenn der Client selbst kein Gebietsschema sendet.
  98. </para>
  99. <programlisting language="ini"><![CDATA[
  100. ; Versucht zuerst die automatische Erkennung,
  101. ; ist diese nicht erfolgreich wird nl_NL als Fallback verwendet
  102. resources.locale.default = "nl_NL"
  103. ]]></programlisting>
  104. </example>
  105. </sect3>
  106. <sect3 id="zend.application.available-resources.locale.forcing">
  107. <title>Erzwingen eines Gebietsschemas für die Verwendung</title>
  108. <para>
  109. Manchmal ist es nützlich ein einzelnes Gebietsschema zu definieren welches verwendet
  110. werden soll. Das kann durch Verwendung der Option <property>force</property> getan
  111. werden.
  112. </para>
  113. <para>
  114. In diesem Fall wird dieses einzelne Gebietsschema verwendet und die automatische
  115. Erkennung wird ausgeschaltet.
  116. </para>
  117. <example id="zend.application.available-resources.locale.configExampleFallbackOnly">
  118. <title>Definition eines einzelnen Gebietsschemas für die Verwendung</title>
  119. <para>
  120. Der folgende Abschnitt zeigt wie ein einzelnes Gebietsschema für die komplette
  121. Anwendung gesetzt werden kann.
  122. </para>
  123. <programlisting language="ini"><![CDATA[
  124. ; Unabhängig von allem wird das Gebietsschema nl_NL verwendet
  125. resources.locale.default = "nl_NL"
  126. resources.locale.force = true
  127. ]]></programlisting>
  128. </example>
  129. </sect3>
  130. </sect2>