<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 15156 -->
<!-- Reviewed: no -->
<sect2 id="zend.filter.set.normalizedtolocalized">

    <title>NormalizedToLocalized</title>

    <para>
        Dieser Filter ist das Gegenteil des <classname>Zend_Filter_LocalizedToNormalized</classname>
        Filters und ändert jede angegebene normalisierte Eingabe in Ihre lokalisierte
        Repräsentation. Er verwendet im Hintergrund <classname>Zend_Locale</classname> um diese
        Transformation durchzuführen.
    </para>

    <para>
        Das erlaubt es einem, dem Benutzer jeden gespeicherten normalisierten Wert in einer
        lokalisierten Art und Weise anzugeben, die dem Benutzer verständlicher ist.
    </para>

    <note>
        <para>
            Es ist zu beachten das Lokalisierung nicht mit Übersetzung gleichzusetzen ist. Dieser
            Filter kann Strings nicht von einer Sprache in eine andere Übersetzen, wie man es
            zum Beispiel bei Monaten oder Namen von Tagen erwarten könnte.
        </para>
    </note>

    <para>
        Die folgenden Eingabetypen können lokalisiert werden:
    </para>

    <itemizedlist>
        <listitem>
            <para>
                <emphasis>integer</emphasis>: Ganzzahlen, welche normalisiert sind, werden in die
                gesetzte Schreibweise lokalisiert.
            </para>
        </listitem>

        <listitem>
            <para>
                <emphasis>float</emphasis>: Gleitkommazahlen, welche normalisiert sind, werden in
                die gesetzte Schreibweise lokalisiert.
            </para>
        </listitem>

        <listitem>
            <para>
                <emphasis>numbers</emphasis>: Andere Zahlen, wie Realzahlen, werden in die
                gesetzte Schreibweise lokalisiert.
            </para>
        </listitem>

        <listitem>
            <para>
                <emphasis>time</emphasis>: Zeitwerte, werden in einen String lokalisiert.
            </para>
        </listitem>

        <listitem>
            <para>
                <emphasis>date</emphasis>: Datumswerte, werden in einen String lokalisiert.
            </para>
        </listitem>
    </itemizedlist>

    <para>
        Jede andere Eingabe wird so wie Sie ist zurückgegeben, ohne das Sie geändert wird.
    </para>

    <sect3 id="zend.filter.set.normalizedtolocalized.numbers">

        <title>Lokalisierung von Zahlen</title>

        <para>
            Jede angegebene Zahl wie Integer, Float oder Realzahlen können lokalisiert werden.
            Es ist zu beachten das Zahlen in der Wissenschaftlichen Schreibweise, aktuell nicht
            von diesem Filter behandelt werden können.
        </para>

        <para>
            Wie funktioniert diese Lokalisierung also im Detail für Nummern:
        </para>

        <programlisting role="php"><![CDATA[
// Den Filter initiieren
$filter = new Zend_Filter_NormalizedToLocalized();
$filter->filter(123456.78);
// Gibt den Wert '123.456,78' zurück
]]></programlisting>

        <para>
            Nehmen wir an das wir das Gebietsschema 'de' als Anwendungsweites Gebietsschema gesetzt
            haben. <classname>Zend_Filter_NormalizedToLocalized</classname> nimmt das gesetzte
            Gebietsschema und verwendet es um zu erkennen welche Art der Eingabe man haben will. In
            unserem Beispiel wurde ein Wert mit Nachkommastellen angegeben. Jetzt gibt der Filter
            die lokalisierte Repräsentation für diesen Wert als String zurück.
        </para>

        <para>
            Man kann auch kontrollieren wie die lokalisierte Nummer auszusehen hat. Hierfür kann
            man alle Optionen angeben die auch von <classname>Zend_Locale_Format</classname>
            verwendet werden. Die üblichsten sind:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis>date_format</emphasis>
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>locale</emphasis>
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis>precision</emphasis>
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Für Details darüber, wie diese Optionen verwendet werden, sollte man in der
            <link linkend="zend.locale.parsing">Kapitel Zend_Locale</link> sehen.
        </para>

        <para>
            Anbei ist ein Beispiel welches Nachkommastellen definiert damit man sehen kann
            wie Optionen arbeiten:
        </para>

        <programlisting role="php"><![CDATA[
// Nummerischer Filter
$filter = new Zend_Filter_NormalizedToLocalized(array('precision' => 2));

$filter->filter(123456);
// Gibt den Wert '123.456,00' zurück

$filter->filter(123456.78901);
// Gibt den Wert '123.456,79' zurück
]]></programlisting>

    </sect3>

    <sect3 id="zend.filter.set.normalizedtolocalized.dates">

        <title>Lokalisierung für Datum und Zeit</title>

        <para>
            Normalisierte Datums- und Zeitwerte können auch lokalisiert werden. Alle angegebenen
            Datums- und Zeitwerte werden als String, im Format das vom gesetzten Gebietsschema
            definiert ist, zurückgegeben.
        </para>

        <programlisting role="php"><![CDATA[
// Den Filter initiieren
$filter = new Zend_Filter_NormalizedToLocalized();
$filter->filter(array('day' => '12', 'month' => '04', 'year' => '2009');
// Gibt '12.04.2009' zurück
]]></programlisting>

        <para>
            Angenommen wir haben wieder das Gebietsschema 'de' gesetzt. Die Eingaben werden jetzt
            automatisch als Datum erkannt und man erhält ein benanntes Array zurück.
        </para>

        <para>
            Natürlich kann man auch kontrollieren wie die Datumseingaben auszusehen haben indem
            die Optionen <emphasis>date_format</emphasis> und <emphasis>locale</emphasis>
            verwendet werden.
        </para>

        <programlisting role="php"><![CDATA[
// Datumsfilter
$filter = new Zend_Filter_LocalizedToNormalized(
    array('date_format' => 'ss:mm:HH')
);

$filter->filter(array('hour' => '33', 'minute' => '22', 'second' => '11'));
// Gibt '11:22:33' zurück
]]></programlisting>
    </sect3>

</sect2>

<!--
vim:se ts=4 sw=4 et:
-->