<?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>
