Previous Next

Zend_Locale verwenden

Zend_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().

Beispiel #1 Klonen

$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;

Gleichheit

Zend_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.

Beispiel #2 Prüfung auf gleiche Gebietsschemata

$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";
}

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 Zend Framework 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, oder FRAMEWORK). Der zweite Parameter wechselt zwischen der Rückgabe aller gefundenen Gebietsschemata oder nur dem ersten oder besten Gebietsschema. Lokalisierbare Komponenten benutzen normalerweise nur das erste Gebietsschema. Wenn vorhanden, wird eine Bewertung der Qualität mit angegeben.

Beispiel #3 Das Standard Gebietsschema erhalten

$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);

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.

Beispiel #4 setLocale

$locale = new Zend_Locale();

// Aktuelles Gebietsschema
print $locale->toString();

// neues Gebietsschema
$locale->setLocale('aa_DJ');
print $locale->toString();

Auslesen von Sprache und Region

getLanguage() 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.

Beispiel #5 getLanguage and getRegion

$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();

Ein Gebietsschema durch die Angabe eines Territoriums erhalten

Wenn man nur ein Territorium oder ein Land hat, dann ist es auch möglich aus diesen Informationen ein Gebietsschema zu erhalten. Man kann manuell suchen ob es ein Gebietsschema für dieses Territorium gibt, indem man getLocaleToTerritory() verwendet. Diese Methode gibt ein Gebietsschema für das angegebene Territorium zurück, oder NULL wenn kein Gebietsschema gefunden werden konnte.

Beispiel #6 getLocaleToTerritory

$locale = Zend_Locale::getLocaleToTerritory('US');
// Gibt 'en_US' zurück

Hinweis: Großgeschriebene Territorien

Wenn man weiß dass man ein Territorium verwendet dann sollte es großgeschrieben werden. Andernfalls könnte man der Meinung sein ein falsches Gebietsschema zu erhalten wenn man andere Methoden verwendet. Beispiel: Wenn man "om" angibt, dann gibt getLocaleToTerritory() "ar_OM" zurück da es weiß dass man ein Territorium meint. Aber alle anderen Methoden werden "om" zurückgeben da dies auch eine Sprache ist.

Wenn man also weiß dass ein angegebener String ein Territorium ist, dann sollte man entweder getLocaleToTerritory() selbst verwenden bevor man ein Gebietsschema erstellt, oder die Eingabe groß schreiben.

Lokalisierte Zeichenketten beschaffen

getTranslationList() 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.

Beispiel #7 getTranslationList

$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

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)
Typ Beschreibung
Language Gibt eine lokalisierte Liste aller Sprachen zurück. Der Sprach-Teil des Gebietsschemas wird als Schlüssel und die Übersetzung als Wert zurückgegeben
Script Gibt eine lokalisierte Liste aller Schriften zurück. Die Schrift wird als Schlüssel die Übersetzung als Wert zurückgegeben
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. 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
DateItem Gibt eine Liste von Standardformaten für gegebene Datums oder Zeit Einheiten zurück
DateInterval 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.
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 Sprachen zurück und die Länder in welche Sie gesprochen werden. Das Land 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 zurück mit den Sprachen welche in Ihnen gesprochen werden. Der Ländercode wird als Arrayschlüssel und der Sprachcode wird als Arraywert zurückgegeben. Wenn verschiedene Sprachen in einem Land gesprochen werden dann 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
PostalToTerritory 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.
NumberingSystem Gibt eine Liste von Skripten zurück mit die Schreibweise der Ziffern, die in diesem Skript verwendet werden
FallbackToChar Gibt eine Liste von Ersatzzeichen für oft verwendete Unicode Zeichen zurück. Das kann verwendet werden um zum Beispiel "©" mit "(C)" zu ersetzen
CharToFallback Gibt eine Liste von Unicode Zeichen für oft verwendete Ersatzzeichen zurück. Das kann verwendet werden um zum Beispiel "(C)" mit "©" zu ersetzen
LocaleUpgrade Gibt eine Liste von Abhängigkeiten von Gebietsschemata zurück die verwendet werden kann um eine Sprache in ein voll qualifiziertes Gebietsschema hochzurüsten.
Unit 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

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

