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