1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 21751 -->
4 <sect1 id="zend.locale.functions">
5 <title>Zend_Locale verwenden</title>
8 <classname>Zend_Locale</classname> liefert auch lokalisierte Informationen über
9 Gebietsschema für jedes Gebietsschema. Das beinhaltet unser anderem lokalisierte Namen für
10 andere gebietsschema, Tage der Woche, Monatsnamen, usw.
13 <sect2 id="zend.locale.copying">
14 <title>Kopieren, Klonen und Serialisieren von Gebietsschema Objekten</title>
17 Verwende <ulink url="http://php.net/language.oop5.cloning">Klonen von Objekten</ulink>
18 um Gebietsschema Objekte exakt und effizient zu duplizieren. Die meisten lokalisierbaren
19 Methoden akzeptieren auch eine Zeichenkette welche das Gebietsschema repräsentiert.
20 Dieser entspricht dem Ergebnis von <code>$locale->toString()</code>.
23 <example id="zend.locale.copying.example-1">
26 <programlisting language="php"><![CDATA[
27 $locale = new Zend_Locale('ar');
29 // Speichere das $locale Objekt als Serialisierung
30 $serializedLocale = $locale->serialize();
31 // Wiedererstellung des Original Objekts
32 $localeObject = unserialize($serializedLocale);
34 // Erhalte eine Zeichenkette welche das Gebietsschema identifiziert
35 $stringLocale = $locale->toString();
37 // Erstelle eine geklonte Kopie des $locale Objektes
38 $copiedLocale = clone $locale;
40 print "copied: ", $copiedLocale->toString();
42 // PHP ruft automatisch toString() über __toString(); auf
43 print "copied: ", $copiedLocale;
48 <sect2 id="zend.locale.equals">
49 <title>Gleichheit</title>
52 <classname>Zend_Locale</classname> bietet auch eine erwartete Funktion zum Vergleichen
53 von zwei Gebietsschema an. Alle lokalisierbaren Klassen sollten eine Vergleichbare
54 Funktion für eine Gleichheitsprüfung anbieten.
57 <example id="zend.locale.equals.example-1">
58 <title>Prüfung auf gleiche Gebietsschemata</title>
60 <programlisting language="php"><![CDATA[
61 $locale = new Zend_Locale();
62 $mylocale = new Zend_Locale('en_US');
64 // Prüfe ob die Gebietsschema gleich sind
65 if ($locale->equals($mylocale)) {
66 print "Die Gebietsschemata sind gleich";
72 <sect2 id="zend.locale.getdefault">
73 <title>Standard Gebietsschemata</title>
76 Die Methode <methodname>getDefault()</methodname> gibt ein Array mit relevanten
77 Gebietsschemata zurück wobei Informationen vom Web Browser des Benutzers (wenn
78 vorhanden), Informationen vom Betriebsystem des Host Servers und Zend Framework
79 Einstellungen benutzt werden. Wie beim Konstruktor von
80 <classname>Zend_Locale</classname> wählt der erste Parameter die bevorzugte Umgebung von
81 der die Informationen zuerst geholt werden sollen <link
82 linkend="zend.locale.selection">(<constant>BROWSER</constant>,
83 <constant>ENVIRONMENT</constant>, oder <constant>FRAMEWORK)</constant></link>. Der
84 zweite Parameter wechselt zwischen der Rückgabe aller gefundenen Gebietsschemata
85 oder nur dem ersten/besten Gebietsschema. Lokalisierbare Komponenten benutzen
86 normalerweise nur das erste Gebietsschema. Wenn vorhanden, wird eine Bewertung der
87 Qualität mit angegeben.
90 <example id="zend.locale.getdefault.example-1">
91 <title>Das Standard Gebietsschema erhalten</title>
93 <programlisting language="php"><![CDATA[
94 $locale = new Zend_Locale();
96 // Alle Standard Gebietsschema zurückgeben
97 $found = $locale->getDefault();
100 // Nur die Gebietsschema des Browsers zurück geben
101 $found2 = $locale->getDefault(Zend_Locale::BROWSER,TRUE);
107 Um nur die Standard Gebietsschema für <link
108 linkend="zend.locale.selection"><constant>BROWSER</constant>,
109 <constant>ENVIRONMENT</constant>, oder <constant>FRAMEWORK</constant></link> zu
110 erhalten, können die folgenden Methoden benutzt werden:
113 <listitem><para><methodname>getEnvironment()</methodname></para></listitem>
114 <listitem><para><methodname>getBrowser()</methodname></para></listitem>
115 <listitem><para><methodname>getLocale()</methodname></para></listitem>
120 <sect2 id="zend.locale.setlocale">
121 <title>Ein neues Gebietsschema setzen</title>
124 Ein neues Gebietsschema kann mit der Funktion <methodname>setLocale()</methodname>
125 gesetzt werden. Diese Funktion nimmt eine Gebietsschema Zeichenkette als Parameter an.
126 Wenn kein Gebietsschema angegeben wurde, wird ein <link
127 linkend="zend.locale.selection">automatisch gewähltes</link> Gebietsschema benutzt.
130 <example id="zend.locale.setlocale.example-1">
131 <title>setLocale</title>
133 <programlisting language="php"><![CDATA[
134 $locale = new Zend_Locale();
136 // Aktuelles Gebietsschema
137 print $locale->toString();
139 // neues Gebietsschema
140 $locale->setLocale('aa_DJ');
141 print $locale->toString();
146 <sect2 id="zend.locale.getlocale">
147 <title>Auslesen von Sprache und Region</title>
150 <methodname>getLanguage()</methodname> gibt eine Zeichenkette zurück welche den
151 zwei-Zeichen Code der Sprache des Gebietsschemas enthält.
152 <methodname>getRegion()</methodname> gibt eine Zeichenkette zurück welche den
153 Zwei-Zeichen Code der Region des Gebietsschemas enthält.
156 <example id="zend.locale.getlocale.example-1">
157 <title>getLanguage and getRegion</title>
159 <programlisting language="php"><![CDATA[
160 $locale = new Zend_Locale();
162 // Wenn das Gebietsschema 'de_AT' ist, wird 'de' als Sprache zurückgegeben
163 print $locale->getLanguage();
165 // Wenn das Gebietsschema 'de_AT' ist, wird 'AT' als Region zurückgegeben
166 print $locale->getRegion();
171 <sect2 id="zend.locale.getlocaletoterritory">
172 <title>Ein Gebietsschema durch die Angabe eines Territoriums erhalten</title>
175 Wenn man nur ein Territorium oder ein Land hat, dann ist es auch möglich aus diesen
176 Informationen ein Gebietsschema zu erhalten. Man kann manuell suchen ob es ein
177 Gebietsschema für dieses Territorium gibt, indem man
178 <methodname>getLocaleToTerritory()</methodname> verwendet. Diese Methode gibt ein
179 Gebietsschema für das angegebene Territorium zurück, oder <constant>NULL</constant>
180 wenn kein Gebietsschema gefunden werden konnte.
183 <example id="zend.locale.getlocaletoterritory.example-1">
184 <title>getLocaleToTerritory</title>
186 <programlisting language="php"><![CDATA[
187 $locale = Zend_Locale::getLocaleToTerritory('US');
188 // Gibt 'en_US' zurück
193 <title>Großgeschriebene Territorien</title>
196 Wenn man weiß dass man ein Territorium verwendet dann sollte es großgeschrieben
197 werden. Andernfalls könnte man der Meinung sein ein falsches Gebietsschema zu
198 erhalten wenn man andere Methoden verwendet. Beispiel: Wenn man "om" angibt, dann
199 gibt <methodname>getLocaleToTerritory()</methodname> "ar_OM" zurück da es weiß
200 dass man ein Territorium meint. Aber alle anderen Methoden werden "om" zurückgeben
201 da dies auch eine Sprache ist.
205 Wenn man also weiß dass ein angegebener String ein Territorium ist, dann sollte man
206 entweder <methodname>getLocaleToTerritory()</methodname> selbst verwenden bevor man
207 ein Gebietsschema erstellt, oder die Eingabe groß schreiben.
212 <sect2 id="zend.locale.getdata">
213 <title>Lokalisierte Zeichenketten beschaffen</title>
216 <methodname>getTranslationList()</methodname> gibt Zugriff auf viele Arten von
217 lokalisierten Informationen. Diese Informationen sind sehr nützlich wenn man einem
218 Benutzer lokalisierte Daten anzeigen will, ohne das man alles Übersetzen muß. Diese
219 Informationen sind bereits für den Gebrauch vorhanden.
223 Die angefragte Liste an Informationen wird immer als benanntes Array zurückgegeben. Wenn
224 mehr als ein Wert zu einem expliziten Typ angegeben werden soll von dem man Werte
225 erhalten will, muss ein Array statt mehrerer Werte übergeben werden.
228 <example id="zend.locale.getdata.example-1">
229 <title>getTranslationList</title>
231 <programlisting language="php"><![CDATA[
232 $list = Zend_Locale::getTranslationList('language', 'de_AT');
235 // Beispiel Schlüssel -> Werte Paare...
239 // Einen der zurückgegebenen Schlüssel als Wert für die
240 // getTranslation() Methode einer anderen Sprache verwenden
241 print Zend_Locale::getTranslation('de', 'language', 'zh');
242 // Gibt die Übersetzung für die Sprache 'de' in chinesisch zurück
247 Man kann diese Informationen für alle Sprachen auslesen. Aber nicht alle dieser
248 Informationen sind komplett für alle Sprachen. Einige dieser Arten sind auch durch eine
249 eigene Funktion erhältlich wegen der Einfachheit. Anbei eine Liste für detailierte
250 Informationen hierüber.
253 <table id="zend.locale.getdata.table-1">
255 Details für getTranslationList($type = null, $locale = null, $value = null)
262 <entry>Beschreibung</entry>
268 <entry><emphasis>Language</emphasis></entry>
271 Gibt eine lokalisierte Liste aller Sprachen zurück. Der Sprach-Teil des
272 Gebietsschemas wird als Schlüssel und die Übersetzung als Wert
278 <entry><emphasis>Script</emphasis></entry>
281 Gibt eine lokalisierte Liste aller Schriften zurück. Die Schrift wird
282 als Schlüssel die Übersetzung als Wert zurückgegeben
287 <entry><emphasis>Territory</emphasis></entry>
290 Gibt eine lokalisierte Liste aller Territorien zurück. Diese enthält
291 Länder, Kontinente und Territorien. Um nur die Territorien und
292 Kontinente zu erhalten, muß '1' als Wert verwendet werden. Um nur die
293 Länder zu erhalten muß '2' als Wert verwendet werden. Der Landes-Teil
294 des Gebietsschemas wird, wo es möglich ist, als Schlüssel verwendet. In
295 den anderen Fällen wird der offizielle <acronym>ISO</acronym> Code für
296 dieses Territorium verwendet. Das übersetzte Territorium wird als Wert
297 zurückgegeben. Wenn der Wert nicht angegeben wird erhält man eine Liste
303 <entry><emphasis>Variant</emphasis></entry>
306 Gibt eine lokalisierte Liste von bekannten Varianten von Schriften
307 zurück. Die Variante wird als Schlüssel und die Übersetzung als Wert
313 <entry><emphasis>Key</emphasis></entry>
316 Gibt eine lokalisierte Liste von bekannten Schlüsseln zurück. Diese
317 Schlüssel sind generische Werte die in Übersetzungen verwendet werden.
318 Das sind normalerweise Kalendar, Sammlungen und Währungen. Der Schlüssel
319 wird als Arrayschlüssel und die Übersetzung als Wert zurückgegeben
324 <entry><emphasis>Type</emphasis></entry>
327 Gibt eine lokalisierte Liste von bekannten Typen von Schlüssel zurück.
328 Das sind Varianten von Typen von Kalenderrepräsentationen und Typen von
329 Sammlungen. Wenn 'collation' als Wert verwendet wird, dann werden alle
330 Typen von Sammlungen zurückgegeben. Wenn 'calendar' als Wert verwendet
331 wird dann werden alle Typen von Kalender zurückgegeben. Wenn der Wert
332 nicht angegeben wird, dann wird eine Liste mit beidem zurückgegeben. Der
333 Typ wird als Schlüssel und die Übersetzung als Wert zurückgegeben
338 <entry><emphasis>Layout</emphasis></entry>
341 Gibt eine Liste von Regeln zurück die beschreiben wie spezielle
342 Textabschnitte formatiert werden
347 <entry><emphasis>Characters</emphasis></entry>
350 Gibt eine Liste von in diesem Gebietsschema erlaubten Zeichen zurück
355 <entry><emphasis>Delimiters</emphasis></entry>
358 Gibt eine Liste von in diesem Gebietsschema erlaubten Anführungszeichen
364 <entry><emphasis>Measurement</emphasis></entry>
367 Gibt eine Liste von bekannten Bemessungswerten zurück. Diese Liste
368 sollte nicht mehr verwendet werden
373 <entry><emphasis>Months</emphasis></entry>
376 Gibt eine Liste aller Repräsentationen für Monate in diesem
377 Gebietsschema zurück. Es gibt einige unterschiedliche Repräsentationen
378 welche alle als Unterarray zurückgegeben werden. Wenn kein Wert
379 angegeben wird, dann wird eine Liste aller Monate des 'gregorian'
380 (gregorianischen) Kalenders zurückgegeben. Es kann jeder bekannte
381 Kalender als Wert angegeben werden um eine Liste der Monate dieses
382 Kalenders zu erhalten. Der Einfachheit halber sollte <link
383 linkend="zend.date.introduction">Zend_Date</link> verwendet werden
388 <entry><emphasis>Month</emphasis></entry>
391 Gibt eine lokalisierte Liste aller Monatsnamen für dieses Gebietsschema
392 zurück. Wenn der Wert unterdrückt wird, dann wird der normalerweise
393 verwendete gregorianische komplette Name der Monate zurückgegeben, wobei
394 jede Monatsnummer als Schlüssel und das übersetzte Monat als Wert
395 zurückgegeben wird. Man kann die Monate für andere Kalender und Formate
396 erhalten indem ein Array als Wert angegeben wird. Der erste Eintrag des
397 Arrays muß der Kalender sein, der zweite der verwendete Kontext und der
398 dritte die Länge die zurückgegeben werden soll. Der Einfachheit halber
399 sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
405 <entry><emphasis>Days</emphasis></entry>
408 Gibt eine Liste aller Repräsentationen für Tage in diesem Gebietsschema
409 zurück. Es gibt einige unterschiedliche Repräsentationen welche alle als
410 Unterarray zurückgegeben werden. Wenn kein Wert angegeben wird, dann
411 wird eine Liste aller Tage des 'gregorian' (gregorianischen) Kalenders
412 zurückgegeben. Es kann jeder bekannte Kalender als Wert angegeben werden
413 um eine Liste der Tage dieses Kalenders zu erhalten. Der Einfachheit
414 halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
420 <entry><emphasis>Day</emphasis></entry>
423 Gibt eine lokalisierte Liste aller Tagesnamen für dieses Gebietsschema
424 zurück. Wenn der Wert unterdrückt wird, dann wird der normalerweise
425 verwendete gregorianische komplette Name der Tage zurückgegeben, wobei
426 die englische Abkürzung des Tages als Schlüssel und der übersetzte Tag
427 als Wert zurückgegeben wird. Man kann die Tage für andere Kalender und
428 Formate erhalten indem ein Array als Wert angegeben wird. Der erste
429 Eintrag des Arrays muß der Kalender sein, der zweite der verwendete
430 Kontext und der dritte die Länge die zurückgegeben werden soll. Der
431 Einfachheit halber sollte <link
432 linkend="zend.date.introduction">Zend_Date</link> verwendet werden
437 <entry><emphasis>Week</emphasis></entry>
440 Gibt eine Liste von Werten für die korrekte Berechnung der Woche in
441 einem Gebietsschema zurück. Der Einfachheit halber sollte
442 <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
447 <entry><emphasis>Quarters</emphasis></entry>
450 Gibt eine Liste aller Repräsentationen für Quartale in diesem
451 Gebietsschema zurück. Es gibt einige unterschiedliche Repräsentationen
452 welche alle als Unterarray zurückgegeben werden. Wenn kein Wert
453 angegeben wird, dann wird eine Liste aller Quartale des 'gregorian'
454 (gregorianischen) Kalenders zurückgegeben. Es kann jeder bekannte
455 Kalender als Wert angegeben werden um eine Liste der Quartale dieses
456 Kalenders zu erhalten
461 <entry><emphasis>Quarter</emphasis></entry>
464 Gibt eine lokalisierte Liste aller Quartalsnamen für dieses
465 Gebietsschema zurück. Wenn der Wert unterdrückt wird, dann wird der
466 normalerweise verwendete gregorianische komplette Name der Quartale
467 zurückgegeben, wobei jede Quartalsnummer als Schlüssel und das
468 übersetzte Quartal als Wert zurückgegeben wird. Man kann die Quartale
469 für andere Kalender und Formate erhalten indem ein Array als Wert
470 angegeben wird. Der erste Eintrag des Arrays muß der Kalender sein, der
471 zweite der verwendete Kontext und der dritte die Länge die zurückgegeben
477 <entry><emphasis>Eras</emphasis></entry>
480 Gibt eine Liste aller Repräsentationen für Epochen in diesem
481 Gebietsschema zurück. Wenn kein Wert angegeben wird, dann wird eine
482 Liste aller Epochen des 'gregorian' (gregorianischen) Kalenders
483 zurückgegeben. Es kann jeder bekannte Kalender als Wert angegeben werden
484 um eine Liste der Epochen dieses Kalenders zu erhalten
489 <entry><emphasis>Era</emphasis></entry>
492 Gibt eine lokalisierte Liste aller Namen von Epochen für dieses
493 Gebietsschema zurück. Wenn der Wert unterdrückt wird, dann wird der
494 normalerweise verwendete gregorianische komplette Name der Epoche
495 zurückgegeben, wobei jede Epochennummer als Schlüssel und die übersetzte
496 Epoche als Wert zurückgegeben wird. Man kann die Epochen für andere
497 Kalender und Formate erhalten indem ein Array als Wert angegeben wird.
498 Der erste Eintrag des Arrays muß der Kalender sein und der zweite die
499 Länge die zurückgegeben werden soll
504 <entry><emphasis>Date</emphasis></entry>
507 Gibt eine lokalisierte Liste aller Datumsformate für dieses
508 Gebietsschema zurück. Der Name des Datumsformats wird als Schlüssel und
509 das Format selbst als Wert zurückgegeben. Wenn der Wert nicht angegeben
510 wird, dann werden die Datumsformate des gregorianischen Kalenders
511 zurückgegeben. Die Datumsformate für andere Kalender kann man erhalten
512 indem der gewünschte Kalender als String übergeben wird. Der Einfachheit
513 halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
519 <entry><emphasis>Time</emphasis></entry>
522 Gibt eine lokalisierte Liste aller Zeitformate für dieses Gebietsschema
523 zurück. Der Name des Zeitformats wird als Schlüssel und das Format
524 selbst als Wert zurückgegeben. Wenn der Wert nicht angegeben wird, dann
525 werden die Zeitformate des gregorianischen Kalenders zurückgegeben. Die
526 Zeitformate für andere Kalender kann man erhalten indem der gewünschte
527 Kalender als String übergeben wird. Der Einfachheit halber sollte
528 <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
533 <entry><emphasis>DateTime</emphasis></entry>
536 Gibt eine lokalisierte Liste aller Datums-Zeitformate für dieses
537 Gebietsschema zurück. Der Name des Datums-Zeitformats wird als Schlüssel
538 und das Format selbst als Wert zurückgegeben. Wenn der Wert nicht
539 angegeben wird, dann werden die Datums-Zeitformate des gregorianischen
540 Kalenders zurückgegeben. Die Datums-Zeitformate für andere Kalender kann
541 man erhalten indem der gewünschte Kalender als String übergeben wird.
542 Der Einfachheit halber sollte <link
543 linkend="zend.date.introduction">Zend_Date</link> verwendet werden
548 <entry><emphasis>DateItem</emphasis></entry>
551 Gibt eine Liste von Standardformaten für gegebene Datums oder Zeit
557 <entry><emphasis>DateInterval</emphasis></entry>
560 Gibt eine Liste von Datums- oder Zeitformaten zurück die verwendet
561 werden wenn man Intervalle darstellen will. Die Liste ist ein
562 mehrdimentionales Array wobei die erste Dimension das Format des
563 Intervalls und die zweite Dimension das Token mit der größten
569 <entry><emphasis>Field</emphasis></entry>
572 Gibt eine lokalisierte Liste von Datumsfelder zurück die verwendet
573 werden kann um Kalender oder Datumsstrings wie 'Monat' oder 'Jahr' in
574 einer gewünschte Sprache darzustellen. Wenn der Wert nicht angegeben
575 wird dann wird diese Liste für den gregorianischen Kalender
576 zurückgegeben. Man kann diese Liste für andere Kalender erhalten indem
577 der gewünschte Kalender als String übergeben wird
582 <entry><emphasis>Relative</emphasis></entry>
585 Gibt eine lokalisierte Liste von relativen Daten zurück die verwendet
586 werden können um relative Daten wie 'gestern' oder 'morgen' in einer
587 gewünschten Sprache darzustellen. Wenn der Wert nicht angegeben wird
588 dann wird diese Liste für den gregorianischen Kalender zurückgegeben.
589 Man kann diese Liste für andere Kalender erhalten indem der gewünschte
590 Kalender als String übergeben wird
595 <entry><emphasis>Symbols</emphasis></entry>
598 Gibt eine lokalisierte Liste von Zeichen zurück die in Repräsentationen
599 von Zahlen verwendet wird
604 <entry><emphasis>NameToCurrency</emphasis></entry>
607 Gibt eine lokalisierte Liste von Namen für Währungen zurück. Die Währung
608 wird hierbei als Schlüssel und der übersetzte Name als Wert
609 zurückgegeben. Der Einfachheit halber sollte
610 <link linkend="zend.currency.introduction">Zend_Currency</link>
616 <entry><emphasis>CurrencyToName</emphasis></entry>
619 Gibt eine lokalisierte Liste von Währungen für lokalisierte Namen
620 zurück. Der übersetzte Name wird als Schlüssel und die Währung als Wert
621 zurückgegeben. Der Einfachheit halber sollte
622 <link linkend="zend.currency.introduction">Zend_Currency</link>
628 <entry><emphasis>CurrencySymbol</emphasis></entry>
631 Gibt eine Liste von bekannten lokalisierten Symbolen für Währungen
632 zurück. Die Währung wird als Schlüssel und das Symbol als Wert
633 zurückgegeben. Der Einfachheit halber sollte <link
634 linkend="zend.currency.introduction">Zend_Currency</link>
640 <entry><emphasis>Question</emphasis></entry>
643 Gibt eine Liste von lokalisierten Strings für die Akzeptanz ('ja') und
644 die Verneinung ('nein') zurück. Der Einfachheit halber sollte
645 <link linkend="zend.locale.getquestion">Zend_Locale's getQuestion
646 Methode</link> verwendet werden
651 <entry><emphasis>CurrencyFraction</emphasis></entry>
654 Gibt eine Liste von Brüchen für Währungswerte zurück. Die Währung wird
655 als Schlüssel und der Bruch als Integer Wert zurückgegeben. Der
656 Einfachheit halber sollte <link
657 linkend="zend.currency.introduction">Zend_Currency</link> verwendet
663 <entry><emphasis>CurrencyRounding</emphasis></entry>
666 Gibt eine Liste zurück wie welche Währung gerundet werden muß. Die
667 Währung wird als Schlüssel und der Rundungswert als Ganzzahl
668 zurückgegeben. Der Einfachheit halber sollte <link
669 linkend="zend.currency.introduction">Zend_Currency</link>
675 <entry><emphasis>CurrencyToRegion</emphasis></entry>
678 Gibt eine Liste von Währungen zurück von denen bekannt ist das Sie in
679 einer Region verwendet werden. Der <acronym>ISO3166</acronym> Wert
680 ('Region') wird als Arrayschlüssel und der <acronym>ISO4217</acronym>
681 Wert ('Währung') als Arraywert zurückgegeben. Der Einfachheit halber
682 sollte <link linkend="zend.currency.introduction">Zend_Currency</link>
688 <entry><emphasis>RegionToCurrency</emphasis></entry>
691 Gibt eine Liste von Regionen zurück in denen eine Währung verwendet
692 wird. Der <acronym>ISO4217</acronym> Wert ('Währung') wird als
693 Arrayschlüssel und der <acronym>ISO3166</acronym> Wert ('Region') als
694 Arraywert zurückgegeben. Wenn eine Währung in mehreren Regionen
695 verwendet wird dann werden diese Regionen durch ein Leerzeichen
696 getrennt. Der Einfachheit halber sollte <link
697 linkend="zend.currency.introduction">Zend_Currency</link>
703 <entry><emphasis>RegionToTerritory</emphasis></entry>
706 Gibt eine Liste von Territorien mit den Ländern, oder Sub-Territorien
707 welche in diesem Territorium enthalten sind, zurück. Der
708 <acronym>ISO</acronym> Territory Code ('Territorium') wird als
709 Arrayschlüssel und der <acronym>ISO3166</acronym> Wert ('Region') als
710 Arraywert verwendet. Wenn ein Territorium mehrere Regionen enthält
711 werden diese Regionen mit einem Leerzeichen getrennt
716 <entry><emphasis>TerritoryToRegion</emphasis></entry>
719 Gibt eine Liste von Regionen und den Territorien in denen diese Regionen
720 enthalten sind zurück. Der <acronym>ISO3166</acronym> Code ('Region')
721 wird als Arrayschlüssel und der <acronym>ISO</acronym> Territory Code
722 ('Territorium') als Arraywert zurückgegeben. Wenn eine Region in
723 mehreren Territorien enthalten ist werden diese Territorien mit einem
729 <entry><emphasis>ScriptToLanguage</emphasis></entry>
732 Gibt eine Liste von Schriften die in einer Sprache verwendet werden
733 zurück. Der Sprachcode wird als Arrayschlüssel und der Schriftcode als
734 Arraywert zurückgegeben. Wenn eine Sprache mehrere Schriften enthält
735 werden diese Schriften mit einem Leerzeichen getrennt
740 <entry><emphasis>LanguageToScript</emphasis></entry>
743 Gibt eine Liste von Sprachen und den darin geschriebenen Schriften
744 zurück. Der Schriftcode wird als Arrayschlüssel und der Sprachcode als
745 Arraywert zurückgegeben. Wenn eine Schrift in verschiedenen Sprachen
746 verwendet wird werden diese Sprachen mit einem Leerzeichen getrennt
751 <entry><emphasis>TerritoryToLanguage</emphasis></entry>
754 Gibt eine Liste von Ländern zurück die eine Sprache verwenden. Der
755 Ländercode wird als Arrayschlüssel und der Sprachcode als Arraywert
756 zurückgegeben. Wenn eine Sprache in mehreren Ländern verwendet wird
757 werden diese Länder mit einem Leerzeichen getrennt
762 <entry><emphasis>LanguageToTerritory</emphasis></entry>
765 Gibt eine Liste von Ländern und den in diesen Ländern gesprächenen
766 Sprachen zurück. Der Ländercode wird als Arrayschlüssel und der
767 Sprachcode wird als Arraywert zurückgegeben. Wenn ein Land verschiedene
768 Sprachen verwendet werden diese Sprachen mit einem Leerzeichen getrennt
773 <entry><emphasis>TimezoneToWindows</emphasis></entry>
776 Gibt eine Liste von Windows Zeitzonen und den entsprechenden
777 <acronym>ISO</acronym> Zeitzonen zurück. Die Windows Zeitzone dies als
778 Arrayschlüssel und die <acronym>ISO</acronym> Zeitzone als Arraywert
784 <entry><emphasis>WindowsToTimezone</emphasis></entry>
787 Gibt eine Liste von <acronym>ISO</acronym> Zeitzonen und die
788 entsprechenden Windows Zeitzonen zurück. Die <acronym>ISO</acronym>
789 Zeitzone wird als Arrayschlüssel und die Windows Zeitzone als Arraywert
795 <entry><emphasis>TerritoryToTimezone</emphasis></entry>
798 Gibt eine Liste von Regionen oder Territorien und den entsprechenden
799 <acronym>ISO</acronym> Zeitzonen zurück. Die <acronym>ISO</acronym>
800 Zeitzone wird als Arrayschlüssel und der Territory Code als Arraywert
806 <entry><emphasis>TimezoneToTerritory</emphasis></entry>
809 Gibt eine Liste von Zeitzonen und den entsprechenden Regionen oder
810 Territorien zurück. Die Region oder der Territory Code wird als
811 Arrayschlüssel und die <acronym>ISO</acronym> Zeitzone als Arraywert
817 <entry><emphasis>CityToTimezone</emphasis></entry>
820 Gibt eine lokalisierte Liste von Städten zurück die als Übersetzung für
821 eine entsprechende Zeitzone verwendet werden können. Nicht für alle
822 Zeitzonen ist eine Übersetzung vorhanden, aber für einen Benutzer ist
823 eine echte, in seiner Sprache geschriebenen, Stadt besser als der
824 <acronym>ISO</acronym> Name seiner Zeitzone. Die <acronym>ISO</acronym>
825 Zeitzone wird als Arrayschlüssel und die übersetzte Stadt als Arraywert
831 <entry><emphasis>TimezoneToCity</emphasis></entry>
834 Gibt eine Liste von Zeitzonen für lokalisierte Städtenamen zurück. Die
835 lokalisierte Stadt wird als Arrayschlüssel und der
836 <acronym>ISO</acronym> Name der Zeitzone als Arraywert zurückgegeben
841 <entry><emphasis>PhoneToTerritory</emphasis></entry>
844 Gibt eine Liste von Telefoncodes zurück die in einem bestimmten
845 Territorium verwendet werden. Das Territorium (Region) wird als
846 Arrayschlüssel und der Telefoncode als Arraywert verwendet
851 <entry><emphasis>TerritoryToPhone</emphasis></entry>
854 Gibt eine Liste von Territorien zurück in denen ein Telefoncode
855 verwendet wird. Der Telefoncode wird als Arrayschlüssel und das
856 Territorium (Region) als Arraywert verwendet. Wenn ein Telefoncode in
857 verschiedenen Territorien verwendet wird, sind diese mit einem
863 <entry><emphasis>NumericToTerritory</emphasis></entry>
866 Gibt eine Liste von 3 stelligen Numerncodes für Territorien zurück. Das
867 Territorium (Region) wird als Arrayschlüssel und der 3 stellige
868 Nummerncode als Arraywert verwendet
873 <entry><emphasis>TerritoryToNumeric</emphasis></entry>
876 Gibt eine Liste von Territorien mit Ihrem 3 stellige Nummerncode zurück.
877 Das 3 stellige Nummerncode wird als Arrayschlüssel und das Territorium
878 (Region) als Arraywert verwendet
883 <entry><emphasis>Alpha3ToTerritory</emphasis></entry>
886 Gibt eine Liste von 3 stelligen Zeichencodes für Territorien zurück. Das
887 Territorium (Region) wird als Arrayschlüssel und der 3 stellige
888 Zeichencode als Arraywert verwendet
893 <entry><emphasis>TerritoryToAlpha3</emphasis></entry>
896 Gibt eine Liste von Territorien mit Ihrem 3 stelligen Zeichencode
897 zurück. Der 3 stellige Zeichencode wird als Arrayschlüssel und das
898 Territorium (Region) als Arraywert verwendet
903 <entry><emphasis>PostalToTerritory</emphasis></entry>
906 Gibt eine Liste von Territorien mit einem Regex für Post Codes zurück,
907 welche in diesem Territorium enthalten sind. Der <acronym>ISO</acronym>
908 Territory Code ('territory') wird als Arrayschlüssel und das Regex als
914 <entry><emphasis>NumberingSystem</emphasis></entry>
917 Gibt eine Liste von Skripten zurück mit die Schreibweise der
918 Ziffern, die in diesem Skript verwendet werden
923 <entry><emphasis>FallbackToChar</emphasis></entry>
926 Gibt eine Liste von Ersatzzeichen für oft verwendete Unicode Zeichen
927 zurück. Das kann verwendet werden um zum Beispiel "©" mit "(C)" zu
933 <entry><emphasis>CharToFallback</emphasis></entry>
936 Gibt eine Liste von Unicode Zeichen für oft verwendete Ersatzzeichen
937 zurück. Das kann verwendet werden um zum Beispiel "(C)" mit "©" zu
943 <entry><emphasis>LocaleUpgrade</emphasis></entry>
946 Gibt eine Liste von Abhängigkeiten von Gebietsschemata zurück die
947 verwendet werden kann um eine Sprache in ein voll qualifiziertes
948 Gebietsschema hochzurüsten.
953 <entry><emphasis>Unit</emphasis></entry>
956 Gibt eine Liste von lokalisierten Einheiten von Kalendern zurück.
957 Das kann verwendet werden um die Wörter "Tag", "Monat" und so weiter
958 automatisch übersetzen zu lassen
966 Wenn nur ein einzelner übersetzter Wert benötigt wird, kann die
967 <methodname>getTranslation()</methodname> Methode verwendet werden. Diese gibt immer
968 einen String zurück, akzeptiert aber einige andere Typen als die
969 <methodname>getTranslationList()</methodname> Methode. Auch der Wert ist der gleiche wie
970 vorher mit einem Unterschied. Das Detail das man zurückerhalten will muß als
971 zusätzlicher Wert angegeben werden
976 Weil immer ein Wert als Detail angegeben werden muß, muss dieser Parameter als
977 erster Parameter angegeben werden. Das unterscheidet sich von der
978 <methodname>getTranslationList()</methodname> Methode.
983 Siehe die folgende Tabelle für detailierte Informationen:
986 <table id="zend.locale.getdata.table-2">
987 <title>Details für getTranslation($value = null, $type = null, $locale = null)</title>
993 <entry>Beschreibung</entry>
999 <entry><emphasis>Language</emphasis></entry>
1002 Gibt eine Übersetzung für eine Sprache zurück. Um die gewünschte
1003 Übersetzung auszuwählen muß der Sprachcode als Wert angegeben werden
1008 <entry><emphasis>Script</emphasis></entry>
1011 Gibt eine Übersetzung für eine Schrift zurück. Um die gewünschte
1012 Übersetzung auszuwählen muß der Schriftcode als Wert angegeben werden
1018 <emphasis>Territory</emphasis> oder <emphasis>Country</emphasis>
1022 Gibt eine Übersetzung für ein Territorium zurück. Das können Länder,
1023 Kontinente und Territorien sein. Um die gewünschte Variante auszuwählen
1024 muß der Territory Code als Wert angegeben werden
1029 <entry><emphasis>Variant</emphasis></entry>
1032 Gibt eine Übersetzung für eine Schriftvariante zurück. Um die gewünschte
1033 Variante auszuwählen muß der Code der Variante als Wert angegeben werden
1038 <entry><emphasis>Key</emphasis></entry>
1041 Gibt eine Übersetzung für einen bekannten Schlüssel zurück. Diese
1042 Schlüssel sind generische Werte die in Übersetzungen verwendet werden.
1043 Das sind normalerweise Kalender, Sammlung und Währung. Um den
1044 gewünschten Schlüssel auszuwählen muß der Schlüsselcode als Wert
1050 <entry><emphasis>DefaultCalendar</emphasis></entry>
1053 Gibt den Standardkalender für das angegebene Gebietsschema zurück. Für
1054 die meisten wird das 'gregorian' (gregorianisch) sein. Der Einfachheit
1055 halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
1061 <entry><emphasis>MonthContext</emphasis></entry>
1064 Gibt den Standardkontext für Monate zurück der im angegebenen Kalender
1065 verwendet wird. Wenn der Wert nicht angegeben wird, wird der 'gregorian'
1066 (gregorianische) Kalender verwendet. Der Einfachheit halber sollte
1067 <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
1072 <entry><emphasis>DefaultMonth</emphasis></entry>
1075 Gibt das Standardformat für Monate zurück die im angegebene Kalender
1076 verwendet werden. Wenn der Wert nicht angegeben wird, dann wird der
1077 'gregorian' (gregorianische) Kalender verwendet. Der Einfachheit halber
1078 sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
1084 <entry><emphasis>Month</emphasis></entry>
1087 Gibt eine Übersetzung für ein Monat zurück. Es muß die Nummer des Monats
1088 als Ganzzahlwert angegeben werden. Er muß zwischen 1 und 12 sein. Wenn
1089 man die Daten für andere Kalender, Kontexte oder Formate empfangen will,
1090 muß ein Array statt einem Ganzzahlwert mit dem erwarteten Wert angegeben
1091 werden. Das Array muß wie folgt aussehen: <code>array('calendar',
1092 'context', 'format', 'month number')</code>. Wenn nur ein Ganzzahlwert
1093 angegeben wird, sind die Standardwerte der 'gregorian' (Gregorianische)
1094 Kalender, der Kontext 'format' und das Format 'wide'. Der Einfachheit
1095 halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
1101 <entry><emphasis>DayContext</emphasis></entry>
1104 Gibt den Standardkontext für Tage zurück der im angegebenen Kalender
1105 verwendet wird. Wenn der Wert nicht angegeben wird, wird der 'gregorian'
1106 (gregorianische) Kalender verwendet. Der Einfachheit halber sollte
1107 <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
1112 <entry><emphasis>DefaultDay</emphasis></entry>
1115 Gibt das Standardformat für Tage zurück die im angegebene Kalender
1116 verwendet werden. Wenn der Wert nicht angegeben wird, dann wird der
1117 'gregorian' (gregorianische) Kalender verwendet. Der Einfachheit halber
1118 sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
1124 <entry><emphasis>Day</emphasis></entry>
1127 Gibt eine Übersetzung für einen Tag zurück. Es muß die englische
1128 Abkürzung des Tages als Stringwert angegeben werden ('sun', 'mon',
1129 usw.). Wenn man die Daten für andere Kalender, Kontexte oder Formate
1130 empfangen will, muß ein Array statt einem Ganzzahlwert mit dem
1131 erwarteten Wert angegeben werden. Das Array muß wie folgt aussehen:
1132 <methodname>array('calendar', 'context', 'format',
1133 'day abbreviation')</methodname>.
1134 Wenn nur ein String angegeben wird, sind die Standardwerte der
1135 'gregorian' (Gregorianische) Kalender, der Kontext 'format' und das
1136 Format 'wide'. Der Einfachheit halber sollte <link
1137 linkend="zend.date.introduction">Zend_Date</link> verwendet werden
1142 <entry><emphasis>Quarter</emphasis></entry>
1145 Gibt eine Übersetzung für ein Quartal zurück. Es muß die Nummer des
1146 Quartals Ganzzahl angegeben werden und diese muß zwischen 1 und 4 sein.
1147 Wenn man die Daten für andere Kalender, Kontexte oder Formate empfangen
1148 will, muß ein Array statt einem Ganzzahlwert mit dem erwarteten Wert
1149 angegeben werden. Das Array muß wie folgt aussehen:
1150 <methodname>array('calendar', 'context', 'format',
1151 'quarter number')</methodname>.
1152 Wenn nur ein String angegeben wird, sind die Standardwerte der
1153 'gregorian' (Gregorianische) Kalender, der Kontext 'format' und das
1159 <entry><emphasis>Am</emphasis></entry>
1162 Gibt eine Übersetzung für 'AM' in dem erwarteten Gebietsschema zurück.
1163 Wenn man die Daten für andere Kalender empfangen will, muß ein String
1164 mit dem erwarteten Kalender angegeben werden. Wenn der Wert nicht
1165 angegeben wird, dann wird der 'gregorian' (Gregorianische) Kalender
1166 verwendet. Der Einfachheit halber sollte <link
1167 linkend="zend.date.introduction">Zend_Date</link> verwendet werden
1172 <entry><emphasis>Pm</emphasis></entry>
1175 Gibt eine Übersetzung für 'PM' in dem erwarteten Gebietsschema zurück.
1176 Wenn man die Daten für andere Kalender empfangen will, muß ein String
1177 mit dem erwarteten Kalender angegeben werden. Wenn der Wert nicht
1178 angegeben wird, dann wird der 'gregorian' (Gregorianische) Kalender
1179 verwendet. Der Einfachheit halber sollte <link
1180 linkend="zend.date.introduction">Zend_Date</link> verwendet werden
1185 <entry><emphasis>Era</emphasis></entry>
1188 Gibt eine Übersetzung für eine Epoche zurück. Es muß die Nummer der
1189 Epoche als Ganzzahl oder String angegeben werden. Wenn man die Daten
1190 für andere Kalender oder Formate empfangen will, muß ein Array statt
1191 einem Ganzzahlwert mit dem erwarteten Wert angegeben werden. Das Array
1192 muß wie folgt aussehen: <code>array('calendar', 'format',
1193 'era number')</code>. Wenn nur ein String angegeben wird, sind die
1194 Standardwerte der 'gregorian' (Gregorianische) Kalender und das Format
1200 <entry><emphasis>DefaultDate</emphasis></entry>
1203 Gibt das Standard Datumsformat zurück das im angegebenen Kalender
1204 verwendet wird. Wenn der Wert nicht angegeben wird, dann wird der
1205 'gregorian' (Gregorianische) Kalender verwendet. Der Einfachheit halber
1206 sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
1212 <entry><emphasis>Date</emphasis></entry>
1215 Gibt das Datumsformat für einen angegebenen Kalender oder Format in
1216 einem Gebietsschema zurück. Wenn kein Wert angegeben wird, dann wird der
1217 'gregorian' (Gregorianische) Kalender mit dem Format 'medium' verwendet.
1218 Wenn ein String angegeben wird, dann wird der 'gregorian'
1219 (Gregorianische) Kalender mit dem angegebenen Format verwendet. Oder es
1220 kann auch ein Array angegeben welches wie folgt aussehen muß:
1221 <methodname>array('calendar', 'format')</methodname>. Der Einfachheit
1222 halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
1228 <entry><emphasis>DefaultTime</emphasis></entry>
1231 Gibt das Standard Zeitformat zurück das im angegebenen Kalender
1232 verwendet wird. Wenn der Wert nicht angegeben wird, dann wird der
1233 'gregorian' (Gregorianische) Kalender verwendet. Der Einfachheit halber
1234 sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
1240 <entry><emphasis>Time</emphasis></entry>
1243 Gibt das Zeitformat für einen angegebenen Kalender oder Format in einem
1244 Gebietsschema zurück. Wenn kein Wert angegeben wird, dann wird der
1245 'gregorian' (Gregorianische) Kalender mit dem Format 'medium' verwendet.
1246 Wenn ein String angegeben wird, dann wird der 'gregorian'
1247 (Gregorianische) Kalender mit dem angegebenen Format verwendet. Oder es
1248 kann auch ein Array angegeben welches wie folgt aussehen muß:
1249 <methodname>array('calendar', 'format')</methodname>. Der Einfachheit
1250 halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
1256 <entry><emphasis>DateTime</emphasis></entry>
1259 Gibt das Datums-Zeitformat für ein angegebenes Gebietsschema zurück
1260 welches anzeigt wie Datum und Zeit im selben String des angegebenen
1261 Kalenders angezeigt werden sollten. Wenn kein Wert angegeben wird, dann
1262 wird der 'gregorian' (Gregorianische) Kalender verwendet. Der
1263 Einfachheit halber sollte <link
1264 linkend="zend.date.introduction">Zend_Date</link> verwendet werden
1269 <entry><emphasis>DateItem</emphasis></entry>
1272 Gibt das Standardformat für ein angegebenes Datum oder Zeitelement
1278 <entry><emphasis>DateInterval</emphasis></entry>
1281 Gibt das Intervallformat für ein gegebenes Datums- oder Zeitformat
1282 zurück. Der erste Wert ist das Kalenderformat, normalerweise
1283 'gregorian'. Der zweite Wert ist das Intervallformat, und der dritte
1284 Wert ist das Token mit der größten Different. Zum Beispiel:
1285 array('gregorian', 'yMMMM', 'y') gibt das Intervallformat für das
1286 Datumsformat 'yMMMM' zurück, wobei 'y' die größte Differenz hat.
1291 <entry><emphasis>Field</emphasis></entry>
1294 Gibt ein übersetztes Datumsfeld zurück welches verwendet werden kann um
1295 Kalender oder Datumsstrings wie 'Monat' oder 'Jahr' in der gewünschten
1296 Sprache korrekt anzuzeigen. Das Feld das als String zurückgegeben werden
1297 soll muß angegeben werden. In diesem Fall wird der 'gregorian'
1298 (Gregorianische) Kalender verwendet. Wenn man die Felder für andere
1299 Kalenderformat erhalten will muß ein Array angegeben werden das wie
1300 folgt auszusehen hat: <methodname>array('calendar',
1301 'date field')</methodname>
1306 <entry><emphasis>Relative</emphasis></entry>
1309 Gibt ein übersetztes Datums zurück welches relativ zu heute ist. Dieses
1310 kann Strings wie 'Gestern' oder 'Morgen' in einer gewünschten Sprache
1311 enthalten. Es muß die Anzahl der relativen Tage zu heute angegeben
1312 werden um den erwarteten String zu erhalten. Gestern würde '-1' sein,
1313 morgen '1' und so weiter. Es wird hierbei der 'gregorian'
1314 (Gregorianische) Kalender verwendet. Wenn man die relativen Daten für
1315 andere Kalenderformat erhalten will muß ein Array angegeben werden das
1316 wie folgt auszusehen hat: <methodname>array('calendar',
1317 'date field')</methodname>
1322 <entry><emphasis>DecimalNumber</emphasis></entry>
1325 Gibt das Format für Dezimalzahlen in einem angegebenen Gebietsschema
1326 zurück. Der Einfachheit halber sollte <link
1327 linkend="zend.locale.parsing">Zend_Locale_Format</link> verwendet
1333 <entry><emphasis>ScientificNumber</emphasis></entry>
1336 Gibt das Format für Wissenschaftliche Zahlen im angegebenen
1337 Gebietsschema zurück
1342 <entry><emphasis>PercentNumber</emphasis></entry>
1345 Gibt das Format für Prozentzahlen im angegebenen Gebietsschema zurück
1350 <entry><emphasis>CurrencyNumber</emphasis></entry>
1353 Gibt das Format für die Anzeige von Währungszahlen in einem angegebenen
1354 Gebietsschema zurück. Der Einfachheit halber sollte
1355 <link linkend="zend.currency.introduction">Zend_Currency</link>
1361 <entry><emphasis>NameToCurrency</emphasis></entry>
1364 Gibt einen übersetzten Namen für eine angegebene Währung zurück. Die
1365 Währung muß im <acronym>ISO</acronym> Format angegeben werden welches
1366 zum Beispiel 'EUR' für die Währung 'Euro' ist. Der Einfachheit halber
1367 sollte <link linkend="zend.currency.introduction">Zend_Currency</link>
1373 <entry><emphasis>CurrencyToName</emphasis></entry>
1376 Gibt eine Währung für einen angegebenen lokalisierten Namen zurück. Der
1377 Einfachheit halber sollte
1378 <link linkend="zend.currency.introduction">Zend_Currency</link>
1384 <entry><emphasis>CurrencySymbol</emphasis></entry>
1387 Gibt das für eine Währung verwendete Symbol in einem Gebietsschema
1388 zurück. Nicht für alle Währungen existiert ein Symbol. Der Einfachheit
1390 linkend="zend.currency.introduction">Zend_Currency</link> verwendet
1396 <entry><emphasis>Question</emphasis></entry>
1399 Gibt einen lokalisierten String für Akzeptanz ('yes') und Verneinung
1400 ('no') zurück. Es muß entweder 'yes' oder 'no' als Wert angegeben werden
1401 um den erwarteten String zu erhalten. Der Einfachheit halber sollte
1402 <link linkend="zend.locale.getquestion">Zend_Locale's getQuestion
1403 Methode</link> verwendet werden
1408 <entry><emphasis>CurrencyFraction</emphasis></entry>
1411 Gibt den Bruch der für eine angegebene Währung zu verwenden ist, zurück.
1412 Die Währung muß als <acronym>ISO</acronym> Wert angegeben werden. Der
1413 Einfachheit halber sollte <link
1414 linkend="zend.currency.introduction">Zend_Currency</link>
1420 <entry><emphasis>CurrencyRounding</emphasis></entry>
1423 Gibt zurück wie eine angegebene Währung gerundet werden muß. Die Währung
1424 muß als <acronym>ISO</acronym> Wert angegeben werden. Wenn die Währung
1425 nicht angegeben wird das wird die 'DEFAULT' (Standard) Rundung
1426 zurückgegeben. Der Einfachheit halber sollte <link
1427 linkend="zend.currency.introduction">Zend_Currency</link> verwendet
1433 <entry><emphasis>CurrencyToRegion</emphasis></entry>
1436 Gibt die Währung für eine angegebene Region zurück. Der Regionscode muß
1437 als <acronym>ISO3166</acronym> String angegeben werden zum Beispiel 'AT'
1438 für Österreich. Der Einfachheit halber sollte <link
1439 linkend="zend.currency.introduction">Zend_Currency</link>
1445 <entry><emphasis>RegionToCurrency</emphasis></entry>
1448 Gibt die Regionen zurück in denen eine Währung verwendet wird. Die
1449 Währung muß als <acronym>ISO4217</acronym> Code angegeben werden, zum
1450 Beispiel 'EUR' für Euro. Wenn eine Währung in mehreren Regionen
1451 verwendet wird, werden diese Regionen mit einem Leerzeichen getrennt.
1452 Der Einfachheit halber sollte <link
1453 linkend="zend.currency.introduction">Zend_Currency</link>
1459 <entry><emphasis>RegionToTerritory</emphasis></entry>
1462 Gibt die Regionen für ein angegebenes Territorium zurück. Das
1463 Territorium muß als <acronym>ISO4217</acronym> String angegeben werden
1464 zum Beispiel '001' für Weltweit. Die Regionen in diesem Territorium
1465 werden mit einem Leerzeichen getrennt
1470 <entry><emphasis>TerritoryToRegion</emphasis></entry>
1473 Gibt die Territorien zurück in denen eine angegebene Region enthalten
1474 ist. Diese Region muß als <acronym>ISO3166</acronym> String angegeben
1475 werden zum Beispiel 'AT' für Österreich. Wenn eine region in mehreren
1476 Territorien enthalten ist, werden diese Territorien mit einem
1477 Leerzeichen getrennt
1482 <entry><emphasis>ScriptToLanguage</emphasis></entry>
1485 Gibt die Schriften zurück die in einer angegebenen Sprache verwendet
1486 werden. Die Sprache muß als <acronym>ISO</acronym> Sprachcode angegeben
1487 werden zum Beispiel 'en' für englisch. Wenn mehrere Schriften in einer
1488 Sprache verwendet werden dann werden diese Schriften mit einem
1489 Leerzeichen getrennt
1494 <entry><emphasis>LanguageToScript</emphasis></entry>
1497 Gibt die Sprachen zurück die in einer angegebenen Schrift verwendet
1498 werden. Die Schrift muß als <acronym>ISO</acronym> Schriftcode angegeben
1499 werden zum Beispiel 'Latn' für lateinisch. Wenn eine Schrift in mehreren
1500 Sprachen verwendet wird dann werden diese Sprachen mit einem Leerzeichen
1506 <entry><emphasis>TerritoryToLanguage</emphasis></entry>
1509 Gibt die Territorien zurück die in einer angegebenen Sprache verwendet
1510 werden. Die Sprache muß als <acronym>ISO</acronym> Sprachcode angegeben
1511 werden zum Beispiel 'en' für englisch. Wenn mehrere Sprachen in einem
1512 Territorien verwendet werden dann werden diese Sprachen mit einem
1513 Leerzeichen getrennt
1518 <entry><emphasis>LanguageToTerritory</emphasis></entry>
1521 Gibt die Sprachen zurück die in einem angegebenen Territorium verwendet
1522 werden. Das Territorium muß als <acronym>ISO3166</acronym> Code
1523 angegeben werden zum Beispiel 'IT' für italienisch. Wenn eine Sprache in
1524 mehreren Territorien verwendet wird dann werden diese Territorien mit
1525 einem Leerzeichen getrennt
1530 <entry><emphasis>TimezoneToWindows</emphasis></entry>
1533 Gibt eine <acronym>ISO</acronym> Zeitzone für eine angegebene Windows
1539 <entry><emphasis>WindowsToTimezone</emphasis></entry>
1542 Gibt eine Windows Zeitzone für eine angegebene <acronym>ISO</acronym>
1548 <entry><emphasis>TerritoryToTimezone</emphasis></entry>
1551 Gibt ein Territorium für eine angegebene <acronym>ISO</acronym> Zeitzone
1557 <entry><emphasis>TimezoneToTerritory</emphasis></entry>
1560 Gibt die <acronym>ISO</acronym> Zeitzone für ein angegebenes Territorium
1566 <entry><emphasis>CityToTimezone</emphasis></entry>
1569 Gibt eine lokalisierte Stadt für eine angegebene <acronym>ISO</acronym>
1570 Zeitzone zurück. Nicht für alle Zeitzonen existiert eine Übersetzung
1576 <entry><emphasis>TimezoneToCity</emphasis></entry>
1579 Gibt die <acronym>ISO</acronym> Zeitzone für einen angegebenen
1580 lokalisierten Namen einer Stadt zurück. Nicht für alle Städte existiert
1586 <entry><emphasis>PhoneToTerritory</emphasis></entry>
1589 Gibt den Telefoncode für ein angegebenes Territorium (Region) zurück.
1590 Der Code des Territoriums muß als <acronym>ISO3166</acronym> String
1591 angegeben werden, z.B. 'AT' für Österreich
1596 <entry><emphasis>TerritoryToPhone</emphasis></entry>
1599 Gibt das Territorium (Region) zurück in dem ein Telefoncode verwendet
1600 wird. Der Telefoncode muß als reiner Integerwert angegeben werden, z.B.
1601 '43' für +43. Wenn ein Telefoncode verwendet wird der in mehreren
1602 Territorien (Regionen) verwendet wird, werden diese Territorien mit
1603 einem Leerzeichen getrennt
1608 <entry><emphasis>NumericToTerritory</emphasis></entry>
1611 Gibt den 3 stelligen Nummerncode für ein angegebenes Territorium
1612 (Region) zurück. Der Code des Territoriums muß als
1613 <acronym>ISO3166</acronym> String angegeben werden, z.B. 'AR' für
1619 <entry><emphasis>TerritoryToNumeric</emphasis></entry>
1622 Gibt as Territorium (Region) für einen 3 stelligen Nummerncode zurück.
1623 Der 3 stellige Nummerncode muß als reine Integerzahl angegeben werden,
1629 <entry><emphasis>Alpha3ToTerritory</emphasis></entry>
1632 Gibt den 3 stelligen Zeichencode für ein angegebenes Territorium
1633 (Region) zurück. Der Code des Territoriums (Region) muß als
1634 <acronym>ISO3166</acronym> String angegeben werden, zum Beispiel 'AT'
1640 <entry><emphasis>TerritoryToAlpha3</emphasis></entry>
1643 Gibt das Territorium (Region) für einen 3 stelligen Zeichencode zurück
1648 <entry><emphasis>PostalToTerritory</emphasis></entry>
1651 Gibt ein Regex für den Post Code eines angegebenen Territoriums zurück.
1652 Das Territorium muss als <acronym>ISO4217</acronym> String angegeben
1653 werden, zum Beispiel '001' für Welt
1658 <entry><emphasis>NumberingSystem</emphasis></entry>
1661 Gibt ein Skript mit der Schreibweise der Ziffern zurück, die in diesem
1662 Skript verwendet werden
1667 <entry><emphasis>FallbackToChar</emphasis></entry>
1670 Gibt ein Ersatzzeichen für ein oft verwendetes Unicode Zeichen zurück.
1671 Das kann verwendet werden um zum Beispiel "©" mit "(C)" zu ersetzen
1676 <entry><emphasis>CharToFallback</emphasis></entry>
1679 Gibt ein Unicode Zeichen für ein oft verwendetes Ersatzzeichen zurück.
1680 Das kann verwendet werden um zum Beispiel "(C)" mit "©" zu ersetzen
1685 <entry><emphasis>LocaleUpgrade</emphasis></entry>
1688 Gibt die Abhängigkeit eines Gebietsschemas zurück die
1689 verwendet werden kann um eine Sprache in ein voll qualifiziertes
1690 Gebietsschema hochzurüsten.
1695 <entry><emphasis>Unit</emphasis></entry>
1698 Gibt eine lokalisierte Einheit eines Kalenders zurück. Das kann
1699 verwendet werden um die Wörter "Tag", "Monat" und so weiter automatisch
1700 übersetzen zu lassen. Der erste Parameter muß ein Typ sein, und der
1701 zweite Parameter muß eine Anzahl sein
1710 Mit dem Zend Framework 1.5 wurde verschiedene alte Typen umbenannt. Das wurde
1711 notwendig durch verschiedene neue Typen, einige Schreibfehler und die Erhöhung der
1712 Verwendbarkeit. Die folgende Tabelle zeigt eine Liste von alten und neuen Typen:
1716 <table id="zend.locale.getdata.table-3">
1717 <title>Unterschiede zwischen Zend Framework 1.0 und 1.5</title>
1722 <entry>Alter Typ</entry>
1723 <entry>Neuer Typ</entry>
1729 <entry>Country</entry>
1730 <entry>Territory (mit dem Wert '2')</entry>
1734 <entry>Calendar</entry>
1735 <entry>Type (mit dem Wert 'calendar')</entry>
1739 <entry>Month_Short</entry>
1740 <entry>Month (mit dem Array('gregorian', 'format', 'abbreviated')</entry>
1744 <entry>Month_Narrow</entry>
1745 <entry>Month (mit dem Array('gregorian', 'stand-alone', 'narrow')</entry>
1749 <entry>Month_Complete</entry>
1750 <entry>Months</entry>
1754 <entry>Day_Short</entry>
1755 <entry>Day (mit dem Array('gregorian', 'format', 'abbreviated')</entry>
1759 <entry>Day_Narrow</entry>
1760 <entry>Day (mit dem Array('gregorian', 'stand-alone', 'narrow')</entry>
1764 <entry>DateFormat</entry>
1769 <entry>TimeFormat</entry>
1774 <entry>Timezones</entry>
1775 <entry>CityToTimezone</entry>
1779 <entry>Currency</entry>
1780 <entry>NameToCurrency</entry>
1784 <entry>Currency_Sign</entry>
1785 <entry>CurrencySymbol</entry>
1789 <entry>Currency_Detail</entry>
1790 <entry>CurrencyToRegion</entry>
1794 <entry>Territory_Detail</entry>
1795 <entry>TerritoryToRegion</entry>
1799 <entry>Language_Detail</entry>
1800 <entry>LanguageToTerritory</entry>
1807 Das folgende Beispiel zeigt wie man die Namen für Dinge in verschiedenen Sprachen
1811 <example id="zend.locale.getdata.example-3">
1812 <title>getTranslationList</title>
1814 <programlisting language="php"><![CDATA[
1815 $locale = new Zend_Locale('en_US');
1816 // Gibt die Namen aller Länder in der Französischen Sprache aus
1817 print_r(Zend_Locale::getTranslationList('country', 'fr'));
1818 ]]></programlisting>
1822 Das nächste Beispiel zeigt wie der Name einer Sprache in einer anderen Sprache gefunden
1823 werden kann, wenn der zwei-Zeichen ISO Länder-Code unbekannt ist.
1826 <example id="zend.locale.getdata.example-4">
1827 <title>Konvertierung des Ländernamens von einer Sprache in eine andere Sprache</title>
1829 <programlisting language="php"><![CDATA[
1830 $locale = new Zend_Locale('en_US');
1831 $code2name = $locale->getLanguageTranslationList();
1832 $name2code = array_flip($code2name);
1833 $frenchCode = $name2code['French'];
1834 echo $locale->getLanguageTranslation($frenchCode, 'es');
1835 // Ausgegeben wird der Spanische Name der Fransösischen Sprache
1836 ]]></programlisting>
1840 Um von <classname>Zend_Locale</classname> eine Liste aller bekannten Sprachen zu
1841 bekommen wobei jede Sprache in Ihrer eigenen Sprache geschrieben wird, kann das untere
1842 Beispiel in einer Web Seite benutzt werden. Genauso können
1843 <methodname>getCountryTranslationList()</methodname> und
1844 <methodname>getCountryTranslation()</methodname> benutzt werden um eine Tabelle zu
1845 erhalten die Namen für Muttersprachen einer Region und Namen für Regionen in einer
1846 anderen Sprache zu erhalten. Man muß einen <code>try .. catch</code> Block benutzen um
1847 Ausnahmen abzufangen die auftreten wenn ein Gebietsschema benutzt wird das nicht
1848 existiert. Nicht alle Sprachen sind auch ein Gebietsschema. Im Beispiel werden die
1849 Ausnahmen ignoriert um einen frühen Abbruch zu verhindern.
1852 <example id="zend.locale.getdata.example-6">
1853 <title>Alle Sprachen geschrieben in Ihrer Muttersprache</title>
1855 <programlisting language="php"><![CDATA[
1856 $list = Zend_Locale::getLanguageTranslationList('auto');
1858 foreach($list as $language => $content) {
1860 $output = Zend_Locale::getLanguageTranslation($language, $language);
1861 if (is_string($output)) {
1862 print "\n<br>[".$language."] ".$output;
1864 } catch (Exception $e) {
1868 ]]></programlisting>
1872 <sect2 id="zend.locale.getquestion">
1873 <title>Übersetzungen für "Ja" und "Nein" erhalten</title>
1876 Oft müssen Programme eine "Ja" oder "Nein" Rückmeldung eines Benutzers erkennen.
1877 <methodname>getQuestion()</methodname> gibt ein Array zurück welches die richtigen
1878 Wörter oder Regex Zeichenketten enthält um einem Benutzer in einer bestimmten $locale zu
1879 antworten (Standardmäßig das aktuelle Gebietsschema des Objekts). Das zurückgegebene
1880 Array enthält die folgenden Informationen:
1886 <emphasis>yes und no</emphasis>: Eine generelle Stringrepräsentation für Ja und
1887 Nein Antworten. Es enthält die erste und generellste Antwort von yesarray und
1892 <emphasis>yesarray und noarray</emphasis>: Ein Array mit allen bekannten
1893 Ja und Nein Antworten. Diverse Sprachen haben mehr als nur zwei Antworten.
1894 Normalerweise ist das der komplette String und seine Abkürzung.
1898 <emphasis>yesexpr und noexpr</emphasis>: Ein ersteller Regex String des es
1899 erlaubt Benutzerantworten zu behandeln und nach Ja und Nein zu suchen.
1905 Alle diese Informationen sind natürlich lokalisiert und hängen vom eingestellten
1906 Gebietsschema ab. Das folgende Beispiel zeigt die Informationen die empfangen werden
1910 <example id="zend.locale.getquestion.example-1">
1911 <title>getQuestion()</title>
1913 <programlisting language="php"><![CDATA[
1914 $locale = new Zend_Locale();
1915 // Zeichenketten für Fragen
1916 print_r($locale->getQuestion('de'));
1924 [yesabbr]j[/yesabbr]
1926 [yesexpr]^([yY]([eE][sS])?)|([jJ][aA]?)[/yesexpr]
1927 [noexpr]^([nN]([oO]|([eE][iI][nN]))?)[/noexpr]
1929 ]]></programlisting>
1933 <sect2 id="zend.locale.getlocalelist">
1934 <title>Eine Liste aller bekannten Gebietsschemata erhalten</title>
1937 Manchmal will man eine Liste aller bekannten Gebietsschemata erhalten. Das kann für die
1938 verschiedensten Aufgaben nützlich sein, zum Beispiel für die Erstellung einer
1939 Auswahlbox. Für diesen Zweck kann die statische <methodname>getLocaleList()</methodname>
1940 Methode verwender werden, welche eine Liste aller bekannten Gebietsschemata zurückgibt.
1943 <example id="zend.locale.getlocalelist.example-1">
1944 <title>getLocaleList()</title>
1946 <programlisting language="php"><![CDATA[
1947 $localelist = Zend_Locale::getLocaleList();
1948 ]]></programlisting>
1953 Es ist zu beachten das die Gebietsschemata als Schlüssel des Arrays das man erhält
1954 zurück gegeben werden. Der Wert ist immer ein Boolsches <constant>TRUE</constant>.
1959 <sect2 id="zend.locale.detection">
1960 <title>Erkennen von Gebietsschemata</title>
1963 Wenn man erkennen will ob eine vorhandene Eingabe. unabhängig von Ihrer Quelle, ein
1964 Gebietsschema ist, sollte man die statische <methodname>isLocale()</methodname> Methode
1965 verwenden. Der erste Parameter dieser Methode ist der String den man prüfen will.
1968 <example id="zend.locale.detection.example-1">
1969 <title>Einfache Erkennung des Gebietsschemas</title>
1971 <programlisting language="php"><![CDATA[
1973 if (Zend_Locale::isLocale($input)) {
1974 print "'{$input}' ist ein Gebietsschema";
1976 print "Sorry... die vorhandene Eingabe ist kein Gebietsschema";
1978 ]]></programlisting>
1982 Wie man sieht ist die Ausgabe dieser Methode immer ein boolscher Wert. Es gibt nur einen
1983 Grund warum man eine Ausnahme erhält wenn diese Methode aufgerufen wird. Wenn das eigene
1984 System kein Gebietsschema anbietet und Zend Framework nicht in der Lage ist dieses
1985 automatisch zu erkennen. Normalerweise zeigt dieses, das ein Problem mit dem eigenen OS
1986 in Kombination mit <acronym>PHP</acronym>'s <methodname>setlocale()</methodname>
1991 Man sollte auch beachten das jeder angegebene Gebietsschema String automatisch
1992 degradiert wird wenn der Regionsabschnitt für dieses Gebietsschema nicht existiert. In
1993 unserem vorherigen Beispiel existiert die Region <code>'RU'</code> nicht für die Sprache
1994 <code>'to'</code>, aber es wird trotzdem <constant>TRUE</constant> zurückgegeben da
1995 <classname>Zend_Locale</classname> mit der vorhandenen Eingabe arbeiten kann.
1999 Trotzdem ist es manchmal nützlich diese automatische Degradierung zu verhindern, und
2000 hier kommt der zweite Parameter von <methodname>isLocale()</methodname> zu Tragen. Der
2001 <code>strict</code> Parameter ist Standardmäßig <constant>FALSE</constant> und kann
2002 verwendet werden um die automatische Degradierung zu verhindern wenn er auf
2003 <constant>TRUE</constant> gesetzt wird.
2006 <example id="zend.locale.detection.example-2">
2007 <title>Strikte Erkennung des Gebietsschemas</title>
2009 <programlisting language="php"><![CDATA[
2011 if (Zend_Locale::isLocale($input, true)) {
2012 print "'{$input}' ist ein Gebietsschema";
2014 print "Sorry... die vorhandene Eingabe ist kein Gebietsschema";
2016 ]]></programlisting>
2020 Jetzt da man in der Lage zu Erkennen ob ein vorhandenen String ein Gebietsschema ist
2021 kann man Gebietsschema bezogenes Verhalten in seine eigenen Klassen hinzufügen. Aber man
2022 wird schnell erkennen dass das immer zu den gleichen 15 Zeilen Code führt. Etwas
2023 ähnliches wie das folgende Beispiel:
2026 <example id="zend.locale.detection.example-3">
2027 <title>Implementierung von Gebietsschema bezogenem Verhalten</title>
2029 <programlisting language="php"><![CDATA[
2030 if ($locale === null) {
2031 $locale = new Zend_Locale();
2034 if (!Zend_Locale::isLocale($locale, true, false)) {
2035 if (!Zend_Locale::isLocale($locale, false, false)) {
2036 throw new Zend_Locale_Exception(
2037 "Das Gebietsschema '$locale' ist kein bekanntes Gebietsschema");
2040 $locale = new Zend_Locale($locale);
2043 if ($locale instanceof Zend_Locale) {
2044 $locale = $locale->toString();
2046 ]]></programlisting>
2050 Mit Zend Framework 1.8 haben wir die statische <methodname>findLocale()</methodname>
2051 Methode hinzugefügt welche einen Gebietsschema-String zurückgibt mit dem man arbeiten
2052 kann. Sie führt die folgenden Arbeiten durch:
2058 Erkennt ob ein angegebener String ein Gebietsschema ist
2064 Degradiert das Gebietsschema wenn es in der angegebenen Region nicht existiert
2070 Erweitert das Gebietsschema wenn dieses als Region ohne Sprache erkannt wurde
2076 Gibt das vorher gesetzte Anwendungsweite Gebietsscheam zurück wenn keine Eingabe
2083 Erkennt das Gebietsschema vom Browser wenn die vorherigen Erkennungen
2090 Erkennt das Gebietsschema vom Betriebssystem wenn die vorherigen Erkennungen
2097 Erkennt das Gebietsschema vom Framework wenn die vorherigen Erkennungen
2104 Gibt immer einen String zurück der das gefundene Gebietsschema repräsentiert
2110 Das folgende Beispiel zeigt wie diese Prüfungen und der obige Code mti einem einfachen
2111 Aufruf vereinfacht werden kann:
2114 <example id="zend.locale.detection.example-4">
2115 <title>Gebietsschema bezogenes Verhalten mit Zend Framework 1.8</title>
2117 <programlisting language="php"><![CDATA[
2118 $locale = Zend_Locale::findLocale($inputstring);
2119 ]]></programlisting>