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)TypBeschreibungLanguageGibt 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 werdenScriptGibt 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 werdenTerritoryGibt 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 beidemVariantGibt eine lokalisierte Liste von bekannten Varianten von Schriften zurück.
Die Variante wird als Schlüssel und die Übersetzung als Wert zurückgegebenKeyGibt 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ückgegebenTypeGibt 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ückgegebenLayoutGibt eine Liste von Regeln zurück die beschreiben wie spezielle
Textabschnitte formatiert werdenCharactersGibt eine Liste von in diesem Gebietsschema erlaubten Zeichen zurückDelimitersGibt eine Liste von in diesem Gebietsschema erlaubten Anführungszeichen
zurückMeasurementGibt eine Liste von bekannten Bemessungswerten zurück. Diese Liste sollte
nicht mehr verwendet werdenMonthsGibt 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 werdenMonthGibt 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
werdenDaysGibt 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 werdenDayGibt 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
werdenWeekGibt eine Liste von Werten für die korrekte Berechnung der Woche in einem
Gebietsschema zurück. Der Einfachheit halber sollte
Zend_Date verwendet werdenQuartersGibt 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 erhaltenQuarterGibt 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 sollErasGibt 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
erhaltenEraGibt 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 sollDateGibt 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 werdenTimeGibt 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 werdenDateTimeGibt 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 werdenFieldGibt 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 wirdRelativeGibt 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 wirdSymbolsGibt eine lokalisierte Liste von Zeichen zurück die in Repräsentationen von
Zahlen verwendet wirdNameToCurrencyGibt 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
CurrencyToNameGibt 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
CurrencySymbolGibt 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 werdenQuestionGibt 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 werdenCurrencyFractionGibt 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
CurrencyRoundingGibt 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 werdenCurrencyToRegionGibt 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
werdenRegionToCurrencyGibt 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
RegionToTerritoryGibt 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 getrenntTerritoryToRegionGibt 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 getrenntScriptToLanguageGibt 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 getrenntLanguageToScriptGibt 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 getrenntTerritoryToLanguageGibt 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 getrenntLanguageToTerritoryGibt 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 getrenntTimezoneToWindowsGibt 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ückgegebenWindowsToTimezoneGibt 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ückgegebenTerritoryToTimezoneGibt 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ückgegebenTimezoneToTerritoryGibt 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ückgegebenCityToTimezoneGibt 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ückgegebenTimezoneToCityGibt 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ückgegebenPhoneToTerritoryGibt 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 verwendetTerritoryToPhoneGibt 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 getrenntNumericToTerritoryGibt 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 verwendetTerritoryToNumericGibt 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 verwendetAlpha3ToTerritoryGibt 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 verwendetTerritoryToAlpha3Gibt 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)TypBeschreibungLanguageGibt 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
ScriptGibt 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
CountryGibt 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 werdenVariantGibt eine Übersetzung für eine Schriftvariante zurück. Um die gewünschte Variante
auszuwählen muß der Code der Variante als Wert angegeben werdenKeyGibt 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 werdenDateCharsGibt eine Zeichentabelle zurück welche alle Zeichen enthält wenn Daten
angezeigt werden sollenDefaultCalendarGibt 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 werdenMonthContextGibt 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 werdenDefaultMonthGibt 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 werdenMonthGibt 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 werdenDayContextGibt 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 werdenDefaultDayGibt 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 werdenDayGibt 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 werdenQuarterGibt 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'AmGibt 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 werdenPmGibt 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 werdenEraGibt 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'DefaultDateGibt 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 werdenDateGibt 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
werdenDefaultTimeGibt 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 werdenTimeGibt 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
werdenDateTimeGibt 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 werdenFieldGibt 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')RelativeGibt 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')DecimalNumberGibt das Format für Dezimalzahlen in einem angegebenen Gebietsschema zurück. Der
Einfachheit halber sollte
Zend_Locale_Format verwendet werden
ScientificNumberGibt das Format für Wissenschaftliche Zahlen im angegebenen Gebietsschema
zurückPercentNumberGibt das Format für Prozentzahlen im angegebenen Gebietsschema zurückCurrencyNumberGibt das Format für die Anzeige von Währungszahlen in einem angegebenen
Gebietsschema zurück. Der Einfachheit halber sollte
Zend_Currency verwendet werden
NameToCurrencyGibt 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
CurrencyToNameGibt eine Währung für einen angegebenen lokalisierten Namen zurück. Der
Einfachheit halber sollte
Zend_Currency verwendet werden
CurrencySymbolGibt 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
QuestionGibt 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 werdenCurrencyFractionGibt 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
CurrencyRoundingGibt 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
CurrencyToRegionGibt 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 werdenRegionToCurrencyGibt 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
RegionToTerritoryGibt 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 getrenntTerritoryToRegionGibt 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 getrenntScriptToLanguageGibt 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 getrenntLanguageToScriptGibt 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 getrenntTerritoryToLanguageGibt 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 getrenntLanguageToTerritoryGibt 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 getrenntTimezoneToWindowsGibt eine ISO Zeitzone für eine angegebene Windows Zeitzone zurückWindowsToTimezoneGibt eine Windows Zeitzone für eine angegebene ISO Zeitzone zurückTerritoryToTimezoneGibt ein Territorium für eine angegebene ISO Zeitzone zurückTimezoneToTerritoryGibt die ISO Zeitzone für ein angegebenes Territorium zurückCityToTimezoneGibt eine lokalisierte Stadt für eine angegebene ISO Zeitzone zurück. Nicht für
alle Zeitzonen existiert eine Übersetzung einer StadtTimezoneToCityGibt die ISO Zeitzone für einen angegebenen lokalisierten Namen einer Stadt
zurück. Nicht für alle Städte existiert eine ZeitzonePhoneToTerritoryGibt 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 ÖsterreichTerritoryToPhoneGibt 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 getrenntNumericToTerritoryGibt 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 ÖsterreichTerritoryToNumericGibt as Territorium (Region) für einen 3 stelligen Nummerncode zurück. Der 3
stellige Nummerncode muß als reine Integerzahl angegeben werden, zum Beispiel '43'
Alpha3ToTerritoryGibt 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 ÖsterreichTerritoryToAlpha3´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