Hinweis:

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)
Typ Beschreibung
Language Gibt eine Übersetzung für eine Sprache zurück. Um die gewünschte Übersetzung auszuwählen muß der Sprachcode als Wert angegeben 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
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
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
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
DateItem Gibt das Standardformat für ein angegebenes Datum oder Zeitelement zurück
DateInterval 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.
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 das Territorium zurück in dem die angegebene Sprache verwendet wird. Die Sprache muß als ISO Sprachcode angegeben werden zum Beispiel 'en' für englisch. Wenn die angegebene Sprache in mehreren Territorien verwendet wird, dann werden diese Sprachen mit einem Leerzeichen getrennt
LanguageToTerritory Gibt die Sprachen zurück die in dem angegebenen Territorium gesprochen werden. Das Territorium muß als ISO3166 Code angegeben werden zum Beispiel 'IT' für italienisch. Wenn im angegebenen Territorium mehrere Sprachen gesprochen werden, 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
TerritoryToTimezone Gibt ein Territorium für eine angegebene ISO Zeitzone zurück
TimezoneToTerritory Gibt die ISO Zeitzone für ein angegebenes Territorium zurück
CityToTimezone 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
PhoneToTerritory 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
TerritoryToPhone 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
PostalToTerritory 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
NumberingSystem Gibt ein Skript mit der Schreibweise der Ziffern zurück, die in diesem Skript verwendet werden
FallbackToChar Gibt ein Ersatzzeichen für ein oft verwendetes Unicode Zeichen zurück. Das kann verwendet werden um zum Beispiel "©" mit "(C)" zu ersetzen
CharToFallback Gibt ein Unicode Zeichen für ein oft verwendetes Ersatzzeichen zurück. Das kann verwendet werden um zum Beispiel "(C)" mit "©" zu ersetzen
LocaleUpgrade Gibt die Abhängigkeit eines Gebietsschemas zurück die verwendet werden kann um eine Sprache in ein voll qualifiziertes Gebietsschema hochzurüsten.
Unit 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

