| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15958 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.locale.functions">
- <title>Zend_Locale verwenden</title>
- <para>
- <classname>Zend_Locale</classname> liefert auch lokalisierte Informationen über
- Gebietsschema für jedes Gebietsschema. Das beinhaltet unser anderem lokalisierte Namen für
- andere gebietsschema, Tage der Woche, Monatsnamen, usw.
- </para>
- <sect2 id="zend.locale.copying">
- <title>Kopieren, Klonen und Serialisieren von Gebietsschema Objekten</title>
- <para>
- Verwende
- <ulink url="http://php.net/language.oop5.cloning">Klonen von Objekten</ulink>
- um Gebietsschema Objekte exakt und effizient zu duplizieren. Die meisten lokalisierbaren
- Methoden akzeptieren auch eine Zeichenkette welche das Gebietsschema repräsentiert.
- Dieser entspricht dem Ergebnis von <code>$locale->toString()</code>.
- </para>
- <example id="zend.locale.copying.example-1">
- <title>Klonen</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale('ar');
- // Speichere das $locale Objekt als Serialisierung
- $serializedLocale = $locale->serialize();
- // Wiedererstellung des Original Objekts
- $localeObject = unserialize($serializedLocale);
- // Erhalte eine Zeichenkette welche das Gebietsschema identifiziert
- $stringLocale = $locale->toString();
- // Erstelle eine geklonte Kopie des $locale Objektes
- $copiedLocale = clone $locale;
- print "copied: ", $copiedLocale->toString();
- // PHP ruft automatisch toString() über __toString(); auf
- print "copied: ", $copiedLocale;
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.locale.equals">
- <title>Gleichheit</title>
- <para>
- <classname>Zend_Locale</classname> bietet auch eine erwartete Funktion zum Vergleichen
- von zwei Gebietsschema an. Alle lokalisierbaren Klassen sollten eine Vergleichbare
- Funktion für eine Gleichheitsprüfung anbieten.
- </para>
- <example id="zend.locale.equals.example-1">
- <title>Prüfung auf gleiche Gebietsschemata</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale();
- $mylocale = new Zend_Locale('en_US');
- // Prüfe ob die Gebietsschema gleich sind
- if ($locale->equals($mylocale)) {
- print "Die Gebietsschemata sind gleich";
- }
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.locale.getdefault">
- <title>Standard Gebietsschemata</title>
- <para>
- Die Methode <code>getDefault()</code> gibt ein Array mit relevanten Gebietsschemata
- zurück wobei Informationen vom Web Browser des Benutzers (wenn vorhanden), Informationen
- vom Betriebsystem des Host Servers und ZF Einstellungen benutzt werden. Wie beim
- Konstruktor von <classname>Zend_Locale</classname> wählt der erste Parameter die
- bevorzugte Umgebung von der die Informationen zuerst geholt werden sollen <link
- linkend="zend.locale.selection">(<code>BROWSER</code>, <code>ENVIRONMENT</code>, or
- <code>FRAMEWORK)</code></link>. Der zweite Parameter wechselt zwischen der Rückgabe
- aller gefundenen Gebietsschemata oder nur dem ersten/besten Gebietsschema.
- Lokalisierbare Komponenten benutzen normalerweise nur das erste Gebietsschema. Wenn
- vorhanden, wird eine Bewertung der Qualität mit angegeben.
- </para>
- <example id="zend.locale.getdefault.example-1">
- <title>Das Standard Gebietsschema erhalten</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale();
- // Alle Standard Gebietsschema zurückgeben
- $found = $locale->getDefault();
- print_r($found);
- // Nur die Gebietsschema des Browsers zurück geben
- $found2 = $locale->getDefault(Zend_Locale::BROWSER,TRUE);
- print_r($found2);
- ]]></programlisting>
- </example>
- <para>
- Um nur die Standard Gebietsschema für <link
- linkend="zend.locale.selection"><code>BROWSER</code>, <code>ENVIRONMENT</code>, oder
- <code>FRAMEWORK</code></link> zu erhalten, können die folgenden Methoden benutzt
- werden:
- <itemizedlist>
- <listitem>
- <para>
- <code>getEnvironment()</code>
- </para>
- </listitem>
- <listitem>
- <para>
- <code>getBrowser()</code>
- </para>
- </listitem>
- <listitem>
- <para>
- <code>getLocale()</code>
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </sect2>
- <sect2 id="zend.locale.setlocale">
- <title>Ein neues Gebietsschema setzen</title>
- <para>
- Ein neues Gebietsschema kann mit der Funktion <code>setLocale()</code> gesetzt werden.
- Diese Funktion nimmt eine Gebietsschema Zeichenkette als Parameter an. Wenn kein
- Gebietsschema angegeben wurde, wird ein <link
- linkend="zend.locale.selection">automatisch gewähltes</link> Gebietsschema benutzt.
- Da <classname>Zend_Locale</classname> Objekte sehr "leicht" sind, existiert diese
- Methode hauptsächlich um Nebeneffekte auszuschließen, für Klassen die ein existierendes
- angelegtes Objekt referenzieren.
- </para>
- <example id="zend.locale.setlocale.example-1">
- <title>setLocale</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale();
- // Aktuelles Gebietsschema
- print $locale->toString();
- // neues Gebietsschema
- $locale->setLocale('aa_DJ');
- print $locale->toString();
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.locale.getlocale">
- <title>Auslesen von Sprache und Region</title>
- <para>
- <code>getLanguage()</code> gibt eine Zeichenkette zurück welche den zwei-Zeichen Code
- der Sprache des Gebietsschemas enthält. <code>getRegion()</code> gibt eine Zeichenkette
- zurück welche den Zwei-Zeichen Code der Region des Gebietsschemas enthält.
- </para>
- <example id="zend.locale.getlocale.example-1">
- <title>getLanguage and getRegion</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale();
- // Wenn das Gebietsschema 'de_AT' ist, wird 'de' als Sprache zurückgegeben
- print $locale->getLanguage();
- // Wenn das Gebietsschema 'de_AT' ist, wird 'AT' als Region zurückgegeben
- print $locale->getRegion();
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.locale.getdata">
- <title>Lokalisierte Zeichenketten beschaffen</title>
- <para>
- <code>getTranslationList()</code> gibt Zugriff auf viele Arten von lokalisierten
- Informationen. Diese Informationen sind sehr nützlich wenn man einem Benutzer
- lokalisierte Daten anzeigen will, ohne das man alles Übersetzen muß. Diese Informationen
- sind bereits für den Gebrauch vorhanden.
- </para>
- <para>
- Die angefragte Liste an Informationen wird immer als benanntes Array zurückgegeben. Wenn
- mehr als ein Wert zu einem expliziten Typ angegeben werden soll von dem man Werte
- erhalten will, muss ein Array statt mehrerer Werte übergeben werden.
- </para>
- <example id="zend.locale.getdata.example-1">
- <title>getTranslationList</title>
- <programlisting language="php"><![CDATA[
- $list = Zend_Locale::getTranslationList('language', 'de_AT');
- print_r ($list);
- // Beispiel Schlüssel -> Werte Paare...
- // [de] -> Deutsch
- // [en] -> Englisch
- // Einen der zurückgegebenen Schlüssel als Wert für die
- // getTranslation() Methode einer anderen Sprache verwenden
- print Zend_Locale::getTranslation('de', 'language', 'zh');
- // Gibt die Übersetzung für die Sprache 'de' in chinesisch zurück
- ]]></programlisting>
- </example>
- <para>
- Man kann diese Informationen für alle Sprachen auslesen. Aber nicht alle dieser
- Informationen sind komplett für alle Sprachen. Einige dieser Arten sind auch durch eine
- eigene Funktion erhältlich wegen der Einfachheit. Anbei eine Liste für detailierte
- Informationen hierüber.
- </para>
- <table id="zend.locale.getdata.table-1">
- <title>
- Details für getTranslationList($type = null, $locale = null, $value = null)
- </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Typ</entry>
- <entry>Beschreibung</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><emphasis>Language</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Sprachen zurück. Der Sprach-Teil des
- Gebietsschemas wird als Schlüssel und die Übersetzung als Wert
- zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>Script</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Schriften zurück. Die Schrift wird
- als Schlüssel die Übersetzung als Wert zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>Territory</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Territorien zurück. Diese enthält
- Länder, Kontinente und Territorien. Um nur die Territorien und
- Kontinente zu erhalten, muß '1' als Wert verwendet werden. Um nur die
- Länder zu erhalten muß '2' als Wert verwendet werden. Der Landes-Teil
- des Gebietsschemas wird, wo es möglich ist, als Schlüssel verwendet. In
- den anderen Fällen wird der offizielle ISO Code für dieses Territorium
- verwendet. Das übersetzte Territorium wird als Wert zurückgegeben. Wenn
- der Wert nicht angegeben wird erhält man eine Liste mit beidem
- </entry>
- </row>
- <row>
- <entry><emphasis>Variant</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste von bekannten Varianten von Schriften
- zurück. Die Variante wird als Schlüssel und die Übersetzung als Wert
- zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>Key</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste von bekannten Schlüsseln zurück. Diese
- Schlüssel sind generische Werte die in Übersetzungen verwendet werden.
- Das sind normalerweise Kalendar, Sammlungen und Währungen. Der Schlüssel
- wird als Arrayschlüssel und die Übersetzung als Wert zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>Type</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste von bekannten Typen von Schlüssel zurück.
- Das sind Varianten von Typen von Kalenderrepräsentationen und Typen von
- Sammlungen. Wenn 'collation' als Wert verwendet wird, dann werden alle
- Typen von Sammlungen zurückgegeben. Wenn 'calendar' als Wert verwendet
- wird dann werden alle Typen von Kalender zurückgegeben. Wenn der Wert
- nicht angegeben wird, dann wird eine Liste mit beidem zurückgegeben. Der
- Typ wird als Schlüssel und die Übersetzung als Wert zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>Layout</emphasis></entry>
- <entry>
- Gibt eine Liste von Regeln zurück die beschreiben wie spezielle
- Textabschnitte formatiert werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Characters</emphasis></entry>
- <entry>
- Gibt eine Liste von in diesem Gebietsschema erlaubten Zeichen zurück
- </entry>
- </row>
- <row>
- <entry><emphasis>Delimiters</emphasis></entry>
- <entry>
- Gibt eine Liste von in diesem Gebietsschema erlaubten Anführungszeichen
- zurück
- </entry>
- </row>
- <row>
- <entry><emphasis>Measurement</emphasis></entry>
- <entry>
- Gibt eine Liste von bekannten Bemessungswerten zurück. Diese Liste
- sollte nicht mehr verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Months</emphasis></entry>
- <entry>
- Gibt eine Liste aller Repräsentationen für Monate in diesem
- Gebietsschema zurück. Es gibt einige unterschiedliche Repräsentationen
- welche alle als Unterarray zurückgegeben werden. Wenn kein Wert
- angegeben wird, dann wird eine Liste aller Monate des 'gregorian'
- (gregorianischen) Kalenders zurückgegeben. Es kann jeder bekannte
- Kalender als Wert angegeben werden um eine Liste der Monate dieses
- Kalenders zu erhalten. Der Einfachheit halber sollte <link
- linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Month</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Monatsnamen für dieses Gebietsschema
- zurück. Wenn der Wert unterdrückt wird, dann wird der normalerweise
- verwendete gregorianische komplette Name der Monate zurückgegeben, wobei
- jede Monatsnummer als Schlüssel und das übersetzte Monat als Wert
- zurückgegeben wird. Man kann die Monate für andere Kalender und Formate
- erhalten indem ein Array als Wert angegeben wird. Der erste Eintrag des
- Arrays muß der Kalender sein, der zweite der verwendete Kontext und der
- dritte die Länge die zurückgegeben werden soll. Der Einfachheit halber
- sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Days</emphasis></entry>
- <entry>
- Gibt eine Liste aller Repräsentationen für Tage in diesem Gebietsschema
- zurück. Es gibt einige unterschiedliche Repräsentationen welche alle als
- Unterarray zurückgegeben werden. Wenn kein Wert angegeben wird, dann
- wird eine Liste aller Tage des 'gregorian' (gregorianischen) Kalenders
- zurückgegeben. Es kann jeder bekannte Kalender als Wert angegeben werden
- um eine Liste der Tage dieses Kalenders zu erhalten. Der Einfachheit
- halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Day</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Tagesnamen für dieses Gebietsschema
- zurück. Wenn der Wert unterdrückt wird, dann wird der normalerweise
- verwendete gregorianische komplette Name der Tage zurückgegeben, wobei
- die englische Abkürzung des Tages als Schlüssel und der übersetzte Tag
- als Wert zurückgegeben wird. Man kann die Tage für andere Kalender und
- Formate erhalten indem ein Array als Wert angegeben wird. Der erste
- Eintrag des Arrays muß der Kalender sein, der zweite der verwendete
- Kontext und der dritte die Länge die zurückgegeben werden soll. Der
- Einfachheit halber sollte <link
- linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Week</emphasis></entry>
- <entry>
- Gibt eine Liste von Werten für die korrekte Berechnung der Woche in
- einem Gebietsschema zurück. Der Einfachheit halber sollte
- <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Quarters</emphasis></entry>
- <entry>
- Gibt eine Liste aller Repräsentationen für Quartale in diesem
- Gebietsschema zurück. Es gibt einige unterschiedliche Repräsentationen
- welche alle als Unterarray zurückgegeben werden. Wenn kein Wert
- angegeben wird, dann wird eine Liste aller Quartale des 'gregorian'
- (gregorianischen) Kalenders zurückgegeben. Es kann jeder bekannte
- Kalender als Wert angegeben werden um eine Liste der Quartale dieses
- Kalenders zu erhalten
- </entry>
- </row>
- <row>
- <entry><emphasis>Quarter</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Quartalsnamen für dieses
- Gebietsschema zurück. Wenn der Wert unterdrückt wird, dann wird der
- normalerweise verwendete gregorianische komplette Name der Quartale
- zurückgegeben, wobei jede Quartalsnummer als Schlüssel und das
- übersetzte Quartal als Wert zurückgegeben wird. Man kann die Quartale
- für andere Kalender und Formate erhalten indem ein Array als Wert
- angegeben wird. Der erste Eintrag des Arrays muß der Kalender sein, der
- zweite der verwendete Kontext und der dritte die Länge die zurückgegeben
- werden soll
- </entry>
- </row>
- <row>
- <entry><emphasis>Eras</emphasis></entry>
- <entry>
- Gibt eine Liste aller Repräsentationen für Epochen in diesem
- Gebietsschema zurück. Wenn kein Wert angegeben wird, dann wird eine
- Liste aller Epochen des 'gregorian' (gregorianischen) Kalenders
- zurückgegeben. Es kann jeder bekannte Kalender als Wert angegeben werden
- um eine Liste der Epochen dieses Kalenders zu erhalten
- </entry>
- </row>
- <row>
- <entry><emphasis>Era</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Namen von Epochen für dieses
- Gebietsschema zurück. Wenn der Wert unterdrückt wird, dann wird der
- normalerweise verwendete gregorianische komplette Name der Epoche
- zurückgegeben, wobei jede Epochennummer als Schlüssel und die übersetzte
- Epoche als Wert zurückgegeben wird. Man kann die Epochen für andere
- Kalender und Formate erhalten indem ein Array als Wert angegeben wird.
- Der erste Eintrag des Arrays muß der Kalender sein und der zweite die
- Länge die zurückgegeben werden soll
- </entry>
- </row>
- <row>
- <entry><emphasis>Date</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Datumsformate für dieses
- Gebietsschema zurück. Der Name des Datumsformats wird als Schlüssel und
- das Format selbst als Wert zurückgegeben. Wenn der Wert nicht angegeben
- wird, dann werden die Datumsformate des gregorianischen Kalenders
- zurückgegeben. Die Datumsformate für andere Kalender kann man erhalten
- indem der gewünschte Kalender als String übergeben wird. Der Einfachheit
- halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Time</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Zeitformate für dieses Gebietsschema
- zurück. Der Name des Zeitformats wird als Schlüssel und das Format
- selbst als Wert zurückgegeben. Wenn der Wert nicht angegeben wird, dann
- werden die Zeitformate des gregorianischen Kalenders zurückgegeben. Die
- Zeitformate für andere Kalender kann man erhalten indem der gewünschte
- Kalender als String übergeben wird. Der Einfachheit halber sollte
- <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>DateTime</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste aller Datums-Zeitformate für dieses
- Gebietsschema zurück. Der Name des Datums-Zeitformats wird als Schlüssel
- und das Format selbst als Wert zurückgegeben. Wenn der Wert nicht
- angegeben wird, dann werden die Datums-Zeitformate des gregorianischen
- Kalenders zurückgegeben. Die Datums-Zeitformate für andere Kalender kann
- man erhalten indem der gewünschte Kalender als String übergeben wird.
- Der Einfachheit halber sollte <link
- linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>DateItem</emphasis></entry>
- <entry>
- Gibt eine Liste von Standardformaten für gegebene Datums oder Zeit
- Einheiten zurück
- </entry>
- </row>
- <row>
- <entry><emphasis>DateInterval</emphasis></entry>
- <entry>
- Gibt eine Liste von Datums- oder Zeitformaten zurück die verwendet
- werden wenn man Intervalle darstellen will. Die Liste ist ein
- mehrdimentionales Array wobei die erste Dimension das Format des
- Intervalls und die zweite Dimension das Token mit der größten
- Differenz ist.
- </entry>
- </row>
- <row>
- <entry><emphasis>Field</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste von Datumsfelder zurück die verwendet
- werden kann um Kalender oder Datumsstrings wie 'Monat' oder 'Jahr' in
- einer gewünschte Sprache darzustellen. Wenn der Wert nicht angegeben
- wird dann wird diese Liste für den gregorianischen Kalender
- zurückgegeben. Man kann diese Liste für andere Kalender erhalten indem
- der gewünschte Kalender als String übergeben wird
- </entry>
- </row>
- <row>
- <entry><emphasis>Relative</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste von relativen Daten zurück die verwendet
- werden können um relative Daten wie 'gestern' oder 'morgen' in einer
- gewünschten Sprache darzustellen. Wenn der Wert nicht angegeben wird
- dann wird diese Liste für den gregorianischen Kalender zurückgegeben.
- Man kann diese Liste für andere Kalender erhalten indem der gewünschte
- Kalender als String übergeben wird
- </entry>
- </row>
- <row>
- <entry><emphasis>Symbols</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste von Zeichen zurück die in Repräsentationen
- von Zahlen verwendet wird
- </entry>
- </row>
- <row>
- <entry><emphasis>NameToCurrency</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste von Namen für Währungen zurück. Die Währung
- wird hierbei als Schlüssel und der übersetzte Name als Wert
- zurückgegeben. Der Einfachheit halber sollte
- <link linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencyToName</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste von Währungen für lokalisierte Namen
- zurück. Der übersetzte Name wird als Schlüssel und die Währung als Wert
- zurückgegeben. Der Einfachheit halber sollte
- <link linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencySymbol</emphasis></entry>
- <entry>
- Gibt eine Liste von bekannten lokalisierten Symbolen für Währungen
- zurück. Die Währung wird als Schlüssel und das Symbol als Wert
- zurückgegeben. Der Einfachheit halber sollte <link
- linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Question</emphasis></entry>
- <entry>
- Gibt eine Liste von lokalisierten Strings für die Akzeptanz ('ja') und
- die Verneinung ('nein') zurück. Der Einfachheit halber sollte
- <link linkend="zend.locale.getquestion">Zend_Locale's getQuestion
- Methode</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencyFraction</emphasis></entry>
- <entry>
- Gibt eine Liste von Brüchen für Währungswerte zurück. Die Währung wird
- als Schlüssel und der Bruch als Integer Wert zurückgegeben. Der
- Einfachheit halber sollte <link
- linkend="zend.currency.introduction">Zend_Currency</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencyRounding</emphasis></entry>
- <entry>
- Gibt eine Liste zurück wie welche Währung gerundet werden muß. Die
- Währung wird als Schlüssel und der Rundungswert als Ganzzahl
- zurückgegeben. Der Einfachheit halber sollte <link
- linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencyToRegion</emphasis></entry>
- <entry>
- Gibt eine Liste von Währungen zurück von denen bekannt ist das Sie in
- einer Region verwendet werden. Der ISO3166 Wert ('Region') wird als
- Arrayschlüssel und der ISO4217 Wert ('Währung') als Arraywert
- zurückgegeben. Der Einfachheit halber sollte <link
- linkend="zend.currency.introduction">Zend_Currency</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>RegionToCurrency</emphasis></entry>
- <entry>
- Gibt eine Liste von Regionen zurück in denen eine Währung verwendet
- wird. Der ISO4217 Wert ('Währung') wird als Arrayschlüssel und der
- ISO3166 Wert ('Region') als Arraywert zurückgegeben. Wenn eine Währung
- in mehreren Regionen verwendet wird dann werden diese Regionen durch ein
- Leerzeichen getrennt. Der Einfachheit halber sollte
- <link linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>RegionToTerritory</emphasis></entry>
- <entry>
- Gibt eine Liste von Territorien mit den Ländern, oder Sub-Territorien
- welche in diesem Territorium enthalten sind, zurück. Der ISO Territory
- Code ('Territorium') wird als Arrayschlüssel und der ISO3166 Wert
- ('Region') als Arraywert verwendet. Wenn ein Territorium mehrere
- Regionen enthält werden diese Regionen mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToRegion</emphasis></entry>
- <entry>
- Gibt eine Liste von Regionen und den Territorien in denen diese Regionen
- enthalten sind zurück. Der ISO3166 Code ('Region') wird als
- Arrayschlüssel und der ISO Territory Code ('Territorium') als Arraywert
- zurückgegeben. Wenn eine Region in mehreren Territorien enthalten ist
- werden diese Territorien mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>ScriptToLanguage</emphasis></entry>
- <entry>
- Gibt eine Liste von Schriften die in einer Sprache verwendet werden
- zurück. Der Sprachcode wird als Arrayschlüssel und der Schriftcode als
- Arraywert zurückgegeben. Wenn eine Sprache mehrere Schriften enthält
- werden diese Schriften mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>LanguageToScript</emphasis></entry>
- <entry>
- Gibt eine Liste von Sprachen und den darin geschriebenen Schriften
- zurück. Der Schriftcode wird als Arrayschlüssel und der Sprachcode als
- Arraywert zurückgegeben. Wenn eine Schrift in verschiedenen Sprachen
- verwendet wird werden diese Sprachen mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToLanguage</emphasis></entry>
- <entry>
- Gibt eine Liste von Ländern zurück die eine Sprache verwenden. Der
- Ländercode wird als Arrayschlüssel und der Sprachcode als Arraywert
- zurückgegeben. Wenn eine Sprache in mehreren Ländern verwendet wird
- werden diese Länder mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>LanguageToTerritory</emphasis></entry>
- <entry>
- Gibt eine Liste von Ländern und den in diesen Ländern gesprächenen
- Sprachen zurück. Der Ländercode wird als Arrayschlüssel und der
- Sprachcode wird als Arraywert zurückgegeben. Wenn ein Land verschiedene
- Sprachen verwendet werden diese Sprachen mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>TimezoneToWindows</emphasis></entry>
- <entry>
- Gibt eine Liste von Windows Zeitzonen und den entsprechenden ISO
- Zeitzonen zurück. Die Windows Zeitzone dies als Arrayschlüssel und die
- ISO Zeitzone als Arraywert zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>WindowsToTimezone</emphasis></entry>
- <entry>
- Gibt eine Liste von ISO Zeitzonen und die entsprechenden Windows
- Zeitzonen zurück. Die ISO Zeitzone wird als Arrayschlüssel und die
- Windows Zeitzone als Arraywert zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToTimezone</emphasis></entry>
- <entry>
- Gibt eine Liste von Regionen oder Territorien und den entsprechenden ISO
- Zeitzonen zurück. Die ISO Zeitzone wird als Arrayschlüssel und der
- Territory Code als Arraywert zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>TimezoneToTerritory</emphasis></entry>
- <entry>
- Gibt eine Liste von Zeitzonen und den entsprechenden Regionen oder
- Territorien zurück. Die Region oder der Territory Code wird als
- Arrayschlüssel und die ISO Zeitzone als Arraywert zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>CityToTimezone</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Liste von Städten zurück die als Übersetzung für
- eine entsprechende Zeitzone verwendet werden können. Nicht für alle
- Zeitzonen ist eine Übersetzung vorhanden, aber für einen Benutzer ist
- eine echte, in seiner Sprache geschriebenen, Stadt besser als der ISO
- Name seiner Zeitzone. Die ISO Zeitzone wird als Arrayschlüssel und die
- übersetzte Stadt als Arraywert zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>TimezoneToCity</emphasis></entry>
- <entry>
- Gibt eine Liste von Zeitzonen für lokalisierte Städtenamen zurück. Die
- lokalisierte Stadt wird als Arrayschlüssel und der ISO Name der Zeitzone
- als Arraywert zurückgegeben
- </entry>
- </row>
- <row>
- <entry><emphasis>PhoneToTerritory</emphasis></entry>
- <entry>
- Gibt eine Liste von Telefoncodes zurück die in einem bestimmten
- Territorium verwendet werden. Das Territorium (Region) wird als
- Arrayschlüssel und der Telefoncode als Arraywert verwendet
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToPhone</emphasis></entry>
- <entry>
- Gibt eine Liste von Territorien zurück in denen ein Telefoncode
- verwendet wird. Der Telefoncode wird als Arrayschlüssel und das
- Territorium (Region) als Arraywert verwendet. Wenn ein Telefoncode in
- verschiedenen Territorien verwendet wird, sind diese mit einem
- Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>NumericToTerritory</emphasis></entry>
- <entry>
- Gibt eine Liste von 3 stelligen Numerncodes für Territorien zurück. Das
- Territorium (Region) wird als Arrayschlüssel und der 3 stellige
- Nummerncode als Arraywert verwendet
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToNumeric</emphasis></entry>
- <entry>
- Gibt eine Liste von Territorien mit Ihrem 3 stellige Nummerncode zurück.
- Das 3 stellige Nummerncode wird als Arrayschlüssel und das Territorium
- (Region) als Arraywert verwendet
- </entry>
- </row>
- <row>
- <entry><emphasis>Alpha3ToTerritory</emphasis></entry>
- <entry>
- Gibt eine Liste von 3 stelligen Zeichencodes für Territorien zurück. Das
- Territorium (Region) wird als Arrayschlüssel und der 3 stellige
- Zeichencode als Arraywert verwendet
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToAlpha3</emphasis></entry>
- <entry>
- Gibt eine Liste von Territorien mit Ihrem 3 stelligen Zeichencode
- zurück. Der 3 stellige Zeichencode wird als Arrayschlüssel und das
- Territorium (Region) als Arraywert verwendet
- </entry>
- </row>
- <row>
- <entry><emphasis>PostalToTerritory</emphasis></entry>
- <entry>
- Gibt eine Liste von Territorien mit einem Regex für Post Codes zurück,
- welche in diesem Territorium enthalten sind. Der ISO Territory Code
- ('territory') wird als Arrayschlüssel und das Regex als Arraywert
- verwendet.
- </entry>
- </row>
- <row>
- <entry><emphasis>NumberingSystem</emphasis></entry>
- <entry>
- Gibt eine Liste von Skripten zurück mit die Schreibweise der
- Ziffern, die in diesem Skript verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>FallbackToChar</emphasis></entry>
- <entry>
- Gibt eine Liste von Ersatzzeichen für oft verwendete Unicode Zeichen
- zurück. Das kann verwendet werden um zum Beispiel "©" mit "(C)" zu
- ersetzen
- </entry>
- </row>
- <row>
- <entry><emphasis>CharToFallback</emphasis></entry>
- <entry>
- Gibt eine Liste von Unicode Zeichen für oft verwendete Ersatzzeichen
- zurück. Das kann verwendet werden um zum Beispiel "(C)" mit "©" zu
- ersetzen
- </entry>
- </row>
- <row>
- <entry><emphasis>LocaleUpgrade</emphasis></entry>
- <entry>
- Gibt eine Liste von Abhängigkeiten von Gebietsschemata zurück die
- verwendet werden kann um eine Sprache in ein voll qualifiziertes
- Gebietsschema hochzurüsten.
- </entry>
- </row>
- <row>
- <entry><emphasis>Unit</emphasis></entry>
- <entry>
- Gibt eine Liste von lokalisierten Einheiten von Kalendern zurück.
- Das kann verwendet werden um die Wörter "Tag", "Monat" und so weiter
- automatisch übersetzen zu lassen
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>
- Wenn nur ein einzelner übersetzter Wert benötigt wird, kann die
- <code>getTranslation()</code> Methode verwendet werden. Diese gibt immer einen String
- zurück, akzeptiert aber einige andere Typen als die <code>getTranslationList()</code>
- Methode. Auch der Wert ist der gleiche wie vorher mit einem Unterschied. Das Detail das
- man zurückerhalten will muß als zusätzlicher Wert angegeben werden
- </para>
- <note>
- <para>
- Weil immer ein Wert als Detail angegeben werden muß, muss dieser Parameter als
- erster Parameter angegeben werden. Das unterscheidet sich von der
- <code>getTranslationList()</code> Methode.
- </para>
- </note>
- <para>
- Siehe die folgende Tabelle für detailierte Informationen:
- </para>
- <table id="zend.locale.getdata.table-2">
- <title>Details für getTranslation($value = null, $type = null, $locale = null)</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Typ</entry>
- <entry>Beschreibung</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><emphasis>Language</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für eine Sprache zurück. Um die gewünschte
- Übersetzung auszuwählen muß der Sprachcode als Wert angegeben werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Script</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für eine Schrift zurück. Um die gewünschte
- Übersetzung auszuwählen muß der Schriftcode als Wert angegeben werden
- </entry>
- </row>
- <row>
- <entry>
- <emphasis>Territory</emphasis> oder <emphasis>Country</emphasis>
- </entry>
- <entry>
- Gibt eine Übersetzung für ein Territorium zurück. Das können Länder,
- Kontinente und Territorien sein. Um die gewünschte Variante auszuwählen
- muß der Territory Code als Wert angegeben werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Variant</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für eine Schriftvariante zurück. Um die gewünschte
- Variante auszuwählen muß der Code der Variante als Wert angegeben werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Key</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für einen bekannten Schlüssel zurück. Diese
- Schlüssel sind generische Werte die in Übersetzungen verwendet werden.
- Das sind normalerweise Kalender, Sammlung und Währung. Um den
- gewünschten Schlüssel auszuwählen muß der Schlüsselcode als Wert
- angegeben werden
- </entry>
- </row>
- <row>
- <entry><emphasis>DefaultCalendar</emphasis></entry>
- <entry>
- Gibt den Standardkalender für das angegebene Gebietsschema zurück. Für
- die meisten wird das 'gregorian' (gregorianisch) sein. Der Einfachheit
- halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>MonthContext</emphasis></entry>
- <entry>
- Gibt den Standardkontext für Monate zurück der im angegebenen Kalender
- verwendet wird. Wenn der Wert nicht angegeben wird, wird der 'gregorian'
- (gregorianische) Kalender verwendet. Der Einfachheit halber sollte
- <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>DefaultMonth</emphasis></entry>
- <entry>
- Gibt das Standardformat für Monate zurück die im angegebene Kalender
- verwendet werden. Wenn der Wert nicht angegeben wird, dann wird der
- 'gregorian' (gregorianische) Kalender verwendet. Der Einfachheit halber
- sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Month</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für ein Monat zurück. Es muß die Nummer des Monats
- als Ganzzahlwert angegeben werden. Er muß zwischen 1 und 12 sein. Wenn
- man die Daten für andere Kalender, Kontexte oder Formate empfangen will,
- muß ein Array statt einem Ganzzahlwert mit dem erwarteten Wert angegeben
- werden. Das Array muß wie folgt aussehen: <code>array('calendar',
- 'context', 'format', 'month number')</code>. Wenn nur ein Ganzzahlwert
- angegeben wird, sind die Standardwerte der 'gregorian' (Gregorianische)
- Kalender, der Kontext 'format' und das Format 'wide'. Der Einfachheit
- halber sollte <link linkend="zend.date.introduction">Zend_Date</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>DayContext</emphasis></entry>
- <entry>
- Gibt den Standardkontext für Tage zurück der im angegebenen Kalender
- verwendet wird. Wenn der Wert nicht angegeben wird, wird der 'gregorian'
- (gregorianische) Kalender verwendet. Der Einfachheit halber sollte
- <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>DefaultDay</emphasis></entry>
- <entry>
- Gibt das Standardformat für Tage zurück die im angegebene Kalender
- verwendet werden. Wenn der Wert nicht angegeben wird, dann wird der
- 'gregorian' (gregorianische) Kalender verwendet. Der Einfachheit halber
- sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Day</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für einen Tag zurück. Es muß die englische
- Abkürzung des Tages als Stringwert angegeben werden ('sun', 'mon',
- usw.). Wenn man die Daten für andere Kalender, Kontexte oder Formate
- empfangen will, muß ein Array statt einem Ganzzahlwert mit dem
- erwarteten Wert angegeben werden. Das Array muß wie folgt aussehen:
- <code>array('calendar', 'context', 'format', 'day abbreviation')</code>.
- Wenn nur ein String angegeben wird, sind die Standardwerte der
- 'gregorian' (Gregorianische) Kalender, der Kontext 'format' und das
- Format 'wide'. Der Einfachheit halber sollte <link
- linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Quarter</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für ein Quartal zurück. Es muß die Nummer des
- Quartals Ganzzahl angegeben werden und diese muß zwischen 1 und 4 sein.
- Wenn man die Daten für andere Kalender, Kontexte oder Formate empfangen
- will, muß ein Array statt einem Ganzzahlwert mit dem erwarteten Wert
- angegeben werden. Das Array muß wie folgt aussehen:
- <code>array('calendar', 'context', 'format', 'quarter number')</code>.
- Wenn nur ein String angegeben wird, sind die Standardwerte der
- 'gregorian' (Gregorianische) Kalender, der Kontext 'format' und das
- Format 'wide'
- </entry>
- </row>
- <row>
- <entry><emphasis>Am</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für 'AM' in dem erwarteten Gebietsschema zurück.
- Wenn man die Daten für andere Kalender empfangen will, muß ein String
- mit dem erwarteten Kalender angegeben werden. Wenn der Wert nicht
- angegeben wird, dann wird der 'gregorian' (Gregorianische) Kalender
- verwendet. Der Einfachheit halber sollte <link
- linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Pm</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für 'PM' in dem erwarteten Gebietsschema zurück.
- Wenn man die Daten für andere Kalender empfangen will, muß ein String
- mit dem erwarteten Kalender angegeben werden. Wenn der Wert nicht
- angegeben wird, dann wird der 'gregorian' (Gregorianische) Kalender
- verwendet. Der Einfachheit halber sollte <link
- linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Era</emphasis></entry>
- <entry>
- Gibt eine Übersetzung für eine Epoche zurück. Es muß die Nummer der
- Epoche als Ganzzahl oder String angegeben werden. Wenn man die Daten
- für andere Kalender oder Formate empfangen will, muß ein Array statt
- einem Ganzzahlwert mit dem erwarteten Wert angegeben werden. Das Array
- muß wie folgt aussehen: <code>array('calendar', 'format',
- 'era number')</code>. Wenn nur ein String angegeben wird, sind die
- Standardwerte der 'gregorian' (Gregorianische) Kalender und das Format
- 'abbr'
- </entry>
- </row>
- <row>
- <entry><emphasis>DefaultDate</emphasis></entry>
- <entry>
- Gibt das Standard Datumsformat zurück das im angegebenen Kalender
- verwendet wird. Wenn der Wert nicht angegeben wird, dann wird der
- 'gregorian' (Gregorianische) Kalender verwendet. Der Einfachheit halber
- sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Date</emphasis></entry>
- <entry>
- Gibt das Datumsformat für einen angegebenen Kalender oder Format in
- einem Gebietsschema zurück. Wenn kein Wert angegeben wird, dann wird der
- 'gregorian' (Gregorianische) Kalender mit dem Format 'medium' verwendet.
- Wenn ein String angegeben wird, dann wird der 'gregorian'
- (Gregorianische) Kalender mit dem angegebenen Format verwendet. Oder es
- kann auch ein Array angegeben welches wie folgt aussehen muß:
- <code>array('calendar', 'format')</code>. Der Einfachheit halber sollte
- <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>DefaultTime</emphasis></entry>
- <entry>
- Gibt das Standard Zeitformat zurück das im angegebenen Kalender
- verwendet wird. Wenn der Wert nicht angegeben wird, dann wird der
- 'gregorian' (Gregorianische) Kalender verwendet. Der Einfachheit halber
- sollte <link linkend="zend.date.introduction">Zend_Date</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Time</emphasis></entry>
- <entry>
- Gibt das Zeitformat für einen angegebenen Kalender oder Format in einem
- Gebietsschema zurück. Wenn kein Wert angegeben wird, dann wird der
- 'gregorian' (Gregorianische) Kalender mit dem Format 'medium' verwendet.
- Wenn ein String angegeben wird, dann wird der 'gregorian'
- (Gregorianische) Kalender mit dem angegebenen Format verwendet. Oder es
- kann auch ein Array angegeben welches wie folgt aussehen muß:
- <code>array('calendar', 'format')</code>. Der Einfachheit halber sollte
- <link linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>DateTime</emphasis></entry>
- <entry>
- Gibt das Datums-Zeitformat für ein angegebenes Gebietsschema zurück
- welches anzeigt wie Datum und Zeit im selben String des angegebenen
- Kalenders angezeigt werden sollten. Wenn kein Wert angegeben wird, dann
- wird der 'gregorian' (Gregorianische) Kalender verwendet. Der
- Einfachheit halber sollte <link
- linkend="zend.date.introduction">Zend_Date</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>DateItem</emphasis></entry>
- <entry>
- Gibt das Standardformat für ein angegebenes Datum oder Zeitelement
- zurück
- </entry>
- </row>
- <row>
- <entry><emphasis>DateInterval</emphasis></entry>
- <entry>
- Gibt das Intervallformat für ein gegebenes Datums- oder Zeitformat
- zurück. Der erste Wert ist das Kalenderformat, normalerweise
- 'gregorian'. Der zweite Wert ist das Intervallformat, und der dritte
- Wert ist das Token mit der größten Different. Zum Beispiel:
- array('gregorian', 'yMMMM', 'y') gibt das Intervallformat für das
- Datumsformat 'yMMMM' zurück, wobei 'y' die größte Differenz hat.
- </entry>
- </row>
- <row>
- <entry><emphasis>Field</emphasis></entry>
- <entry>
- Gibt ein übersetztes Datumsfeld zurück welches verwendet werden kann um
- Kalender oder Datumsstrings wie 'Monat' oder 'Jahr' in der gewünschten
- Sprache korrekt anzuzeigen. Das Feld das als String zurückgegeben werden
- soll muß angegeben werden. In diesem Fall wird der 'gregorian'
- (Gregorianische) Kalender verwendet. Wenn man die Felder für andere
- Kalenderformat erhalten will muß ein Array angegeben werden das wie
- folgt auszusehen hat: <code>array('calendar', 'date field')</code>
- </entry>
- </row>
- <row>
- <entry><emphasis>Relative</emphasis></entry>
- <entry>
- Gibt ein übersetztes Datums zurück welches relativ zu heute ist. Dieses
- kann Strings wie 'Gestern' oder 'Morgen' in einer gewünschten Sprache
- enthalten. Es muß die Anzahl der relativen Tage zu heute angegeben
- werden um den erwarteten String zu erhalten. Gestern würde '-1' sein,
- morgen '1' und so weiter. Es wird hierbei der 'gregorian'
- (Gregorianische) Kalender verwendet. Wenn man die relativen Daten für
- andere Kalenderformat erhalten will muß ein Array angegeben werden das
- wie folgt auszusehen hat: <code>array('calendar', 'date field')</code>
- </entry>
- </row>
- <row>
- <entry><emphasis>DecimalNumber</emphasis></entry>
- <entry>
- Gibt das Format für Dezimalzahlen in einem angegebenen Gebietsschema
- zurück. Der Einfachheit halber sollte <link
- linkend="zend.locale.parsing">Zend_Locale_Format</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>ScientificNumber</emphasis></entry>
- <entry>
- Gibt das Format für Wissenschaftliche Zahlen im angegebenen
- Gebietsschema zurück
- </entry>
- </row>
- <row>
- <entry><emphasis>PercentNumber</emphasis></entry>
- <entry>
- Gibt das Format für Prozentzahlen im angegebenen Gebietsschema zurück
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencyNumber</emphasis></entry>
- <entry>
- Gibt das Format für die Anzeige von Währungszahlen in einem angegebenen
- Gebietsschema zurück. Der Einfachheit halber sollte
- <link linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>NameToCurrency</emphasis></entry>
- <entry>
- Gibt einen übersetzten Namen für eine angegebene Währung zurück. Die
- Währung muß im ISO Format angegeben werden welches zum Beispiel 'EUR'
- für die Währung 'Euro' ist. Der Einfachheit halber sollte
- <link linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencyToName</emphasis></entry>
- <entry>
- Gibt eine Währung für einen angegebenen lokalisierten Namen zurück. Der
- Einfachheit halber sollte
- <link linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencySymbol</emphasis></entry>
- <entry>
- Gibt das für eine Währung verwendete Symbol in einem Gebietsschema
- zurück. Nicht für alle Währungen existiert ein Symbol. Der Einfachheit
- halber sollte <link
- linkend="zend.currency.introduction">Zend_Currency</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>Question</emphasis></entry>
- <entry>
- Gibt einen lokalisierten String für Akzeptanz ('yes') und Verneinung
- ('no') zurück. Es muß entweder 'yes' oder 'no' als Wert angegeben werden
- um den erwarteten String zu erhalten. Der Einfachheit halber sollte
- <link linkend="zend.locale.getquestion">Zend_Locale's getQuestion
- Methode</link> verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencyFraction</emphasis></entry>
- <entry>
- Gibt den Bruch der für eine angegebene Währung zu verwenden ist, zurück.
- Die Währung muß als ISO Wert angegeben werden. Der Einfachheit halber
- sollte <link linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencyRounding</emphasis></entry>
- <entry>
- Gibt zurück wie eine angegebene Währung gerundet werden muß. Die Währung
- muß als ISO Wert angegeben werden. Wenn die Währung nicht angegeben wird
- das wird die 'DEFAULT' (Standard) Rundung zurückgegeben. Der Einfachheit
- halber sollte <link
- linkend="zend.currency.introduction">Zend_Currency</link> verwendet
- werden
- </entry>
- </row>
- <row>
- <entry><emphasis>CurrencyToRegion</emphasis></entry>
- <entry>
- Gibt die Währung für eine angegebene Region zurück. Der Regionscode muß
- als ISO3166 String angegeben werden zum Beispiel 'AT' für Österreich.
- Der Einfachheit halber sollte <link
- linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>RegionToCurrency</emphasis></entry>
- <entry>
- Gibt die Regionen zurück in denen eine Währung verwendet wird. Die
- Währung muß als ISO4217 Code angegeben werden, zum Beispiel 'EUR' für
- Euro. Wenn eine Währung in mehreren Regionen verwendet wird, werden
- diese Regionen mit einem Leerzeichen getrennt. Der Einfachheit halber
- sollte <link linkend="zend.currency.introduction">Zend_Currency</link>
- verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>RegionToTerritory</emphasis></entry>
- <entry>
- Gibt die Regionen für ein angegebenes Territorium zurück. Das
- Territorium muß als ISO4217 String angegeben werden zum Beispiel '001'
- für Weltweit. Die Regionen in diesem Territorium werden mit einem
- Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToRegion</emphasis></entry>
- <entry>
- Gibt die Territorien zurück in denen eine angegebene Region enthalten
- ist. Diese Region muß als ISO3166 String angegeben werden zum Beispiel
- 'AT' für Österreich. Wenn eine region in mehreren Territorien enthalten
- ist, werden diese Territorien mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>ScriptToLanguage</emphasis></entry>
- <entry>
- Gibt die Schriften zurück die in einer angegebenen Sprache verwendet
- werden. Die Sprache muß als ISO Sprachcode angegeben werden zum Beispiel
- 'en' für englisch. Wenn mehrere Schriften in einer Sprache verwendet
- werden dann werden diese Schriften mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>LanguageToScript</emphasis></entry>
- <entry>
- Gibt die Sprachen zurück die in einer angegebenen Schrift verwendet
- werden. Die Schrift muß als ISO Schriftcode angegeben werden zum
- Beispiel 'Latn' für lateinisch. Wenn eine Schrift in mehreren Sprachen
- verwendet wird dann werden diese Sprachen mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToLanguage</emphasis></entry>
- <entry>
- Gibt die Territorien zurück die in einer angegebenen Sprache verwendet
- werden. Die Sprache muß als ISO Sprachcode angegeben werden zum Beispiel
- 'en' für englisch. Wenn mehrere Sprachen in einem Territorien verwendet
- werden dann werden diese Sprachen mit einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>LanguageToTerritory</emphasis></entry>
- <entry>
- Gibt die Sprachen zurück die in einem angegebenen Territorium verwendet
- werden. Das Territorium muß als ISO3166 Code angegeben werden zum
- Beispiel 'IT' für italienisch. Wenn eine Sprache in mehreren Territorien
- verwendet wird dann werden diese Territorien mit einem Leerzeichen
- getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>TimezoneToWindows</emphasis></entry>
- <entry>
- Gibt eine ISO Zeitzone für eine angegebene Windows Zeitzone zurück
- </entry>
- </row>
- <row>
- <entry><emphasis>WindowsToTimezone</emphasis></entry>
- <entry>
- Gibt eine Windows Zeitzone für eine angegebene ISO Zeitzone zurück
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToTimezone</emphasis></entry>
- <entry>Gibt ein Territorium für eine angegebene ISO Zeitzone zurück</entry>
- </row>
- <row>
- <entry><emphasis>TimezoneToTerritory</emphasis></entry>
- <entry>Gibt die ISO Zeitzone für ein angegebenes Territorium zurück</entry>
- </row>
- <row>
- <entry><emphasis>CityToTimezone</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Stadt für eine angegebene ISO Zeitzone zurück.
- Nicht für alle Zeitzonen existiert eine Übersetzung einer Stadt
- </entry>
- </row>
- <row>
- <entry><emphasis>TimezoneToCity</emphasis></entry>
- <entry>
- Gibt die ISO Zeitzone für einen angegebenen lokalisierten Namen einer
- Stadt zurück. Nicht für alle Städte existiert eine Zeitzone
- </entry>
- </row>
- <row>
- <entry><emphasis>PhoneToTerritory</emphasis></entry>
- <entry>Gibt den Telefoncode für ein angegebenes Territorium (Region) zurück.
- Der Code des Territoriums muß als ISO3166 String angegeben werden, z.B.
- 'AT' für Österreich</entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToPhone</emphasis></entry>
- <entry>
- Gibt das Territorium (Region) zurück in dem ein Telefoncode verwendet
- wird. Der Telefoncode muß als reiner Integerwert angegeben werden, z.B.
- '43' für +43. Wenn ein Telefoncode verwendet wird der in mehreren
- Territorien (Regionen) verwendet wird, werden diese Territorien mit
- einem Leerzeichen getrennt
- </entry>
- </row>
- <row>
- <entry><emphasis>NumericToTerritory</emphasis></entry>
- <entry>
- Gibt den 3 stelligen Nummerncode für ein angegebenes Territorium
- (Region) zurück. Der Code des Territoriums muß als ISO3166 String
- angegeben werden, z.B. 'AR' für Österreich
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToNumeric</emphasis></entry>
- <entry>
- Gibt as Territorium (Region) für einen 3 stelligen Nummerncode zurück.
- Der 3 stellige Nummerncode muß als reine Integerzahl angegeben werden,
- zum Beispiel '43'
- </entry>
- </row>
- <row>
- <entry><emphasis>Alpha3ToTerritory</emphasis></entry>
- <entry>
- Gibt den 3 stelligen Zeichencode für ein angegebenes Territorium
- (Region) zurück. Der Code des Territoriums (Region) muß als ISO3166
- String angegeben werden, zum Beispiel 'AT' für Österreich
- </entry>
- </row>
- <row>
- <entry><emphasis>TerritoryToAlpha3</emphasis></entry>
- <entry>
- Gibt das Territorium (Region) für einen 3 stelligen Zeichencode zurück
- </entry>
- </row>
- <row>
- <entry><emphasis>PostalToTerritory</emphasis></entry>
- <entry>
- Gibt ein Regex für den Post Code eines angegebenen Territoriums zurück.
- Das Territorium muss als ISO4217 String angegeben werden, zum Beispiel
- '001' für Welt
- </entry>
- </row>
- <row>
- <entry><emphasis>NumberingSystem</emphasis></entry>
- <entry>
- Gibt ein Skript mit der Schreibweise der Ziffern zurück, die in diesem
- Skript verwendet werden
- </entry>
- </row>
- <row>
- <entry><emphasis>FallbackToChar</emphasis></entry>
- <entry>
- Gibt ein Ersatzzeichen für ein oft verwendetes Unicode Zeichen zurück.
- Das kann verwendet werden um zum Beispiel "©" mit "(C)" zu ersetzen
- </entry>
- </row>
- <row>
- <entry><emphasis>CharToFallback</emphasis></entry>
- <entry>
- Gibt ein Unicode Zeichen für ein oft verwendetes Ersatzzeichen zurück.
- Das kann verwendet werden um zum Beispiel "(C)" mit "©" zu ersetzen
- </entry>
- </row>
- <row>
- <entry><emphasis>LocaleUpgrade</emphasis></entry>
- <entry>
- Gibt die Abhängigkeit eines Gebietsschemas zurück die
- verwendet werden kann um eine Sprache in ein voll qualifiziertes
- Gebietsschema hochzurüsten.
- </entry>
- </row>
- <row>
- <entry><emphasis>Unit</emphasis></entry>
- <entry>
- Gibt eine lokalisierte Einheit eines Kalenders zurück. Das kann
- verwendet werden um die Wörter "Tag", "Monat" und so weiter automatisch
- übersetzen zu lassen. Der erste Parameter muß ein Typ sein, und der
- zweite Parameter muß eine Anzahl sein
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <note>
- <para>
- Mit dem Zend Framework 1.5 wurde verschiedene alte Typen umbenannt. Das wurde
- notwendig durch verschiedene neue Typen, einige Schreibfehler und die Erhöhung der
- Verwendbarkeit. Die folgende Tabelle zeigt eine Liste von alten und neuen Typen:
- </para>
- </note>
- <table id="zend.locale.getdata.table-3">
- <title>Unterschiede zwischen ZF 1.0 und ZF 1.5</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Alter Typ</entry>
- <entry>Neuer Typ</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Country</entry>
- <entry>Territory (mit dem Wert '2')</entry>
- </row>
- <row>
- <entry>Calendar</entry>
- <entry>Type (mit dem Wert 'calendar')</entry>
- </row>
- <row>
- <entry>Month_Short</entry>
- <entry>Month (mit dem Array('gregorian', 'format', 'abbreviated')</entry>
- </row>
- <row>
- <entry>Month_Narrow</entry>
- <entry>Month (mit dem Array('gregorian', 'stand-alone', 'narrow')</entry>
- </row>
- <row>
- <entry>Month_Complete</entry>
- <entry>Months</entry>
- </row>
- <row>
- <entry>Day_Short</entry>
- <entry>Day (mit dem Array('gregorian', 'format', 'abbreviated')</entry>
- </row>
- <row>
- <entry>Day_Narrow</entry>
- <entry>Day (mit dem Array('gregorian', 'stand-alone', 'narrow')</entry>
- </row>
- <row>
- <entry>DateFormat</entry>
- <entry>Date</entry>
- </row>
- <row>
- <entry>TimeFormat</entry>
- <entry>Time</entry>
- </row>
- <row>
- <entry>Timezones</entry>
- <entry>CityToTimezone</entry>
- </row>
- <row>
- <entry>Currency</entry>
- <entry>NameToCurrency</entry>
- </row>
- <row>
- <entry>Currency_Sign</entry>
- <entry>CurrencySymbol</entry>
- </row>
- <row>
- <entry>Currency_Detail</entry>
- <entry>CurrencyToRegion</entry>
- </row>
- <row>
- <entry>Territory_Detail</entry>
- <entry>TerritoryToRegion</entry>
- </row>
- <row>
- <entry>Language_Detail</entry>
- <entry>LanguageToTerritory</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>
- Das folgende Beispiel zeigt wie man die Namen für Dinge in verschiedenen Sprachen
- erhalten kann.
- </para>
- <example id="zend.locale.getdata.example-3">
- <title>getTranslationList</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale('en_US');
- // Gibt die Namen aller Länder in der Französischen Sprache aus
- print_r(Zend_Locale::getTranslationList('country', 'fr'));
- ]]></programlisting>
- </example>
- <para>
- Das nächste Beispiel zeigt wie der Name einer Sprache in einer anderen Sprache gefunden
- werden kann, wenn der zwei-Zeichen ISO Länder-Code unbekannt ist.
- </para>
- <example id="zend.locale.getdata.example-4">
- <title>Konvertierung des Ländernamens von einer Sprache in eine andere Sprache</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale('en_US');
- $code2name = $locale->getLanguageTranslationList();
- $name2code = array_flip($code2name);
- $frenchCode = $name2code['French'];
- echo $locale->getLanguageTranslation($frenchCode, 'es');
- // Ausgegeben wird der Spanische Name der Fransösischen Sprache
- ]]></programlisting>
- </example>
- <para>
- Um von <classname>Zend_Locale</classname> eine Liste aller bekannten Sprachen zu
- bekommen wobei jede Sprache in Ihrer eigenen Sprache geschrieben wird, kann das untere
- Beispiel in einer Web Seite benutzt werden. Genauso können
- <code>getCountryTranslationList()</code> und <code>getCountryTranslation()</code>
- benutzt werden um eine Tabelle zu erhalten die Namen für Muttersprachen einer Region und
- Namen für Regionen in einer anderen Sprache zu erhalten. Man muß einen <code>try ..
- catch</code> Block benutzen um Ausnahmen abzufangen die auftreten wenn ein Gebietsschema
- benutzt wird das nicht existiert. Nicht alle Sprachen sind auch ein Gebietsschema. Im
- Beispiel werden die Ausnahmen ignoriert um einen frühen Abbruch zu verhindern.
- </para>
- <example id="zend.locale.getdata.example-6">
- <title>Alle Sprachen geschrieben in Ihrer Muttersprache</title>
- <programlisting language="php"><![CDATA[
- $list = Zend_Locale::getLanguageTranslationList('auto');
- foreach($list as $language => $content) {
- try {
- $output = Zend_Locale::getLanguageTranslation($language, $language);
- if (is_string($output)) {
- print "\n<br>[".$language."] ".$output;
- }
- } catch (Exception $e) {
- continue;
- }
- }
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.locale.getquestion">
- <title>Übersetzungen für "Ja" und "Nein" erhalten</title>
- <para>
- Oft müssen Programme eine "Ja" oder "Nein" Rückmeldung eines Benutzers erkennen.
- <code>getQuestion()</code> gibt ein Array zurück welches die richtigen Wörter oder Regex
- Zeichenketten enthält um einem Benutzer in einer bestimmten $locale zu antworten
- (Standardmäßig das aktuelle Gebietsschema des Objekts). Das zurückgegebene Array enthält
- die folgenden Informationen:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- yes und no</emphasis>: Eine generelle Stringrepräsentation für Ja und Nein
- Antworten. Es enthält die erste und generellste Antwort von yesarray und
- noarray.
- </para>
- <para>
- <emphasis>yesarray und noarray</emphasis>: Ein Array mit allen bekannten
- Ja und Nein Antworten. Diverse Sprachen haben mehr als nur zwei Antworten.
- Normalerweise ist das der komplette String und seine Abkürzung.
- </para>
- <para>
- <emphasis>yesexpr und noexpr</emphasis>: Ein ersteller Regex String des es
- erlaubt Benutzerantworten zu behandeln und nach Ja und Nein zu suchen.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Alle diese Informationen sind natürlich lokalisiert und hängen vom eingestellten
- Gebietsschema ab. Das folgende Beispiel zeigt die Informationen die empfangen werden
- können:
- </para>
- <example id="zend.locale.getquestion.example-1">
- <title>getQuestion()</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale();
- // Zeichenketten für Fragen
- print_r($locale->getQuestion('de'));
- - - - Output - - -
- Array
- (
- [yes]ja[/yes]
- [no]nein[/no]
- [yesabbr]j[/yesabbr]
- [noabbr]n[/noabbr]
- [yesexpr]^([yY]([eE][sS])?)|([jJ][aA]?)[/yesexpr]
- [noexpr]^([nN]([oO]|([eE][iI][nN]))?)[/noexpr]
- )
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.locale.getlocalelist">
- <title>Eine Liste aller bekannten Gebietsschemata erhalten</title>
- <para>
- Manchmal will man eine Liste aller bekannten Gebietsschemata erhalten. Das kann für die
- verschiedensten Aufgaben nützlich sein, zum Beispiel für die Erstellung einer
- Auswahlbox. Für diesen Zweck kann die statische <code>getLocaleList()</code> Methode
- verwender werden, welche eine Liste aller bekannten Gebietsschemata zurückgibt.
- </para>
- <example id="zend.locale.getlocalelist.example-1">
- <title>getLocaleList()</title>
- <programlisting language="php"><![CDATA[
- $localelist = Zend_Locale::getLocaleList();
- ]]></programlisting>
- </example>
- <note>
- <para>
- Es ist zu beachten das die Gebietsschemata als Schlüssel des Arrays das man erhält
- zurück gegeben werden. Der Wert ist immer ein Boolsches True.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.locale.detection">
- <title>Erkennen von Gebietsschemata</title>
- <para>
- Wenn man erkennen will ob eine vorhandene Eingabe. unabhängig von Ihrer Quelle, ein
- Gebietsschema ist, sollte man die statische <code>isLocale()</code> Methode verwenden.
- Der erste Parameter dieser Methode ist der String den man prüfen will.
- </para>
- <example id="zend.locale.detection.example-1">
- <title>Einfache Erkennung des Gebietsschemas</title>
- <programlisting language="php"><![CDATA[
- $input = 'to_RU';
- if (Zend_Locale::isLocale($input)) {
- print "'{$input}' ist ein Gebietsschema";
- } else {
- print "Sorry... die vorhandene Eingabe ist kein Gebietsschema";
- }
- ]]></programlisting>
- </example>
- <para>
- Wie man sieht ist die Ausgabe dieser Methode immer ein boolscher Wert. Es gibt nur einen
- Grund warum man eine Ausnahme erhält wenn diese Methode aufgerufen wird. Wenn das eigene
- System kein Gebietsschema anbietet und Zend Framework nicht in der Lage ist dieses
- automatisch zu erkennen. Normalerweise zeigt dieses, das ein Problem mit dem eigenen OS
- in Kombination mit PHP's <code>setlocale()</code> vorhanden ist.
- </para>
- <para>
- Man sollte auch beachten das jeder angegebene Gebietsschema String automatisch
- degradiert wird wenn der Regionsabschnitt für dieses Gebietsschema nicht existiert. In
- unserem vorherigen Beispiel existiert die Region <code>'RU'</code> nicht für die Sprache
- <code>'to'</code>, aber es wird trotzdem true zurückgegeben da
- <classname>Zend_Locale</classname> mit der vorhandenen Eingabe arbeiten kann.
- </para>
- <para>
- Trotzdem ist es manchmal nützlich diese automatische Degradierung zu verhindern, und
- hier kommt der zweite Parameter von <code>isLocale()</code> zu Tragen. Der
- <code>strict</code> Parameter ist Standardmäßig <constant>FALSE</constant> und kann verwendet
- werden um die automatische Degradierung zu verhindern wenn er auf <constant>TRUE</constant>
- gesetzt wird.
- </para>
- <example id="zend.locale.detection.example-2">
- <title>Strikte Erkennung des Gebietsschemas</title>
- <programlisting language="php"><![CDATA[
- $input = 'to_RU';
- if (Zend_Locale::isLocale($input, true)) {
- print "'{$input}' ist ein Gebietsschema";
- } else {
- print "Sorry... die vorhandene Eingabe ist kein Gebietsschema";
- }
- ]]></programlisting>
- </example>
- <para>
- Jetzt da man in der Lage zu Erkennen ob ein vorhandenen String ein Gebietsschema ist
- kann man Gebietsschema bezogenes Verhalten in seine eigenen Klassen hinzufügen. Aber man
- wird schnell erkennen das das immer zu den gleichen 15 Zeilen Code führt. Etwas
- ähnliches wie das folgende Beispiel:
- </para>
- <example id="zend.locale.detection.example-3">
- <title>Implementierung von Gebietsschema bezogenem Verhalten</title>
- <programlisting language="php"><![CDATA[
- if ($locale === null) {
- $locale = new Zend_Locale();
- }
- if (!Zend_Locale::isLocale($locale, true, false)) {
- if (!Zend_Locale::isLocale($locale, false, false)) {
- throw new Zend_Locale_Exception(
- "Das Gebietsschema '$locale' ist kein bekanntes Gebietsschema");
- }
- $locale = new Zend_Locale($locale);
- }
- if ($locale instanceof Zend_Locale) {
- $locale = $locale->toString();
- }
- ]]></programlisting>
- </example>
- <para>
- Mit Zend Framework 1.8 haben wir die statische <code>findLocale()</code> Methode
- hinzugefügt welche einen Gebietsschema-String zurückgibt mit dem man arbeiten kann. Sie
- führt die folgenden Arbeiten durch:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Erkennt ob ein angegebener String ein Gebietsschema ist
- </para>
- </listitem>
- <listitem>
- <para>
- Degradiert das Gebietsschema wenn es in der angegebenen Region nicht existiert
- </para>
- </listitem>
- <listitem>
- <para>
- Gibt das vorher gesetzte Anwendungsweite Gebietsscheam zurück wenn keine Eingabe
- angegeben wurde
- </para>
- </listitem>
- <listitem>
- <para>
- Erkennt das Gebietsschema vom Browser wenn die vorherigen Erkennungen
- fehlgeschlagen sind
- </para>
- </listitem>
- <listitem>
- <para>
- Erkennt das Gebietsschema vom Betriebssystem wenn die vorherigen Erkennungen
- fehlgeschlagen sind
- </para>
- </listitem>
- <listitem>
- <para>
- Erkennt das Gebietsschema vom Framework wenn die vorherigen Erkennungen
- fehlgeschlagen sind
- </para>
- </listitem>
- <listitem>
- <para>
- Gibt immer einen String zurück der das gefundene Gebietsschema repräsentiert
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Das folgende Beispiel zeigt wie diese Prüfungen und der obige Code mti einem einfachen
- Aufruf vereinfacht werden kann:
- </para>
- <example id="zend.locale.detection.example-4">
- <title>Gebietsschema bezogenes Verhalten mit ZF 1.8</title>
- <programlisting language="php"><![CDATA[
- $locale = Zend_Locale::findLocale($inputstring);
- ]]></programlisting>
- </example>
- </sect2>
- </sect1>
|