| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 22741 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.application.available-resources.locale">
- <title>Zend_Application_Resource_Locale</title>
- <para>
- <classname>Zend_Application_Resource_Locale</classname> kann verwendet werden um ein
- Anwendungsweites Gebietsschema zu setzen welches dann in allen Klassen und Komponenten
- verwendet wird welche mit Lokalisierung oder Internationalisierung arbeiten. Standardmäßig
- wird das Gebietsschema in einem <classname>Zend_Registry</classname> Eintrag mit dem
- Schlüssel '<property>Zend_Locale</property>' gespeichert.
- </para>
- <para>
- Es gibt grundsätzlich drei Anwendungsfälle für das Locale Ressource Plugin. Jeder von Ihnen
- sollte abhängig auf den Notwendigkeiten der Anwendung verwendet werden.
- </para>
- <sect3 id="zend.application.available-resources.locale.auto">
- <title>Automatische Erkennung des zu verwendenden Gebietsschemas</title>
- <para>
- Ohne Spezifikation einer Option für
- <classname>Zend_Application_Resource_Locale</classname>, erkennt
- <classname>Zend_Locale</classname> das Gebietsschema, welches in der Anwendung verwendet
- werden soll automatisch.
- </para>
- <para>
- Diese Erkennung funktioniert weil der Client die gewünschte Sprache in seiner
- <acronym>HTTP</acronym> Anfrage sendet. Normalerweise sendet der Client die Sprache
- welche er sehen will, und <classname>Zend_Locale</classname> verwendet diese Information
- für die Erkennung.
- </para>
- <para>
- Aber es gibt 2 Probleme mit diesem Verfahren:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Der Browser könnte so eingestellt sein das er keine Sprache sendet
- </para>
- </listitem>
- <listitem>
- <para>
- Der Benutzer könnte ein Gebietsschema manuell gesetzt haben das gar nicht
- existiert
- </para>
- </listitem>
- </itemizedlist>
- <para>
- In beiden Fällen wird <classname>Zend_Locale</classname> auf einen anderen Mechanismus
- zurückfallen um das Gebietsschema zu erkennen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Wenn ein Gebietsschema gesetzt wird das nicht existiert versucht
- <classname>Zend_Locale</classname> diesen String degradieren.
- </para>
- <para>
- Wenn zum Beispiel <emphasis>en_ZZ</emphasis> gesetzt wird, dann wird es
- automatisch zu <emphasis>en</emphasis> degradiert. In diesem Fall wird
- <emphasis>en</emphasis> als Gebietsschema für die Anwendung verwendet.
- </para>
- </listitem>
- <listitem>
- <para>
- Wenn das Gebietsschema durch das degradieren nicht erkannt wird, dann wird
- das Gebietsschema der Umgebung (Web Server) verwendet. Die meisten vorhandenen
- Umgebungen von Web Hostern verwenden <emphasis>en</emphasis> als Gebietsschema.
- </para>
- </listitem>
- <listitem>
- <para>
- Wenn das Gebietsschema des Systems nicht erkannt wird, verwendet
- <classname>Zend_Locale</classname> sein eigenes Standardgebietsschema, welches
- standardmäßig auf <emphasis>en</emphasis> gesetzt wird.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Für weitere Informationen über die Erkennung von Gebietsschema sollte in <link
- linkend="zend.locale.selection.automatic">dieses Kapitel für Zend_Locale's
- automatischer Erkennung</link> gesehen werden.
- </para>
- </sect3>
- <sect3 id="zend.application.available-resources.locale.fallback">
- <title>Das Gebietsschema automatisch erkennen und ein eigenes Fallback hinzufügen</title>
- <para>
- Die automatische Erkennung von vorher könnte zu Problemen führen wenn das Gebietsschema
- nicht erkannt werden kann und man ein anderes Standardgebietsschema als
- <emphasis>en</emphasis> haben will. Um das zu verhindern erlaubt es
- <classname>Zend_Application_Resource_Locale</classname> ein eigenes Gebietsschema zu
- setzen welches in dem Fall verwendet wird wenn kein Gebietsschema erkannt wird.
- </para>
- <example id="zend.application.available-resources.locale.configExampleDetectAndFallback">
- <title>Automatische Erkennung des Gebietsschemas und setzen eines Fallbacks</title>
- <para>
- Der folgende Abschnitt zeigt wie ein eigenes Standardgebietsschema gesetzt werden
- kann welches verwendet wird wenn der Client selbst kein Gebietsschema sendet.
- </para>
- <programlisting language="ini"><![CDATA[
- ; Versucht zuerst die automatische Erkennung,
- ; ist diese nicht erfolgreich wird nl_NL als Fallback verwendet
- resources.locale.default = "nl_NL"
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.application.available-resources.locale.forcing">
- <title>Erzwingen eines Gebietsschemas für die Verwendung</title>
- <para>
- Manchmal ist es nützlich ein einzelnes Gebietsschema zu definieren welches verwendet
- werden soll. Das kann durch Verwendung der Option <property>force</property> getan
- werden.
- </para>
- <para>
- In diesem Fall wird dieses einzelne Gebietsschema verwendet und die automatische
- Erkennung wird ausgeschaltet.
- </para>
- <example id="zend.application.available-resources.locale.configExampleFallbackOnly">
- <title>Definition eines einzelnen Gebietsschemas für die Verwendung</title>
- <para>
- Der folgende Abschnitt zeigt wie ein einzelnes Gebietsschema für die komplette
- Anwendung gesetzt werden kann.
- </para>
- <programlisting language="ini"><![CDATA[
- ; Unabhängig von allem wird das Gebietsschema nl_NL verwendet
- resources.locale.default = "nl_NL"
- resources.locale.force = true
- ]]></programlisting>
- </example>
- </sect3>
- </sect2>
|