Hinweis:

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 Zend Framework 1.0 und 1.5
Alter Typ Neuer Typ
Country Territory (mit dem Wert '2')
Calendar Type (mit dem Wert 'calendar')
Month_Short Month (mit dem Array('gregorian', 'format', 'abbreviated')
Month_Narrow Month (mit dem Array('gregorian', 'stand-alone', 'narrow')
Month_Complete Months
Day_Short Day (mit dem Array('gregorian', 'format', 'abbreviated')
Day_Narrow Day (mit dem Array('gregorian', 'stand-alone', 'narrow')
DateFormat Date
TimeFormat Time
Timezones CityToTimezone
Currency NameToCurrency
Currency_Sign CurrencySymbol
Currency_Detail CurrencyToRegion
Territory_Detail TerritoryToRegion
Language_Detail LanguageToTerritory

Das folgende Beispiel zeigt wie man die Namen für Dinge in verschiedenen Sprachen erhalten kann.

Beispiel #8 getTranslationList

$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'));

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.

Beispiel #9 Konvertierung des Ländernamens von einer Sprache in eine andere Sprache

$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

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.

Beispiel #10 Alle Sprachen geschrieben in Ihrer Muttersprache

$list = Zend_Locale::getLanguageTranslationList('auto');

foreach($list as $language => $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:

Beispiel #11 getQuestion()

$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]
)

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.

Beispiel #12 getLocaleList()

$localelist = Zend_Locale::getLocaleList();

Hinweis:

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.

Beispiel #13 Einfache Erkennung des Gebietsschemas

$input = 'to_RU';
if (Zend_Locale::isLocale($input)) {
    print "'{$input}' ist ein Gebietsschema";
} else {
    print "Sorry... die vorhandene Eingabe ist kein Gebietsschema";
}

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.

Beispiel #14 Strikte Erkennung des Gebietsschemas

$input = 'to_RU';
if (Zend_Locale::isLocale($input, true)) {
    print "'{$input}' ist ein Gebietsschema";
} else {
    print "Sorry... die vorhandene Eingabe ist kein Gebietsschema";
}

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 dass das immer zu den gleichen 15 Zeilen Code führt. Etwas ähnliches wie das folgende Beispiel:

Beispiel #15 Implementierung von Gebietsschema bezogenem Verhalten

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();
}

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

  • Erweitert das Gebietsschema wenn dieses als Region ohne Sprache erkannt wurde

  • 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:

Beispiel #16 Gebietsschema bezogenes Verhalten mit Zend Framework 1.8

$locale = Zend_Locale::findLocale($inputstring);
Previous Next
Einführung zum Zend Framework
Übersicht
Installation
Einstieg ins Zend Framework
Schnellstart in den Zend Framework
Zend Framework & MVC Einführung
Das Projekt erstellen
Ein Layout erstellen
Ein Modell und eine Datenbank Tabelle erstellen
Erstellen eines Formulars
Gratulation!
Autoloading im Zend Framework
Einführung
Ziele und Design
Grundsätzliche Verwendung von Autoloadern
Automatisches Laden von Ressourcen
Zusammenfassung
Plugins im Zend Framework
Einführung
Verwenden von Plugins
Fazit
Einstieg in Zend_Layout
Einführung
Zend_Layout verwenden
Zend_Layout: Fazit
Einstieg in Zend_View Platzhalter
Einführung
Grundsätzliche Verwendung von Platzhaltern
Standard Platzhalter
View Platzhalter: Fazit
Zend_Form's Gestalter (Decorator) verstehen und verwenden
Einführung
Decorator Grundlagen
Layeraufbau von Decorators
Darstellung individueller Decorators
Erstellung und Darstellung von kombinierten Elementen
Fazit
Einstieg in Zend_Session, Zend_Auth, und Zend_Acl
Erstellung von Multi-User Anwendungen mit Zend Framework
User Session im Zend Framework managen
Benutzer im Zend Framework authentifizieren
Erstellung eines Authorisations Systems in Zend Framework
Einstieg in Zend_Search_Lucene
Einführung in Zend_Search_Lucene
Lucene Index Struktur
Indezes öffnen und erstellen
Indizierung
Suchen
Unterstützte Abfragen
Seitendarstellung von Suchergebnissen
Einstieg in Zend_Paginator
Einführung
Einfaches Beispiel
Seitenkontrolle und ScrollingStyles
Alles zusammenfügen
Zend Framework's Referenz
Zend_Acl
Einführung
Verfeinern der Zugriffskontrolle
Fortgeschrittene Verwendung
Zend_Amf
Einführung
Zend_Amf_Server
Zend_Application
Einführung
Zend_Application Quick Start
Theorie der Funktionsweise
Beispiele
Kern Funktionalität
Vorhandene Ressource Plugins
Zend_Auth
Einführung
Datenbanktabellen Authentifizierung
Digest Authentication
HTTP Authentication Adapter
LDAP Authentifizierung
Open ID Authentifikation
Zend_Barcode
Einführung
Barcodes mit Hilfe der Zend_Barcode Klasse erstellen
Zend_Barcode Objekte
Zend_Barcode Renderer
Zend_Cache
Einführung
Die Theorie des Cachens
Zend_Cache Frontends
Zend_Cache Backends
Der Cache Manager
Zend_Captcha
Einführung
Captcha Anwendung
CAPTCHA Adapter
SimpleCloud API: Zend_Cloud
Document Service Introduction
Queue Service Introduction
StorageService Introduction
Zend_CodeGenerator
Einführung
Zend_CodeGenerator Beispiele
Zend_CodeGenerator Referenz
Zend_Config
Einleitung
Theory of Operation
Zend_Config_Ini
Zend_Config_Json
Zend_Config_Xml
Zend_Config_Yaml
Zend_Config_Writer
Zend_Config_Writer
Zend_Console_Getopt
Einführung
Definieren von Getopt Regeln
Holen von Optionen und Argumenten
Konfigurieren von Zend_Console_Getopt
Zend_Controller
Zend_Controller Schnellstart
Zend_Controller Grundlagen
Der Front Controller
Das Request Objekt
Der Standard Router
Der Dispatcher
Action Controller
Action Helfer
Das Response Objekt
Plugins
Eine konventionelle modulare Verzeichnis Struktur verwenden
MVC Ausnahmen
Zend_Currency
Einführung in Zend_Currency
Zend_Currency verwenden
Optionen für Währungen
Was macht eine Währung aus?
Wo ist die Währung?
Wie sieht die Währung aus?
Wie viel Währung habe ich?
Rechnen mit Währungen
Währungen wechseln
Zusätzliche Informationen für Zend_Currency
Zend_Date
Einführung
Theorie der Arbeitsweise
Basis Methoden
Zend_Date API Übersicht
Erstellen von Datumswerten
Konstanten für generelle Datums Funktionen
Funktionierende Beispiele
Zend_Db
Zend_Db_Adapter
Zend_Db_Statement
Zend_Db_Profiler
Zend_Db_Select
Zend_Db_Table
Zend_Db_Table_Row
Zend_Db_Table_Rowset
Zend_Db_Table Relationships
Zend_Db_Table_Definition
Zend_Debug
Variablen ausgeben
Zend_Dojo
Einführung
Zend_Dojo_Data: dojo.data Envelopes
Dojo View Helfer
Formular Elemente und Dekoratore für Dojo
Support für den Build Layer von Zend_Dojo
Zend_Dom
Einführung
Zend_Dom_Query
Zend_Exception
Verwenden von Ausnahmen
Grundsätzliche Verwendung
Vorherige Exceptions
Zend_Feed
Einführung
Feeds importieren
Feeds von Websites abrufen
Einen RSS Feed konsumieren
Einen Atom Feed konsumieren
Einen einzelnen Atom Eintrag konsumieren
Verändern der Feed- und Eintragsstruktur
Eigene Klassen für Feeds und Einträge
Zend_Feed_Reader
Zend_Feed_Writer
Zend_Feed_Pubsubhubbub
Zend_File
Zend_File_Transfer
Prüfungen für Zend_File_Transfer
Filter für Zend_File_Transfer
Zend_Filter
Einführung
Standard Filter Klassen
Filter Ketten
Filter schreiben
Zend_Filter_Input
Zend_Filter_Inflector
Zend_Form
Zend_Form
Schnellstart mit Zend_Form
Erstellen von Form Elementen mit Hilfe von Zend_Form_Element
Erstellen von Form durch Verwendung von Zend_Form
Erstellen von eigenem Form Markup durch Zend_Form_Decorator
Standard Form Elemente die mit dem Zend Framework ausgeliefert werden
Standard Formular Dekoratoren die mit dem Zend Framework ausgeliefert werden
Internationalisierung von Zend_Form
Fortgeschrittene Verwendung von Zend_Form
Zend_Gdata
Einführung
Authentifizierung mit AuthSub
Die Buchsuche Daten API verwenden
Authentifizieren mit ClientLogin
Google Kalender verwenden
Verwenden der Google Dokumente Listen Daten API
Verwenden von Google Health
Google Tabellenkalkulation verwenden
Google Apps Provisionierung verwenden
Google Base verwenden
Picasa Web Alben verwenden
Verwenden der YouTube Daten API
Gdata Ausnahmen auffangen
Zend_Http
Einführung
Zend_Http_Client - Fortgeschrittende Nutzung
Zend_Http_Client - Verbindungsadapter
Zend_Http_Cookie und Zend_Http_CookieJar
Zend_Http_Response
Zend_Http_UserAgent
The UserAgent Device Interface
The UserAgent Features Adapter
The WURFL UserAgent Features Adapter
The DeviceAtlas UserAgent Features Adapter
The TeraWurfl UserAgent Features Adapter
The UserAgent Storage Interface
The Session UserAgent Storage Adapter
Zend_InfoCard
Einführung
Zend_Json
Einführung
Grundlegende Verwendung
Fortgeschrittene Verwendung von Zend_Json
XML zu JSON Konvertierung
Zend_Json_Server - JSON-RPC Server
Zend_Layout
Einführung
Zend_Layout Schnellstart
Zend_Layout Konfigurations Optionen
Erweiterte Verwendung von Zend_Layout
Zend_Ldap
Einführung
API Übersicht
Szenarien der Verwendung
Tools
Objektorientierter Zugriff auf den LDAP Baum durch Verwendung von Zend_Ldap_Node
Informationen vom LDAP Server erhalten
Serialisieren von LDAP Daten von und zu LDIF
Zend_Loader
Dynamisches Laden von Dateien und Klassen
Der Autoloader
Ressource Autoloader
Plugins laden
Zend_Locale
Einführung
Zend_Locale verwenden
Normalisierung und Lokalisierung
Arbeiten mit Daten und Zeiten
Unterstützte Gebietsschemata
Zend_Log
Übersicht
Writer
Formatter
Filter
Die Factory verwenden um ein Log zu erstellen
Zend_Mail
Einführung
Versand über SMTP
Versand von mehreren E-Mails über eine SMTP Verbindung
Verwendung von unterschiedlichen Versandwegen
HTML E-Mail
Anhänge
Empfänger hinzufügen
Die MIME Abgrenzung kontrollieren
Zusätzliche Kopfzeilen
Zeichensätze
Kodierung
SMTP Authentifizierung
SMTP Übertragungen sichern
Lesen von Mail Nachrichten
Zend_Markup
Einführung
Beginnen mit Zend_Markup
Zend_Markup Parser
Zend_Markup Renderer
Zend_Measure
Einführung
Erstellung einer Maßeinheit
Ausgabe von Maßeinheiten
Manipulation von Maßeinheiten
Arten von Maßeinheiten
Zend_Memory
Übersicht
Memory Manager
Memory Objekte
Zend_Mime
Zend_Mime
Zend_Mime_Message
Zend_Mime_Part
Zend_Navigation
Einführung
Seiten
Container
Zend_Oauth
Einführung zu OAuth
Zend_OpenId
Einführung
Zend_OpenId_Consumer Grundlagen
Zend_OpenId_Provider
Zend_Paginator
Einführung
Verwendung
Konfiguration
Advanced usage
Zend_Pdf
Einführung
Erstellen und Laden von PDF Dokumenten
Änderungen an PDF Dokumenten speichern
Arbeiten mit Seiten
Zeichnen
Interaktive Features
Dokument Informationen und Metadaten
Anwendungsbeispiel für die Zend_Pdf Komponente
Zend_ProgressBar
Zend_ProgressBar
Zend_Queue
Einführung
Beispiel der Verwendung
Framework
Adapter
Anpassen von Zend_Queue
Stomp
Zend_Reflection
Einführung
Zend_Reflection Beispiele
Zend_Reflection Referenz
Zend_Registry
Die Registry verwenden
Zend_Rest
Einführung
Zend_Rest_Client
Zend_Rest_Server
Zend_Search_Lucene
Überblick
Indexerstellung
Einen Index durchsuchen
Abfragesprache
Abfrage Erzeugungs API
Zeichensätze
Erweiterbarkeit
Zusammenarbeit Mit Java Lucene
Erweitert
Die besten Anwendungen
Zend_Serializer
Einführung
Zend_Serializer_Adapter
Zend_Server
Einführung
Zend_Server_Reflection
Zend_Service
Einführung
Zend_Service_Akismet
Zend_Service_Amazon
Zend_Service_Amazon_Ec2
Zend_Service_Amazon_Ec2: Instanzen
Zend_Service_Amazon_Ec2: Windows Instanzen
Zend_Service_Amazon_Ec2: Reservierte Instanzen
Zend_Service_Amazon_Ec2: CloudWatch Monitoring
Zend_Service_Amazon_Ec2: Amazon Maschinen Images (AMI)
Zend_Service_Amazon_Ec2: Elastischer Block Speicher (EBS)
Zend_Service_Amazon_Ec2: Elastische IP Adressen
Zend_Service_Amazon_Ec2: Schlüsselpaare
Zend_Service_Amazon_Ec2: Regionen und Availability Zones
Zend_Service_Amazon_Ec2: Sicherheitsgruppen
Zend_Service_Amazon_S3
Zend_Service_Amazon_Sqs
Zend_Service_Audioscrobbler
Zend_Service_Delicious
Zend_Service_DeveloperGarden
Zend_Service_Ebay
Zend_Service_Ebay_Finding
Zend_Service_Flickr
Zend_Service_LiveDocx
Zend_Service_Nirvanix
Zend_Service_ReCaptcha
Zend_Service_ShortUrl
Zend_Service_Simpy
Zend_Service_SlideShare
Zend_Service_StrikeIron
Zend_Service_StrikeIron: Mitgelieferte Services
Zend_Service_StrikeIron: Erweiterte Verwendung
Zend_Service_Technorati
Zend_Service_Twitter
Zend_Service_WindowsAzure
Zend_Service_WindowsAzure_Storage_Blob
Zend_Service_WindowsAzure_Diagnostics_Manager
Zend_Service_WindowsAzure_Storage_Queue
Zend_Service_WindowsAzure_Storage_Table
Zend_Service_Yahoo
Zend_Session
Einführung
Grundsätzliche Verwendung
Fortgeschrittene Benutzung
Globales Session Management
Zend_Session_SaveHandler_DbTable
Zend_Soap
Zend_Soap_Server
Zend_Soap_Client
WSDL Zugriffsmethoden
AutoDiscovery
Zend_Tag
Einführung
Zend_Tag_Cloud
Zend_Test
Einführung
Zend_Test_PHPUnit
Zend_Test_PHPUnit_Db
Zend_Text
Zend_Text_Figlet
Zend_Text_Table
Zend_TimeSync
Einführung
Arbeiten mit Zend_TimeSync
Zend_Tool
Verwendung von Zend_Tool auf der Kommandozeile
Zend_Tool erweitern
Zend_Tool_Framework
Einführung
Verwenden des CLI Tools
Architektur
Erstellen von Providern für die Verwendung mit Zend_Tool_Framework
Mitgelieferte System Provider
Extending and Configuring Zend_Tool_Framework
Zend_Tool_Project
Einführung
Ein Projekt erstellen
Project Provider für Zend_Tool
Zend_Tool_Project Internas
Zend_Translate
Einführung
Adapter für Zend_Translate
Verwendung der Übersetzungsadapter
Erstellen von Quelldateien
Zusätzliche Features für Übersetzungen
Schreibweisen von Pluralformen für Übersetzungen
Zend_Uri
Zend_Uri
Zend_Validate
Einführung
Standard Prüfklassen
Kettenprüfungen
Schreiben von Prüfern
Prüfungsmeldungen
Zend_Version
Die Version des Zend Frameworks erhalten
Zend_View
Einführung
Controller Skripte
View Scripte
View Helfer
Zend_View_Abstract
Zend_Wildfire
Zend_Wildfire
Zend_XmlRpc
Einführung
Zend_XmlRpc_Client
Zend_XmlRpc_Server
ZendX_Console_Process_Unix
ZendX_Console_Process_Unix
ZendX_JQuery
Introduction
ZendX_JQuery View Helpers
ZendX_JQuery Form Elements and Decorators
Zend Framework Voraussetzungen
Einführung
Zend Framework's Migrationshinweise
Zend Framework 1.10
Zend Framework 1.9
Zend Framework 1.8
Zend Framework 1.7
Zend Framework 1.6
Zend Framework 1.5
Zend Framework 1.0
Zend Framework 0.9
Zend Framework 0.8
Zend Framework 0.6
Zend Framework Coding Standard für PHP
Übersicht
PHP Dateiformatierung
Namens Konventionen
Code Stil
Zend Framework Dokumentations Standard
Übersicht
Formatierung von Dokumentationsdateien
Empfehlungen
Vorgeschlagene Struktur für die Projekt Struktur von Zend Framework MVC Anwendungen
Übersicht
Vorgeschlagene Verzeichnis Struktur für Projekte
Modul Struktur
Leitfaden für die Rewrite Konfiguration
Zend Framework's Performanceratgeber
Einführung
Laden von Klassen
Zend_Db Performance
Internationalisierung (I18n) und Lokalisierung (L10n)
Darstellen der View
Urheberrecht Informationen