Migrieren von vorhergehenden Versionen
Die API von Zend_Locale wurde von Zeit zu Zeit verändert. Wenn man
begonnen hat Zend_Locale und seine Unterkomponenten in früheren
Versionen dann sollte man den unteren Richtlinien folgen um die Skripte so zu migrieren das
sie die neue API verwenden.
Migrieren von 1.8 zu 1.9 oder neueren
Abgelaufene Methoden
Einige spezialisiertere Übersetzungsmethoden stehen nicht mehr zur Verfügung weil
Sie bestehende Verhaltensweisen duplizieren. Beachten Sie das die alten Methoden
weiterhin funktionieren, aber eine Benutzer Notiz geworfen wird, die den neuen
Aufruf beschreibt. Diese Methoden werden mit 2.0 entfernt. Die folgende Liste zeigt
die alten und neuen Methodenaufrufe.
List der Methodenaufrufe
Alter Aufruf
Neuer Aufruf
getLanguageTranslationList($locale)
getTranslationList('language', $locale)
getScriptTranslationList($locale)
getTranslationList('script', $locale)
getCountryTranslationList($locale)
getTranslationList('territory', $locale, 2)
getTerritoryTranslationList($locale)
getTranslationList('territory', $locale, 1)
getLanguageTranslation($value, $locale)
getTranslation($value, 'language', $locale)
getScriptTranslation($value, $locale)
getTranslation($value, 'script', $locale)
getCountryTranslation($value, $locale)
getTranslation($value, 'country', $locale)
getTerritoryTranslation($value, $locale)
getTranslation($value, 'territory', $locale)
Migrieren von 1.6 oder 1.7 zu neueren
Änderungen bei der Verwendung von isLocale()
Bezugnehmend auf den Codingstandard mußte isLocale() so geändert werden das es ein
Boolean zurückgibt. In vorhergehenden Releases wurde im Erfolgsfall ein String
zurückgegeben. Für das Release 1.7 wurde ein Kompatibilitätsmodus hinzugefügt der es
erlaubt das alte Verhalten, das ein String zurückgegeben wird, zu verwenden, aber
das triggert auch eine User Warning die darauf hinweist das man auf das neue
Verhalten wechseln sollte. Das Rerouting welches das alte Verhalten von isLocale()
durchgeführt hätte ist nicht länger notwendig, da alle I18N Komponenten jetzt das
Rerouting selbst durchführen.
Um die Skripte auf die neue API zu migrieren muß die Methode einfach wie anbei
gezeigt verwendet werden.
Wie man isLocale() von 1.6 nach 1.7 ändern muß
Es ist zu beachten das man den zweiten Parameter verwendet kann um zu sehen ob
das Gebietsschema richtig ist ohne das ein Rerouting durchgeführt wird.
Änderungen bei der Verwendung von getDefault()
Die Bedeutung der getDefault() Methode wurde verändert durch den Fakt das
Framework-weite Gebietsschemata integriert wurden welche mit setDefault() gesetzt
werden können. Deswegen gibe es nicht mehr die Kette der Gebietsschemata zurück
sondern nur die gesetzten Framework-weiten Gebietsschemata.
Um die eigenen Skripte auf die neue API zu migrieren, muß einfach die Methode wie
unten gezeigt verwendet werden.
Wie man getDefault() von 1.6 auf 1.7 ändert
getDefault(Zend_Locale::BROWSER);
// Selbes Beispiel für 1.7
// Man sollte den Compatibility Mode setzen um User Notices zu verhindern
// Das kann in der Bootstrap Datei getan werden
Zend_Locale::$compatibilityMode = false;
$locale = Zend_Locale::getOrder(Zend_Locale::BROWSER);
]]>
Es ist zu beachten das der zweite Parameter der alten getDefault()
Implementation nicht mehr vorhanden ist, aber die zurückgegebenen Werte die
gleichen sind.
Standardmäßig ist das alte Verhalten noch immer aktiv, wirft aber eine User
Notice. Wenn man den eigenen Code zum neuen Verhalten geändert hat sollte man
auch den Compatibility Mode auf false setzen damit keine Notices mehr geworfen
werden.