|
@@ -6,40 +6,43 @@
|
|
|
<title>Einführung</title>
|
|
<title>Einführung</title>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- <classname>Zend_Locale</classname> ist die Antwort des Frameworks auf die Frage "Wie kann die selbe Anwendung
|
|
|
|
|
- auf der ganzen Welt verwendet werden?". Die meisten Leute werden sagen "Das ist einfach. Lasst uns alle
|
|
|
|
|
- Ausgaben in die unterschiedlichsten Sprachen übersetzen". Aber, eine einfache Übersetzungstabelle die
|
|
|
|
|
- Phrasen von einer Sprache in die andere übersetzt ist nicht genug. Verschiedene Regionen haben auch
|
|
|
|
|
- unterschiedliche Regeln für Vornamen, Nachnamen, Titel, Format von Nummern, Daten, Zeiten, Währungen usw.
|
|
|
|
|
|
|
+ <classname>Zend_Locale</classname> ist die Antwort des Frameworks auf die Frage "Wie kann
|
|
|
|
|
+ die selbe Anwendung auf der ganzen Welt verwendet werden?". Die meisten Leute werden sagen
|
|
|
|
|
+ "Das ist einfach. Lasst uns alle Ausgaben in die unterschiedlichsten Sprachen übersetzen".
|
|
|
|
|
+ Aber, eine einfache Übersetzungstabelle die Phrasen von einer Sprache in die andere
|
|
|
|
|
+ übersetzt ist nicht genug. Verschiedene Regionen haben auch unterschiedliche Regeln für
|
|
|
|
|
+ Vornamen, Nachnamen, Titel, Format von Nummern, Daten, Zeiten, Währungen usw.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Was wir benötigen ist
|
|
|
|
|
- <ulink url="http://en.wikipedia.org/wiki/L10n">Lokalisierung</ulink>
|
|
|
|
|
- und die vergleichbare
|
|
|
|
|
- <ulink url="http://en.wikipedia.org/wiki/L10n">Internationalisierung</ulink>
|
|
|
|
|
- . Beide werden oft abgekürzt zu <code>L10n</code> und <code>I18n</code>. Internationalisierung bezeichnet
|
|
|
|
|
- mehr die Benutzung von Systemen für die spezielle Benutzung durch eindeutige Gruppen wie zum Beispiel
|
|
|
|
|
- Sprachübersetzung, Unterstützung von lokalen Konventionen für Plurale, Daten, Zeiten, Währungen, Namen,
|
|
|
|
|
- Symbolen, Sortierungen, Reihungen und viele mehr. <code>L10n</code> und <code>I18n</code> sind einander
|
|
|
|
|
- sehr ähnlich. Zend Framework bietet Unterstützung für diese Konventionen durch eine Kombination von
|
|
|
|
|
- Komponenten wie <classname>Zend_Locale</classname>, <classname>Zend_Date</classname>, <classname>Zend_Measure</classname>, <classname>Zend_Translate</classname>, <classname>Zend_Currency</classname> und <classname>Zend_TimeSync</classname>.
|
|
|
|
|
|
|
+ Was wir benötigen ist <ulink url="http://en.wikipedia.org/wiki/L10n">Lokalisierung</ulink>
|
|
|
|
|
+ und die vergleichbare <ulink
|
|
|
|
|
+ url="http://en.wikipedia.org/wiki/L10n">Internationalisierung</ulink>. Beide werden oft
|
|
|
|
|
+ abgekürzt zu <code>L10n</code> und <code>I18n</code>. Internationalisierung bezeichnet mehr
|
|
|
|
|
+ die Benutzung von Systemen für die spezielle Benutzung durch eindeutige Gruppen wie zum
|
|
|
|
|
+ Beispiel Sprachübersetzung, Unterstützung von lokalen Konventionen für Plurale, Daten,
|
|
|
|
|
+ Zeiten, Währungen, Namen, Symbolen, Sortierungen, Reihungen und viele mehr.
|
|
|
|
|
+ <code>L10n</code> und <code>I18n</code> sind einander sehr ähnlich. Zend Framework bietet
|
|
|
|
|
+ Unterstützung für diese Konventionen durch eine Kombination von Komponenten wie
|
|
|
|
|
+ <classname>Zend_Locale</classname>, <classname>Zend_Date</classname>,
|
|
|
|
|
+ <classname>Zend_Measure</classname>, <classname>Zend_Translate</classname>,
|
|
|
|
|
+ <classname>Zend_Currency</classname> und <classname>Zend_TimeSync</classname>.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<tip>
|
|
<tip>
|
|
|
<title>Zend_Locale und setLocale()</title>
|
|
<title>Zend_Locale und setLocale()</title>
|
|
|
<para>
|
|
<para>
|
|
|
Die <ulink url="http://php.net/setlocale">Dokumentation von PHP</ulink> sagt das
|
|
Die <ulink url="http://php.net/setlocale">Dokumentation von PHP</ulink> sagt das
|
|
|
- <code>setlocale()</code> nicht Threadsicher ist weil es pro Prozess behandelt wird und nicht
|
|
|
|
|
- pro Thread. Das bedeutet das man in multithreaded Umgebungen das Problem bekommen kann, das sich
|
|
|
|
|
- das Gebietsschema (Locale) ändert wärend das Skript diese Änderung nie selbst durchgeführt hat.
|
|
|
|
|
- Deswegen kann es zu unerwarteten Ergebnissen kommen wenn man <code>setLocale()</code> in seinen
|
|
|
|
|
- Skripts verwendet.
|
|
|
|
|
|
|
+ <code>setlocale()</code> nicht Threadsicher ist weil es pro Prozess behandelt wird und
|
|
|
|
|
+ nicht pro Thread. Das bedeutet das man in multithreaded Umgebungen das Problem bekommen
|
|
|
|
|
+ kann, das sich das Gebietsschema (Locale) ändert wärend das Skript diese Änderung nie
|
|
|
|
|
+ selbst durchgeführt hat. Deswegen kann es zu unerwarteten Ergebnissen kommen wenn man
|
|
|
|
|
+ <code>setLocale()</code> in seinen Skripts verwendet.
|
|
|
</para>
|
|
</para>
|
|
|
<para>
|
|
<para>
|
|
|
- Wenn <classname>Zend_Locale</classname> verwendet wird hat man diese Einschränkungen nicht, da
|
|
|
|
|
- <classname>Zend_Locale</classname> weder von PHP's <code>setlocale()</code> abhängig ist, noch irgendwie
|
|
|
|
|
- mit Ihr gekoppelt ist.
|
|
|
|
|
|
|
+ Wenn <classname>Zend_Locale</classname> verwendet wird hat man diese Einschränkungen
|
|
|
|
|
+ nicht, da <classname>Zend_Locale</classname> weder von PHP's <code>setlocale()</code>
|
|
|
|
|
+ abhängig ist, noch irgendwie mit Ihr gekoppelt ist.
|
|
|
</para>
|
|
</para>
|
|
|
</tip>
|
|
</tip>
|
|
|
|
|
|
|
@@ -48,16 +51,17 @@
|
|
|
<title>Was ist Lokalisierung</title>
|
|
<title>Was ist Lokalisierung</title>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Lokalisierung bedeutet das eine Anwendung (oder Homepage) von verschiedenen Benutzer verwendet werden
|
|
|
|
|
- kann die unterschiedliche Sprachen sprechen. Aber wie bereits angedeutet heißt Lokalisierung mehr
|
|
|
|
|
- als nur die Übersetzung von Zeichenketten. Es beinhaltet
|
|
|
|
|
|
|
+ Lokalisierung bedeutet das eine Anwendung (oder Homepage) von verschiedenen Benutzer
|
|
|
|
|
+ verwendet werden kann die unterschiedliche Sprachen sprechen. Aber wie bereits
|
|
|
|
|
+ angedeutet heißt Lokalisierung mehr als nur die Übersetzung von Zeichenketten. Es
|
|
|
|
|
+ beinhaltet
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<itemizedlist mark='opencircle'>
|
|
<itemizedlist mark='opencircle'>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <classname>Zend_Locale</classname> - Unterstützung für Gebietsschemata welche Unterstützung für
|
|
|
|
|
- Lokalisierungen von anderen ZF Komponenten bieten.
|
|
|
|
|
|
|
+ <classname>Zend_Locale</classname> - Unterstützung für Gebietsschemata welche
|
|
|
|
|
+ Unterstützung für Lokalisierungen von anderen ZF Komponenten bieten.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
@@ -72,7 +76,8 @@
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <classname>Zend_Calendar</classname> - Lokalisierung von Kalendern (Unterstützung für nicht Gregorianische Kalendersysteme)
|
|
|
|
|
|
|
+ <classname>Zend_Calendar</classname> - Lokalisierung von Kalendern
|
|
|
|
|
+ (Unterstützung für nicht Gregorianische Kalendersysteme)
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
@@ -82,14 +87,15 @@
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <classname>Zend_Locale_Format</classname> - Erkennen und erzeugen von lokalisierten Zahlen.
|
|
|
|
|
|
|
+ <classname>Zend_Locale_Format</classname> - Erkennen und erzeugen von
|
|
|
|
|
+ lokalisierten Zahlen.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <classname>Zend_Locale_Data</classname> - Empfangen von lokalisierten Standard Übersetzungen für
|
|
|
|
|
- Länder, Sprachen und <ulink url="http://unicode.org/cldr/">mehr aus der CLDR</ulink>
|
|
|
|
|
- .
|
|
|
|
|
|
|
+ <classname>Zend_Locale_Data</classname> - Empfangen von lokalisierten Standard
|
|
|
|
|
+ Übersetzungen für Länder, Sprachen und <ulink
|
|
|
|
|
+ url="http://unicode.org/cldr/">mehr aus der CLDR</ulink>.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
@@ -106,17 +112,19 @@
|
|
|
<title>Was ist ein Gebietsschema?</title>
|
|
<title>Was ist ein Gebietsschema?</title>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Jeder Computer benutzt Gebietsschemata, selbst wenn Sie es nicht wissen. Anwendungen welche keine
|
|
|
|
|
- Unterstützung für Lokalisierung bieten, unterstützen zumindest genau ein Gebietsschema (das
|
|
|
|
|
- Gebietsschema des Authors). Wenn eine Klasse oder Funktion Lokalisierung verwendet sagen wir sie ist
|
|
|
|
|
- <code>Lokalisierbar</code>. Aber wie weiß der Code welches Gebietsschema ein Benutzer erwartet ?
|
|
|
|
|
|
|
+ Jeder Computer benutzt Gebietsschemata, selbst wenn Sie es nicht wissen. Anwendungen
|
|
|
|
|
+ welche keine Unterstützung für Lokalisierung bieten, unterstützen zumindest genau ein
|
|
|
|
|
+ Gebietsschema (das Gebietsschema des Authors). Wenn eine Klasse oder Funktion
|
|
|
|
|
+ Lokalisierung verwendet sagen wir sie ist <code>Lokalisierbar</code>. Aber wie weiß der
|
|
|
|
|
+ Code welches Gebietsschema ein Benutzer erwartet ?
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Eine Gebietsschema Zeichenkette oder Objekt welches ein unterstütztes Gebietsschema identifiziert, gibt
|
|
|
|
|
- <classname>Zend_Locale</classname> und dessen Unterklassen Zugriff auf Informationen über die Sprache und
|
|
|
|
|
- Region welche der Benutzer erwartet. Formatierungen, Normalisierungen und Konvertierungen werden
|
|
|
|
|
- anhand dieser Informationen durchgeführt.
|
|
|
|
|
|
|
+ Eine Gebietsschema Zeichenkette oder Objekt welches ein unterstütztes Gebietsschema
|
|
|
|
|
+ identifiziert, gibt <classname>Zend_Locale</classname> und dessen Unterklassen Zugriff
|
|
|
|
|
+ auf Informationen über die Sprache und Region welche der Benutzer erwartet.
|
|
|
|
|
+ Formatierungen, Normalisierungen und Konvertierungen werden anhand dieser Informationen
|
|
|
|
|
+ durchgeführt.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
</sect2>
|
|
</sect2>
|
|
@@ -126,30 +134,34 @@
|
|
|
<title>Wodurch werden Gebietsschemata repräsentiert?</title>
|
|
<title>Wodurch werden Gebietsschemata repräsentiert?</title>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Eine Gebietsschema Zeichenkette besteht aus Informationen über die Sprache des Benutzers und die
|
|
|
|
|
- bevorzugte/primäre geographische Region (z.B. Staat oder Region von seinem Zuhause oder Arbeitsplatz).
|
|
|
|
|
- Die Gebietsschema Zeichenkette welche im Zend Framework benutzt werden sind international definierte
|
|
|
|
|
- Standard Abkürzungen von Sprachen und Regionen. Sie werden geschrieben als <code>sprache_REGION</code>.
|
|
|
|
|
- Beide Teile, sowohl Sprache als auch Region, werden mit Buchstaben, ASCII Zeichen, abgekürzt.
|
|
|
|
|
|
|
+ Eine Gebietsschema Zeichenkette besteht aus Informationen über die Sprache des Benutzers
|
|
|
|
|
+ und die bevorzugte/primäre geographische Region (z.B. Staat oder Region von seinem
|
|
|
|
|
+ Zuhause oder Arbeitsplatz). Die Gebietsschema Zeichenkette welche im Zend Framework
|
|
|
|
|
+ benutzt werden sind international definierte Standard Abkürzungen von Sprachen und
|
|
|
|
|
+ Regionen. Sie werden geschrieben als <code>sprache_REGION</code>. Beide Teile, sowohl
|
|
|
|
|
+ Sprache als auch Region, werden mit Buchstaben, ASCII Zeichen, abgekürzt.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<note>
|
|
<note>
|
|
|
<para>
|
|
<para>
|
|
|
- Man muß darauf achten das nicht nur Gebietsschemata mit 2 Zeichen existieren wie die meisten
|
|
|
|
|
- Leute denken. Es gibt auch Sprachen und Regionen die nicht nur mit 2 Zeichen abgekürzt werden.
|
|
|
|
|
- Deswegen sollte man die Region und Sprache NICHT selbst trennen, sondern <classname>Zend_Locale</classname> verwenden
|
|
|
|
|
- um die Sprache oder Region von einem Gebietsschema String zu trennen. Andernfalls kann es zu
|
|
|
|
|
- unerwartetem Verhalten im eigenen Code kommen wenn man versucht das selbst zu machen.
|
|
|
|
|
|
|
+ Man muß darauf achten das nicht nur Gebietsschemata mit 2 Zeichen existieren wie die
|
|
|
|
|
+ meisten Leute denken. Es gibt auch Sprachen und Regionen die nicht nur mit 2 Zeichen
|
|
|
|
|
+ abgekürzt werden. Deswegen sollte man die Region und Sprache NICHT selbst trennen,
|
|
|
|
|
+ sondern <classname>Zend_Locale</classname> verwenden um die Sprache oder Region von
|
|
|
|
|
+ einem Gebietsschema String zu trennen. Andernfalls kann es zu unerwartetem Verhalten
|
|
|
|
|
+ im eigenen Code kommen wenn man versucht das selbst zu machen.
|
|
|
</para>
|
|
</para>
|
|
|
</note>
|
|
</note>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Ein Benutzer von den USA würde die Sprache <code>Englisch</code> und die Region <code>USA</code>
|
|
|
|
|
- erwarten, beschrieben durch das Gebietsschema "en_US". Ein Benutzer von Deutschland würde die Sprache
|
|
|
|
|
- <code>Deutsch</code> und die Region <code>Deutschland</code> erwarten, beschrieben durch das
|
|
|
|
|
- Gebietsschema "de_DE". Hier findest Du eine
|
|
|
|
|
- <ulink url="http://unicode.org/cldr/data/diff/supplemental/languages_and_territories.html">Liste von vordefinierten Sprachen und Kombinationen von Regionen</ulink>
|
|
|
|
|
- wenn ein bestimmtes Gebietsschema im Zend Framework ausgewählt werden muß.
|
|
|
|
|
|
|
+ Ein Benutzer von den USA würde die Sprache <code>Englisch</code> und die Region
|
|
|
|
|
+ <code>USA</code> erwarten, beschrieben durch das Gebietsschema "en_US". Ein Benutzer von
|
|
|
|
|
+ Deutschland würde die Sprache <code>Deutsch</code> und die Region
|
|
|
|
|
+ <code>Deutschland</code> erwarten, beschrieben durch das Gebietsschema "de_DE". Hier
|
|
|
|
|
+ findest Du eine <ulink
|
|
|
|
|
+ url="http://unicode.org/cldr/data/diff/supplemental/languages_and_territories.html">Liste
|
|
|
|
|
+ von vordefinierten Sprachen und Kombinationen von Regionen</ulink> wenn ein
|
|
|
|
|
+ bestimmtes Gebietsschema im Zend Framework ausgewählt werden muß.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.representation.example-1">
|
|
<example id="zend.locale.representation.example-1">
|
|
@@ -160,27 +172,31 @@ $locale = new Zend_Locale('de_DE'); // deutsche Sprache _ Deutschland
|
|
|
</example>
|
|
</example>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Ein deutscher Benutzer in Amerika würde die Sprache <code>Deutsch</code> und die region <code>USA</code>
|
|
|
|
|
- erwarten, aber diese nicht-standardmäßigen Mischungen werden nicht als direkt als "Gebietsschema"
|
|
|
|
|
- unterstützt und erkannt. Wird stattdessen eine ungültige Kombination benutzt, dann wird Sie automatisch
|
|
|
|
|
- gekürzt, indem die Region entfernt wird. Zum Beispiel würde "de_IS" zu "de" gekürzt werden, und "xh_RU"
|
|
|
|
|
- würde zu "xh" gekürzt werden, weil keiner dieser Kombinationen gültig ist. Zusätzlich, wenn die Sprache
|
|
|
|
|
- nicht unterstützt wird (z.B. "zz_US") oder diese nicht existiert, dann wird ein Standard "root"
|
|
|
|
|
- Gebietsschema benutzt. Dieses "root" Gebietsschema hat Standarddefinitionen für international bekannte
|
|
|
|
|
- Repräsentationen von Daten, Zeiten, Nummern, Währungen usw. Der Prozess der Kürzung hängt von der
|
|
|
|
|
- gewünschten Information ab, weil einige Kombinationen von Sprache und Region für eine gewisse Art von
|
|
|
|
|
- Informationen gültig sind (z.B. Daten) aber für andere nicht (z.B. Währungs Formate).
|
|
|
|
|
|
|
+ Ein deutscher Benutzer in Amerika würde die Sprache <code>Deutsch</code> und die region
|
|
|
|
|
+ <code>USA</code> erwarten, aber diese nicht-standardmäßigen Mischungen werden nicht als
|
|
|
|
|
+ direkt als "Gebietsschema" unterstützt und erkannt. Wird stattdessen eine ungültige
|
|
|
|
|
+ Kombination benutzt, dann wird Sie automatisch gekürzt, indem die Region entfernt wird.
|
|
|
|
|
+ Zum Beispiel würde "de_IS" zu "de" gekürzt werden, und "xh_RU" würde zu "xh" gekürzt
|
|
|
|
|
+ werden, weil keiner dieser Kombinationen gültig ist. Zusätzlich, wenn die Sprache nicht
|
|
|
|
|
+ unterstützt wird (z.B. "zz_US") oder diese nicht existiert, dann wird ein Standard
|
|
|
|
|
+ "root" Gebietsschema benutzt. Dieses "root" Gebietsschema hat Standarddefinitionen für
|
|
|
|
|
+ international bekannte Repräsentationen von Daten, Zeiten, Nummern, Währungen usw. Der
|
|
|
|
|
+ Prozess der Kürzung hängt von der gewünschten Information ab, weil einige Kombinationen
|
|
|
|
|
+ von Sprache und Region für eine gewisse Art von Informationen gültig sind (z.B. Daten)
|
|
|
|
|
+ aber für andere nicht (z.B. Währungs Formate).
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Achtung vor historischen Änderungen oder dem Versuch die verschiedenen Änderungen der Zeitzonen die
|
|
|
|
|
- im Laufe der langen Zeit in den vielen Regionen gemacht wurden, da ZF Komponenten darüber nichts
|
|
|
|
|
- wissen. Zum Beispiel kann <ulink url="http://www.statoids.com/tus.html">hier eine historische Liste</ulink>
|
|
|
|
|
- mit dutzenden Änderungen von Regierungen angesehen werden und ob eine Region Sommer-/Winterzeit
|
|
|
|
|
- unterstützt und sogar in welche Zeitzone eine bestimmte geographische Region gehört. Das bedeutet, wenn
|
|
|
|
|
- Datumsberechnungen gemacht werden, wird die Berechnung welche durch die ZF Komponenten durchgeführt wird,
|
|
|
|
|
- nicht an diese Änderungen angepasst. Stattdessen wird die korrekte Uhrzeit benutzt, welche für die aktuell
|
|
|
|
|
- benutzte Zeitzone angegeben wurde, wobei moderne Regeln für Sommer-/Winterzeit und Zeitzonen Zuordnung
|
|
|
|
|
|
|
+ Achtung vor historischen Änderungen oder dem Versuch die verschiedenen Änderungen der
|
|
|
|
|
+ Zeitzonen die im Laufe der langen Zeit in den vielen Regionen gemacht wurden, da ZF
|
|
|
|
|
+ Komponenten darüber nichts wissen. Zum Beispiel kann <ulink
|
|
|
|
|
+ url="http://www.statoids.com/tus.html">hier eine historische Liste</ulink> mit
|
|
|
|
|
+ dutzenden Änderungen von Regierungen angesehen werden und ob eine Region
|
|
|
|
|
+ Sommer-/Winterzeit unterstützt und sogar in welche Zeitzone eine bestimmte geographische
|
|
|
|
|
+ Region gehört. Das bedeutet, wenn Datumsberechnungen gemacht werden, wird die Berechnung
|
|
|
|
|
+ welche durch die ZF Komponenten durchgeführt wird, nicht an diese Änderungen angepasst.
|
|
|
|
|
+ Stattdessen wird die korrekte Uhrzeit benutzt, welche für die aktuell benutzte Zeitzone
|
|
|
|
|
+ angegeben wurde, wobei moderne Regeln für Sommer-/Winterzeit und Zeitzonen Zuordnung
|
|
|
anhand von geographischen Regionen verwendet werden.
|
|
anhand von geographischen Regionen verwendet werden.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
@@ -192,10 +208,11 @@ $locale = new Zend_Locale('de_DE'); // deutsche Sprache _ Deutschland
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
In den meisten Situationen wird <code>new Zend_Locale()</code> automatisch das richtige
|
|
In den meisten Situationen wird <code>new Zend_Locale()</code> automatisch das richtige
|
|
|
- Gebietsschema auswählen, wobei die Informationen benutzt werden welche der Webbrowser des
|
|
|
|
|
- Benutzers zur Verfügung stellt. Wenn statt dessen <code>new Zend_Locale(Zend_Locale::ENVIRONMENT</code>
|
|
|
|
|
- benutzt wird, dann werden die Informationen vom Betriebsystem des hostenden Servers, wie anbei
|
|
|
|
|
- beschrieben, dafür genommen.
|
|
|
|
|
|
|
+ Gebietsschema auswählen, wobei die Informationen benutzt werden welche der Webbrowser
|
|
|
|
|
+ des Benutzers zur Verfügung stellt. Wenn statt dessen
|
|
|
|
|
+ <code>new Zend_Locale(Zend_Locale::ENVIRONMENT</code> benutzt wird, dann werden die
|
|
|
|
|
+ Informationen vom Betriebsystem des hostenden Servers, wie anbei beschrieben, dafür
|
|
|
|
|
+ genommen.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.selection.example-1">
|
|
<example id="zend.locale.selection.example-1">
|
|
@@ -215,33 +232,36 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
</example>
|
|
</example>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Der Suchalgorithmus, welcher von <classname>Zend_Locale</classname> für die automatische Auswahl des
|
|
|
|
|
- Gebietsschemas verwendet wird beherrscht drei Informationsquellen:
|
|
|
|
|
|
|
+ Der Suchalgorithmus, welcher von <classname>Zend_Locale</classname> für die automatische
|
|
|
|
|
+ Auswahl des Gebietsschemas verwendet wird beherrscht drei Informationsquellen:
|
|
|
<orderedlist>
|
|
<orderedlist>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- const <classname>Zend_Locale::BROWSER</classname> - Der Webbrowser des Benutzer welcher die
|
|
|
|
|
- Informationen mit jeder Anfrage schickt. Diese wird von PHP durch die globale Variable
|
|
|
|
|
- <code>HTTP_ACCEPT_LANGUAGE</code> veröffentlicht. Wenn kein passendes
|
|
|
|
|
- Gebietsschema gefunden wurde, dann wird mit <code>ENVIRONMENT</code> gesucht und
|
|
|
|
|
- als letztes mit <code>FRAMEWORK</code> gesucht.
|
|
|
|
|
|
|
+ const <classname>Zend_Locale::BROWSER</classname> - Der Webbrowser des
|
|
|
|
|
+ Benutzer welcher die Informationen mit jeder Anfrage schickt. Diese wird von
|
|
|
|
|
+ PHP durch die globale Variable <code>HTTP_ACCEPT_LANGUAGE</code>
|
|
|
|
|
+ veröffentlicht. Wenn kein passendes Gebietsschema gefunden wurde, dann wird
|
|
|
|
|
+ mit <code>ENVIRONMENT</code> gesucht und als letztes mit
|
|
|
|
|
+ <code>FRAMEWORK</code> gesucht.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- const <classname>Zend_Locale::ENVIRONMENT</classname> - PHP veröffentlicht das Gebietsschema
|
|
|
|
|
- des hostenden Servers über die interne PHP Funktion <code>setlocale()</code>. Wenn
|
|
|
|
|
- kein passendes Gebietsschema gefunden wurde, dann wird mit <code>FRAMEWORK</code>
|
|
|
|
|
- und als letztes mit <code>BROWSER</code> gesucht.
|
|
|
|
|
|
|
+ const <classname>Zend_Locale::ENVIRONMENT</classname> - PHP veröffentlicht
|
|
|
|
|
+ das Gebietsschema des hostenden Servers über die interne PHP Funktion
|
|
|
|
|
+ <code>setlocale()</code>. Wenn kein passendes Gebietsschema gefunden wurde,
|
|
|
|
|
+ dann wird mit <code>FRAMEWORK</code> und als letztes mit
|
|
|
|
|
+ <code>BROWSER</code> gesucht.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- const <classname>Zend_Locale::FRAMEWORK</classname> - Wenn Zend Framework einen standartisierten
|
|
|
|
|
- Weg zur Verfügung stellt um für Komponenten Standardwerte zu definieren (das ist geplant
|
|
|
|
|
- aber noch nicht realisiert), dann wird die Verwendung dieser Konstante das
|
|
|
|
|
- Gebietsschema anhand dieser Standardwerte auswählen. Wenn kein passendes Gebietsschema
|
|
|
|
|
- gefunden wurde, dann wird mit <code>ENVIRONMENT</code> und als letztes mit
|
|
|
|
|
|
|
+ const <classname>Zend_Locale::FRAMEWORK</classname> - Wenn Zend Framework
|
|
|
|
|
+ einen standartisierten Weg zur Verfügung stellt um für Komponenten
|
|
|
|
|
+ Standardwerte zu definieren (das ist geplant aber noch nicht realisiert),
|
|
|
|
|
+ dann wird die Verwendung dieser Konstante das Gebietsschema anhand dieser
|
|
|
|
|
+ Standardwerte auswählen. Wenn kein passendes Gebietsschema gefunden wurde,
|
|
|
|
|
+ dann wird mit <code>ENVIRONMENT</code> und als letztes mit
|
|
|
<code>BROWSER</code> gesucht.
|
|
<code>BROWSER</code> gesucht.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
@@ -255,14 +275,15 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
<title>Verwenden automatischer Gebietsschemata</title>
|
|
<title>Verwenden automatischer Gebietsschemata</title>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- <classname>Zend_Locale</classname> bietet drei zusätzliche Gebietsschemata. Diese Gebietsschemata gehören
|
|
|
|
|
- nicht zu irgendeiner Sprache oder Region. Es sind "automatische" Gebietsschemata was bedeutet das
|
|
|
|
|
- Sie den gleichen Effekt wie die Methode <code>getDefault()</code> haben, aber ohne die negativen
|
|
|
|
|
- Effekte wie die Erstellung einer Instanz. Diese "automatischen" gebietsschemata können überall
|
|
|
|
|
- verwendet werden, wo auch standard Gebietsschemata verwendet werden können, und für die
|
|
|
|
|
- Definition eines Gebietsschemas, kann auch die String Repräsentation verwendet werden. Das bietet
|
|
|
|
|
- Einfachheit für Situationen wo mit Gebietsschemas gearbeitet wird die vom Browser geliefert
|
|
|
|
|
- werden.
|
|
|
|
|
|
|
+ <classname>Zend_Locale</classname> bietet drei zusätzliche Gebietsschemata. Diese
|
|
|
|
|
+ Gebietsschemata gehören nicht zu irgendeiner Sprache oder Region. Es sind "automatische"
|
|
|
|
|
+ Gebietsschemata was bedeutet das Sie den gleichen Effekt wie die Methode
|
|
|
|
|
+ <code>getDefault()</code> haben, aber ohne die negativen Effekte wie die Erstellung
|
|
|
|
|
+ einer Instanz. Diese "automatischen" gebietsschemata können überall verwendet werden, wo
|
|
|
|
|
+ auch standard Gebietsschemata verwendet werden können, und für die Definition eines
|
|
|
|
|
+ Gebietsschemas, kann auch die String Repräsentation verwendet werden. Das bietet
|
|
|
|
|
+ Einfachheit für Situationen wo mit Gebietsschemas gearbeitet wird die vom Browser
|
|
|
|
|
+ geliefert werden.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
@@ -271,40 +292,42 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
<orderedlist>
|
|
<orderedlist>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <code>'browser'</code> - <classname>Zend_Locale</classname> soll mit den Informationen arbeiten
|
|
|
|
|
- die durch den Web Browser des Benutzers geliefert werden. Sie werden von PHP in der
|
|
|
|
|
- globalen Variable <code>HTTP_ACCEPT_LANGUAGE</code> veröffentlicht.
|
|
|
|
|
|
|
+ <code>'browser'</code> - <classname>Zend_Locale</classname> soll mit den
|
|
|
|
|
+ Informationen arbeiten die durch den Web Browser des Benutzers geliefert
|
|
|
|
|
+ werden. Sie werden von PHP in der globalen Variable
|
|
|
|
|
+ <code>HTTP_ACCEPT_LANGUAGE</code> veröffentlicht.
|
|
|
</para>
|
|
</para>
|
|
|
<para>
|
|
<para>
|
|
|
- Wenn ein Benutzer mehr als ein Gebietsschema in seinem Browser anbietet, wird
|
|
|
|
|
- <classname>Zend_Locale</classname> das erste gefundene Gebietsschema verwenden. Wenn der
|
|
|
|
|
- Benutzer kein Gebietsschema liefert oder das Skript von der Kommandozeile aufgerufen
|
|
|
|
|
- wird, wird automatisch das Gebietsschema <code>'environment'</code> verwendet und
|
|
|
|
|
- zurückgegeben.
|
|
|
|
|
|
|
+ Wenn ein Benutzer mehr als ein Gebietsschema in seinem Browser anbietet,
|
|
|
|
|
+ wird <classname>Zend_Locale</classname> das erste gefundene Gebietsschema
|
|
|
|
|
+ verwenden. Wenn der Benutzer kein Gebietsschema liefert oder das Skript von
|
|
|
|
|
+ der Kommandozeile aufgerufen wird, wird automatisch das Gebietsschema
|
|
|
|
|
+ <code>'environment'</code> verwendet und zurückgegeben.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <code>'environment'</code> - <classname>Zend_Locale</classname> soll mit den Informationen arbeiten
|
|
|
|
|
- welche vom Host Server geliefert werden. Sie werden vom PHP über die interne Funktion
|
|
|
|
|
- <code>setlocale()</code> veröffentlicht.
|
|
|
|
|
|
|
+ <code>'environment'</code> - <classname>Zend_Locale</classname> soll mit den
|
|
|
|
|
+ Informationen arbeiten welche vom Host Server geliefert werden. Sie werden
|
|
|
|
|
+ vom PHP über die interne Funktion <code>setlocale()</code> veröffentlicht.
|
|
|
</para>
|
|
</para>
|
|
|
<para>
|
|
<para>
|
|
|
- Wenn eine Umgebung mehr als ein Gebietsschema anbietet, wird <classname>Zend_Locale</classname>
|
|
|
|
|
- das erste gefundene Gebietsschema verwenden. Wenn der Host kein Gebietsschema anbietet
|
|
|
|
|
- wird automatisch das Gebietsschema <code>'browser'</code> verwendet und zurückgegeben.
|
|
|
|
|
|
|
+ Wenn eine Umgebung mehr als ein Gebietsschema anbietet, wird
|
|
|
|
|
+ <classname>Zend_Locale</classname> das erste gefundene Gebietsschema
|
|
|
|
|
+ verwenden. Wenn der Host kein Gebietsschema anbietet wird automatisch das
|
|
|
|
|
+ Gebietsschema <code>'browser'</code> verwendet und zurückgegeben.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <code>'auto'</code> - <classname>Zend_Locale</classname> soll automatisch jedes beliebige
|
|
|
|
|
- Gebietsschema erkennen mit dem gearbeitet werden kann. Zuerst wird nach dem
|
|
|
|
|
- Gebietsschema des Benutzers gesucht und anschließend, wenn das nicht erfolgreich war,
|
|
|
|
|
- nach dem Gebietsschema des Hosts.
|
|
|
|
|
|
|
+ <code>'auto'</code> - <classname>Zend_Locale</classname> soll automatisch
|
|
|
|
|
+ jedes beliebige Gebietsschema erkennen mit dem gearbeitet werden kann.
|
|
|
|
|
+ Zuerst wird nach dem Gebietsschema des Benutzers gesucht und anschließend,
|
|
|
|
|
+ wenn das nicht erfolgreich war, nach dem Gebietsschema des Hosts.
|
|
|
</para>
|
|
</para>
|
|
|
<para>
|
|
<para>
|
|
|
- Wenn kein Gebietsschema gefunden werden konnte, wird eine Ausnahme geworfen und
|
|
|
|
|
- bekanntgeben das die automatische Erkennung fehlgeschlagen ist.
|
|
|
|
|
|
|
+ Wenn kein Gebietsschema gefunden werden konnte, wird eine Ausnahme geworfen
|
|
|
|
|
+ und bekanntgeben das die automatische Erkennung fehlgeschlagen ist.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
</orderedlist>
|
|
</orderedlist>
|
|
@@ -329,17 +352,17 @@ $date = new Zend_Date('auto');
|
|
|
<title>Verwenden eines Standard Gebietsschemas</title>
|
|
<title>Verwenden eines Standard Gebietsschemas</title>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- In einigen Umgebungen ist es nicht möglich automatisch ein Gebietsschema zu erkennen. Man kann
|
|
|
|
|
- dieses Verhalten zum Beispiel sehen wenn eine Anfrage von der Kommandozeile kommt, oder der
|
|
|
|
|
- anfragende Browser kein Sprachtag gesetzt hat und zusätzlich der Server das Standardgebietsschema
|
|
|
|
|
- 'C' gesetzt hat oder ein anderes propäritäres Gebietsschema.
|
|
|
|
|
|
|
+ In einigen Umgebungen ist es nicht möglich automatisch ein Gebietsschema zu erkennen.
|
|
|
|
|
+ Man kann dieses Verhalten zum Beispiel sehen wenn eine Anfrage von der Kommandozeile
|
|
|
|
|
+ kommt, oder der anfragende Browser kein Sprachtag gesetzt hat und zusätzlich der Server
|
|
|
|
|
+ das Standardgebietsschema 'C' gesetzt hat oder ein anderes propäritäres Gebietsschema.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- In solchen Fällen wirft <classname>Zend_Locale</classname> normalerweise eine Ausnahme mit einer Nachricht,
|
|
|
|
|
- das die automatische Erkennung des Gebietsschemas nicht erfolgreich war. Es gibt zwei Optionen
|
|
|
|
|
- um diese Situation handzuhaben. Entweder durch das Setzen eines neuen Gebietsschemas per Hand, oder
|
|
|
|
|
- der Definition eines Standardgebietsschemas.
|
|
|
|
|
|
|
+ In solchen Fällen wirft <classname>Zend_Locale</classname> normalerweise eine Ausnahme
|
|
|
|
|
+ mit einer Nachricht, das die automatische Erkennung des Gebietsschemas nicht erfolgreich
|
|
|
|
|
+ war. Es gibt zwei Optionen um diese Situation handzuhaben. Entweder durch das Setzen
|
|
|
|
|
+ eines neuen Gebietsschemas per Hand, oder der Definition eines Standardgebietsschemas.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.defaultlocale.example-1">
|
|
<example id="zend.locale.defaultlocale.example-1">
|
|
@@ -358,17 +381,18 @@ $date = new Zend_Date($locale);
|
|
|
</example>
|
|
</example>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Aber das hat einen großen negativen Effekt. Man muß das Gebietsschema-Objekt in jeder Klasse
|
|
|
|
|
- setzen die <classname>Zend_Locale</classname> verwendet. Das kann sehr unhandlch sein wenn mehrere Klassen
|
|
|
|
|
- verwendet werden.
|
|
|
|
|
|
|
+ Aber das hat einen großen negativen Effekt. Man muß das Gebietsschema-Objekt in jeder
|
|
|
|
|
+ Klasse setzen die <classname>Zend_Locale</classname> verwendet. Das kann sehr unhandlch
|
|
|
|
|
+ sein wenn mehrere Klassen verwendet werden.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Seit Zend Framework Release 1.5 gibt es einen viel besseren Weg um das handzuhaben. Man kann
|
|
|
|
|
- ein Standard Gebietsschema mit der statischen <code>setDefault()</code> Methode setzen. Natürlich
|
|
|
|
|
- wird jedes unbekannte oder nicht voll qualifizierte Gebietsschema eine Ausnahme werden.
|
|
|
|
|
- <code>setDefault()</code> sollte der erste Aufruf sein bevor irgendeine Klasse initiiert wird
|
|
|
|
|
- die <classname>Zend_Locale</classname> verwendet. Siehe das folgende Beispiel für Details:
|
|
|
|
|
|
|
+ Seit Zend Framework Release 1.5 gibt es einen viel besseren Weg um das handzuhaben. Man
|
|
|
|
|
+ kann ein Standard Gebietsschema mit der statischen <code>setDefault()</code> Methode
|
|
|
|
|
+ setzen. Natürlich wird jedes unbekannte oder nicht voll qualifizierte Gebietsschema eine
|
|
|
|
|
+ Ausnahme werden. <code>setDefault()</code> sollte der erste Aufruf sein bevor irgendeine
|
|
|
|
|
+ Klasse initiiert wird die <classname>Zend_Locale</classname> verwendet. Siehe das
|
|
|
|
|
+ folgende Beispiel für Details:
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.defaultlocale.example-2">
|
|
<example id="zend.locale.defaultlocale.example-2">
|
|
@@ -395,11 +419,12 @@ $date = new Zend_Date();
|
|
|
<title>ZF lokalisierbare Klassen</title>
|
|
<title>ZF lokalisierbare Klassen</title>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Im ZF sind lokalisierbare Klassen von <classname>Zend_Locale</classname> abhängig um ein Gebietsschema
|
|
|
|
|
- automatisch auszuwählen, wie im oberen Abschnitt geschrieben. Das Erstellen eines Datums durch
|
|
|
|
|
- Verwendung von <classname>Zend_Date</classname> ohne die Angabe eines Gebietsschemas führt als Ergebnis zu
|
|
|
|
|
- einem Objekt mit einem Gebietsschema, basierend auf den Informationen welche durch den Webbrowser des
|
|
|
|
|
- Benutzers zur Verfügung gestellt werden.
|
|
|
|
|
|
|
+ Im ZF sind lokalisierbare Klassen von <classname>Zend_Locale</classname> abhängig um ein
|
|
|
|
|
+ Gebietsschema automatisch auszuwählen, wie im oberen Abschnitt geschrieben. Das
|
|
|
|
|
+ Erstellen eines Datums durch Verwendung von <classname>Zend_Date</classname> ohne die
|
|
|
|
|
+ Angabe eines Gebietsschemas führt als Ergebnis zu einem Objekt mit einem Gebietsschema,
|
|
|
|
|
+ basierend auf den Informationen welche durch den Webbrowser des Benutzers zur Verfügung
|
|
|
|
|
+ gestellt werden.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.interoperate.example-1">
|
|
<example id="zend.locale.interoperate.example-1">
|
|
@@ -410,9 +435,10 @@ $date = new Zend_Date('2006',Zend_Date::YEAR);
|
|
|
</example>
|
|
</example>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Um dieses Standardverhalten zu übergehen, und die eine lokalisierbare ZF Komponente dazu zu bringen
|
|
|
|
|
- ein spezielles Gebietsschema zu benutzen welches unabhängig vom Gebietsschema des Besucher der
|
|
|
|
|
- Webseite ist, muß als dritter Parameter im Konstruktor das Gebietsschema angegeben werden.
|
|
|
|
|
|
|
+ Um dieses Standardverhalten zu übergehen, und die eine lokalisierbare ZF Komponente dazu
|
|
|
|
|
+ zu bringen ein spezielles Gebietsschema zu benutzen welches unabhängig vom Gebietsschema
|
|
|
|
|
+ des Besucher der Webseite ist, muß als dritter Parameter im Konstruktor das
|
|
|
|
|
+ Gebietsschema angegeben werden.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.interoperate.example-2">
|
|
<example id="zend.locale.interoperate.example-2">
|
|
@@ -427,13 +453,15 @@ $temp = new Zend_Measure_Temperature('100,10',
|
|
|
</example>
|
|
</example>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Wenn viele Objekte benutzt werden die alle das gleiche Gebietsschema verwenden, sollte das
|
|
|
|
|
- Gebietsschema explizit definiert werden, um die zusätzliche Arbeit des Objekts durch die
|
|
|
|
|
- Eruierung des Standardmäßigen Gebietsschemas zu verringern.
|
|
|
|
|
|
|
+ Wenn viele Objekte benutzt werden die alle das gleiche Gebietsschema verwenden, sollte
|
|
|
|
|
+ das Gebietsschema explizit definiert werden, um die zusätzliche Arbeit des Objekts durch
|
|
|
|
|
+ die Eruierung des Standardmäßigen Gebietsschemas zu verringern.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.interoperate.example-3">
|
|
<example id="zend.locale.interoperate.example-3">
|
|
|
- <title>Optimierung der Geschwindigkeit durch Benutzung eines Standard Gebietsschemas</title>
|
|
|
|
|
|
|
+ <title>
|
|
|
|
|
+ Optimierung der Geschwindigkeit durch Benutzung eines Standard Gebietsschemas
|
|
|
|
|
+ </title>
|
|
|
<programlisting role="php"><![CDATA[
|
|
<programlisting role="php"><![CDATA[
|
|
|
$locale = new Zend_Locale();
|
|
$locale = new Zend_Locale();
|
|
|
$date = new Zend_Date('2006', Zend_Date::YEAR, $locale);
|
|
$date = new Zend_Date('2006', Zend_Date::YEAR, $locale);
|
|
@@ -450,12 +478,13 @@ $temp = new Zend_Measure_Temperature('100,10',
|
|
|
<title>Anwendungsweites Gebietsschema</title>
|
|
<title>Anwendungsweites Gebietsschema</title>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Zend Framework erlaubt die Verwendung eines Anwendungsweiten Gebietsschemas. Man kann einfach eine
|
|
|
|
|
- Instanz von <classname>Zend_Locale</classname> in der Registry mit dem Schüssel 'Zend_Locale' setzen.
|
|
|
|
|
- Dann wird diese Instanz in allen Klassen vom Zend Framework die Gebietsschemata verwenden selbst
|
|
|
|
|
- verwendet. Auf diesem Weg wird eine Instanz in der Registry gesetzt und dann kann man das weitere
|
|
|
|
|
- Setzen vergessen. Sie wird automatisch in allen anderen Klassen verwendet. Siehe das folgende
|
|
|
|
|
- Beispiel für die richtige Verwendung:
|
|
|
|
|
|
|
+ Zend Framework erlaubt die Verwendung eines Anwendungsweiten Gebietsschemas. Man kann
|
|
|
|
|
+ einfach eine Instanz von <classname>Zend_Locale</classname> in der Registry mit dem
|
|
|
|
|
+ Schüssel 'Zend_Locale' setzen. Dann wird diese Instanz in allen Klassen vom Zend
|
|
|
|
|
+ Framework die Gebietsschemata verwenden selbst verwendet. Auf diesem Weg wird eine
|
|
|
|
|
+ Instanz in der Registry gesetzt und dann kann man das weitere Setzen vergessen. Sie wird
|
|
|
|
|
+ automatisch in allen anderen Klassen verwendet. Siehe das folgende Beispiel für die
|
|
|
|
|
+ richtige Verwendung:
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.frameworkwidelocale.example">
|
|
<example id="zend.locale.frameworkwidelocale.example">
|
|
@@ -479,23 +508,25 @@ echo $date->getDate();
|
|
|
<title>Zend_Locale_Format::setOptions(array $options)</title>
|
|
<title>Zend_Locale_Format::setOptions(array $options)</title>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Die Option 'precision' wird benutzt um einen Wert zu verkürzen oder mit extra Ziffern zu strecken.
|
|
|
|
|
- Ein Wert von '-1' verhindert die Veränderung der Anzahl an Ziffern im Nachkomma-Teil des Wertes.
|
|
|
|
|
- Die 'locale' Option hilft wenn Nummern und Daten analysiert werden und hierbei Trennzeichen oder
|
|
|
|
|
- Monatsnamen verwendet werden. Die Datumsformat Option 'format_type' wählt zwischen CLDR/ISO
|
|
|
|
|
- Datumsdefinitionen und PHP's date() Definitionen. Die Option 'fix_date' erlaubt oder verhindert eine
|
|
|
|
|
- Automatik welche versucht falsche Daten zu korrigieren. Die Option 'number_format' definiert ein
|
|
|
|
|
- Standard Format für Nummern bei Verwendung der Funktion <code>toNumber()</code>. (siehe
|
|
|
|
|
|
|
+ Die Option 'precision' wird benutzt um einen Wert zu verkürzen oder mit extra Ziffern zu
|
|
|
|
|
+ strecken. Ein Wert von '-1' verhindert die Veränderung der Anzahl an Ziffern im
|
|
|
|
|
+ Nachkomma-Teil des Wertes. Die 'locale' Option hilft wenn Nummern und Daten analysiert
|
|
|
|
|
+ werden und hierbei Trennzeichen oder Monatsnamen verwendet werden. Die Datumsformat
|
|
|
|
|
+ Option 'format_type' wählt zwischen CLDR/ISO Datumsdefinitionen und PHP's date()
|
|
|
|
|
+ Definitionen. Die Option 'fix_date' erlaubt oder verhindert eine Automatik welche
|
|
|
|
|
+ versucht falsche Daten zu korrigieren. Die Option 'number_format' definiert ein Standard
|
|
|
|
|
+ Format für Nummern bei Verwendung der Funktion <code>toNumber()</code>. (siehe
|
|
|
<xref
|
|
<xref
|
|
|
linkend= "zend.locale.number.localize"/>
|
|
linkend= "zend.locale.number.localize"/>
|
|
|
).
|
|
).
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Die Option 'date_format' kann verwendet werden um ein Standard Datumsformat zu definieren. Aber Achtung
|
|
|
|
|
- bei der Verwendung von getDate(), checkDateFormat() und getTime() nach der Verwendung von setOptions()
|
|
|
|
|
- mit einem 'date_format'. Um diese vier Methoden mit einem Standard Datumsformat für ein Gebietsschema
|
|
|
|
|
- zu benutzen, muß array('date_format' => null, 'locale' => $locale) in deren Optionen angegeben werden.
|
|
|
|
|
|
|
+ Die Option 'date_format' kann verwendet werden um ein Standard Datumsformat zu
|
|
|
|
|
+ definieren. Aber Achtung bei der Verwendung von getDate(), checkDateFormat() und
|
|
|
|
|
+ getTime() nach der Verwendung von setOptions() mit einem 'date_format'. Um diese vier
|
|
|
|
|
+ Methoden mit einem Standard Datumsformat für ein Gebietsschema zu benutzen, muß
|
|
|
|
|
+ array('date_format' => null, 'locale' => $locale) in deren Optionen angegeben werden.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.formatoptions.example-1">
|
|
<example id="zend.locale.formatoptions.example-1">
|
|
@@ -509,10 +540,12 @@ Zend_Locale_Format::setOptions(array('locale' => 'en_US',
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
Um mit den Standarddefinitionen eines Gebietsschemas zu arbeiten kann die Konstante
|
|
Um mit den Standarddefinitionen eines Gebietsschemas zu arbeiten kann die Konstante
|
|
|
- <classname>Zend_Locale_Format::STANDARD</classname> verwendet werden. Das Setzen der Konstante <classname>Zend_Locale_Format::STANDARD</classname>
|
|
|
|
|
- für '<code>date_format</code>' benutzt die Standarddefinition des aktuellen Gebietsschemas. Das Setzen für
|
|
|
|
|
- 'number_format' benutzt das Standard Nummernformat dieses Gebietsschemas. Und das Setzen für 'locale'
|
|
|
|
|
- verwendet das Standard Gebietsschema des Servers oder Browsers.
|
|
|
|
|
|
|
+ <classname>Zend_Locale_Format::STANDARD</classname> verwendet werden. Das Setzen der
|
|
|
|
|
+ Konstante <classname>Zend_Locale_Format::STANDARD</classname> für
|
|
|
|
|
+ '<code>date_format</code>' benutzt die Standarddefinition des aktuellen Gebietsschemas.
|
|
|
|
|
+ Das Setzen für 'number_format' benutzt das Standard Nummernformat dieses Gebietsschemas.
|
|
|
|
|
+ Und das Setzen für 'locale' verwendet das Standard Gebietsschema des Servers oder
|
|
|
|
|
+ Browsers.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<example id="zend.locale.formatoptions.example-2">
|
|
<example id="zend.locale.formatoptions.example-2">
|
|
@@ -539,15 +572,16 @@ Zend_Locale_Format::setOptions(array('locale' => Zend_Locale_Format::STANDARD,
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
<classname>Zend_Locale</classname> und dessen Subklassen können durch die Verwendung von
|
|
<classname>Zend_Locale</classname> und dessen Subklassen können durch die Verwendung von
|
|
|
- <classname>Zend_Cache</classname> schneller gemacht werden. Man sollte die statische Methode
|
|
|
|
|
- <classname>Zend_Locale::setCache($cache)</classname> verwenden wenn man <classname>Zend_Locale</classname> benutzt.
|
|
|
|
|
- <classname>Zend_Locale_Format</classname> kann schneller gemacht werden indem die Option
|
|
|
|
|
- <code>cache</code> innerhalb von
|
|
|
|
|
- <classname>Zend_Locale_Format::setOptions(array('cache' => $adapter));</classname> aufgerufen wird. Wenn beide
|
|
|
|
|
- Klassen verwendet werden sollte nur für <classname>Zend_Locale</classname> ein Cache gesetzt werden, da der
|
|
|
|
|
- zuletzt gesetzte Cache den vorher gesetzten Cache überschreibt. Der Bequemlichkeit halber gibt es
|
|
|
|
|
- auch die statischen Methoden <classname>Zend_Locale::getCache()</classname>, <code>hasCache()</code>,
|
|
|
|
|
- <code>clearCache()</code> und <code>removeCache()</code>.
|
|
|
|
|
|
|
+ <classname>Zend_Cache</classname> schneller gemacht werden. Man sollte die statische
|
|
|
|
|
+ Methode <classname>Zend_Locale::setCache($cache)</classname> verwenden wenn man
|
|
|
|
|
+ <classname>Zend_Locale</classname> benutzt. <classname>Zend_Locale_Format</classname>
|
|
|
|
|
+ kann schneller gemacht werden indem die Option <code>cache</code> innerhalb von
|
|
|
|
|
+ <classname>Zend_Locale_Format::setOptions(array('cache' => $adapter));</classname>
|
|
|
|
|
+ aufgerufen wird. Wenn beide Klassen verwendet werden sollte nur für
|
|
|
|
|
+ <classname>Zend_Locale</classname> ein Cache gesetzt werden, da der zuletzt gesetzte
|
|
|
|
|
+ Cache den vorher gesetzten Cache überschreibt. Der Bequemlichkeit halber gibt es auch
|
|
|
|
|
+ die statischen Methoden <classname>Zend_Locale::getCache()</classname>,
|
|
|
|
|
+ <code>hasCache()</code>, <code>clearCache()</code> und <code>removeCache()</code>.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
</sect2>
|
|
</sect2>
|