Zend_Locale verwendenZend_Locale 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.
Kopieren, Klonen und Serialisieren von Gebietsschema Objekten
Verwende
Klonen von Objekten
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 $locale->toString().
Klonenserialize();
// 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;
]]>GleichheitZend_Locale bietet auch eine erwartete Funktion zum Vergleichen
von zwei Gebietsschema an. Alle lokalisierbaren Klassen sollten eine Vergleichbare
Funktion für eine Gleichheitsprüfung anbieten.
Prüfung auf gleiche Gebietsschemataequals($mylocale)) {
print "Die Gebietsschemata sind gleich";
}
]]>Standard Gebietsschemata
Die Methode getDefault() 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 Zend_Locale wählt der erste Parameter die
bevorzugte Umgebung von der die Informationen zuerst geholt werden sollen (BROWSER, ENVIRONMENT, or
FRAMEWORK). 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.
Das Standard Gebietsschema erhaltengetDefault();
print_r($found);
// Nur die Gebietsschema des Browsers zurück geben
$found2 = $locale->getDefault(Zend_Locale::BROWSER,TRUE);
print_r($found2);
]]>
Um nur die Standard Gebietsschema für BROWSER, ENVIRONMENT, oder
FRAMEWORK zu erhalten, können die folgenden Methoden benutzt
werden:
getEnvironment()getBrowser()getLocale()Ein neues Gebietsschema setzen
Ein neues Gebietsschema kann mit der Funktion setLocale() gesetzt werden.
Diese Funktion nimmt eine Gebietsschema Zeichenkette als Parameter an. Wenn kein
Gebietsschema angegeben wurde, wird ein automatisch gewähltes Gebietsschema benutzt.
Da Zend_Locale Objekte sehr "leicht" sind, existiert diese
Methode hauptsächlich um Nebeneffekte auszuschließen, für Klassen die ein existierendes
angelegtes Objekt referenzieren.
setLocaletoString();
// neues Gebietsschema
$locale->setLocale('aa_DJ');
print $locale->toString();
]]>Auslesen von Sprache und RegiongetLanguage() gibt eine Zeichenkette zurück welche den zwei-Zeichen Code
der Sprache des Gebietsschemas enthält. getRegion() gibt eine Zeichenkette
zurück welche den Zwei-Zeichen Code der Region des Gebietsschemas enthält.
getLanguage and getRegiongetLanguage();
// Wenn das Gebietsschema 'de_AT' ist, wird 'AT' als Region zurückgegeben
print $locale->getRegion();
]]>Lokalisierte Zeichenketten beschaffengetTranslationList() 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.
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.
getTranslationList 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
]]>
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.
Details für getTranslationList($type = null, $locale = null, $value = null)
TypBeschreibungLanguage
Gibt eine lokalisierte Liste aller Sprachen zurück. Der Sprach-Teil des
Gebietsschemas wird als Schlüssel und die Übersetzung als Wert
zurückgegeben. Der Einfachheit halber kann die
getLanguageTranslationList() Methode verwendet werden
Script
Gibt eine lokalisierte Liste aller Schriften zurück. Die Schrift wird
als Schlüssel die Übersetzung als Wert zurückgegeben. Der Einfachheit
halber kann die getScriptTranslationList() Methode
verwendet werden
Territory
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. Der
Einfachheit halber kann die getCountryTranslationList()
Methode verwendet werden um alle Länder und die
getTerritoryTranslationList() Methode um alle Territorien
ohne Länder zu erhalten. Wenn der Wert nicht angegeben wird erhält man
eine Liste mit beidem
Variant
Gibt eine lokalisierte Liste von bekannten Varianten von Schriften
zurück. Die Variante wird als Schlüssel und die Übersetzung als Wert
zurückgegeben
Key
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
Type
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
Layout
Gibt eine Liste von Regeln zurück die beschreiben wie spezielle
Textabschnitte formatiert werden
Characters
Gibt eine Liste von in diesem Gebietsschema erlaubten Zeichen zurück
Delimiters
Gibt eine Liste von in diesem Gebietsschema erlaubten Anführungszeichen
zurück
Measurement
Gibt eine Liste von bekannten Bemessungswerten zurück. Diese Liste
sollte nicht mehr verwendet werden
Months
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 Zend_Date verwendet werden
Month
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 Zend_Date verwendet
werden
Days
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 Zend_Date
verwendet werden
Day
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 Zend_Date verwendet werden
Week
Gibt eine Liste von Werten für die korrekte Berechnung der Woche in
einem Gebietsschema zurück. Der Einfachheit halber sollte
Zend_Date verwendet werden
Quarters
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
Quarter
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
Eras
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
Era
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
Date
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 Zend_Date
verwendet werden
Time
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
Zend_Date verwendet werden
DateTime
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 Zend_Date verwendet werden
Field
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
Relative
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
Symbols
Gibt eine lokalisierte Liste von Zeichen zurück die in Repräsentationen
von Zahlen verwendet wird
NameToCurrency
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
Zend_Currency
verwendet werden
CurrencyToName
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
Zend_Currency
verwendet werden
CurrencySymbol
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 Zend_Currency
verwendet werden
Question
Gibt eine Liste von lokalisierten Strings für die Akzeptanz ('ja') und
die Verneinung ('nein') zurück. Der Einfachheit halber sollte
Zend_Locale's getQuestion
Methode verwendet werden
CurrencyFraction
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 Zend_Currency verwendet
werden
CurrencyRounding
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 Zend_Currency
verwendet werden
CurrencyToRegion
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 Zend_Currency verwendet
werden
RegionToCurrency
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
Zend_Currency
verwendet werden
RegionToTerritory
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
TerritoryToRegion
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
ScriptToLanguage
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
LanguageToScript
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
TerritoryToLanguage
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
LanguageToTerritory
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
TimezoneToWindows
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
WindowsToTimezone
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
TerritoryToTimezone
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
TimezoneToTerritory
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
CityToTimezone
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
TimezoneToCity
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
PhoneToTerritory
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
TerritoryToPhone
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
NumericToTerritory
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
TerritoryToNumeric
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
Alpha3ToTerritory
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
TerritoryToAlpha3
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
Wenn nur ein einzelner übersetzter Wert benötigt wird, kann die
getTranslation() Methode verwendet werden. Diese gibt immer einen String
zurück, akzeptiert aber einige andere Typen als die getTranslationList()
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
Weil immer ein Wert als Detail angegeben werden muß, muss dieser Parameter als
erster Parameter angegeben werden. Das unterscheidet sich von der
getTranslationList() Methode.
Siehe die folgende Tabelle für detailierte Informationen:
Details für getTranslation($value = null, $type = null, $locale = null)TypBeschreibungLanguage
Gibt eine Übersetzung für eine Sprache zurück. Um die gewünschte
Übersetzung auszuwählen muß der Sprachcode als Wert angegeben werden.
Der Einfachheit halber kann auch die
getLanguageTranslation($value) Methode verwendet werden
Script
Gibt eine Übersetzung für eine Schrift zurück. Um die gewünschte
Übersetzung auszuwählen muß der Schriftcode als Wert angegeben werden.
Der Einfachheit halber kann auch die
getScriptTranslation($value) Methode verwendet werden
Territory oder Country
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. Der Einfachheit halber
kann auch die getCountryTranslation($value) Methode
verwendet werden
Variant
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
Key
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
DateChars
Gibt eine Zeichentabelle zurück welche alle Zeichen enthält wenn Daten
angezeigt werden sollen
DefaultCalendar
Gibt den Standardkalender für das angegebene Gebietsschema zurück. Für
die meisten wird das 'gregorian' (gregorianisch) sein. Der Einfachheit
halber sollte Zend_Date
verwendet werden
MonthContext
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
Zend_Date verwendet werden
DefaultMonth
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 Zend_Date verwendet
werden
Month
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: array('calendar',
'context', 'format', 'month number'). Wenn nur ein Ganzzahlwert
angegeben wird, sind die Standardwerte der 'gregorian' (Gregorianische)
Kalender, der Kontext 'format' und das Format 'wide'. Der Einfachheit
halber sollte Zend_Date
verwendet werden
DayContext
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
Zend_Date verwendet werden
DefaultDay
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 Zend_Date verwendet
werden
Day
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:
array('calendar', 'context', 'format', 'day abbreviation').
Wenn nur ein String angegeben wird, sind die Standardwerte der
'gregorian' (Gregorianische) Kalender, der Kontext 'format' und das
Format 'wide'. Der Einfachheit halber sollte Zend_Date verwendet werden
Quarter
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:
array('calendar', 'context', 'format', 'quarter number').
Wenn nur ein String angegeben wird, sind die Standardwerte der
'gregorian' (Gregorianische) Kalender, der Kontext 'format' und das
Format 'wide'
Am
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 Zend_Date verwendet werden
Pm
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 Zend_Date verwendet werden
Era
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: array('calendar', 'format',
'era number'). Wenn nur ein String angegeben wird, sind die
Standardwerte der 'gregorian' (Gregorianische) Kalender und das Format
'abbr'
DefaultDate
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 Zend_Date verwendet
werden
Date
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ß:
array('calendar', 'format'). Der Einfachheit halber sollte
Zend_Date verwendet werden
DefaultTime
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 Zend_Date verwendet
werden
Time
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ß:
array('calendar', 'format'). Der Einfachheit halber sollte
Zend_Date verwendet werden
DateTime
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 Zend_Date verwendet werden
Field
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: array('calendar', 'date field')Relative
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: array('calendar', 'date field')DecimalNumber
Gibt das Format für Dezimalzahlen in einem angegebenen Gebietsschema
zurück. Der Einfachheit halber sollte Zend_Locale_Format verwendet
werden
ScientificNumber
Gibt das Format für Wissenschaftliche Zahlen im angegebenen
Gebietsschema zurück
PercentNumber
Gibt das Format für Prozentzahlen im angegebenen Gebietsschema zurück
CurrencyNumber
Gibt das Format für die Anzeige von Währungszahlen in einem angegebenen
Gebietsschema zurück. Der Einfachheit halber sollte
Zend_Currency
verwendet werden
NameToCurrency
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
Zend_Currency
verwendet werden
CurrencyToName
Gibt eine Währung für einen angegebenen lokalisierten Namen zurück. Der
Einfachheit halber sollte
Zend_Currency
verwendet werden
CurrencySymbol
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 Zend_Currency verwendet
werden
Question
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
Zend_Locale's getQuestion
Methode verwendet werden
CurrencyFraction
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 Zend_Currency
verwendet werden
CurrencyRounding
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 Zend_Currency verwendet
werden
CurrencyToRegion
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 Zend_Currency
verwendet werden
RegionToCurrency
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 Zend_Currency
verwendet werden
RegionToTerritory
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
TerritoryToRegion
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
ScriptToLanguage
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
LanguageToScript
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
TerritoryToLanguage
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
LanguageToTerritory
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
TimezoneToWindows
Gibt eine ISO Zeitzone für eine angegebene Windows Zeitzone zurück
WindowsToTimezone
Gibt eine Windows Zeitzone für eine angegebene ISO Zeitzone zurück
TerritoryToTimezoneGibt ein Territorium für eine angegebene ISO Zeitzone zurückTimezoneToTerritoryGibt die ISO Zeitzone für ein angegebenes Territorium zurückCityToTimezone
Gibt eine lokalisierte Stadt für eine angegebene ISO Zeitzone zurück.
Nicht für alle Zeitzonen existiert eine Übersetzung einer Stadt
TimezoneToCity
Gibt die ISO Zeitzone für einen angegebenen lokalisierten Namen einer
Stadt zurück. Nicht für alle Städte existiert eine Zeitzone
PhoneToTerritoryGibt 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 ÖsterreichTerritoryToPhone
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
NumericToTerritory
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
TerritoryToNumeric
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'
Alpha3ToTerritory
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
TerritoryToAlpha3
Gibt das Territorium (Region) für einen 3 stelligen Zeichencode zurück
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:
Unterschiede zwischen ZF 1.0 und ZF 1.5Alter TypNeuer TypCountryTerritory (mit dem Wert '2')CalendarType (mit dem Wert 'calendar')Month_ShortMonth (mit dem Array('gregorian', 'format', 'abbreviated')Month_NarrowMonth (mit dem Array('gregorian', 'stand-alone', 'narrow')Month_CompleteMonthsDay_ShortDay (mit dem Array('gregorian', 'format', 'abbreviated')Day_NarrowDay (mit dem Array('gregorian', 'stand-alone', 'narrow')DateFormatDateTimeFormatTimeTimezonesCityToTimezoneCurrencyNameToCurrencyCurrency_SignCurrencySymbolCurrency_DetailCurrencyToRegionTerritory_DetailTerritoryToRegionLanguage_DetailLanguageToTerritory
Das folgende Beispiel zeigt wie man die Namen für Dinge in verschiedenen Sprachen
erhalten kann.
getTranslationList
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.
Konvertierung des Ländernamens von einer Sprache in eine andere SprachegetLanguageTranslationList();
$name2code = array_flip($code2name);
$frenchCode = $name2code['French'];
echo $locale->getLanguageTranslation($frenchCode, 'es');
// Ausgegeben wird der Spanische Name der Fransösischen Sprache
]]>
Um von Zend_Locale 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
getCountryTranslationList() und getCountryTranslation()
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 try ..
catch 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.
Alle Sprachen geschrieben in Ihrer Muttersprache $content) {
try {
$output = Zend_Locale::getLanguageTranslation($language, $language);
if (is_string($output)) {
print "\n [".$language."] ".$output;
}
} catch (Exception $e) {
continue;
}
}
]]>Übersetzungen für "Ja" und "Nein" erhalten
Oft müssen Programme eine "Ja" oder "Nein" Rückmeldung eines Benutzers erkennen.
getQuestion() 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:
yes und no: Eine generelle Stringrepräsentation für Ja und Nein
Antworten. Es enthält die erste und generellste Antwort von yesarray und
noarray.
yesarray und noarray: 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.
yesexpr und noexpr: Ein ersteller Regex String des es
erlaubt Benutzerantworten zu behandeln und nach Ja und Nein zu suchen.
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:
getQuestion()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]
)
]]>Eine Liste aller bekannten Gebietsschemata erhalten
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 getLocaleList() Methode
verwender werden, welche eine Liste aller bekannten Gebietsschemata zurückgibt.
getLocaleList()
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.
Erkennen von Gebietsschemata
Wenn man erkennen will ob eine vorhandene Eingabe. unabhängig von Ihrer Quelle, ein
Gebietsschema ist, sollte man die statische isLocale() Methode verwenden.
Der erste Parameter dieser Methode ist der String den man prüfen will.
Einfache Erkennung des Gebietsschemas
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 setlocale() vorhanden ist.
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 'RU' nicht für die Sprache
'to', aber es wird trotzdem true zurückgegeben da
Zend_Locale mit der vorhandenen Eingabe arbeiten kann.
Trotzdem ist es manchmal nützlich diese automatische Degradierung zu verhindern, und
hier kommt der zweite Parameter von isLocale() zu Tragen. Der
strict Parameter ist Standardmäßig false und kann verwendet
werden um die automatische Degradierung zu verhindern wenn er auf true
gesetzt wird.
Strikte Erkennung des Gebietsschemas
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:
Implementierung von Gebietsschema bezogenem VerhaltentoString();
}
]]>
Mit Zend Framework 1.8 haben wir die statische findLocale() Methode
hinzugefügt welche einen Gebietsschema-String zurückgibt mit dem man arbeiten kann. Sie
führt die folgenden Arbeiten durch:
Erkennt ob ein angegebener String ein Gebietsschema ist
Degradiert das Gebietsschema wenn es in der angegebenen Region nicht existiert
Gibt das vorher gesetzte Anwendungsweite Gebietsscheam zurück wenn keine Eingabe
angegeben wurde
Erkennt das Gebietsschema vom Browser wenn die vorherigen Erkennungen
fehlgeschlagen sind
Erkennt das Gebietsschema vom Betriebssystem wenn die vorherigen Erkennungen
fehlgeschlagen sind
Erkennt das Gebietsschema vom Framework wenn die vorherigen Erkennungen
fehlgeschlagen sind
Gibt immer einen String zurück der das gefundene Gebietsschema repräsentiert
Das folgende Beispiel zeigt wie diese Prüfungen und der obige Code mti einem einfachen
Aufruf vereinfacht werden kann:
Gebietsschema bezogenes Verhalten mit ZF 1.8