<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect3 id="zend.view.helpers.initial.currency">
    <title>Currency Helfer</title>

    <para>
        Das anzeigen von lokalisierten Währungswerten ist eine übliche Aufgabe; der View Helfer
        <classname>Zend_Currency</classname> dient dazu diese Aufgabe zu vereinfachen. Siehe auch
        die <link linkend="zend.currency.introduction">Dokumentation von Zend_Currency</link> für
        Details über dieses Lokalisierungs-Feature. In diesem Abschnitt fokusieren wir uns nur auf
        die Verwendung des View Helfers.
    </para>

    <para>
        Es gibt verschiedene Wege um den <emphasis>Currency</emphasis> View Helfer zu initiieren:
    </para>

    <itemizedlist>
        <listitem>
            <para>
                Registriert, über eine vorher in <classname>Zend_Registry</classname> registrierte
                Instanz:
            </para>
        </listitem>

        <listitem>
            <para>
                Im Nachhinein, über das Fluent Interface.
            </para>
        </listitem>

        <listitem>
            <para>
                Direkt, über Instanzierung der Klasse.
            </para>
        </listitem>
    </itemizedlist>

    <para>
        Eine registrierte Instanz von <classname>Zend_Currency</classname> ist der vorgeschlagene
        Weg für diesen Helfer. Wenn man dies macht kann die Währung welche verwendet werden soll
        ausgewählt werden bevor der Adapter der Registry hinzugefügt wird.
    </para>

    <para>
        Es gibt verschiedene Wege die gewünschte Währung auszuwählen. Erstens kann man einfach einen
        Währungs-String übergeben; alternativ kann man ein Gebietsschema spezifizieren. Der
        vorgeschlagene Weg ist die Verwendung eines Gebietsschemas, da diese Information automatisch
        erkannt und über den <acronym>HTTP</acronym> Client Header ausgewählt wird wenn ein Benutzer
        auf die Anwendung zugreift. Und es stellt sicher das die angebotene Währung mit seinem
        Gebietsschema übereinstimmt.
    </para>

    <note>
        <para>
            Wir sprechen von "Gebietsschemas" statt von "Sprachen" weil Sprachen, basierend auf der
            geographischen Region in welcher Sie verwendet werden, sehr unterschiedlich sein können.
            Zum Beispiel wird Englisch in unterschiedlichen Dialekten gesprochen: Brittisches
            Englisch, Amerikanisches Englisch, usw. Da eine Währung immer mit einem Land
            korreliert muss ein voll-qualifiziertes Gebietsschema angegeben werden. Dies bedeutet
            dass beides, sowohl die Sprache <emphasis>als auch</emphasis> die Region angegeben
            werden müssen. Deswegen sagen wir "Gebietsschema" statt "Sprache".
        </para>
    </note>

    <example id="zend.view.helpers.initial.currency.registered">
        <title>Registrierte Instanz</title>

        <para>
            Um eine registrierte Instanz zu verwenden muss einfach eine Instanz von
            <classname>Zend_Currency</classname> erstellt und in
            <classname>Zend_Registry</classname> registriert werden, wobei der Schlüssel
            <classname>Zend_Currency</classname> zu verwenden ist.
        </para>

        <programlisting language="php"><![CDATA[
// Unsere Beispielwährung
$currency = new Zend_Currency('de_AT');
Zend_Registry::set('Zend_Currency', $currency);

// In der View
echo $this->currency(1234.56);
// Gibt '€ 1.234,56' zurück
]]></programlisting>
    </example>

    <para>
        Wenn man das Fluent Interface verwenden will, kann man auch eine Instanz in der View
        erstellen und den Helfer im Nachhinein konfigurieren.
    </para>

    <example id="zend.view.helpers.initial.currency.afterwards">
        <title>In der View</title>

        <para>
            Um das Fluent Interface zu verwenden muss eine Instanz von
            <classname>Zend_Currency</classname> erstellt, der Helfer ohne Parameter aufgerufen, und
            dann die Methode <methodname>setCurrency()</methodname> aufgerufen werden.
        </para>

        <programlisting language="php"><![CDATA[
// In der View
$currency = new Zend_Currency('de_AT');
$this->currency()->setCurrency($currency)->currency(1234.56);
// Gibt '€ 1.234,56' zurück
]]></programlisting>
    </example>

    <para>
        Wenn man den Helfer ohne <classname>Zend_View</classname> verwenden will kann man Ihn auch
        direkt verwenden.
    </para>

    <example id="zend.view.helpers.initial.currency.directly.example-1">
        <title>Direkte Verwendung</title>

        <programlisting language="php"><![CDATA[
// Unsere Beispielwährung
$currency = new Zend_Currency('de_AT');

// Den Helfer initiieren
$helper = new Zend_View_Helper_Currency($currency);
echo $helper->currency(1234.56); // Gibt '€ 1.234,56' zurück
]]></programlisting>
    </example>

    <para>
        Wie bereits gesehen wird die Methode <methodname>currency()</methodname> verwendet um den
        Währungs-String zurückzugeben. Sie muss nur mit dem Wert aufgerufen werden den man als
        Währung angezeigt haben will. Sie akzeptiert auch einige Optionen welche verwendet werden
        können um das Verhalten des Helfers bei der Ausgabe zu ändern.
    </para>

    <example id="zend.view.helpers.initial.currency.directly.example-2">
        <title>Direkte Verwendung</title>

        <programlisting language="php"><![CDATA[
// Unsere Beispielwährung
$currency = new Zend_Currency('de_AT');

// Den Helfer initiieren
$helper = new Zend_View_Helper_Currency($currency);
echo $helper->currency(1234.56); // Gibt '€ 1.234,56' zurück
echo $helper->currency(1234.56, array('precision' => 1));
// Gibt '€ 1.234,6' zurück
]]></programlisting>
    </example>

    <para>
        Für Details über die vorhandenen Optionen sollte man in
        <classname>Zend_Currency</classname>'s <methodname>toCurrency()</methodname> Methode
        nachsehen.
    </para>
</sect3>
