Zend_Application-AvailableResources-Locale.xml 6.3 KB

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