<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: 22755 -->
<sect1 id="zend.locale.functions">
    <title>Zend_Locale verwenden</title>

    <para>
        <classname>Zend_Locale</classname> liefert auch lokalisierte Informationen über
        Gebietsschema für jedes Gebietsschema. Das beinhaltet unter anderem lokalisierte Namen für
        andere Gebietsschema, Tage der Woche, Monatsnamen, usw.
    </para>

    <sect2 id="zend.locale.copying">
        <title>Kopieren, Klonen und Serialisieren von Gebietsschema-Objekten</title>

        <para>
            Verwende <ulink url="http://php.net/language.oop5.cloning">Klonen von Objekten</ulink>
            um Gebietsschema-Objekte exakt und effizient zu duplizieren. Die meisten lokalisierbaren
            Methoden akzeptieren auch eine Zeichenkette, welche das Gebietsschema repräsentiert.
            Dieser entspricht dem Ergebnis von <command>$locale->toString()</command>.
        </para>

        <example id="zend.locale.copying.example-1">
            <title>Klonen</title>

            <programlisting language="php"><![CDATA[
$locale = new Zend_Locale('ar');

// Speichere das $locale Objekt als Serialisierung
$serializedLocale = $locale->serialize();
// Wiedererstellung des Original Objekts
$localeObject = unserialize($serializedLocale);

// Erhalte eine Zeichenkette welche das Gebietsschema identifiziert
$stringLocale = $locale->toString();

// Erstelle eine geklonte Kopie des $locale Objekts
$copiedLocale = clone $locale;

print "copied: ", $copiedLocale->toString();

// PHP ruft automatisch toString() über __toString(); auf
print "copied: ", $copiedLocale;
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.locale.equals">
        <title>Gleichheit</title>

        <para>
            <classname>Zend_Locale</classname> bietet auch eine bequeme Funktion zum Vergleichen
            von zwei Gebietsschema an. Alle lokalisierbaren Klassen sollten eine vergleichbare
            Funktion für eine Gleichheitsprüfung anbieten.
        </para>

        <example id="zend.locale.equals.example-1">
            <title>Prüfung auf gleiche Gebietsschemata</title>

            <programlisting language="php"><![CDATA[
$locale = new Zend_Locale();
$mylocale = new Zend_Locale('en_US');

// Prüfe ob die Gebietsschemata gleich sind
if ($locale->equals($mylocale)) {
    print "Die Gebietsschemata sind gleich";
}
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.locale.getdefault">
        <title>Standard-Gebietsschemata</title>

        <para>
            Die Methode <methodname>getDefault()</methodname> gibt ein Array mit relevanten
            Gebietsschemata zurück, wobei Informationen vom Web Browser des Benutzers (wenn
            vorhanden), Informationen vom Betriebsystem des Host Servers und Zend Framework
            Einstellungen benutzt werden. Wie beim Konstruktor von
            <classname>Zend_Locale</classname> wählt der erste Parameter die bevorzugte Umgebung von
            der die Informationen zuerst geholt werden sollen <link
                linkend="zend.locale.selection">(<constant>BROWSER</constant>,
                <constant>ENVIRONMENT</constant>, oder <constant>FRAMEWORK)</constant></link>. Der
            zweite Parameter wechselt zwischen der Rückgabe aller gefundenen Gebietsschemata
            oder nur dem ersten oder besten Gebietsschema. Lokalisierbare Komponenten benutzen
            normalerweise nur das erste Gebietsschema. Wenn vorhanden, wird eine Bewertung der
            Qualität mit angegeben.
        </para>

        <example id="zend.locale.getdefault.example-1">
            <title>Das Standard-Gebietsschema erhalten</title>

            <programlisting language="php"><![CDATA[
$locale = new Zend_Locale();

// Alle Standard-Gebietsschemata zurückgeben
$found = $locale->getDefault();
print_r($found);

// Nur die Gebietsschemata des Browsers zurückgeben
$found2 = $locale->getDefault(Zend_Locale::BROWSER, TRUE);
print_r($found2);
]]></programlisting>
        </example>

        <para>
            Um nur die Standard-Gebietsschemata für <link
                linkend="zend.locale.selection"><constant>BROWSER</constant>,
                <constant>ENVIRONMENT</constant>, oder <constant>FRAMEWORK</constant></link> zu
            erhalten, können die folgenden Methoden benutzt werden:

            <itemizedlist>
                <listitem><para><methodname>getEnvironment()</methodname></para></listitem>
                <listitem><para><methodname>getBrowser()</methodname></para></listitem>
                <listitem><para><methodname>getLocale()</methodname></para></listitem>
            </itemizedlist>
        </para>
    </sect2>

    <sect2 id="zend.locale.setlocale">
        <title>Ein neues Gebietsschema setzen</title>

        <para>
            Ein neues Gebietsschema kann mit der Funktion <methodname>setLocale()</methodname>
            gesetzt werden. Diese Funktion nimmt eine Gebietsschema-Zeichenkette als Parameter an.
            Wenn kein Gebietsschema angegeben wurde, wird ein <link
                linkend="zend.locale.selection">automatisch gewähltes</link> Gebietsschema benutzt.
        </para>

        <example id="zend.locale.setlocale.example-1">
            <title>setLocale</title>

            <programlisting language="php"><![CDATA[
$locale = new Zend_Locale();

// Aktuelles Gebietsschema
print $locale->toString();

// neues Gebietsschema
$locale->setLocale('aa_DJ');
print $locale->toString();
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.locale.getlocale">
        <title>Auslesen von Sprache und Region</title>

        <para>
            <methodname>getLanguage()</methodname> gibt eine Zeichenkette zurück, welche den
            Zwei-Zeichen-Code der Sprache des Gebietsschemas enthält.
            <methodname>getRegion()</methodname> gibt eine Zeichenkette zurück, welche den
            Zwei-Zeichen-Code der Region des Gebietsschemas enthält.
        </para>

        <example id="zend.locale.getlocale.example-1">
            <title>getLanguage and getRegion</title>

            <programlisting language="php"><![CDATA[
$locale = new Zend_Locale();

// Wenn das Gebietsschema 'de_AT' ist, wird 'de' als Sprache zurückgegeben
print $locale->getLanguage();

// Wenn das Gebietsschema 'de_AT' ist, wird 'AT' als Region zurückgegeben
print $locale->getRegion();
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.locale.getlocaletoterritory">
        <title>Ein Gebietsschema durch die Angabe eines Territoriums erhalten</title>

        <para>
            Wenn man nur ein Territorium oder ein Land hat, dann ist es auch möglich aus diesen
            Informationen ein Gebietsschema zu erhalten. Man kann manuell suchen, ob es ein
            Gebietsschema für dieses Territorium gibt, indem man
            <methodname>getLocaleToTerritory()</methodname> verwendet. Diese Methode gibt ein
            Gebietsschema für das angegebene Territorium zurück, oder <constant>NULL</constant>
            wenn kein Gebietsschema gefunden werden konnte.
        </para>

        <example id="zend.locale.getlocaletoterritory.example-1">
            <title>getLocaleToTerritory</title>

            <programlisting language="php"><![CDATA[
$locale = Zend_Locale::getLocaleToTerritory('US');
// Gibt 'en_US' zurück
]]></programlisting>
        </example>

        <note>
            <title>Großgeschriebene Territorien</title>

            <para>
                Wenn man weiß dass man ein Territorium verwendet, dann sollte es großgeschrieben
                werden. Andernfalls könnte man der Meinung sein, ein falsches Gebietsschema zu
                erhalten, wenn man andere Methoden verwendet. Beispiel: Wenn man "om" angibt, dann
                gibt <methodname>getLocaleToTerritory()</methodname> "ar_OM" zurück, da es weiß
                dass man ein Territorium meint. Aber alle anderen Methoden werden "om" zurückgeben,
                da dies auch eine Sprache ist.
            </para>

            <para>
                Wenn man also weiß, dass ein angegebener String ein Territorium ist, dann sollte man
                entweder <methodname>getLocaleToTerritory()</methodname> selbst verwenden, bevor man
                ein Gebietsschema erstellt, oder die Eingabe groß schreiben.
            </para>
        </note>
    </sect2>

    <sect2 id="zend.locale.getdata">
        <title>Lokalisierte Zeichenketten erhalten</title>

        <para>
            <methodname>getTranslationList()</methodname> gibt Zugriff auf viele Arten von
            lokalisierten Informationen. Diese Informationen sind sehr nützlich, wenn man einem
            Benutzer lokalisierte Daten anzeigen will, ohne dass man alles übersetzen muss. Diese
            Informationen sind bereits für den Gebrauch vorhanden.
        </para>

        <para>
            Die angefragte Liste an Informationen wird immer als benanntes Array zurückgegeben. Wenn
            mehr als ein Wert zu einem expliziten Typ angegeben werden soll, von dem man Werte
            erhalten will, muss ein Array statt mehrerer Werte übergeben werden.
        </para>

        <example id="zend.locale.getdata.example-1">
            <title>getTranslationList</title>

            <programlisting language="php"><![CDATA[
$list = Zend_Locale::getTranslationList('language', 'de_AT');

print_r ($list);
// Beispiel Schlüssel -> Werte Paare...
// [de] -> Deutsch
// [en] -> Englisch

// Einen der zurückgegebenen Schlüssel als Wert für die
// getTranslation() Methode einer anderen Sprache verwenden
print Zend_Locale::getTranslation('de', 'language', 'zh');
// Gibt die Übersetzung für die Sprache 'de' in chinesisch zurück
]]></programlisting>
        </example>

        <para>
            Man kann diese Informationen für alle Sprachen auslesen. Aber nicht alle dieser
            Informationen sind komplett für alle Sprachen. Einige dieser Arten sind auch durch eine
            eigene Funktion erhältlich wegen der Einfachheit. Anbei eine Liste für detailierte
            Informationen hierüber.
        </para>

        <table id="zend.locale.getdata.table-1">
            <title>
                Details für getTranslationList($type = null, $locale = null, $value = null)
            </title>

            <tgroup cols="2">
                <thead>
                    <row>
                        <entry>Typ</entry>
                        <entry>Beschreibung</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><emphasis>Language</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Sprachen zurück. Der Sprachteil des
                            Gebietsschemas wird als Schlüssel und die Übersetzung als Wert
                            zurückgegeben
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Script</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Schriften zurück. Die Schrift wird
                            als Schlüssel die Übersetzung als Wert zurückgegeben
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Territory</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Territorien zurück. Diese enthält
                            Länder, Kontinente und Territorien. Um nur die Territorien und
                            Kontinente zu erhalten, muss '1' als Wert verwendet werden. Um nur die
                            Länder zu erhalten muss '2' als Wert verwendet werden. Der Landes-Teil
                            des Gebietsschemas wird, wo es möglich ist, als Schlüssel verwendet. In
                            den anderen Fällen wird der offizielle <acronym>ISO</acronym> Code für
                            dieses Territorium verwendet. Das übersetzte Territorium wird als Wert
                            zurückgegeben. Wenn der Wert nicht angegeben wird, erhält man eine Liste
                            mit beidem.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Variant</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste von bekannten Varianten von Schriften
                            zurück. Die Variante wird als Schlüssel und die Übersetzung als Wert
                            zurückgegeben.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Key</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste von bekannten Schlüsseln zurück. Diese
                            Schlüssel sind generische Werte, die in Übersetzungen verwendet werden.
                            Das sind normalerweise Kalendar, Sammlungen und Währungen. Der Schlüssel
                            wird als Arrayschlüssel und die Übersetzung als Wert zurückgegeben.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Type</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste von bekannten Typen von Schlüssel zurück.
                            Das sind Varianten von Typen von Kalenderrepräsentationen und Typen von
                            Sammlungen. Wenn 'collation' als Wert verwendet wird, dann werden alle
                            Typen von Sammlungen zurückgegeben. Wenn 'calendar' als Wert verwendet
                            wird, dann werden alle Typen von Kalender zurückgegeben. Wenn der Wert
                            nicht angegeben wird, dann wird eine Liste mit beidem zurückgegeben. Der
                            Typ wird als Schlüssel und die Übersetzung als Wert zurückgegeben.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Layout</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Regeln zurück die beschreiben wie spezielle
                            Textabschnitte formatiert werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Characters</emphasis></entry>

                        <entry>
                            Gibt eine Liste von in diesem Gebietsschema erlaubten Zeichen zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Delimiters</emphasis></entry>

                        <entry>
                            Gibt eine Liste von in diesem Gebietsschema erlaubten Anführungszeichen
                            zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Measurement</emphasis></entry>

                        <entry>
                            Gibt eine Liste von bekannten Bemessungswerten zurück. Diese Liste
                            sollte nicht mehr verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Months</emphasis></entry>

                        <entry>
                            Gibt eine Liste aller Repräsentationen für Monate in diesem
                            Gebietsschema zurück. Es gibt einige unterschiedliche Repräsentationen
                            welche alle als Unterarray zurückgegeben werden. Wenn kein Wert
                            angegeben wird, dann wird eine Liste aller Monate des 'gregorian'
                            (gregorianischen) Kalenders zurückgegeben. Es kann jeder bekannte
                            Kalender als Wert angegeben werden um eine Liste der Monate dieses
                            Kalenders zu erhalten. Der Einfachheit halber sollte <link
                                linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Month</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Monatsnamen für dieses Gebietsschema
                            zurück. Wenn der Wert unterdrückt wird, dann wird der normalerweise
                            verwendete gregorianische komplette Name der Monate zurückgegeben, wobei
                            jede Monatsnummer als Schlüssel und das übersetzte Monat als Wert
                            zurückgegeben wird. Man kann die Monate für andere Kalender und Formate
                            erhalten indem ein Array als Wert angegeben wird. Der erste Eintrag des
                            Arrays muss der Kalender sein, der zweite der verwendete Kontext und der
                            dritte die Länge die zurückgegeben werden soll. Der Einfachheit halber
                            sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
                            werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Days</emphasis></entry>

                        <entry>
                            Gibt eine Liste aller Repräsentationen für Tage in diesem Gebietsschema
                            zurück. Es gibt einige unterschiedliche Repräsentationen, welche alle als
                            Unterarray zurückgegeben werden. Wenn kein Wert angegeben wird, dann
                            wird eine Liste aller Tage des 'gregorian' (gregorianischen) Kalenders
                            zurückgegeben. Es kann jeder bekannte Kalender als Wert angegeben werden
                            um eine Liste der Tage dieses Kalenders zu erhalten. Der Einfachheit
                            halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Day</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Tagesnamen für dieses Gebietsschema
                            zurück. Wenn der Wert unterdrückt wird, dann wird der normalerweise
                            verwendete gregorianische komplette Name der Tage zurückgegeben, wobei
                            die englische Abkürzung des Tages als Schlüssel und der übersetzte Tag
                            als Wert zurückgegeben wird. Man kann die Tage für andere Kalender und
                            Formate erhalten, indem ein Array als Wert angegeben wird. Der erste
                            Eintrag des Arrays muss der Kalender sein, der zweite der verwendete
                            Kontext und der dritte die Länge die zurückgegeben werden soll. Der
                            Einfachheit halber sollte <link
                                linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Week</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Werten für die korrekte Berechnung der Woche in
                            einem Gebietsschema zurück. Der Einfachheit halber sollte
                            <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Quarters</emphasis></entry>

                        <entry>
                            Gibt eine Liste aller Repräsentationen für Quartale in diesem
                            Gebietsschema zurück. Es gibt einige unterschiedliche Repräsentationen,
                            welche alle als Unterarray zurückgegeben werden. Wenn kein Wert
                            angegeben wird, dann wird eine Liste aller Quartale des 'gregorian'
                            (gregorianischen) Kalenders zurückgegeben. Es kann jeder bekannte
                            Kalender als Wert angegeben werden, um eine Liste der Quartale dieses
                            Kalenders zu erhalten.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Quarter</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Quartalsnamen für dieses
                            Gebietsschema zurück. Wenn der Wert unterdrückt wird, dann wird der
                            normalerweise verwendete gregorianische komplette Name der Quartale
                            zurückgegeben, wobei jede Quartalsnummer als Schlüssel und das
                            übersetzte Quartal als Wert zurückgegeben wird. Man kann die Quartale
                            für andere Kalender und Formate erhalten, indem ein Array als Wert
                            angegeben wird. Der erste Eintrag des Arrays muss der Kalender sein, der
                            zweite der verwendete Kontext und der dritte die Länge, die zurückgegeben
                            werden soll.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Eras</emphasis></entry>

                        <entry>
                            Gibt eine Liste aller Repräsentationen für Epochen in diesem
                            Gebietsschema zurück. Wenn kein Wert angegeben wird, dann wird eine
                            Liste aller Epochen des 'gregorian' (gregorianischen) Kalenders
                            zurückgegeben. Es kann jeder bekannte Kalender als Wert angegeben werden,
                            um eine Liste der Epochen dieses Kalenders zu erhalten.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Era</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Namen von Epochen für dieses
                            Gebietsschema zurück. Wenn der Wert unterdrückt wird, dann wird der
                            normalerweise verwendete gregorianische komplette Name der Epoche
                            zurückgegeben, wobei jede Epochennummer als Schlüssel und die übersetzte
                            Epoche als Wert zurückgegeben wird. Man kann die Epochen für andere
                            Kalender und Formate erhalten, indem ein Array als Wert angegeben wird.
                            Der erste Eintrag des Arrays muss der Kalender sein und der zweite die
                            Länge, die zurückgegeben werden soll.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Date</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Datumsformate für dieses
                            Gebietsschema zurück. Der Name des Datumsformats wird als Schlüssel und
                            das Format selbst als Wert zurückgegeben. Wenn der Wert nicht angegeben
                            wird, dann werden die Datumsformate des gregorianischen Kalenders
                            zurückgegeben. Die Datumsformate für andere Kalender kann man erhalten,
                            indem der gewünschte Kalender als String übergeben wird. Der Einfachheit
                            halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Time</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Zeitformate für dieses Gebietsschema
                            zurück. Der Name des Zeitformats wird als Schlüssel und das Format
                            selbst als Wert zurückgegeben. Wenn der Wert nicht angegeben wird, dann
                            werden die Zeitformate des gregorianischen Kalenders zurückgegeben. Die
                            Zeitformate für andere Kalender kann man erhalten, indem der gewünschte
                            Kalender als String übergeben wird. Der Einfachheit halber sollte
                            <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DateTime</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste aller Datums-Zeitformate für dieses
                            Gebietsschema zurück. Der Name des Datums-Zeitformats wird als Schlüssel
                            und das Format selbst als Wert zurückgegeben. Wenn der Wert nicht
                            angegeben wird, dann werden die Datums-Zeitformate des gregorianischen
                            Kalenders zurückgegeben. Die Datums-Zeitformate für andere Kalender kann
                            man erhalten, indem der gewünschte Kalender als String übergeben wird.
                            Der Einfachheit halber sollte <link
                                linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DateItem</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Standardformaten für gegebene Datums oder Zeit
                            Einheiten zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DateInterval</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Datums- oder Zeitformaten zurück, die verwendet
                            werden, wenn man Intervalle darstellen will. Die Liste ist ein
                            mehrdimentionales Array, wobei die erste Dimension das Format des
                            Intervalls und die zweite Dimension das Token mit der größten
                            Differenz ist.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Field</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste von Datumsfelder zurück die verwendet
                            werden kann um Kalender oder Datumsstrings wie 'Monat' oder 'Jahr' in
                            einer gewünschte Sprache darzustellen. Wenn der Wert nicht angegeben
                            wird, dann wird diese Liste für den gregorianischen Kalender
                            zurückgegeben. Man kann diese Liste für andere Kalender erhalten, indem
                            der gewünschte Kalender als String übergeben wird.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Relative</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste von relativen Daten zurück die verwendet
                            werden können um relative Daten wie 'gestern' oder 'morgen' in einer
                            gewünschten Sprache darzustellen. Wenn der Wert nicht angegeben wird,
                            dann wird diese Liste für den gregorianischen Kalender zurückgegeben.
                            Man kann diese Liste für andere Kalender erhalten, indem der gewünschte
                            Kalender als String übergeben wird.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Symbols</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste von Zeichen zurück, die in Repräsentationen
                            von Zahlen verwendet wird.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>NameToCurrency</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste von Namen für Währungen zurück. Die Währung
                            wird hierbei als Schlüssel und der übersetzte Name als Wert
                            zurückgegeben. Der Einfachheit halber sollte
                            <link linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencyToName</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste von Währungen für lokalisierte Namen
                            zurück. Der übersetzte Name wird als Schlüssel und die Währung als Wert
                            zurückgegeben. Der Einfachheit halber sollte
                            <link linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencySymbol</emphasis></entry>

                        <entry>
                            Gibt eine Liste von bekannten lokalisierten Symbolen für Währungen
                            zurück. Die Währung wird als Schlüssel und das Symbol als Wert
                            zurückgegeben. Der Einfachheit halber sollte <link
                                linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Question</emphasis></entry>

                        <entry>
                            Gibt eine Liste von lokalisierten Strings für die Akzeptanz ('ja') und
                            die Verneinung ('nein') zurück. Der Einfachheit halber sollte die
                            <link linkend="zend.locale.getquestion">Methode getQuestion von
                                Zend_Locale</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencyFraction</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Brüchen für Währungswerte zurück. Die Währung wird
                            als Schlüssel und der Bruch als Integer Wert zurückgegeben. Der
                            Einfachheit halber sollte <link
                                linkend="zend.currency.introduction">Zend_Currency</link> verwendet
                            werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencyRounding</emphasis></entry>

                        <entry>
                            Gibt eine Liste zurück, wie welche Währung gerundet werden muss. Die
                            Währung wird als Schlüssel und der Rundungswert als Ganzzahl
                            zurückgegeben. Der Einfachheit halber sollte <link
                                linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencyToRegion</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Währungen zurück von denen bekannt ist, dass sie in
                            einer Region verwendet werden. Der <acronym>ISO3166</acronym> Wert
                            ('Region') wird als Arrayschlüssel und der <acronym>ISO4217</acronym>
                            Wert ('Währung') als Arraywert zurückgegeben. Der Einfachheit halber
                            sollte <link linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>RegionToCurrency</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Regionen zurück, in denen eine Währung verwendet
                            wird. Der <acronym>ISO4217</acronym> Wert ('Währung') wird als
                            Arrayschlüssel und der <acronym>ISO3166</acronym> Wert ('Region') als
                            Arraywert zurückgegeben. Wenn eine Währung in mehreren Regionen
                            verwendet wird, dann werden diese Regionen durch ein Leerzeichen
                            getrennt. Der Einfachheit halber sollte <link
                                linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>RegionToTerritory</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Territorien mit den Ländern oder Sub-Territorien
                            zurück, welche in diesem Territorium enthalten sind. Der
                            <acronym>ISO</acronym> Territory Code ('Territorium') wird als
                            Arrayschlüssel und der <acronym>ISO3166</acronym> Wert ('Region') als
                            Arraywert verwendet. Wenn ein Territorium mehrere Regionen enthält,
                            werden diese Regionen mit einem Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToRegion</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Regionen und den Territorien in denen diese Regionen
                            enthalten sind zurück. Der <acronym>ISO3166</acronym> Code ('Region')
                            wird als Arrayschlüssel und der <acronym>ISO</acronym> Territory Code
                            ('Territorium') als Arraywert zurückgegeben. Wenn eine Region in
                            mehreren Territorien enthalten ist, werden diese Territorien mit einem
                            Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>ScriptToLanguage</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Schriften zurück, die in einer Sprache verwendet
                            werden. Der Sprachcode wird als Arrayschlüssel und der Schriftcode als
                            Arraywert zurückgegeben. Wenn eine Sprache mehrere Schriften enthält,
                            werden diese Schriften mit einem Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>LanguageToScript</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Sprachen und den darin geschriebenen Schriften
                            zurück. Der Schriftcode wird als Arrayschlüssel und der Sprachcode als
                            Arraywert zurückgegeben. Wenn eine Schrift in verschiedenen Sprachen
                            verwendet wird, werden diese Sprachen mit einem Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToLanguage</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Sprachen zurück und die Länder in welchen sie
                            gesprochen werden. Das Land wird als Arrayschlüssel und der Sprachcode
                            als Arraywert zurückgegeben. Wenn eine Sprache in mehreren Ländern
                            verwendet wird, werden diese Länder mit einem Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>LanguageToTerritory</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Ländern mit den Sprachen zurück, welche in ihnen
                            gesprochen werden. Der Ländercode wird als Arrayschlüssel und der
                            Sprachcode wird als Arraywert zurückgegeben. Wenn verschiedene Sprachen
                            in einem Land gesprochen werden, dann werden diese Sprachen mit einem
                            Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TimezoneToWindows</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Windows-Zeitzonen und den entsprechenden
                            <acronym>ISO</acronym>-Zeitzonen zurück. Die Windows-Zeitzone wird als
                            Arrayschlüssel und die <acronym>ISO</acronym>-Zeitzone als Arraywert
                            zurückgegeben.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>WindowsToTimezone</emphasis></entry>

                        <entry>
                            Gibt eine Liste von <acronym>ISO</acronym>-Zeitzonen und die
                            entsprechenden Windows-Zeitzonen zurück. Die <acronym>ISO</acronym>
                            Zeitzone wird als Arrayschlüssel und die Windows-Zeitzone als Arraywert
                            zurückgegeben.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToTimezone</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Regionen oder Territorien und den entsprechenden
                            <acronym>ISO</acronym> Zeitzonen zurück. Die <acronym>ISO</acronym>
                            Zeitzone wird als Arrayschlüssel und der Territory Code als Arraywert
                            zurückgegeben.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TimezoneToTerritory</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Zeitzonen und den entsprechenden Regionen oder
                            Territorien zurück. Die Region oder der Territory Code wird als
                            Arrayschlüssel und die <acronym>ISO</acronym> Zeitzone als Arraywert
                            zurückgegeben.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CityToTimezone</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Liste von Städten zurück, die als Übersetzung für
                            eine entsprechende Zeitzone verwendet werden können. Nicht für alle
                            Zeitzonen ist eine Übersetzung vorhanden, aber für einen Benutzer ist
                            eine echte, in seiner Sprache geschriebenen, Stadt besser als der
                            <acronym>ISO</acronym>-Name seiner Zeitzone. Die <acronym>ISO</acronym>
                            Zeitzone wird als Arrayschlüssel und die übersetzte Stadt als Arraywert
                            zurückgegeben.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TimezoneToCity</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Zeitzonen für lokalisierte Städtenamen zurück. Die
                            lokalisierte Stadt wird als Arrayschlüssel und der
                            <acronym>ISO</acronym> Name der Zeitzone als Arraywert zurückgegeben.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>PhoneToTerritory</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Telefoncodes zurück, die in einem bestimmten
                            Territorium verwendet werden. Das Territorium (Region) wird als
                            Arrayschlüssel und der Telefoncode als Arraywert verwendet.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToPhone</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Territorien zurück in denen ein Telefoncode
                            verwendet wird. Der Telefoncode wird als Arrayschlüssel und das
                            Territorium (Region) als Arraywert verwendet. Wenn ein Telefoncode in
                            verschiedenen Territorien verwendet wird, sind diese mit einem
                            Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>NumericToTerritory</emphasis></entry>

                        <entry>
                            Gibt eine Liste von 3-stelligen Nummerncodes für Territorien zurück. Das
                            Territorium (Region) wird als Arrayschlüssel und der 3-stellige
                            Nummerncode als Arraywert verwendet.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToNumeric</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Territorien mit ihrem 3-stelligen Nummerncode zurück.
                            Der 3-stellige Nummerncode wird als Arrayschlüssel und das Territorium
                            (Region) als Arraywert verwendet.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Alpha3ToTerritory</emphasis></entry>

                        <entry>
                            Gibt eine Liste von 3-stelligen Zeichencodes für Territorien zurück. Das
                            Territorium (Region) wird als Arrayschlüssel und der 3-stellige
                            Zeichencode als Arraywert verwendet.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToAlpha3</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Territorien mit ihrem 3-stelligen Zeichencode
                            zurück. Der 3-stellige Zeichencode wird als Arrayschlüssel und das
                            Territorium (Region) als Arraywert verwendet.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>PostalToTerritory</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Territorien mit einem Regex für Post Codes zurück,
                            welche in diesem Territorium enthalten sind. Der <acronym>ISO</acronym>
                            Territory Code ('territory') wird als Arrayschlüssel und das Regex als
                            Arraywert verwendet.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>NumberingSystem</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Skripten mit der Schreibweise der
                            Ziffern zurück, die in diesem Skript verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>FallbackToChar</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Ersatzzeichen für oft verwendete Unicode-Zeichen
                            zurück. Das kann verwendet werden um zum Beispiel "©" mit "(C)" zu
                            ersetzen.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CharToFallback</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Unicode-Zeichen für oft verwendete Ersatzzeichen
                            zurück. Das kann verwendet werden um zum Beispiel "(C)" mit "©" zu
                            ersetzen.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>LocaleUpgrade</emphasis></entry>

                        <entry>
                            Gibt eine Liste von Abhängigkeiten von Gebietsschemata zurück, die
                            verwendet werden kann, um eine Sprache in ein voll qualifiziertes
                            Gebietsschema hochzurüsten.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Unit</emphasis></entry>

                        <entry>
                            Gibt eine Liste von lokalisierten Einheiten von Kalendern zurück.
                            Das kann verwendet werden, um die Wörter "Tag", "Monat" und so weiter
                            automatisch übersetzen zu lassen.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </table>

        <para>
            Wenn nur ein einzelner übersetzter Wert benötigt wird, kann die
            Methode <methodname>getTranslation()</methodname> verwendet werden. Diese gibt immer
            einen String zurück, akzeptiert aber einige andere Typen als die
            Methode <methodname>getTranslationList()</methodname>. Auch der Wert ist der gleiche wie
            vorher mit einem Unterschied. Das Detail, das man zurückerhalten will, muss als
            zusätzlicher Wert angegeben werden.
        </para>

        <note>
            <para>
                Weil immer ein Wert als Detail angegeben werden muss, muss dieser Parameter als
                erster Parameter angegeben werden. Das unterscheidet sich von der
                Methode <methodname>getTranslationList()</methodname>.
            </para>
        </note>

        <para>
            Siehe die folgende Tabelle für detailierte Informationen:
        </para>

        <table id="zend.locale.getdata.table-2">
            <title>Details für getTranslation($value = null, $type = null, $locale = null)</title>

            <tgroup cols="2">
                <thead>
                    <row>
                        <entry>Typ</entry>
                        <entry>Beschreibung</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><emphasis>Language</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für eine Sprache zurück. Um die gewünschte
                            Übersetzung auszuwählen, muss der Sprachcode als Wert angegeben werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Script</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für eine Schrift zurück. Um die gewünschte
                            Übersetzung auszuwählen, muss der Schriftcode als Wert angegeben werden.
                        </entry>
                    </row>

                    <row>
                        <entry>
                            <emphasis>Territory</emphasis> oder <emphasis>Country</emphasis>
                        </entry>

                        <entry>
                            Gibt eine Übersetzung für ein Territorium zurück. Das können Länder,
                            Kontinente und Territorien sein. Um die gewünschte Variante auszuwählen,
                            muss der Territory Code als Wert angegeben werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Variant</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für eine Schriftvariante zurück. Um die gewünschte
                            Variante auszuwählen, muss der Code der Variante als Wert angegeben werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Key</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für einen bekannten Schlüssel zurück. Diese
                            Schlüssel sind generische Werte, die in Übersetzungen verwendet werden.
                            Das sind normalerweise Kalender, Sammlung und Währung. Um den
                            gewünschten Schlüssel auszuwählen, muss der Schlüsselcode als Wert
                            angegeben werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DefaultCalendar</emphasis></entry>

                        <entry>
                            Gibt den Standardkalender für das angegebene Gebietsschema zurück. Für
                            die meisten wird das 'gregorian' (gregorianisch) sein. Der Einfachheit
                            halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>MonthContext</emphasis></entry>

                        <entry>
                            Gibt den Standardkontext für Monate zurück, der im angegebenen Kalender
                            verwendet wird. Wenn der Wert nicht angegeben wird, wird der 'gregorian'
                            (gregorianische) Kalender verwendet. Der Einfachheit halber sollte
                            <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DefaultMonth</emphasis></entry>

                        <entry>
                            Gibt das Standardformat für Monate zurück, die im angegebene Kalender
                            verwendet werden. Wenn der Wert nicht angegeben wird, dann wird der
                            'gregorian' (gregorianische) Kalender verwendet. Der Einfachheit halber
                            sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
                            werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Month</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für einen Monat zurück. Es muss die Nummer des Monats
                            als Ganzzahlwert angegeben werden. Er muss zwischen 1 und 12 sein. Wenn
                            man die Daten für andere Kalender, Kontexte oder Formate empfangen will,
                            muss ein Array statt einem Ganzzahlwert mit dem erwarteten Wert angegeben
                            werden. Das Array muss wie folgt aussehen: <command>array('calendar',
                                'context', 'format', 'month number')</command>. Wenn nur ein
                            Ganzzahlwert angegeben wird, sind die Standardwerte der 'gregorian'
                            (Gregorianische) Kalender, der Kontext 'format' und das Format 'wide'.
                            Der Einfachheit halber sollte <link
                                linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DayContext</emphasis></entry>

                        <entry>
                            Gibt den Standardkontext für Tage zurück, der im angegebenen Kalender
                            verwendet wird. Wenn der Wert nicht angegeben wird, wird der 'gregorian'
                            (gregorianische) Kalender verwendet. Der Einfachheit halber sollte
                            <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DefaultDay</emphasis></entry>

                        <entry>
                            Gibt das Standardformat für Tage zurück, das im angegebene Kalender
                            verwendet wird. Wenn der Wert nicht angegeben wird, dann wird der
                            'gregorian' (gregorianische) Kalender verwendet. Der Einfachheit halber
                            sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
                            werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Day</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für einen Tag zurück. Es muss die englische
                            Abkürzung des Tages als Stringwert angegeben werden ('sun', 'mon',
                            usw.). Wenn man die Daten für andere Kalender, Kontexte oder Formate
                            empfangen will, muss ein Array statt einem Ganzzahlwert mit dem
                            erwarteten Wert angegeben werden. Das Array muss wie folgt aussehen:
                            <methodname>array('calendar', 'context', 'format',
                                'day abbreviation')</methodname>.
                            Wenn nur ein String angegeben wird, sind die Standardwerte der
                            'gregorian' (Gregorianische) Kalender, der Kontext 'format' und das
                            Format 'wide'. Der Einfachheit halber sollte <link
                                linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Quarter</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für ein Quartal zurück. Es muss die Nummer des
                            Quartals als Ganzzahl angegeben werden und diese muss zwischen 1 und 4 sein.
                            Wenn man die Daten für andere Kalender, Kontexte oder Formate empfangen
                            will, muss ein Array statt einem Ganzzahlwert mit dem erwarteten Wert
                            angegeben werden. Das Array muss wie folgt aussehen:
                            <methodname>array('calendar', 'context', 'format',
                                'quarter number')</methodname>.
                            Wenn nur ein String angegeben wird, sind die Standardwerte der
                            'gregorian' (Gregorianische) Kalender, der Kontext 'format' und das
                            Format 'wide'.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Am</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für 'AM' in dem erwarteten Gebietsschema zurück.
                            Wenn man die Daten für andere Kalender empfangen will, muss ein String
                            mit dem erwarteten Kalender angegeben werden. Wenn der Wert nicht
                            angegeben wird, dann wird der 'gregorian' (Gregorianische) Kalender
                            verwendet. Der Einfachheit halber sollte <link
                                linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Pm</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für 'PM' in dem erwarteten Gebietsschema zurück.
                            Wenn man die Daten für andere Kalender empfangen will, muss ein String
                            mit dem erwarteten Kalender angegeben werden. Wenn der Wert nicht
                            angegeben wird, dann wird der 'gregorian' (Gregorianische) Kalender
                            verwendet. Der Einfachheit halber sollte <link
                                linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Era</emphasis></entry>

                        <entry>
                            Gibt eine Übersetzung für eine Epoche zurück. Es muss die Nummer der
                            Epoche als Ganzzahl oder String angegeben werden. Wenn man die Daten
                            für andere Kalender oder Formate empfangen will, muss ein Array statt
                            einem Ganzzahlwert mit dem erwarteten Wert angegeben werden. Das Array
                            muss wie folgt aussehen: <command>array('calendar', 'format',
                                'era number')</command>. Wenn nur ein String angegeben wird, sind
                            die Standardwerte der 'gregorian' (Gregorianische) Kalender und das
                            Format 'abbr'.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DefaultDate</emphasis></entry>

                        <entry>
                            Gibt das Standard Datumsformat zurück, das im angegebenen Kalender
                            verwendet wird. Wenn der Wert nicht angegeben wird, dann wird der
                            'gregorian' (Gregorianische) Kalender verwendet. Der Einfachheit halber
                            sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
                            werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Date</emphasis></entry>

                        <entry>
                            Gibt das Datumsformat für einen angegebenen Kalender oder Format in
                            einem Gebietsschema zurück. Wenn kein Wert angegeben wird, dann wird der
                            'gregorian' (Gregorianische) Kalender mit dem Format 'medium' verwendet.
                            Wenn ein String angegeben wird, dann wird der 'gregorian'
                            (Gregorianische) Kalender mit dem angegebenen Format verwendet. Oder es
                            kann auch ein Array angegeben welches wie folgt aussehen muss:
                            <methodname>array('calendar', 'format')</methodname>. Der Einfachheit
                            halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DefaultTime</emphasis></entry>

                        <entry>
                            Gibt das Standard-Zeitformat zurück, das im angegebenen Kalender
                            verwendet wird. Wenn der Wert nicht angegeben wird, dann wird der
                            'gregorian' (Gregorianische) Kalender verwendet. Der Einfachheit halber
                            sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
                            werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Time</emphasis></entry>

                        <entry>
                            Gibt das Zeitformat für einen angegebenen Kalender oder Format in einem
                            Gebietsschema zurück. Wenn kein Wert angegeben wird, dann wird der
                            'gregorian' (Gregorianische) Kalender mit dem Format 'medium' verwendet.
                            Wenn ein String angegeben wird, dann wird der 'gregorian'
                            (Gregorianische) Kalender mit dem angegebenen Format verwendet. Oder es
                            kann auch ein Array angegeben, welches wie folgt aussehen muss:
                            <methodname>array('calendar', 'format')</methodname>. Der Einfachheit
                            halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DateTime</emphasis></entry>

                        <entry>
                            Gibt das Datums-Zeitformat für ein angegebenes Gebietsschema zurück,
                            welches anzeigt wie Datum und Zeit im selben String des angegebenen
                            Kalenders angezeigt werden sollten. Wenn kein Wert angegeben wird, dann
                            wird der 'gregorian' (Gregorianische) Kalender verwendet. Der
                            Einfachheit halber sollte <link
                                linkend="zend.date.introduction">Zend_Date</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DateItem</emphasis></entry>

                        <entry>
                            Gibt das Standardformat für ein angegebenes Datum oder Zeitelement
                            zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DateInterval</emphasis></entry>

                        <entry>
                            Gibt das Intervallformat für ein gegebenes Datums- oder Zeitformat
                            zurück. Der erste Wert ist das Kalenderformat, normalerweise
                            'gregorian'. Der zweite Wert ist das Intervallformat, und der dritte
                            Wert ist das Token mit der größten Different. Zum Beispiel:
                            array('gregorian', 'yMMMM', 'y') gibt das Intervallformat für das
                            Datumsformat 'yMMMM' zurück, wobei 'y' die größte Differenz hat.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Field</emphasis></entry>

                        <entry>
                            Gibt ein übersetztes Datumsfeld zurück, welches verwendet werden kann um
                            Kalender oder Datumsstrings wie 'Monat' oder 'Jahr' in der gewünschten
                            Sprache korrekt anzuzeigen. Das Feld, das als String zurückgegeben werden
                            soll, muss angegeben werden. In diesem Fall wird der 'gregorian'
                            (Gregorianische) Kalender verwendet. Wenn man die Felder für andere
                            Kalenderformat erhalten will, muss ein Array angegeben werden, das wie
                            folgt auszusehen hat: <methodname>array('calendar',
                                'date field')</methodname>
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Relative</emphasis></entry>

                        <entry>
                            Gibt ein übersetztes Datums zurück, welches relativ zu heute ist. Dieses
                            kann Strings wie 'Gestern' oder 'Morgen' in einer gewünschten Sprache
                            enthalten. Es muss die Anzahl der relativen Tage zu heute angegeben
                            werden, um den erwarteten String zu erhalten. Gestern würde '-1' sein,
                            morgen '1' und so weiter. Es wird hierbei der 'gregorian'
                            (Gregorianische) Kalender verwendet. Wenn man die relativen Daten für
                            andere Kalenderformat erhalten will muss ein Array angegeben werden das
                            wie folgt auszusehen hat: <methodname>array('calendar',
                                'date field')</methodname>
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>DecimalNumber</emphasis></entry>

                        <entry>
                            Gibt das Format für Dezimalzahlen in einem angegebenen Gebietsschema
                            zurück. Der Einfachheit halber sollte <link
                                linkend="zend.locale.parsing">Zend_Locale_Format</link> verwendet
                            werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>ScientificNumber</emphasis></entry>

                        <entry>
                            Gibt das Format für Wissenschaftliche Zahlen im angegebenen
                            Gebietsschema zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>PercentNumber</emphasis></entry>

                        <entry>
                            Gibt das Format für Prozentzahlen im angegebenen Gebietsschema zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencyNumber</emphasis></entry>

                        <entry>
                            Gibt das Format für die Anzeige von Währungszahlen in einem angegebenen
                            Gebietsschema zurück. Der Einfachheit halber sollte
                            <link linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>NameToCurrency</emphasis></entry>

                        <entry>
                            Gibt einen übersetzten Namen für eine angegebene Währung zurück. Die
                            Währung muss im <acronym>ISO</acronym> Format angegeben werden welches
                            zum Beispiel 'EUR' für die Währung 'Euro' ist. Der Einfachheit halber
                            sollte <link linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencyToName</emphasis></entry>

                        <entry>
                            Gibt eine Währung für einen angegebenen lokalisierten Namen zurück. Der
                            Einfachheit halber sollte
                            <link linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencySymbol</emphasis></entry>

                        <entry>
                            Gibt das für eine Währung verwendete Symbol in einem Gebietsschema
                            zurück. Nicht für alle Währungen existiert ein Symbol. Der Einfachheit
                            halber sollte <link
                                linkend="zend.currency.introduction">Zend_Currency</link> verwendet
                            werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Question</emphasis></entry>

                        <entry>
                            Gibt einen lokalisierten String für Akzeptanz ('yes') und Verneinung
                            ('no') zurück. Es muss entweder 'yes' oder 'no' als Wert angegeben werden,
                            um den erwarteten String zu erhalten. Der Einfachheit halber sollte
                            <link linkend="zend.locale.getquestion">Zend_Locale's getQuestion
                                Methode</link> verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencyFraction</emphasis></entry>

                        <entry>
                            Gibt den Bruch der für eine angegebene Währung zu verwenden ist, zurück.
                            Die Währung muss als <acronym>ISO</acronym> Wert angegeben werden. Der
                            Einfachheit halber sollte <link
                                linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencyRounding</emphasis></entry>

                        <entry>
                            Gibt zurück wie eine angegebene Währung gerundet werden muss. Die Währung
                            muss als <acronym>ISO</acronym> Wert angegeben werden. Wenn die Währung
                            nicht angegeben wird, wird die 'DEFAULT' (Standard) Rundung
                            zurückgegeben. Der Einfachheit halber sollte <link
                                linkend="zend.currency.introduction">Zend_Currency</link> verwendet
                            werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CurrencyToRegion</emphasis></entry>

                        <entry>
                            Gibt die Währung für eine angegebene Region zurück. Der Regionscode muss
                            als <acronym>ISO3166</acronym> String angegeben werden, zum Beispiel 'AT'
                            für Österreich. Der Einfachheit halber sollte <link
                                linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>RegionToCurrency</emphasis></entry>

                        <entry>
                            Gibt die Regionen zurück, in denen eine Währung verwendet wird. Die
                            Währung muss als <acronym>ISO4217</acronym> Code angegeben werden, zum
                            Beispiel 'EUR' für Euro. Wenn eine Währung in mehreren Regionen
                            verwendet wird, werden diese Regionen mit einem Leerzeichen getrennt.
                            Der Einfachheit halber sollte <link
                                linkend="zend.currency.introduction">Zend_Currency</link>
                            verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>RegionToTerritory</emphasis></entry>

                        <entry>
                            Gibt die Regionen für ein angegebenes Territorium zurück. Das
                            Territorium muss als <acronym>ISO4217</acronym> String angegeben werden
                            zum Beispiel '001' für Weltweit. Die Regionen in diesem Territorium
                            werden mit einem Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToRegion</emphasis></entry>

                        <entry>
                            Gibt die Territorien zurück, in denen eine angegebene Region enthalten
                            ist. Diese Region muss als <acronym>ISO3166</acronym> String angegeben
                            werden, zum Beispiel 'AT' für Österreich. Wenn eine Region in mehreren
                            Territorien enthalten ist, werden diese Territorien mit einem
                            Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>ScriptToLanguage</emphasis></entry>

                        <entry>
                            Gibt die Schriften zurück, die in einer angegebenen Sprache verwendet
                            werden. Die Sprache muss als <acronym>ISO</acronym> Sprachcode angegeben
                            werden, zum Beispiel 'en' für englisch. Wenn mehrere Schriften in einer
                            Sprache verwendet werden, dann werden diese Schriften mit einem
                            Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>LanguageToScript</emphasis></entry>

                        <entry>
                            Gibt die Sprachen zurück, die in einer angegebenen Schrift verwendet
                            werden. Die Schrift muss als <acronym>ISO</acronym> Schriftcode angegeben
                            werden, zum Beispiel 'Latn' für lateinisch. Wenn eine Schrift in mehreren
                            Sprachen verwendet wird, dann werden diese Sprachen mit einem Leerzeichen
                            getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToLanguage</emphasis></entry>

                        <entry>
                            Gibt das Territorium zurück, in dem die angegebene Sprache verwendet
                            wird. Die Sprache muss als <acronym>ISO</acronym> Sprachcode angegeben
                            werden, zum Beispiel 'en' für englisch. Wenn die angegebene Sprache in
                            mehreren Territorien verwendet wird, dann werden diese Sprachen mit
                            einem Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>LanguageToTerritory</emphasis></entry>

                        <entry>
                            Gibt die Sprachen zurück, die in dem angegebenen Territorium gesprochen
                            werden. Das Territorium muss als <acronym>ISO3166</acronym> Code
                            angegeben werden, zum Beispiel 'IT' für italienisch. Wenn im angegebenen
                            Territorium mehrere Sprachen gesprochen werden, dann werden diese
                            Territorien mit einem Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TimezoneToWindows</emphasis></entry>

                        <entry>
                            Gibt eine <acronym>ISO</acronym> Zeitzone für eine angegebene Windows
                            Zeitzone zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>WindowsToTimezone</emphasis></entry>

                        <entry>
                            Gibt eine Windows Zeitzone für eine angegebene <acronym>ISO</acronym>
                            Zeitzone zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToTimezone</emphasis></entry>

                        <entry>
                            Gibt ein Territorium für eine angegebene <acronym>ISO</acronym> Zeitzone
                            zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TimezoneToTerritory</emphasis></entry>

                        <entry>
                            Gibt die <acronym>ISO</acronym> Zeitzone für ein angegebenes Territorium
                            zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CityToTimezone</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Stadt für eine angegebene <acronym>ISO</acronym>
                            Zeitzone zurück. Nicht für alle Zeitzonen existiert eine Übersetzung
                            einer Stadt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TimezoneToCity</emphasis></entry>

                        <entry>
                            Gibt die <acronym>ISO</acronym> Zeitzone für einen angegebenen
                            lokalisierten Namen einer Stadt zurück. Nicht für alle Städte existiert
                            eine Zeitzone.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>PhoneToTerritory</emphasis></entry>

                        <entry>
                            Gibt den Telefoncode für ein angegebenes Territorium (Region) zurück.
                            Der Code des Territoriums muss als <acronym>ISO3166</acronym> String
                            angegeben werden, z.B. 'AT' für Österreich.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToPhone</emphasis></entry>

                        <entry>
                            Gibt das Territorium (Region) zurück in dem ein Telefoncode verwendet
                            wird. Der Telefoncode muss als reiner Integerwert angegeben werden, z.B.
                            '43' für +43. Wenn ein Telefoncode verwendet wird der in mehreren
                            Territorien (Regionen) verwendet wird, werden diese Territorien mit
                            einem Leerzeichen getrennt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>NumericToTerritory</emphasis></entry>

                        <entry>
                            Gibt den 3-stelligen Nummerncode für ein angegebenes Territorium
                            (Region) zurück. Der Code des Territoriums muss als
                            <acronym>ISO3166</acronym> String angegeben werden, z.B. 'AR' für
                            Österreich.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToNumeric</emphasis></entry>

                        <entry>
                            Gibt as Territorium (Region) für einen 3-stelligen Nummerncode zurück.
                            Der 3-stellige Nummerncode muss als reine Integerzahl angegeben werden,
                            zum Beispiel '43'.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Alpha3ToTerritory</emphasis></entry>

                        <entry>
                            Gibt den 3-stelligen Zeichencode für ein angegebenes Territorium
                            (Region) zurück. Der Code des Territoriums (Region) muss als
                            <acronym>ISO3166</acronym> String angegeben werden, zum Beispiel 'AT'
                            für Österreich.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>TerritoryToAlpha3</emphasis></entry>

                        <entry>
                            Gibt das Territorium (Region) für einen 3-stelligen Zeichencode zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>PostalToTerritory</emphasis></entry>

                        <entry>
                            Gibt ein Regex für den Post Code eines angegebenen Territoriums zurück.
                            Das Territorium muss als <acronym>ISO4217</acronym> String angegeben
                            werden, zum Beispiel '001' für Welt.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>NumberingSystem</emphasis></entry>

                        <entry>
                            Gibt ein Skript mit der Schreibweise der Ziffern zurück, die in diesem
                            Skript verwendet werden.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>FallbackToChar</emphasis></entry>

                        <entry>
                            Gibt ein Ersatzzeichen für ein oft verwendetes Unicode Zeichen zurück.
                            Das kann verwendet werden um zum Beispiel "©" mit "(C)" zu ersetzen.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>CharToFallback</emphasis></entry>

                        <entry>
                            Gibt ein Unicode Zeichen für ein oft verwendetes Ersatzzeichen zurück.
                            Das kann verwendet werden um zum Beispiel "(C)" mit "©" zu ersetzen.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>LocaleUpgrade</emphasis></entry>

                        <entry>
                            Gibt die Abhängigkeit eines Gebietsschemas zurück, die
                            verwendet werden kann, um eine Sprache in ein voll qualifiziertes
                            Gebietsschema hochzurüsten.
                        </entry>
                    </row>

                    <row>
                        <entry><emphasis>Unit</emphasis></entry>

                        <entry>
                            Gibt eine lokalisierte Einheit eines Kalenders zurück. Das kann
                            verwendet werden um die Wörter "Tag", "Monat" und so weiter automatisch
                            übersetzen zu lassen. Der erste Parameter muss ein Typ sein, und der
                            zweite Parameter muss eine Anzahl sein.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </table>

        <note>
            <para>
                Mit dem Zend Framework 1.5 wurde verschiedene alte Typen umbenannt. Das wurde
                notwendig durch verschiedene neue Typen, einige Schreibfehler und die Erhöhung der
                Verwendbarkeit. Die folgende Tabelle zeigt eine Liste von alten und neuen Typen:
            </para>
        </note>

        <table id="zend.locale.getdata.table-3">
            <title>Unterschiede zwischen Zend Framework 1.0 und 1.5</title>

            <tgroup cols="2">
                <thead>
                    <row>
                        <entry>Alter Typ</entry>
                        <entry>Neuer Typ</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry>Country</entry>
                        <entry>Territory (mit dem Wert '2')</entry>
                    </row>

                    <row>
                        <entry>Calendar</entry>
                        <entry>Type (mit dem Wert 'calendar')</entry>
                    </row>

                    <row>
                        <entry>Month_Short</entry>
                        <entry>Month (mit dem Array('gregorian', 'format', 'abbreviated')</entry>
                    </row>

                    <row>
                        <entry>Month_Narrow</entry>
                        <entry>Month (mit dem Array('gregorian', 'stand-alone', 'narrow')</entry>
                    </row>

                    <row>
                        <entry>Month_Complete</entry>
                        <entry>Months</entry>
                    </row>

                    <row>
                        <entry>Day_Short</entry>
                        <entry>Day (mit dem Array('gregorian', 'format', 'abbreviated')</entry>
                    </row>

                    <row>
                        <entry>Day_Narrow</entry>
                        <entry>Day (mit dem Array('gregorian', 'stand-alone', 'narrow')</entry>
                    </row>

                    <row>
                        <entry>DateFormat</entry>
                        <entry>Date</entry>
                    </row>

                    <row>
                        <entry>TimeFormat</entry>
                        <entry>Time</entry>
                    </row>

                    <row>
                        <entry>Timezones</entry>
                        <entry>CityToTimezone</entry>
                    </row>

                    <row>
                        <entry>Currency</entry>
                        <entry>NameToCurrency</entry>
                    </row>

                    <row>
                        <entry>Currency_Sign</entry>
                        <entry>CurrencySymbol</entry>
                    </row>

                    <row>
                        <entry>Currency_Detail</entry>
                        <entry>CurrencyToRegion</entry>
                    </row>

                    <row>
                        <entry>Territory_Detail</entry>
                        <entry>TerritoryToRegion</entry>
                    </row>

                    <row>
                        <entry>Language_Detail</entry>
                        <entry>LanguageToTerritory</entry>
                    </row>
                </tbody>
            </tgroup>
        </table>

        <para>
            Das folgende Beispiel zeigt wie man die Namen für Dinge in verschiedenen Sprachen
            erhalten kann.
        </para>

        <example id="zend.locale.getdata.example-3">
            <title>getTranslationList</title>

            <programlisting language="php"><![CDATA[
$locale = new Zend_Locale('en_US');
// Gibt die Namen aller Länder in der Französischen Sprache aus
print_r(Zend_Locale::getTranslationList('country', 'fr'));
]]></programlisting>
        </example>

        <para>
            Das nächste Beispiel zeigt, wie der Name einer Sprache in einer anderen Sprache gefunden
            werden kann, wenn der Zwei-Zeichen-ISO-Länder-Code unbekannt ist.
        </para>

        <example id="zend.locale.getdata.example-4">
            <title>Konvertierung des Ländernamens von einer Sprache in eine andere Sprache</title>

            <programlisting language="php"><![CDATA[
$locale = new Zend_Locale('en_US');
$code2name = $locale->getLanguageTranslationList();
$name2code = array_flip($code2name);
$frenchCode = $name2code['French'];
echo $locale->getLanguageTranslation($frenchCode, 'es');
// Ausgegeben wird der Spanische Name der Fransösischen Sprache
]]></programlisting>
        </example>

        <para>
            Um von <classname>Zend_Locale</classname> eine Liste aller bekannten Sprachen zu
            bekommen wobei jede Sprache in ihrer eigenen Sprache geschrieben wird, kann das untere
            Beispiel in einer Web-Seite benutzt werden. Genauso können
            <methodname>getCountryTranslationList()</methodname> und
            <methodname>getCountryTranslation()</methodname> benutzt werden, um eine Tabelle zu
            erhalten die Namen für Muttersprachen einer Region und Namen für Regionen in einer
            anderen Sprache zu erhalten. Man muss einen <command>try .. catch</command> Block
            benutzen um Ausnahmen abzufangen, die auftreten, wenn ein Gebietsschema benutzt wird, das
            nicht existiert. Nicht alle Sprachen sind auch ein Gebietsschema. Im Beispiel werden die
            Ausnahmen ignoriert, um einen frühen Abbruch zu verhindern.
        </para>

        <example id="zend.locale.getdata.example-6">
            <title>Alle Sprachen geschrieben in ihrer Muttersprache</title>

            <programlisting language="php"><![CDATA[
$list = Zend_Locale::getLanguageTranslationList('auto');

foreach ($list as $language => $content) {
    try {
        $output = Zend_Locale::getLanguageTranslation($language, $language);
        if (is_string($output)) {
            print "\n<br>[".$language."] ".$output;
        }
    } catch (Exception $e) {
        continue;
    }
}
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.locale.getquestion">
        <title>Übersetzungen für "Ja" und "Nein" erhalten</title>

        <para>
            Oft müssen Programme eine Rückmeldung mit "Ja" oder "Nein" eines Benutzers erkennen.
            <methodname>getQuestion()</methodname> gibt ein Array zurück, welches die richtigen
            Wörter oder Regex-Zeichenketten enthält, um einem Benutzer in einer bestimmten $locale zu
            antworten (standardmäßig das aktuelle Gebietsschema des Objekts). Das zurückgegebene
            Array enthält die folgenden Informationen:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>yes und no</emphasis>: Eine generelle Stringrepräsentation für Ja und
                    Nein Antworten. Es enthält die erste und generellste Antwort von yesarray und
                    noarray.
                </para>

                <para>
                    <emphasis>yesarray und noarray</emphasis>: Ein Array mit allen bekannten
                    Ja und Nein Antworten. Diverse Sprachen haben mehr als nur zwei Antworten.
                    Normalerweise ist das der komplette String und seine Abkürzung.
                </para>

                <para>
                    <emphasis>yesexpr und noexpr</emphasis>: Ein ersteller Regex-String, der es
                    erlaubt, Benutzerantworten zu behandeln und nach Ja und Nein zu suchen.
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Alle diese Informationen sind natürlich lokalisiert und hängen vom eingestellten
            Gebietsschema ab. Das folgende Beispiel zeigt die Informationen, die empfangen werden
            können:
        </para>

        <example id="zend.locale.getquestion.example-1">
            <title>getQuestion()</title>

            <programlisting language="php"><![CDATA[
$locale = new Zend_Locale();
// Zeichenketten für Fragen
print_r($locale->getQuestion('de'));

- - - Output - - -

Array
(
    [yes]ja[/yes]
    [no]nein[/no]
    [yesabbr]j[/yesabbr]
    [noabbr]n[/noabbr]
    [yesexpr]^([yY]([eE][sS])?)|([jJ][aA]?)[/yesexpr]
    [noexpr]^([nN]([oO]|([eE][iI][nN]))?)[/noexpr]
)
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.locale.getlocalelist">
        <title>Eine Liste aller bekannten Gebietsschemata erhalten</title>

        <para>
            Manchmal will man eine Liste aller bekannten Gebietsschemata erhalten. Das kann für die
            verschiedensten Aufgaben nützlich sein, zum Beispiel für die Erstellung einer Auswahlbox.
            Für diesen Zweck kann die statische Methode <methodname>getLocaleList()</methodname>
            verwendet werden, welche eine Liste aller bekannten Gebietsschemata zurückgibt.
        </para>

        <example id="zend.locale.getlocalelist.example-1">
            <title>getLocaleList()</title>

            <programlisting language="php"><![CDATA[
$localelist = Zend_Locale::getLocaleList();
]]></programlisting>
        </example>

        <note>
            <para>
                Es ist zu beachten, dass die Gebietsschemata als Schlüssel des Arrays
                zurückgegeben werden, das man erhält.
                Der Wert ist immer ein Boolsches <constant>TRUE</constant>.
            </para>
        </note>
    </sect2>

    <sect2 id="zend.locale.detection">
        <title>Erkennen von Gebietsschemata</title>

        <para>
            Wenn man erkennen will, ob eine vorhandene Eingabe unabhängig von ihrer Quelle ein
            Gebietsschema ist, sollte man die statische Methode <methodname>isLocale()</methodname>
            verwenden. Der erste Parameter dieser Methode ist der String den man prüfen will.
        </para>

        <example id="zend.locale.detection.example-1">
            <title>Einfache Erkennung des Gebietsschemas</title>

            <programlisting language="php"><![CDATA[
$input = 'to_RU';
if (Zend_Locale::isLocale($input)) {
    print "'{$input}' ist ein Gebietsschema";
} else {
    print "Sorry... die vorhandene Eingabe ist kein Gebietsschema";
}
]]></programlisting>
        </example>

        <para>
            Wie man sieht, ist die Ausgabe dieser Methode immer ein boolscher Wert. Es gibt nur einen
            Grund, warum man eine Ausnahme erhält, wenn diese Methode aufgerufen wird. Wenn das eigene
            System kein Gebietsschema anbietet und Zend Framework nicht in der Lage ist, dieses
            automatisch zu erkennen. Normalerweise zeigt dies, dass ein Problem mit dem eigenen OS
            in Kombination mit <methodname>setlocale()</methodname> von <acronym>PHP</acronym>
            vorhanden ist.
        </para>

        <para>
            Man sollte auch beachten, dass jeder angegebene Gebietsschema-String automatisch
            degradiert wird, wenn der Regionsabschnitt für dieses Gebietsschema nicht existiert. In
            unserem vorherigen Beispiel existiert die Region '<property>RU</property>' nicht für die
            Sprache '<property>to</property>', aber es wird trotzdem <constant>TRUE</constant>
            zurückgegeben, da <classname>Zend_Locale</classname> mit der vorhandenen Eingabe arbeiten
            kann.
        </para>

        <para>
            Trotzdem ist es manchmal nützlich, diese automatische Degradierung zu verhindern, und
            hier kommt der zweite Parameter von <methodname>isLocale()</methodname> zu Tragen. Der
            Parameter <property>strict</property> ist standardmäßig <constant>FALSE</constant> und
            kann verwendet werden, um die automatische Degradierung zu verhindern, wenn er auf
            <constant>TRUE</constant> gesetzt wird.
        </para>

        <example id="zend.locale.detection.example-2">
            <title>Strikte Erkennung des Gebietsschemas</title>

            <programlisting language="php"><![CDATA[
$input = 'to_RU';
if (Zend_Locale::isLocale($input, true)) {
    print "'{$input}' ist ein Gebietsschema";
} else {
    print "Sorry... die vorhandene Eingabe ist kein Gebietsschema";
}
]]></programlisting>
        </example>

        <para>
            Jetzt da man in der Lage zu erkennen, ob ein vorhandenen String ein Gebietsschema ist,
            kann man Gebietsschema bezogenes Verhalten zu den eigenen Klassen hinzufügen. Aber man
            wird schnell erkennen, dass das immer zu den gleichen 15 Zeilen Code führt. Etwas
            ähnliches wie das folgende Beispiel:
        </para>

        <example id="zend.locale.detection.example-3">
            <title>Implementierung von Gebietsschema bezogenem Verhalten</title>

            <programlisting language="php"><![CDATA[
if ($locale === null) {
    $locale = new Zend_Locale();
}

if (!Zend_Locale::isLocale($locale, true, false)) {
    if (!Zend_Locale::isLocale($locale, false, false)) {
        throw new Zend_Locale_Exception(
            "Das Gebietsschema '$locale' ist kein bekanntes Gebietsschema");
    }

    $locale = new Zend_Locale($locale);
}

if ($locale instanceof Zend_Locale) {
    $locale = $locale->toString();
}
]]></programlisting>
        </example>

        <para>
            Mit Zend Framework 1.8 haben wir die statische Methode <methodname>findLocale()</methodname>
            hinzugefügt, welche einen Gebietsschema-String zurückgibt, mit dem man arbeiten
            kann. Sie führt die folgenden Arbeiten durch:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    Erkennt, ob ein angegebener String ein Gebietsschema ist.
                </para>
            </listitem>

            <listitem>
                <para>
                    Degradiert das Gebietsschema, wenn es in der angegebenen Region nicht existiert.
                </para>
            </listitem>

            <listitem>
                <para>
                    Erweitert das Gebietsschema, wenn dieses als Region ohne Sprache erkannt wurde.
                </para>
            </listitem>

            <listitem>
                <para>
                    Gibt das vorher gesetzte Anwendungsweite Gebietsscheam zurück, wenn keine Eingabe
                    angegeben wurde.
                </para>
            </listitem>

            <listitem>
                <para>
                    Erkennt das Gebietsschema vom Browser, wenn die vorherigen Erkennungen
                    fehlgeschlagen sind.
                </para>
            </listitem>

            <listitem>
                <para>
                    Erkennt das Gebietsschema vom Betriebssystem, wenn die vorherigen Erkennungen
                    fehlgeschlagen sind.
                </para>
            </listitem>

            <listitem>
                <para>
                    Erkennt das Gebietsschema vom Framework, wenn die vorherigen Erkennungen
                    fehlgeschlagen sind.
                </para>
            </listitem>

            <listitem>
                <para>
                    Gibt immer einen String zurück, der das gefundene Gebietsschema repräsentiert.
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Das folgende Beispiel zeigt, wie diese Prüfungen und der obige Code mit einem einfachen
            Aufruf vereinfacht werden kann:
        </para>

        <example id="zend.locale.detection.example-4">
            <title>Gebietsschema bezogenes Verhalten mit Zend Framework 1.8</title>

            <programlisting language="php"><![CDATA[
$locale = Zend_Locale::findLocale($inputstring);
]]></programlisting>
        </example>
    </sect2>
</sect1>
