|
|
@@ -1,15 +1,15 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<!-- EN-Revision: 22755 -->
|
|
|
-<!-- Reviewed: no -->
|
|
|
+<!-- Reviewed: 22755 -->
|
|
|
<sect1 id="zend.locale.introduction">
|
|
|
<title>Einführung</title>
|
|
|
|
|
|
<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
|
|
|
+ dieselbe 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
|
|
|
+ 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>
|
|
|
|
|
|
@@ -32,18 +32,18 @@
|
|
|
<title>Zend_Locale und setLocale()</title>
|
|
|
|
|
|
<para>
|
|
|
- Die <ulink url="http://php.net/setlocale">Dokumentation von PHP</ulink> sagt das
|
|
|
- <methodname>setlocale()</methodname> 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
|
|
|
+ Die <ulink url="http://php.net/setlocale">Dokumentation von PHP</ulink> sagt, dass
|
|
|
+ <methodname>setlocale()</methodname> nicht threadsicher ist, weil es pro Prozess
|
|
|
+ behandelt wird und nicht pro Thread. Das bedeutet, dass man in multithreaded Umgebungen
|
|
|
+ das Problem bekommen kann, dass sich das Gebietsschema (Locale) ändert, während das Skript
|
|
|
diese Änderung nie selbst durchgeführt hat. Deswegen kann es zu unerwarteten Ergebnissen
|
|
|
- kommen wenn man <methodname>setLocale()</methodname> in seinen Skripts verwendet.
|
|
|
+ kommen, wenn man <methodname>setLocale()</methodname> in seinen Skripts verwendet.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Wenn <classname>Zend_Locale</classname> verwendet wird hat man diese Einschränkungen
|
|
|
- nicht, da <classname>Zend_Locale</classname> weder von <acronym>PHP</acronym>'s
|
|
|
- <methodname>setlocale()</methodname> 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 <acronym>PHP</acronym>s
|
|
|
+ <methodname>setlocale()</methodname> abhängig ist, noch irgendwie mit ihr gekoppelt ist.
|
|
|
</para>
|
|
|
</tip>
|
|
|
|
|
|
@@ -51,16 +51,16 @@
|
|
|
<title>Was ist Lokalisierung</title>
|
|
|
|
|
|
<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
|
|
|
+ Lokalisierung bedeutet, dass eine Anwendung (oder Homepage) von verschiedenen Benutzern
|
|
|
+ verwendet werden kann, die unterschiedliche Sprachen sprechen. Aber wie bereits
|
|
|
+ angedeutet, heißt Lokalisierung mehr als nur die Übersetzung von Zeichenketten. Es
|
|
|
beinhaltet
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist mark='opencircle'>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <classname>Zend_Locale</classname> - Unterstützung für Gebietsschemata welche
|
|
|
+ <classname>Zend_Locale</classname> - Unterstützung für Gebietsschemata, welche
|
|
|
Unterstützung für Lokalisierungen von anderen Zend Framework Komponenten
|
|
|
bieten.
|
|
|
</para>
|
|
|
@@ -100,8 +100,8 @@
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <classname>Zend_Locale_Data</classname> - Empfangen von lokalisierten Standard
|
|
|
- Übersetzungen für Länder, Sprachen und <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 <acronym>CLDR</acronym></ulink>.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
@@ -112,17 +112,17 @@
|
|
|
<title>Was ist ein Gebietsschema?</title>
|
|
|
|
|
|
<para>
|
|
|
- Jeder Computer benutzt Gebietsschemata, selbst wenn Sie es nicht wissen. Anwendungen
|
|
|
+ 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 <emphasis>Lokalisierbar</emphasis>. Aber wie
|
|
|
- weiß der Code welches Gebietsschema ein Benutzer erwartet ?
|
|
|
+ Lokalisierung verwendet, sagen wir, sie ist <emphasis>lokalisierbar</emphasis>. Aber wie
|
|
|
+ weiß der Code, welches Gebietsschema ein Benutzer erwartet ?
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Eine Gebietsschema Zeichenkette oder Objekt welches ein unterstütztes Gebietsschema
|
|
|
+ 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.
|
|
|
+ auf Informationen über die Sprache und Region, welche der Benutzer erwartet.
|
|
|
Formatierungen, Normalisierungen und Konvertierungen werden anhand dieser Informationen
|
|
|
durchgeführt.
|
|
|
</para>
|
|
|
@@ -132,30 +132,30 @@
|
|
|
<title>Wodurch werden Gebietsschemata repräsentiert?</title>
|
|
|
|
|
|
<para>
|
|
|
- Eine Gebietsschema Zeichenkette besteht aus Informationen über die Sprache des Benutzers
|
|
|
+ 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
|
|
|
+ Zuhause oder Arbeitsplatz). Die Gebietsschema Zeichenkette, welche im Zend Framework
|
|
|
+ benutzt werden, sind international definierte Standardabkürzungen von Sprachen und
|
|
|
Regionen. Sie werden geschrieben als <emphasis>sprache_REGION</emphasis>. Beide Teile,
|
|
|
- sowohl Sprache als auch Region, werden mit Buchstaben, <acronym>ASCII</acronym> Zeichen,
|
|
|
+ sowohl Sprache als auch Region, werden mit Buchstaben, <acronym>ASCII</acronym>-Zeichen,
|
|
|
abgekürzt.
|
|
|
</para>
|
|
|
|
|
|
<note>
|
|
|
<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
|
|
|
+ Man muß darauf achten, dass 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.
|
|
|
+ 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>
|
|
|
</note>
|
|
|
|
|
|
<para>
|
|
|
- Ein Benutzer von den USA würde die Sprache Englisch und die Region
|
|
|
+ Ein Benutzer aus den USA würde die Sprache Englisch und die Region
|
|
|
<constant>USA</constant> erwarten, beschrieben durch das Gebietsschema "en_US". Ein
|
|
|
- Benutzer von Deutschland würde die Sprache Deutsch und die Region
|
|
|
+ Benutzer aus Deutschland würde die Sprache Deutsch und die Region
|
|
|
Deutschland 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
|
|
|
@@ -174,30 +174,30 @@ $locale = new Zend_Locale('de_DE'); // deutsche Sprache _ Deutschland
|
|
|
<para>
|
|
|
Ein deutscher Benutzer in Amerika würde die Sprache Deutsch und die Region
|
|
|
<constant>USA</constant> 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
|
|
|
+ nicht direkt als "Gebietsschema" unterstützt und erkannt. Wird eine ungültige
|
|
|
+ Kombination benutzt, dann wird sie stattdessen automatisch gekürzt, indem die Region
|
|
|
+ entfernt wird. Zum Beispiel würde "de_IS" zu "de" und "xh_RU" zu "xh"
|
|
|
+ gekürzt werden, weil keine dieser Kombinationen gültig ist. Wenn die Sprache nicht
|
|
|
+ unterstützt wird (z.B. "zz_US") oder diese nicht existiert, dann wird zusätzlich 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).
|
|
|
+ Informationen gültig sind (z.B. Daten) aber für andere nicht (z.B. Währungsformate).
|
|
|
</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 Zend
|
|
|
- Framework Komponenten darüber nichts wissen. Zum Beispiel kann <ulink
|
|
|
+ Achtung vor historischen Änderungen oder dem Versuch, die verschiedenen Änderungen der
|
|
|
+ Zeitzonen zu verfolgen, die im Laufe der langen Zeit in den vielen Regionen gemacht
|
|
|
+ wurden, da Zend Framework Komponenten darüber nichts wissen kann. 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
|
|
|
+ Dutzenden Änderungen von Regierungen angesehen werden und ob eine Region
|
|
|
<acronym>DST</acronym> (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 Zend Framework Komponenten
|
|
|
+ gemacht werden, wird die Berechnung, welche durch die Zend Framework 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
|
|
|
+ Regeln für Sommer-/Winterzeit und Zeitzonenzuordnung anhand von geographischen Regionen
|
|
|
verwendet werden.
|
|
|
</para>
|
|
|
</sect2>
|
|
|
@@ -207,11 +207,11 @@ $locale = new Zend_Locale('de_DE'); // deutsche Sprache _ Deutschland
|
|
|
|
|
|
<para>
|
|
|
In den meisten Situationen wird <command>new Zend_Locale()</command> automatisch das
|
|
|
- richtige Gebietsschema auswählen, wobei die Informationen benutzt werden welche der
|
|
|
+ richtige Gebietsschema auswählen, wobei die Informationen benutzt werden, welche der
|
|
|
Webbrowser des Benutzers zur Verfügung stellt. Wenn statt dessen
|
|
|
<command>new Zend_Locale(Zend_Locale::ENVIRONMENT</command> benutzt wird, dann werden
|
|
|
- die Informationen vom Betriebsystem des hostenden Servers, wie anbei beschrieben, dafür
|
|
|
- genommen.
|
|
|
+ die Informationen vom Betriebsystem des hostenden Servers, dafür verwendet,
|
|
|
+ wie anbei beschrieben.
|
|
|
</para>
|
|
|
|
|
|
<example id="zend.locale.selection.example-1">
|
|
|
@@ -233,14 +233,14 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
|
|
|
<para>
|
|
|
Der Suchalgorithmus, welcher von <classname>Zend_Locale</classname> für die automatische
|
|
|
- Auswahl des Gebietsschemas verwendet wird beherrscht drei Informationsquellen:
|
|
|
+ Auswahl des Gebietsschemas verwendet wird, verwendet drei Informationsquellen:
|
|
|
|
|
|
<orderedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
const <constant>Zend_Locale::BROWSER</constant> - Der Webbrowser des
|
|
|
- Benutzer welcher die Informationen mit jeder Anfrage schickt. Diese wird von
|
|
|
- <acronym>PHP</acronym> durch die globale Variable
|
|
|
+ Benutzers, welcher die Informationen mit jeder Anfrage schickt. Diese wird
|
|
|
+ von <acronym>PHP</acronym> durch die globale Variable
|
|
|
<constant>$_SERVER['HTTP_ACCEPT_LANGUAGE']</constant> veröffentlicht. Wenn
|
|
|
kein passendes Gebietsschema gefunden wurde, dann wird mit
|
|
|
<constant>ENVIRONMENT</constant> gesucht und als letztes mit
|
|
|
@@ -252,7 +252,7 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
<para>
|
|
|
const <constant>Zend_Locale::ENVIRONMENT</constant> -
|
|
|
<acronym>PHP</acronym> veröffentlicht das Gebietsschema des hostenden
|
|
|
- Servers über die interne <acronym>PHP</acronym> Funktion
|
|
|
+ Servers über die interne <acronym>PHP</acronym>-Funktion
|
|
|
<methodname>setlocale()</methodname>. Wenn kein passendes Gebietsschema
|
|
|
gefunden wurde, dann wird mit <constant>FRAMEWORK</constant> und als letztes
|
|
|
mit <constant>BROWSER</constant> gesucht.
|
|
|
@@ -262,8 +262,8 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
<listitem>
|
|
|
<para>
|
|
|
const <constant>Zend_Locale::FRAMEWORK</constant> - Wenn Zend Framework
|
|
|
- einen standardisierten Weg zur Verfügung stellt um für Komponenten
|
|
|
- Standardwerte zu definieren (das ist geplant aber noch nicht realisiert),
|
|
|
+ einen standardisierten 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 <constant>ENVIRONMENT</constant> und als letztes mit
|
|
|
@@ -279,13 +279,13 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
|
|
|
<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
|
|
|
- <methodname>getDefault()</methodname> 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
|
|
|
+ Gebietsschemata gehören zu keiner Sprache oder Region. Es sind "automatische"
|
|
|
+ Gebietsschemata, was bedeutet dass sie den gleichen Effekt haben wie die Methode
|
|
|
+ <methodname>getDefault()</methodname>, 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>
|
|
|
|
|
|
@@ -296,7 +296,7 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
<listitem>
|
|
|
<para>
|
|
|
'<property>browser</property>' - <classname>Zend_Locale</classname> soll mit
|
|
|
- den Informationen arbeiten die durch den Web Browser des Benutzers geliefert
|
|
|
+ den Informationen arbeiten, die durch den Web Browser des Benutzers geliefert
|
|
|
werden. Sie werden von <acronym>PHP</acronym> in der globalen Variable
|
|
|
<constant>$_SERVER['HTTP_ACCEPT_LANGUAGE']</constant> veröffentlicht.
|
|
|
</para>
|
|
|
@@ -313,15 +313,15 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
<listitem>
|
|
|
<para>
|
|
|
'<property>environment</property>' - <classname>Zend_Locale</classname> soll
|
|
|
- mit den Informationen arbeiten welche vom Host Server geliefert werden. Sie
|
|
|
- werden vom <acronym>PHP</acronym> über die interne Funktion
|
|
|
+ mit den Informationen arbeiten, welche vom Host Server geliefert werden.
|
|
|
+ Sie werden von <acronym>PHP</acronym> über die interne Funktion
|
|
|
<methodname>setlocale()</methodname> veröffentlicht.
|
|
|
</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
|
|
|
+ verwenden. Wenn der Host kein Gebietsschema anbietet, wird automatisch das
|
|
|
Gebietsschema '<property>browser</property>' verwendet und zurückgegeben.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
@@ -329,15 +329,15 @@ $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
|
|
|
<listitem>
|
|
|
<para>
|
|
|
'<property>auto</property>' - <classname>Zend_Locale</classname> soll
|
|
|
- automatisch jedes beliebige Gebietsschema erkennen mit dem gearbeitet werden
|
|
|
- kann. Zuerst wird nach dem Gebietsschema des Benutzers gesucht und
|
|
|
+ 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>
|
|
|
Wenn kein Gebietsschema gefunden werden konnte, wird eine Ausnahme geworfen
|
|
|
- und bekanntgeben das die automatische Erkennung fehlgeschlagen ist.
|
|
|
+ und bekanntgeben, dass die automatische Erkennung fehlgeschlagen ist.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
</orderedlist>
|
|
|
@@ -358,18 +358,18 @@ $date = new Zend_Date('auto');
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="zend.locale.defaultlocale">
|
|
|
- <title>Verwenden eines Standard Gebietsschemas</title>
|
|
|
+ <title>Verwenden eines Standardgebietsschemas</title>
|
|
|
|
|
|
<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
|
|
|
+ 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>
|
|
|
In solchen Fällen wirft <classname>Zend_Locale</classname> normalerweise eine Ausnahme
|
|
|
- mit einer Nachricht, das die automatische Erkennung des Gebietsschemas nicht erfolgreich
|
|
|
+ mit einer Nachricht, dass 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>
|
|
|
@@ -392,16 +392,16 @@ $date = new Zend_Date($locale);
|
|
|
|
|
|
<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.
|
|
|
+ Klasse setzen, die <classname>Zend_Locale</classname> verwendet. Das kann sehr unhandlch
|
|
|
+ sein, wenn mehrere Klassen verwendet werden.
|
|
|
</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 <methodname>setDefault()</methodname>
|
|
|
+ kann ein Standardgebietsschema mit der statischen <methodname>setDefault()</methodname>
|
|
|
Methode setzen. Natürlich wird jedes unbekannte oder nicht voll qualifizierte
|
|
|
- Gebietsschema eine Ausnahme werden. <methodname>setDefault()</methodname> sollte der
|
|
|
- erste Aufruf sein bevor irgendeine Klasse initiiert wird die
|
|
|
+ Gebietsschema eine Ausnahme werfen. <methodname>setDefault()</methodname> sollte der
|
|
|
+ erste Aufruf sein, bevor irgendeine Klasse initiiert wird, die
|
|
|
<classname>Zend_Locale</classname> verwendet. Siehe das folgende Beispiel für Details:
|
|
|
</para>
|
|
|
|
|
|
@@ -418,7 +418,7 @@ $date = new Zend_Date();
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
- Im Fall das kein Gebietsschema erkannt wird, wird automatisch das Gebietsschema
|
|
|
+ Für den Fall, dass kein Gebietsschema erkannt wird, wird automatisch das Gebietsschema
|
|
|
<emphasis>de</emphasis> verwendet. Andernfalls wird das erkannte Gebietsschema
|
|
|
verwendet.
|
|
|
</para>
|
|
|
@@ -429,10 +429,10 @@ $date = new Zend_Date();
|
|
|
|
|
|
<para>
|
|
|
Im Zend Framework sind lokalisierbare Klassen von <classname>Zend_Locale</classname>
|
|
|
- abhängig um ein Gebietsschema automatisch auszuwählen, wie im oberen Abschnitt
|
|
|
+ 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
|
|
|
+ Ergebnis zu einem Objekt mit einem Gebietsschema, basierend auf den Informationen,
|
|
|
welche durch den Webbrowser des Benutzers zur Verfügung gestellt werden.
|
|
|
</para>
|
|
|
|
|
|
@@ -445,8 +445,8 @@ $date = new Zend_Date('2006',Zend_Date::YEAR);
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
- Um dieses Standardverhalten zu übergehen, und die eine lokalisierbare Zend Framework
|
|
|
- Komponente dazu zu bringen ein spezielles Gebietsschema zu benutzen welches unabhängig
|
|
|
+ Um dieses Standardverhalten zu übergehen, und eine lokalisierbare Zend Framework
|
|
|
+ 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>
|
|
|
@@ -464,14 +464,14 @@ $temp = new Zend_Measure_Temperature('100,10',
|
|
|
</example>
|
|
|
|
|
|
<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 jedes Objekts
|
|
|
+ durch die Bestimmung des standardmäßigen Gebietsschemas zu verringern.
|
|
|
</para>
|
|
|
|
|
|
<example id="zend.locale.interoperate.example-3">
|
|
|
<title>
|
|
|
- Optimierung der Geschwindigkeit durch Benutzung eines Standard Gebietsschemas
|
|
|
+ Optimierung der Geschwindigkeit durch Benutzung eines Standard-Gebietsschemas
|
|
|
</title>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -488,11 +488,11 @@ $temp = new Zend_Measure_Temperature('100,10',
|
|
|
<title>Anwendungsweites Gebietsschema</title>
|
|
|
|
|
|
<para>
|
|
|
- Zend Framework erlaubt die Verwendung eines Anwendungsweiten Gebietsschemas. Man kann
|
|
|
+ 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
|
|
|
+ Schüssel 'Zend_Locale' setzen. Dann wird diese Instanz in allen Klassen des Zend
|
|
|
+ Framework verwendet, die Gebietsschemata verwenden. Auf diesem Weg wird eine
|
|
|
+ Instanz in der Registry gesetzt und man kann dann das weitere Setzen vergessen. Sie wird
|
|
|
automatisch in allen anderen Klassen verwendet. Siehe das folgende Beispiel für die
|
|
|
richtige Verwendung:
|
|
|
</para>
|
|
|
@@ -517,21 +517,21 @@ echo $date->getDate();
|
|
|
<title>Zend_Locale_Format::setOptions(array $options)</title>
|
|
|
|
|
|
<para>
|
|
|
- Die Option 'precision' wird benutzt um einen Wert zu verkürzen oder mit extra Ziffern zu
|
|
|
+ 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
|
|
|
+ Nachkommateil des Wertes. Die Option 'locale' hilft, wenn Nummern und Daten analysiert
|
|
|
werden und hierbei Trennzeichen oder Monatsnamen verwendet werden. Die Datumsformat
|
|
|
Option 'format_type' wählt zwischen <acronym>CLDR</acronym>/ISO Datumsdefinitionen und
|
|
|
- <acronym>PHP</acronym>'s date() Definitionen. Die Option 'fix_date' erlaubt oder
|
|
|
+ <acronym>PHP</acronym>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
|
|
|
+ 'number_format' definiert ein Standardformat für Nummern bei Verwendung der Funktion
|
|
|
<methodname>toNumber()</methodname>. (siehe <link
|
|
|
linkend= "zend.locale.number.localize">diesen Abschnitt</link>
|
|
|
).
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Die Option 'date_format' kann verwendet werden um ein Standard Datumsformat zu
|
|
|
+ Die Option 'date_format' kann verwendet werden um ein Standarddatumsformat 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ß
|
|
|
@@ -559,17 +559,17 @@ Zend_Locale_Format::setOptions(array('locale' => 'en_US',
|
|
|
</para>
|
|
|
|
|
|
<example id="zend.locale.formatoptions.example-2">
|
|
|
- <title>Verwendung von STANDARD Definitionen für setOptions()</title>
|
|
|
+ <title>Verwendung von STANDARD-Definitionen für setOptions()</title>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
Zend_Locale_Format::setOptions(array('locale' => 'en_US',
|
|
|
'date_format' => 'dd.MMMM.YYYY'));
|
|
|
-// Überladen des global gesetzten Datumsformats
|
|
|
+// Das global gesetzte Datumsformat außer Kraft setzen
|
|
|
$date = Zend_Locale_Format::getDate('2007-04-20',
|
|
|
array('date_format' =>
|
|
|
Zend_Locale_Format::STANDARD);
|
|
|
|
|
|
-// Überladen des global gesetzten Standard Gebietsschemas
|
|
|
+// Das global gesetzte Standard-Gebietsschema außer Kraft setzen
|
|
|
Zend_Locale_Format::setOptions(array('locale' => Zend_Locale_Format::STANDARD,
|
|
|
'date_format' => 'dd.MMMM.YYYY'));
|
|
|
]]></programlisting>
|
|
|
@@ -577,16 +577,16 @@ Zend_Locale_Format::setOptions(array('locale' => Zend_Locale_Format::STANDARD,
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="zend.locale.cache">
|
|
|
- <title>Zend_Locale und dessen Subklassen schneller machen</title>
|
|
|
+ <title>Zend_Locale und dessen Subklassen beschleunigen</title>
|
|
|
|
|
|
<para>
|
|
|
<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 <methodname>Zend_Locale::setCache($cache)</methodname> verwenden wenn man
|
|
|
+ <classname>Zend_Cache</classname> beschleunigt werden. Man sollte die statische
|
|
|
+ Methode <methodname>Zend_Locale::setCache($cache)</methodname> verwenden, wenn man
|
|
|
<classname>Zend_Locale</classname> benutzt. <classname>Zend_Locale_Format</classname>
|
|
|
- kann schneller gemacht werden indem die Option <property>cache</property> innerhalb von
|
|
|
+ kann schneller gemacht werden, indem die Option <property>cache</property> innerhalb von
|
|
|
<classname>Zend_Locale_Format::setOptions(array('cache' => $adapter));</classname>
|
|
|
- aufgerufen wird. Wenn beide Klassen verwendet werden sollte nur für
|
|
|
+ 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 <methodname>getCache()</methodname>,
|
|
|
@@ -596,11 +596,11 @@ Zend_Locale_Format::setOptions(array('locale' => Zend_Locale_Format::STANDARD,
|
|
|
|
|
|
<para>
|
|
|
Wenn kein Cache gesetzt wird, dann setzt <classname>Zend_Locale</classname> automatisch
|
|
|
- von selbst einen Cache. Manchmal ist es gewünscht zu verhindern das ein Cache gesetzt
|
|
|
+ von selbst einen Cache. Manchmal ist es gewünscht zu verhindern, dass ein Cache gesetzt
|
|
|
wird, selbst wenn das die Performance verringert. In diesem Fall sollte die statische
|
|
|
- <methodname>disableCache(true)</methodname> Methode verwendet werden. Sie schaltet
|
|
|
- nicht nur den aktuell gesetzten Cache aus, ohne Ihn zu löschen, sondern verhindert auch
|
|
|
- das ein Cache automatisch erstellt wird, wenn kein Cache gesetzt ist.
|
|
|
+ Methode <methodname>disableCache(true)</methodname> verwendet werden. Sie schaltet
|
|
|
+ nicht nur den aktuell gesetzten Cache aus, ohne ihn zu löschen, sondern verhindert auch,
|
|
|
+ dass ein Cache automatisch erstellt wird, wenn kein Cache gesetzt ist.
|
|
|
</para>
|
|
|
</sect2>
|
|
|
</sect1>
|