| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15666 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.locale.migration">
- <title>Migrieren von vorhergehenden Versionen</title>
- <para>
- Die API von <classname>Zend_Locale</classname> wurde von Zeit zu Zeit verändert. Wenn man
- begonnen hat <classname>Zend_Locale</classname> 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.
- </para>
- <sect2 id="zend.locale.migration.fromoneeighttoonenine">
- <title>Migrieren von 1.8 zu 1.9 oder neueren</title>
- <sect3 id="zend.locale.migration.fromoneeighttoonenine.depreciated">
- <title>Abgelaufene Methoden</title>
- <para>
- 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.
- </para>
- <table id="zend.locale.migration.fromoneeighttoonenine.depreciated.table-1">
- <title>List der Methodenaufrufe</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Alter Aufruf</entry>
- <entry>Neuer Aufruf</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>getLanguageTranslationList($locale)</entry>
- <entry>getTranslationList('language', $locale)</entry>
- </row>
- <row>
- <entry>getScriptTranslationList($locale)</entry>
- <entry>getTranslationList('script', $locale)</entry>
- </row>
- <row>
- <entry>getCountryTranslationList($locale)</entry>
- <entry>getTranslationList('territory', $locale, 2)</entry>
- </row>
- <row>
- <entry>getTerritoryTranslationList($locale)</entry>
- <entry>getTranslationList('territory', $locale, 1)</entry>
- </row>
- <row>
- <entry>getLanguageTranslation($value, $locale)</entry>
- <entry>getTranslation($value, 'language', $locale)</entry>
- </row>
- <row>
- <entry>getScriptTranslation($value, $locale)</entry>
- <entry>getTranslation($value, 'script', $locale)</entry>
- </row>
- <row>
- <entry>getCountryTranslation($value, $locale)</entry>
- <entry>getTranslation($value, 'country', $locale)</entry>
- </row>
- <row>
- <entry>getTerritoryTranslation($value, $locale)</entry>
- <entry>getTranslation($value, 'territory', $locale)</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect3>
- </sect2>
- <sect2 id="zend.locale.migration.fromonesixtooneseven">
- <title>Migrieren von 1.6 oder 1.7 zu neueren</title>
- <sect3 id="zend.locale.migration.fromonesixtooneseven.islocale">
- <title>Änderungen bei der Verwendung von isLocale()</title>
- <para>
- 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.
- </para>
- <para>
- Um die Skripte auf die neue API zu migrieren muß die Methode einfach wie anbei
- gezeigt verwendet werden.
- </para>
- <example id="zend.locale.migration.fromonesixtooneseven.example">
- <title>Wie man isLocale() von 1.6 nach 1.7 ändern muß</title>
- <programlisting language="php"><![CDATA[
- // Beispiel für 1.6
- if ($locale = Zend_Locale::isLocale($locale)) {
- // mach was
- }
- // Selbes Beispiel für 1.7
- // Man sollte den Kompatibilitätsmodus ändern um User Warnings zu verhindern
- // Aber man kann das in der Bootstrap tun
- Zend_Locale::$compatibilityMode = false;
- if (Zend_Locale::isLocale($locale)) {
- }
- ]]></programlisting>
- <para>
- 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.
- </para>
- <programlisting language="php"><![CDATA[
- // Beispiel für 1.6
- if ($locale = Zend_Locale::isLocale($locale, false)) {
- // mach was
- }
- // Selbes Beispiel für 1.7
- // Man sollte den Kompatibilitätsmodus ändern um User Warnings zu verhindern
- // Aber man kann das in der Bootstrap tun
- Zend_Locale::$compatibilityMode = false;
- if (Zend_Locale::isLocale($locale, false)) {
- if (Zend_Locale::isLocale($locale, true)) {
- // gar kein Gebietsschema
- }
- // Original String ist kein Gebietsschema, kann aber Reroutet werden
- }
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.locale.migration.fromonesixtooneseven.getdefault">
- <title>Änderungen bei der Verwendung von getDefault()</title>
- <para>
- 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.
- </para>
- <para>
- Um die eigenen Skripte auf die neue API zu migrieren, muß einfach die Methode wie
- unten gezeigt verwendet werden.
- </para>
- <example id="zend.locale.migration.fromonesixtooneseven.getdefault.example">
- <title>Wie man getDefault() von 1.6 auf 1.7 ändert</title>
- <programlisting language="php"><![CDATA[
- // Beispiel für 1.6
- $locales = $locale->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);
- ]]></programlisting>
- <para>
- Es ist zu beachten das der zweite Parameter der alten getDefault()
- Implementation nicht mehr vorhanden ist, aber die zurückgegebenen Werte die
- gleichen sind.
- </para>
- </example>
- <note>
- <para>
- 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.
- </para>
- </note>
- </sect3>
- </sect2>
- </sect1>
|