فهرست منبع

[MANUAL] German:

- fixed mispelling

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@18782 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 سال پیش
والد
کامیت
6f69bc574f
23فایلهای تغییر یافته به همراه1856 افزوده شده و 2248 حذف شده
  1. 14 10
      documentation/manual/de/manual.xml.in
  2. 0 775
      documentation/manual/de/module_specs/Zend_Controller-Migration.xml
  3. 0 115
      documentation/manual/de/module_specs/Zend_Currency-Migrating.xml
  4. 0 27
      documentation/manual/de/module_specs/Zend_Filter-Migration.xml
  5. 0 119
      documentation/manual/de/module_specs/Zend_Http_Client-Migration.xml
  6. 0 227
      documentation/manual/de/module_specs/Zend_Locale-Migration.xml
  7. 0 102
      documentation/manual/de/module_specs/Zend_Navigation-Migration.xml
  8. 0 79
      documentation/manual/de/module_specs/Zend_Translate-Migration.xml
  9. 0 625
      documentation/manual/de/module_specs/Zend_Validate-Messages.xml
  10. 0 62
      documentation/manual/de/module_specs/Zend_View-Migration.xml
  11. 265 0
      documentation/manual/de/ref/migration-06.xml
  12. 101 0
      documentation/manual/de/ref/migration-08.xml
  13. 54 0
      documentation/manual/de/ref/migration-09.xml
  14. 295 0
      documentation/manual/de/ref/migration-10.xml
  15. 240 0
      documentation/manual/de/ref/migration-110.xml
  16. 134 0
      documentation/manual/de/ref/migration-15.xml
  17. 104 0
      documentation/manual/de/ref/migration-16.xml
  18. 264 102
      documentation/manual/de/ref/migration-17.xml
  19. 60 0
      documentation/manual/de/ref/migration-18.xml
  20. 276 0
      documentation/manual/de/ref/migration-19.xml
  21. 33 0
      documentation/manual/de/ref/migration-introduction.xml
  22. 9 3
      documentation/manual/de/ref/requirements-php-extensions-table.xml
  23. 7 2
      documentation/manual/de/ref/requirements-zendcomponents-table.xml

+ 14 - 10
documentation/manual/de/manual.xml.in

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17471 -->
+<!-- EN-Revision: 18682 -->
 <!-- Reviewed: no -->
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
     "@DOCBOOK_DTD@"
@@ -126,14 +126,12 @@
         <xi:include href="module_specs/Zend_Controller-Plugins.xml" parse="xml" />
         <xi:include href="module_specs/Zend_Controller-Modular.xml" />
         <xi:include href="module_specs/Zend_Controller-Exceptions.xml" />
-        <xi:include href="module_specs/Zend_Controller-Migration.xml" />
     </chapter>
 
     <chapter id="zend.currency">
         <title>Zend_Currency</title>
         <xi:include href="module_specs/Zend_Currency-Introduction.xml" />
         <xi:include href="module_specs/Zend_Currency-Usage.xml" />
-        <xi:include href="module_specs/Zend_Currency-Migrating.xml" />
     </chapter>
 
     <chapter id="zend.date">
@@ -203,7 +201,6 @@
         <xi:include href="module_specs/Zend_File_Transfer-Introduction.xml" />
         <xi:include href="module_specs/Zend_File_Transfer-Validators.xml" />
         <xi:include href="module_specs/Zend_File_Transfer-Filters.xml" />
-        <xi:include href="module_specs/Zend_File_Transfer-Migration.xml" />
     </chapter>
 
     <chapter id="zend.filter">
@@ -214,7 +211,6 @@
         <xi:include href="module_specs/Zend_Filter-WritingFilters.xml" />
         <xi:include href="module_specs/Zend_Filter_Input.xml" />
         <xi:include href="module_specs/Zend_Filter-Inflector.xml" />
-        <xi:include href="module_specs/Zend_Filter-Migration.xml" />
     </chapter>
 
     <chapter id="zend.form">
@@ -305,7 +301,6 @@
         <xi:include href="module_specs/Zend_Locale-Parsing.xml" />
         <xi:include href="module_specs/Zend_Locale-DatesTimes.xml" />
         <xi:include href="module_specs/Zend_Locale-AppendixLanguages.xml" />
-        <xi:include href="module_specs/Zend_Locale-Migration.xml" />
     </chapter>
 
     <chapter id="zend.log">
@@ -362,7 +357,6 @@
         <xi:include href="module_specs/Zend_Navigation-Introduction.xml" />
         <xi:include href="module_specs/Zend_Navigation-Pages.xml" />
         <xi:include href="module_specs/Zend_Navigation-Containers.xml" />
-        <xi:include href="module_specs/Zend_Navigation-Migration.xml" />
     </chapter>
 
     <chapter id="zend.openid">
@@ -547,7 +541,6 @@
         <xi:include href="module_specs/Zend_Translate-SourceCreation.xml" />
         <xi:include href="module_specs/Zend_Translate-Additional.xml" />
         <xi:include href="module_specs/Zend_Translate-Plurals.xml" />
-        <xi:include href="module_specs/Zend_Translate-Migration.xml" />
     </chapter>
 
     <chapter id="zend.uri">
@@ -562,7 +555,6 @@
         <xi:include href="module_specs/Zend_Validate-ValidatorChains.xml" />
         <xi:include href="module_specs/Zend_Validate-WritingValidators.xml" />
         <xi:include href="module_specs/Zend_Validate-Messages.xml" />
-        <xi:include href="module_specs/Zend_Validate-Migration.xml" />
     </chapter>
 
     <chapter id="zend.version">
@@ -577,7 +569,6 @@
         <xi:include href="module_specs/Zend_View-Scripts.xml" />
         <xi:include href="module_specs/Zend_View-Helpers.xml" parse="xml" />
         <xi:include href="module_specs/Zend_View-Abstract.xml" parse="xml" />
-        <xi:include href="module_specs/Zend_View-Migration.xml" />
     </chapter>
 
     <chapter id="zend.wildfire">
@@ -593,6 +584,19 @@
     </chapter>
 
     <xi:include href="ref/requirements.xml" />
+    <appendix id="migration">
+        <title>Zend Framework Migration Notes</title>
+        <xi:include href="ref/migration-110.xml" />
+        <xi:include href="ref/migration-19.xml" />
+        <xi:include href="ref/migration-18.xml" />
+        <xi:include href="ref/migration-17.xml" />
+        <xi:include href="ref/migration-16.xml" />
+        <xi:include href="ref/migration-15.xml" />
+        <xi:include href="ref/migration-10.xml" />
+        <xi:include href="ref/migration-09.xml" />
+        <xi:include href="ref/migration-08.xml" />
+        <xi:include href="ref/migration-06.xml" />
+    </appendix>
     <xi:include href="ref/coding_standard.xml" />
     <xi:include href="ref/documentation-standard.xml" />
     <xi:include href="ref/project-structure.xml" />

+ 0 - 775
documentation/manual/de/module_specs/Zend_Controller-Migration.xml

@@ -1,775 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17171 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.controller.migration">
-    <title>Migration von vorhergehenden Versionen</title>
-
-    <para>
-        Die <acronym>API</acronym> der <acronym>MVC</acronym> Komponenten hat sich mit der Zeit
-        verändert. Wer Zend Framework bereits in einer früheren Version verwendet hat, folgt dem
-        Leitfaden unten, damit die Skripte die neue Archtitekur verwenden.
-    </para>
-
-    <sect2 id="zend.controller.migration.fromoneseventooneeight">
-        <title>Migratiion von 1.7.x zu 1.8.0 oder neuer</title>
-
-        <sect3 id="zend.controller.migration.fromoneseventooneeight.router">
-            <title>Änderungen der Standard Route</title>
-
-            <para>
-                Da übersetzte Segmente in der neuen Standard Route eingeführt wurden, ist das
-                '<emphasis>@</emphasis>' Zeichen kein spezielles Zeichen am Begin eines Segments
-                der Route. Um es trotzdem in einem statischen Segment verwenden zu können, muß es
-                durch das Voranstellen eines zweiten '<emphasis>@</emphasis>' Zeichens escapt
-                werden. Die selbe Regel trifft für das '<emphasis>:</emphasis>' Zeichen zu:
-            </para>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromonesixtooneseven">
-        <title>Migration von 1.6.x zu 1.7.0 oder neuer</title>
-
-        <sect3 id="zend.controller.migration.fromonesixtooneseven.dispatcher">
-            <title>Änderungen im Dispatcher Interface</title>
-
-            <para>
-                Benutzer haben uns darauf aufmerksam gemacht das
-                <classname>Zend_Controller_Action_Helper_ViewRenderer</classname> Methoden auf der
-                abstrakten Dispatcher Klasse verwendet hat die nicht im Dispatcher Interface waren.
-                Die folgenden Methoden wurden hinzugefügt um sicherzustellen das eigene Dispatcher
-                weiterhin mit den ausgelieferten Implementierungen funktionieren:
-            </para>
-
-            <itemizedlist>
-                <listitem>
-                    <para>
-                        <methodname>formatModuleName()</methodname>: sollte verwendet werden um
-                        einen rohen Controllernamen zu nehmen, wie den einen der in einem
-                        Anfrageobjekt gepackt ist, und Ihn in einen richtigen Klassennamen zu
-                        reformatieren den eine Klasse, die
-                        <classname>Zend_Controller_Action</classname> erweitert, verwenden würde
-                    </para>
-                </listitem>
-            </itemizedlist>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromoneohtoonesix">
-        <title>Migration von 1.5.x zu 1.6.0 oder neuer</title>
-
-        <sect3 id="zend.controller.migration.fromoneohtoonesix.dispatcher">
-            <title>Änderungen im Dispatcher Interface</title>
-
-            <para>
-                Benutzer haben uns darauf aufmerksam gemacht das sowohl
-                <classname>Zend_Controller_Front</classname> als auch
-                <classname>Zend_Controller_Router_Route_Module</classname> Methoden des Dispatchers
-                verwenden die nicht im Dispatcher Interface waren. Wir haben jetzt die folgenden
-                drei Methoden hinzugefügt um sicherzustellen das eigene Dispatcher weiterhin mit der
-                ausgelieferten Implementation arbeiten:
-            </para>
-
-            <itemizedlist>
-                <listitem><para>
-                    <methodname>getDefaultModule()</methodname>: Sollte den Namen des
-                    Standardmoduls zurückgeben.
-                </para></listitem>
-
-                <listitem><para>
-                    <methodname>getDefaultControllerName()</methodname>: Sollte den Namen des
-                    Standardcontrollers zurückgeben.
-                </para></listitem>
-
-                <listitem><para>
-                    <methodname>getDefaultAction()</methodname>: Sollte den Namen der
-                    Standardaktion zurückgeben.
-                </para></listitem>
-            </itemizedlist>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromoneohtoonefive">
-        <title>Migration von 1.0.x zu 1.5.0 oder neuer</title>
-
-        <para>
-            Obwohl die meisten grundsätzlichen Funktionalitäten die gleichen bleiben und alle
-            dokumentierten Funktionalitäten die gleichen bleiben gibt es doch ein spezielles
-            <emphasis>undokumentiertes</emphasis> "Feature" das geändert wurde.
-        </para>
-
-        <para>
-            Wenn <acronym>URL</acronym>s geschrieben werden besteht der dokumentierte Weg darin die
-            Aktionsnamen camelCased mit einem Trennzeichen zu schreiben; diese sind normalerweise
-            '.' oder '-', können aber im Dispatcher konfiguriert werden. Der Dispatcher ändert den
-            Aktionsnamen intern auf Kleinschreibung und verwendet diese Trennzeichen um die
-            Aktionsmethode wieder zu bauen indem er sie camelCase schreibt. Trotzdem, weil
-            <acronym>PHP</acronym> Funktionen nicht unabhängig von der Schreibweise sind,
-            <emphasis>könnte</emphasis> man <acronym>URL</acronym>s mit camelCase schreiben und der
-            Dispatcher würde diese auf den gleichen Platz auflösen. Zum Beispiel, 'camel-cased'
-            würde durch den Dispatcher zu 'camelCasedAction' werden; trotzdem, durch den Fall der
-            unabhängigen Schreibweise in <acronym>PHP</acronym>, würden beide die selbe Methode
-            ausführen.
-        </para>
-
-        <para>
-            Das führt zu Problemen mit dem ViewRenderer wenn View Skripte aufgelöst werden. Der
-            kanonische, dokumentierte Weg besteht darin das alle Trennzeichen zu Bindestrichen
-            umgewandelt und die Wörter kleingeschrieben werden. Das erzeugt eine semantische
-            Bindung zwischen Aktionen und View Skripten, und die Normalisierung stellt sicher
-            das die Skripte gefunden werden. Trotzdem, wenn die Aktion 'camelCased' aufgerufen und
-            aufgelöst wird, ist das Trennzeichen nicht mehr vorhanden, und der ViewRenderer
-            versucht einen anderen Ort aufzulösen -- <filename>camelcased.phtml</filename> statt
-            <filename>camel-cased.phtml</filename>.
-        </para>
-
-        <para>
-            Einige Entwickler hängen an diesem "Feature", welches nie angedacht war. Verschiedene
-            Änderungen im 1.5.0 Baum, führen dazu das der ViewRenderer diese Pfade nicht länger
-            auflöst; die semantische Bindung wird nun erzwungen. Ale erstes, erzwingt der
-            Dispatcher nun die Groß-/Kleinschreibung in Aktionsnamen. Das bedeutet dass das
-            hinleiten zu eigenen Aktionen über die URL durch Verwendung von camelCase nicht länger
-            auf die gleiche Methode aufgelöst wird wie mit Trennzeichen (z.B. 'camel-casing').
-            Das führt dazu das der ViewRenderer jetzt nur mehr zeichen-getrennte Aktionen
-            honoriert wenn er View Skripte auflöst.
-        </para>
-
-        <para>´
-            Wenn man findet das man auf dieses "Feature" nicht verzichten kann gibt es mehrere
-            Optionen:
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    Beste Option: Die View Skripte umbenennen. Vorteile: zukünftige Kompatibilität.
-                    Nachteile: Wenn man viele View Skripte hat die auf dem vorigen aufbauen führt
-                    das, unerwarteter Weise, zu vielen Umbenennungen die durchgeführt werden müssen.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    Zweitbeste Option: Der ViewRenderer delegiert nun die Auflösung von View
-                    Skripten zu <classname>Zend_Filter_Inflector</classname>; man kann die Regeln
-                    des Inflectors ändern damit er nicht länger die Wörter der Aktion mit einem
-                    Bindestrich trennt:
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$viewRenderer =
-    Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
-$inflector = $viewRenderer->getInflector();
-$inflector->setFilterRule(':action', array(
-    new Zend_Filter_PregReplace(
-        '#[^a-z0-9' . preg_quote(DIRECTORY_SEPARATOR, '#') . ']+#i',
-        ''
-    ),
-    'StringToLower'
-));
-]]></programlisting>
-
-                <para>
-                    Der obige Code ändert den Inflector so, das er Wörter nicht länger mit einem
-                    Bindestrich trennt; Es kann auch gewünscht sein den 'StringToLower' Filter zu
-                    entfernen man die aktuellen View Skripte camelCased benannt haben
-                    <emphasis>will</emphasis>.
-                </para>
-
-                <para>
-                    Wenn die Umbenennung der View Skripte zu aufwendig oder Zeitintensiv ist, dann
-                    ist das die beste Option wenn man die Zeit hierfür findet.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    Die am wenigsten zu empfehlende Option: Man kann den Dispatcher dazu zwingen
-                    camelCase Aktionsnamen mit einem neuen Front Controller Flag
-                    <property>useCaseSensitiveActions</property> zu bearbeiten:
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$front->setParam('useCaseSensitiveActions', true);
-]]></programlisting>
-
-                <para>
-                    Das erlaubt es camelCase in der URL zu verwenden uns es trotzdem auf die
-                    gleiche Aktion aufzulösen wie wenn Trennzeichen verwendet worden wären. Das
-                    bedeutet dass das Originale Problem trotzdem durchschlägt; es kann notwendig
-                    sein die zweite Option von oben zusätzlich zu verwenden um sicherzustellen
-                    das die Dinge in allen Variationen funktionieren.
-                </para>
-
-                <para>
-                    Man sollte auch beachten das die Verwendung dieses Flags eine Notiz auslöst,
-                    das dessen Verwendung nicht mehr durchgeführt werden sollte.
-                </para>
-            </listitem>
-        </itemizedlist>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromzeroninethree">
-        <title>Migration von 0.9.3 nach 1.0.0RC1 oder neuer</title>
-
-        <para>
-            Die prinzipiellen Änderungen die durch 1.0.0RC1 angeboten werden sind die Einführung und
-            standardmäßige Aktivierung des
-            <link linkend="zend.controller.plugins.standard.errorhandler">ErrorHandler</link>
-            Plugins und den
-            <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>
-            Aktionhelfer. Bitte lies die Dokumentation jedes einzelnen gründlich um zu sehen wie sie
-            arbeiten und welchen Effekt Sie auf die eigene Anwendung haben können.
-        </para>
-
-        <para>
-            Der <classname>ErrorHandler</classname> Plugin läuft wärend der
-            <methodname>postDispatch()</methodname> Prüfung auf Ausnahmen, und leitet zu einem
-            spezifizierten Fehlerhandler Controller weiter. Solch ein Controller sollte in der
-            eigenen Anwendung inkludiert werden. Er kann deaktiviert werden durch das setzen des
-            Frontcontroller Parameters <property>noErrorHandler</property>:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-$front->setParam('noErrorHandler', true);
-]]></programlisting>
-
-        <para>
-            Der <classname>ViewRenderer</classname> Aktionhelfer automatisiert die Injizierung der
-            View in den Aktioncontroller genauso wie das autorendern von Viewskripten basierend auf
-            die aktuelle Aktion. Das primäre Problem dem man begegnen kann ist, wenn man Aktionen
-            hat die keine View Skripte rendern und weder vorwärts- noch weiterleiten, da der
-            <classname>ViewRenderer</classname> versucht ein View Skript zu Rendern basierend auf
-            dem Aktionnamen.
-        </para>
-
-        <para>
-            Es gibt verschiedene Strategien die man anwenden kann um den eigenen Code upzudaten. In
-            kurzer Form, kann man global den <classname>ViewRenderer</classname> im eigenen
-            Frontcontroller Bootstrap vor dem Abarbeiten ausschalten:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-// Annahme das $front eine Instanz von Zend_Controller_Front ist
-$front->setParam('noViewRenderer', true);
-]]></programlisting>
-
-        <para>
-            Trotzdem ist es keine gute Langzeitstrategie, da es auch bedeutet das man mehr Code
-            schreiben muß.
-        </para>
-
-        <para>
-            Wenn man bereit ist damit zu beginnen die <classname>ViewRenderer</classname>
-            Funktionalität zu verwenden, gibt es verschiedene Dinge die man im eigenen
-            Controllercode beachten muß. Zuerst muß auf die Aktionmethoden (die Methoden die mit
-            'Action' enden) geachtet werden, und ausgesucht werden was eine jede machen soll. Wenn
-            nichts vom folgenden passiert, muß man Änderungen durchführen:
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>Aufruf von <command>$this->render();</command></para>
-            </listitem>
-            <listitem>
-                <para>Aufruf von <command>$this->_forward();</command></para>
-            </listitem>
-            <listitem>
-                <para>Aufruf von <command>$this->_redirect();</command></para>
-            </listitem>
-            <listitem>
-                <para>Aufruf des <classname>Redirector</classname> Aktionhelfers</para>
-            </listitem>
-        </itemizedlist>
-
-        <para>
-            Die einfachste Änderung ist das Ausschalten des Auto-Rendering für diese Methode:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-$this->_helper->viewRenderer->setNoRender();
-]]></programlisting>
-
-        <para>
-            Wenn man herausfindet das keine der eigenen Aktionmethoden rendern, weiterleiten oder
-            umleiten, wird man voraussichtlich die oben angeführte Zeile in die eigene
-            <methodname>preDispatch()</methodname> oder <methodname>init()</methodname> Methode
-            einfügen wollen:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-public function preDispatch()
-{
-    // Ausschalten des autorendern vom View Skript
-    $this->_helper->viewRenderer->setNoRender()
-    // .. andere Dinge tun...
-}
-]]></programlisting>
-
-        <para>
-            Wenn <methodname>render()</methodname> aufgerufen wird, und man
-            <link linkend="zend.controller.modular">die konventionelle Modulare Verzeichnis
-                Struktur</link> verwendet, wird man den Code ändern wollen um Autorendern zu
-            Verwenden:
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    Wenn man mehrere View Skripte in einer einzelnen Aktion rendert muß nichts
-                    geändert werden.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Wenn man einfach <methodname>render()</methodname> ohne Argumente aufruft,
-                    können diese Zeilen entfernt werden.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Wenn man <methodname>render()</methodname> mit Argumenten aufruft, und danach
-                    nicht irgendeine Bearbeitung durchführt oder mehrere View sktipe rendert, können
-                    diese Aufrufe zu <command>$this->_helper->viewRenderer();</command> geändert
-                    werden.
-                </para>
-            </listitem>
-        </itemizedlist>
-
-        <para>
-            Wenn die konventionelle modulare Verzeichnisstruktur nicht verwendet wird, gibt es eine
-            Vielzahl von Methoden für das Setzen des View Basispfades und der Skript
-            Pfadspezifikationen so das man den <classname>ViewRenderer</classname> verwenden kann.
-            Bitte lies die <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer
-                Dokumentation</link> für Informationen über diese Methoden.
-        </para>
-
-        <para>
-            Wenn ein View Objekt von der Registry verwendet, oder das eigene View Objekt verändert,
-            oder eine andere View Implementation verwendet wird, dann wird man den
-            <classname>ViewRenderer</classname> in diesem Objekt injiziieren wollen. Das kann ganz
-            einfach jederzeit durchgeführt werden.
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    Vor dem Verarbeiten einer Frontcontroller Instanz:
-                </para>
-
-                <programlisting language="php"><![CDATA[
-// Annahme das $view bereits definiert wurde
-$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
-Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
-]]></programlisting>
-            </listitem>
-
-            <listitem>
-                <para>
-                    Jederzeit wärend des Bootstrap Prozesses:
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$viewRenderer =
-    Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
-$viewRenderer->setView($view);
-]]></programlisting>
-            </listitem>
-        </itemizedlist>
-
-        <para>
-            Es gibt viele Wege den <classname>ViewRenderer</classname> zu modifizieren inklusive dem
-            Setzen eines anderen View Skripts zum Rendern, dem Spezifizieren von Veränderungen für
-            alle veränderbaren Elemente eines View Skript Pfades (inklusive der Endung), dem
-            Auswählen eines Antwort-benannten Segments zur Anpassung und mehr. Wenn die
-            konventionelle modulare Verzeichnisstruktur nicht verwendet wird, kann noch immer eine
-            andere Pfad Spezifikation mit dem <classname>ViewRenderer</classname> zugeordnet werden.
-        </para>
-
-        <para>
-            Wir empfehlen die Adaptierung des eigenen Codes um den
-            <classname>ErrorHandler</classname> und <classname>ViewRenderer</classname> zu verwenden
-            da diese neue Kernfunktionalitäten sind.
-        </para>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromzeroninetwo">
-        <title>Migration von 0.9.2 nach 0.9.3 oder neuer</title>
-
-        <para>
-            0.9.3 bietet <link linkend="zend.controller.actionhelpers">Aktionhelfer</link> neu an.
-            Als Teil dieser Änderung wurden die folgenden Methoden entfernt da Sie nun im <link
-                linkend="zend.controller.actionhelpers.redirector">Weiterleitungs
-                Aktionhelfer</link> inkludiert sind:
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    <methodname>setRedirectCode()</methodname>; wurde umbenannt in
-                    <methodname>Zend_Controller_Action_Helper_Redirector::setCode()</methodname>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <methodname>setRedirectPrependBase()</methodname>; wurde umbenannt in
-                    <methodname>Zend_Controller_Action_Helper_Redirector::setPrependBase()</methodname>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <methodname>setRedirectExit()</methodname>; wurde umbenannt in
-                    <methodname>Zend_Controller_Action_Helper_Redirector::setExit()</methodname>.
-                </para>
-            </listitem>
-        </itemizedlist>
-
-        <para>
-            Lese die <link linkend="zend.controller.actionhelpers">Aktionhelfer Dokumentation</link>
-            für nähere Informationen über das empfangen und manipulieren von Helfer Objekten und die
-            <link linkend="zend.controller.actionhelpers.redirector">Weiterleitungshelfer
-                Dokumentation</link> für weitere Information über das setzen von
-            Weiterleitungsoptionen (sowie alternative Methoden des weiterleitens).
-        </para>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromzerosix">
-        <title>Migration von 0.6.0 nach 0.8.0 oder neuer</title>
-
-        <para>
-            Durch bisherige Änderungen bleibt die wesentliche Verwendung der <acronym>MVC</acronym>
-            Komponenten gleich:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-require_once 'Zend/Controller/Front.php';
-Zend_Controller_Front::run('/path/to/controllers');
-]]></programlisting>
-
-        <para>
-            Dennoch wurde die Verzeichnisstruktur gründliche überarbeitet, verschiedene Komponenten
-            wurden entfernt und mehrere andere umbenannt und hinzugefügt. Die Änderungen beinhalten:
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    <classname>Zend_Controller_Router</classname> wurde entfernt für den Rewrite
-                    Router entfernt.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <classname>Zend_Controller_RewriteRouter</classname> wurde in
-                    <classname>Zend_Controller_Router_Rewrite</classname> umbenannt und zum Standard
-                    Router befördert, der mit dem Framework ausgeliefert wird;
-                    <classname>Zend_Controller_Front</classname> wird ihn als Standard verwenden,
-                    wenn kein anderer Router übergeben wird.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    Eine neue Route Klasse für die Verwendung mit dem Rewrite Router wurde
-                    eingeführt: <classname>Zend_Controller_Router_Route_Module</classname>; sie
-                    deckt die Standardrouten ab, die vom <acronym>MVC</acronym> verwendet werden
-                    und bietet die Unterstützung für <link
-                        linkend="zend.controller.modular">Controller Module</link>.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <classname>Zend_Controller_Router_StaticRoute</classname> wurde umbenannt in
-                    <classname>Zend_Controller_Router_Route_Static</classname>.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <classname>Zend_Controller_Dispatcher</classname> wurde umbenannt in
-                    <classname>Zend_Controller_Dispatcher_Standard</classname>.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <methodname>Zend_Controller_Action::_forward()</methodname>'s Argumente wurden
-                    geändert. Die Signatur ist nun:
-                </para>
-
-                <programlisting language="php"><![CDATA[
-final protected function _forward($action,
-                                  $controller = null,
-                                  $module = null,
-                                  array $params = null);
-]]></programlisting>
-
-                <para>
-                    <varname>$action</varname> wird immer benötigt; wenn kein Controller angegeben
-                    wird, wird eine Action im aktuellen Controller angenommen.
-                    <varname>$module</varname> wird immer ignoriert, es sei denn
-                    <varname>$controller</varname> wird angegeben. Schließlich werden alle
-                    übergebenen Parameter <varname>$params</varname> an das Request Objekt
-                    angehängt. Wenn man keinen Controller oder kein Modul angeben, aber dennoch
-                    Parameter übergeben möchte, gibt man einfach <constant>NULL</constant> für diese
-                    Werte an.
-                </para>
-            </listitem>
-        </itemizedlist>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromzerotwo">
-        <title>Migration von 0.2.0 oder früher nach 0.6.0</title>
-
-        <para>
-            Die grundlegende Verwendung der <acronym>MVC</acronym> Komponenten hat sich nicht
-            verändert; man kann immer noch das folgende machen:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-require_once 'Zend/Controller/Front.php';
-Zend_Controller_Front::run('/path/to/controllers');
-]]></programlisting>
-
-        <programlisting language="php"><![CDATA[
-/* -- Erstelle einen Router -- */
-$router = new Zend_Controller_RewriteRouter();
-$router->addRoute('user',
-                  'user/:username',
-                  array('controller' => 'user', 'action' => 'info')
-);
-
-/* -- Setze ihn im Controller -- */
-$ctrl = Zend_Controller_Front::getInstance();
-$ctrl->setRouter($router);
-
-/* -- Setze da Controller Verzeichnis und starte die Verarbeitung -- */
-$ctrl->setControllerDirectory('/path/to/controllers');
-$ctrl->dispatch();
-]]></programlisting>
-
-        <para>
-            Wir empfehlen die Verwendung des Response Objektes, um Inhalte und Header zu sammeln.
-            Dies erlaubt den flexibleren Wechsel von Ausgabeformaten (z.B. <acronym>JSON</acronym>
-            oder <acronym>XML</acronym> statt <acronym>XHTML</acronym>) in deiner Applikation.
-            Standardmäßig verarbeitet <methodname>dispatch()</methodname> die Antwort, sendet
-            Header und gibt die Inhalte aus. Man kann den Front Controller auch auffordern, die
-            Antwort durch <methodname>returnResponse()</methodname> zurückzugeben und die Antwort
-            dann auf eigene Weise ausgeben. Eine zukünftige Version des Front Controllers könnte
-            die Verwendung des Response Objektes durch Output Buffering erzwingen.
-        </para>
-
-        <para>
-            Es gibt viele weitere zusätzliche Funktionalitäten, welche die vorherige
-            <acronym>API</acronym> erweitern. Diese sind in der Dokumentation aufgeführt.
-        </para>
-
-        <para>
-            Die meisten Änderungen, die man beachten muss, betreffen das Erweitern der diversen
-            Komponenten. Die wichtigsten davon sind:
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    <methodname>Zend_Controller_Front::dispatch()</methodname> fängt standardmäßig
-                    die Ausnahmen im Response Objekt ab und gibt sie nicht aus, um sicherzugehen,
-                    dass keine sensitiven Systeminformationen ausgegeben werden. Man kann dies auf
-                    mehrere Arten überschreiben:
-                </para>
-
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            Setzen von <methodname>throwExceptions()</methodname> im Front
-                            Controller:
-                        </para>
-                        <programlisting language="php"><![CDATA[
-$front->throwExceptions(true);
-]]></programlisting>
-                    </listitem>
-
-                    <listitem>
-                        <para>
-                            Setzen von <methodname>renderExceptions()</methodname> im Response
-                            Objekt:
-                        </para>
-                        <programlisting language="php"><![CDATA[
-$response->renderExceptions(true);
-$front->setResponse($response);
-$front->dispatch();
-
-// oder:
-$front->returnResponse(true);
-$response = $front->dispatch();
-$response->renderExceptions(true);
-echo $response;
-]]></programlisting>
-                    </listitem>
-                </itemizedlist>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <methodname>Zend_Controller_Dispatcher_Interface::dispatch()</methodname>
-                    akzeptiert und gibt nun ein <link
-                        linkend="zend.controller.request">Anfrage Objekt</link> anstelle eines
-                    Dispatcher Token zurück.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <methodname>Zend_Controller_Router_Interface::route()</methodname>
-                    akzeptiert und gibt nun ein <link
-                        linkend="zend.controller.request">Anfrage Objekt</link> anstelle eines
-                    Dispatcher Token zurück.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para><classname>Zend_Controller_Action</classname> Änderungen beinhalten:</para>
-
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            Der Konstruktur akzeptiert nun genau drei Argumente,
-                            <classname>Zend_Controller_Request_Abstract</classname>
-                            <varname>$request</varname>,
-                            <classname>Zend_Controller_Response_Abstract</classname>
-                            <varname>$response</varname>, und
-                            <type>Array</type> <varname>$params</varname> (Optional).
-                            <methodname>Zend_Controller_Action::__construct()</methodname>
-                            verwendet diese, um die Request, Response und invokeArgs Eigenschaften
-                            für das Objekt zu setzen, und beim Überschreiben des Konstrukturs
-                            sollte man dies ebenfalls tun. Besser ist es, die
-                            <methodname>init()</methodname> Methode zu verwenden, um jedwede
-                            Instanzkonfiguration durchzuführen, weil diese Methode als letzte
-                            Methode des Konstrukturs aufgerufen wird.
-                        </para>
-                    </listitem>
-
-                    <listitem>
-                        <para>
-                            <methodname>run()</methodname> ist nicht länger als final definiert,
-                            wird aber auch nicht länger vom Front Controller verwendet; sein
-                            einziger Zweck ist, dass die Klasse auch als Page Controller verwendet
-                            werden kann. Sie nimmt nun zwei optionale Argument an, ein
-                            <classname>Zend_Controller_Request_Abstract</classname>
-                            <varname>$request</varname> und ein
-                            <classname>Zend_Controller_Response_Abstract</classname>
-                            <varname>$response</varname>.
-                        </para>
-                    </listitem>
-
-                    <listitem>
-                        <para>
-                            <methodname>indexAction()</methodname> muss nicht mehr länger definiert
-                            werden, aber wird als Standardaktion empfohlen. Dies erlaubt dem
-                            RewriteRouter und den Action Controllern andere Standardaktionsmethoden
-                            zu definieren.
-                        </para>
-                    </listitem>
-
-                    <listitem>
-                        <para>
-                            <methodname>__call()</methodname> sollte überschrieben werden, um jede
-                            undefinierte Aktion automatisch verarbeiten zu können.
-                        </para>
-                    </listitem>
-
-                    <listitem>
-                        <para>
-                            <methodname>_redirect()</methodname> nimmt nun ein optionales zweites
-                            Argument entgegen, den <acronym>HTTP</acronym> Code, der mit dem
-                            Redirect zurückgegeben werden soll, und ein optionales drittes Argument
-                            <varname>$prependBase</varname>, das angibt, dass die im Request Objekt
-                            registrierte Basis URL der übergebenen <acronym>URL</acronym> voran
-                            gestellt werden soll.
-                        </para>
-                    </listitem>
-
-                    <listitem>
-                        <para>
-                            Die <varname>$_action</varname> Eigenschaft wird nicht mehr gesetzt.
-                            Diese Eigenschaft war ein
-                            <classname>Zend_Controller_Dispatcher_Token</classname>, der in der
-                            aktuellen Inkarnation nicht mehr länger existiert. Der einzige Zweck
-                            des Tokens war, Informationen über angeforderte Controller, Aktion und
-                            <acronym>URL</acronym> Parameter bereit zu stellen. Diese Infrmationen
-                            ist nun im Request Objekt verfügbar und kann wie folgt abgerufen
-                            werden:
-                        </para>
-
-                        <programlisting language="php"><![CDATA[
-// Hole den angeforderten Controllernamen
-// Der Zugriff erfolgte bisher über: $this->_action->getControllerName().
-// Das Beispiel unten verwendet getRequest(), obwohl man auch direkt auf die
-// $_request Eigenschaft zugreifen kann; die Verwendung von getRequest() wird
-// empfohlen, da eine Elternklasse den Zugriff auf das Request Objekt
-// überschreiben könnte
-$controller = $this->getRequest()->getControllerName();
-
-// Hole den angeforderten Aktionsnamen
-// Der Zugriff erfolgte bisher über: $this->_action->getActionName().
-$action = $this->getRequest()->getActionName();
-
-// Hole die Anfrageparameter
-// Dies hat sich nicht verändert; die _getParams() und _getParam()
-// Methoden leiten nun einfach auf das Request Objekt weiter.
-$params = $this->_getParams();
-// fordere den 'foo' Parameter an und verwende
-// 'default', wenn kein Standardwert gefunden werden kann
-$foo = $this->_getParam('foo', 'default');
-]]></programlisting>
-                    </listitem>
-
-                    <listitem>
-                        <para>
-                            <methodname>noRouteAction()</methodname> wurde entfernt. Der geeignete
-                            Weg, um nicht vorhandene Aktionsmethoden abzufangen, wenn man sie an
-                            eine Standardaktion weiter leiten möchte, sollte die Verwendung von
-                            <methodname>__call()</methodname> sein:
-                        </para>
-
-                        <programlisting language="php"><![CDATA[
-public function __call($method, $args)
-{
-    // Wenn eine nicht vorhandene 'Action' Methode angefordert wurde,
-    // leite auf die Standard Aktionsmethode um:
-    if ('Action' == substr($method, -6)) {
-        return $this->defaultAction();
-    }
-
-    throw new Zend_Controller_Exception('Invalid method called');
-}
-]]></programlisting>
-                    </listitem>
-                </itemizedlist>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <methodname>Zend_Controller_RewriteRouter::setRewriteBase()</methodname> wurde
-                    entfernt. Stattdessen soll
-                    <methodname>Zend_Controller_Front::setBaseUrl()</methodname> verwendet werden
-                    (oder <methodname>Zend_Controller_Request_Http::setBaseUrl()</methodname>, wenn
-                    die Request Klasse verwendet wird).
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <classname>Zend_Controller_Plugin_Interface</classname> wurde durch
-                    <classname>Zend_Controller_Plugin_Abstract</classname> ersetzt. Alle Methoden
-                    nehmen nun ein <link linkend="zend.controller.request">Request Objekt</link>
-                    statt eines Dispatcher Tokens entgegen bzw. geben es zurück.
-                </para>
-            </listitem>
-        </itemizedlist>
-    </sect2>
-</sect1>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 0 - 115
documentation/manual/de/module_specs/Zend_Currency-Migrating.xml

@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17597 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.currency.migration">
-
-    <title>Migration von vorhergehenden Versionen</title>
-
-    <para>
-        Die <acronym>API</acronym> von <classname>Zend_Currency</classname> wurde in der
-        Vergangenheit verändert um die Usability zu verbessern. Wenn
-        <classname>Zend_Currency</classname> schon mit einer Version verwendet wurde die in diesem
-        Kapitel erwähnt wird sollte den unten stehenden Anweisungen gefolgt werden um die eigenen
-        Skripte zur neuen <acronym>API</acronym> zu migrieren.
-    </para>
-
-    <sect2 id="zend.currency.usage.migration.fromonezerotwo">
-
-        <title>Von 1.0.2 zu 1.0.3 oder neuer migrieren</title>
-
-        <para>
-            Die Erstellung von <classname>Zend_Currency</classname> wurde vereinfacht.
-            Es muß nicht länger ein Skript angegeben oder auf <constant>NULL</constant> gesetzt
-            werden. Der optionale script Parameter ist jetzt eine Option welche durch die
-            <methodname>setFormat()</methodname> Methode gesetzt werden kann.
-        </para>
-
-        <programlisting language="php"><![CDATA[
-$currency = new Zend_Currency($currency, $locale);
-]]></programlisting>
-
-        <para>
-            Die <methodname>setFormat()</methodname> Methode nimmt jetzt ein Array von Optionen.
-            Diese Optionen werden permanent gesetzt und überschreiben alle vorher gesetzten Werte.
-            Auch eine neue Option 'precision' wurde integriert. Die folgenden Optionen wurden
-            überarbeitet:
-        </para>
-
-        <itemizedlist mark='opencircle'>
-            <listitem>
-                <para>
-                    <emphasis>position</emphasis>:
-                    Ersetzt den alten 'rules' Parameter.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <emphasis>script</emphasis>:
-                    Ersetzt den alten 'script' Parameter.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <emphasis>format</emphasis>:
-                    Ersetzt den alten 'locale' Parameter welcher keine neue Währung, sondern
-                    nur das Format der Nummern setzt.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <emphasis>display</emphasis>:
-                    Ersetzt den alten 'rules' Parameter.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <emphasis>precision</emphasis>:
-                    Neuer Parameter.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <emphasis>name</emphasis>: Ersetzt den alten 'rules' Parameter. Setzt den
-                    vollständigen Namen der Währung.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <emphasis>currency</emphasis>:
-                    Neuer Parameter.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <emphasis>symbol</emphasis>:
-                    Neuer Parameter.
-                </para>
-            </listitem>
-        </itemizedlist>
-
-        <programlisting language="php"><![CDATA[
-$currency->setFormat(array $options);
-]]></programlisting>
-
-        <para>
-            Die <methodname>toCurrency()</methodname> Methode unterstützt die optionalen 'script'
-            und 'locale' Parameter nicht mehr. Stattdessen nimmt sie ein Array von Optionen welche
-            die selben Schlüssel enthalten können wie die <methodname>setFormat()</methodname>
-            Methode.
-        </para>
-
-        <programlisting language="php"><![CDATA[
-$currency->toCurrency($value, array $options);
-]]></programlisting>
-
-        <para>
-            Die Methoden <methodname>getSymbol()</methodname>,
-            <methodname>getShortName()</methodname>, <methodname>getName()</methodname>,
-            <methodname>getRegionList()</methodname> und <methodname>getCurrencyList()</methodname>
-            sind nicht länger statisch und können vom Objekt aus aufgerufen werden. Die geben den
-            aktuell gesetzten Wert des Objekts zurück wenn kein Parameter gesetzt wurde.
-        </para>
-
-    </sect2>
-
-</sect1>

+ 0 - 27
documentation/manual/de/module_specs/Zend_Filter-Migration.xml

@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17095 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.filter.migration">
-    <title>Migration von vorhergehenden Versionen</title>
-
-    <para>
-        Dieses Kapitel dokumentiert Brüche in der Rückwärtskompatible von
-        <classname>Zend_Filter</classname> und soll bei der Migration von vorhergehenden Versionen
-        helfen.
-    </para>
-
-    <sect2 id="zend.filter.migration.zf2105">
-        <title>Migration von Versionen vor 1.9</title>
-
-        <para>
-            Vor dem Release 1.9 erlaubte <classname>Zend_Filter</classname> die Verwendung der
-            statischen Methode <methodname>get()</methodname>. Ab dem Release 1.9 wurde diese
-            Methode zu <methodname>filterStatic()</methodname> umbenannt um besser zu beschreiben
-            was Sie macht. Die alte <methodname>get()</methodname> Methode wurde als deprecated
-            markiert.
-        </para>
-    </sect2>
-</sect1>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 0 - 119
documentation/manual/de/module_specs/Zend_Http_Client-Migration.xml

@@ -1,119 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17175 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.http.client.migration">
-
-    <title>Migration von vorhergehenden Versionen</title>
-
-    <para>
-        Wärend die externe <acronym>API</acronym> von <classname>Zend_Http_Client</classname> durch
-        den kompletten 1.x Baum vom Zend Framework konsistent geblieben ist, wurden einige
-        Änderungen in der internen Struktur von <classname>Zend_Http_Client</classname> und den
-        abhängigen Klassen durchgeführt.
-    </para>
-
-    <para>
-        Diese Änderungen sollten keinen Effekt bei Code haben der
-        <classname>Zend_Http_Client</classname> verwendet - kann aber Effekte bei
-        <acronym>PHP</acronym> Klassen zeigen welche diese Erweitern oder Überladen. Wenn die eigene
-        Anwendung <classname>Zend_Http_Client</classname> erweitert, ist es stark zu empfehlen die
-        folgenden Änderungen anzusehen bevor der Zend Framework hochgerüstet wird.
-    </para>
-
-    <sect2 id="zend.http.client.migration.tozf19">
-        <title>Migration von 1.8 oder älter zu 1.9 oder neuer</title>
-        <sect3 id="zend.http.client.migration.tozf19.fileuploadsarray">
-            <title>
-                Änderungen in der internen Speicherung der Information von hochgeladenen Dateien
-            </title>
-
-            <para>
-                In Version 1.9 vom Zend Framework gibt es eine Ändernug wie
-                <classname>Zend_Http_Client</classname> Informationen über hochgeladenen Dateien
-                intern speichert, bei denen die
-                <methodname>Zend_Http_Client::setFileUpload()</methodname> Methode verwendet wird.
-            </para>
-
-            <para>
-                Diese Änderung wurde durchgeführt um es zu erlauben mehrere Dateien mit dem
-                gleichen Formularnamen, als Array von Dateien, hochzuladen. Weitere Informationen
-                über dieses Problem können in <ulink
-                    url="http://framework.zend.com/issues/browse/ZF-5744">diesem
-                    Fehlerreport</ulink> gefunden werden.
-            </para>
-
-            <example id="zend.http.client.migration.tozf19.fileuploadsarray.example">
-                <title>Interne Speicherung der Informationen von hochgeladenen Dateien</title>
-
-                <programlisting language="php"><![CDATA[
-// Zwei Dateien mit dem gleichen Namen des Formularelements als Array hochladen
-$client = new Zend_Http_Client();
-$client->setFileUpload('file1.txt',
-                       'userfile[]',
-                       'some raw data',
-                       'text/plain');
-$client->setFileUpload('file2.txt',
-                       'userfile[]',
-                       'some other data',
-                       'application/octet-stream');
-
-// In Zend Framework 1.8 oder älter, ist der Wert der geschützten
-// Variable $client->files:
-// $client->files = array(
-//     'userfile[]' => array('file2.txt',
-                             'application/octet-stream',
-                             'some other data')
-// );
-
-// In Zend Framework 1.9 oder neuer, ist der Wert von $client->files:
-// $client->files = array(
-//     array(
-//         'formname' => 'userfile[]',
-//         'filename' => 'file1.txt,
-//         'ctype'    => 'text/plain',
-//         'data'     => 'some raw data'
-//     ),
-//     array(
-//         'formname' => 'userfile[]',
-//         'filename' => 'file2.txt',
-//         'formname' => 'application/octet-stream',
-//         'formname' => 'some other data'
-//     )
-// );
-]]></programlisting>
-            </example>
-
-            <para>
-                Wie man sieht gestattet diese Änderung die Verwendung des gleichen Namens für das
-                Formularelement mit mehr als einer Datei - trotzdem führt dies zu einer subtilen
-                Änderung der Rückwärtskompatibilität und sollte erwähnt werden.
-            </para>
-        </sect3>
-
-        <sect3 id="zend.http.client.migration.tozf19.getparamsrecursize">
-            <title>
-                Zend_Http_Client::_getParametersRecursive() sollte nicht mehr eingesetzt werden
-            </title>
-
-            <para>
-                Beginnend mit Version 1.9, wird die geschützte Methode
-                <methodname>_getParametersRecursive()</methodname> nicht mehr von
-                <classname>Zend_Http_Client</classname> verwendet und ist abgelehnt (deprecated).
-                Ihre Verwendung führt zu einer E_NOTICE Nachricht die von <acronym>PHP</acronym>
-                kommt.
-            </para>
-
-            <para>
-                Wenn man <classname>Zend_Http_Client</classname> erweitert und diese Methode
-                aufrufr, sollte man sehen das man stattdessen die statische Methode
-                <methodname>Zend_Http_Client::_flattenParametersArray()</methodname> verwendet.
-            </para>
-
-            <para>
-                Nochmals, da <classname>_getParametersRecursive</classname> eine geschützte Methode
-                ist, sind nur Benutzer betroffen die <classname>Zend_Http_Client</classname>
-                erweitert haben.
-            </para>
-        </sect3>
-    </sect2>
-</sect1>

+ 0 - 227
documentation/manual/de/module_specs/Zend_Locale-Migration.xml

@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17175 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.locale.migration">
-
-    <title>Migrieren von vorhergehenden Versionen</title>
-
-    <para>
-        Die <acronym>API</acronym> 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 <acronym>API</acronym> 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.fromoneseventooneeight">
-        <title>Migrieren von 1.7 zu 1.8 oder neuer</title>
-        <sect3 id="zend.locale.migration.fromoneseventooneeight.defaultcaching">
-            <title>Standard Caching</title>
-
-            <para>
-                Ab Zend Framework 1.8 wurde ein standardmäßiges Caching hinzugefügt. Der Grund
-                für diese Änderung war, das die meisten Benutzer Performance Probleme hatten,
-                aber kein Caching verwendet wurde. Da der I18n Core eine Engstelle ist wenn kein
-                Caching verwendet wird, wurde entschieden ein standardmäßiges Caching hinzuzufügen
-                wenn für <classname>Zend_Locale</classname> kein Cache gesetzt wurde.
-            </para>
-
-            <para>
-                Manchmal ist es trotzdem gewünscht ein Cachen zu verhindern, selbst wenn das die
-                Performance beeinträchtigt. Um das zu tun kann das Cachen durch Verwendung der
-                <methodname>disableCache()</methodname> Methode abgeschaltet werden.
-            </para>
-
-            <example id="zend.locale.migration.fromoneseventooneeight.example">
-                <title>Standardmäßiges Caching abschalten</title>
-
-                <programlisting language="php"><![CDATA[
-Zend_Locale::disableCache(true);
-]]></programlisting>
-            </example>
-        </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 <acronym>API</acronym> 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 <acronym>API</acronym> 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>

+ 0 - 102
documentation/manual/de/module_specs/Zend_Navigation-Migration.xml

@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17172 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.navigation.migration">
-    <title>Migration von vorhergehenden Versionen</title>
-
-    <para>
-        Dieses Kapitel beschreibt primär Brüche in der Abwärtskompatibilität von
-        <classname>Zend_Navigation</classname> und
-        <classname>Zend_View_Helper_Navigation</classname> und sollte als Hilfe bei der Migration
-        von vorhergehenden Versionen dienen.
-    </para>
-
-    <sect2 id="zend.view.navigation.zf7341">
-        <title>Migration von Versionen vor 1.9</title>
-
-        <para>
-            Vor dem Release 1.9 hat der Menü Helfer
-            (<classname>Zend_View_Helper_Navigation_Menu</classname>) Untermenüs nicht richtig
-            dargestellt. Wenn <code>onlyActiveBranch</code> <constant>TRUE</constant> war und die
-            Option <code>renderParents</code> <constant>FALSE</constant> wurde nichts dargestellt
-            wenn die tiefste aktive Seite auf einer geringeren Tiele als die <code>minDepth</code>
-            Option war.
-        </para>
-
-        <para>
-            In einfacheren Worten; Wenn <code>minDepth</code> auf <code>1</code> gesetzt war und
-            die aktive Seite eine der Seiten am Anfangs-Level, wurde nichts dargestellt wie das
-            folgende Beispiel zeigt.
-        </para>
-
-        <para>
-            Das folgende Container Setup wird angenommen:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-<?php
-$container = new Zend_Navigation(array(
-    array(
-        'label' => 'Home',
-        'uri'   => '#'
-    ),
-    array(
-        'label'  => 'Products',
-        'uri'    => '#',
-        'active' => true,
-        'pages'  => array(
-            array(
-                'label' => 'Server',
-                'uri'   => '#'
-            ),
-            array(
-                'label' => 'Studio',
-                'uri'   => '#'
-            )
-        )
-    ),
-    array(
-        'label' => 'Solutions',
-        'uri'   => '#'
-    )
-));
-]]></programlisting>
-
-        <para>
-            Der folgende Code wird in einem View Script verwendet:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-<?php echo $this->navigation()->menu()->renderMenu($container, array(
-    'minDepth'         => 1,
-    'onlyActiveBranch' => true,
-    'renderParents'    => false
-)); ?>
-]]></programlisting>
-
-        <para>
-            Vor dem Release 1.9 würde der obige Codeabschnitt nichts ausgeben.
-        </para>
-
-        <para>
-            Seit dem Release 1.9 akzeptiert die <methodname>_renderDeepestMenu()</methodname>
-            Methode in <classname>Zend_View_Helper_Navigation_Menu</classname> aktive Seiten die ein
-            Level unter <code>minDepth</code> sind, solange diese Seite Kinder hat.
-        </para>
-
-        <para>
-            Der gleiche Codeabschnitt zeigt jetzt die folgende Ausgabe:
-        </para>
-
-        <programlisting language="html"><![CDATA[
-<ul class="navigation">
-    <li>
-        <a href="#">Server</a>
-    </li>
-    <li>
-        <a href="#">Studio</a>
-    </li>
-</ul>
-]]></programlisting>
-    </sect2>
-</sect1>

+ 0 - 79
documentation/manual/de/module_specs/Zend_Translate-Migration.xml

@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17175 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.translate.migration">
-
-    <title>Migration von vorhergehenden Versionen</title>
-
-    <para>
-        Die <acronym>API</acronym> von <classname>Zend_Translate</classname> wurde von Zeit zu Zeit
-        verändert. Wenn man bereits angefangen hat <classname>Zend_Translate</classname> und dessen
-        Subkomponenten in vorhergehenden Versionen zu verwenden sollte man den anbei beschriebenen
-        Richtlinien folgen um eigene Skripts auf die neue <acronym>API</acronym> zu migrieren.
-    </para>
-
-    <sect2 id="zend.translate.migration.fromonesixtooneseven">
-        <title>Migrieren von 1.6 zu 1.7 oder neuer</title>
-        <sect3 id="zend.translate.migration.fromonesixtooneseven.languages">
-            <title>Setzen von Sprachen</title>
-
-            <para>
-                Wenn man die automatische Erkennung von Sprachen verwendet, oder Sprachen manuell
-                auf <classname>Zend_Translate</classname> setzt kann es sein das man von Zeit zu
-                Zeit eine Notiz geworfen bekommen die über nicht hinzugefügte oder leere
-                Übersetzungen schreibt. In einigen vorhergehenden Releases wurde in einigen Fällen
-                auch eine Exception geworfen.
-            </para>
-
-            <para>
-                Der Grund ist, das wenn ein Benutzer eine nicht existierende Sprache anfragt, man
-                einfach keinen Weg hat um festzustellen was falsch ist. Deswegen haben wir diese
-                Notizen hinzugefügt die einem in den eigenen Logs zeigen das der Benutzer eine
-                Sprache angefragt hat die man nicht unterstützt. Es ist zu beachten das der Code,
-                selbst wenn eine Notiz getriggert wird, weiterhin ohne Probleme arbeitet.
-            </para>
-
-            <para>
-                Aber wenn man einen eigenen Fehler oder Exception Handler, wie XDebug, verwendet
-                wird man alle Notizen zurückerhalten, selbst wenn man das nicht gewollt hat. Das ist
-                der Fall, weil diese Handler alle Einstellungen von <acronym>PHP</acronym> selbst
-                überschreiben.
-            </para>
-
-            <para>
-                Um diese Notizen wegzubekommen kann man einfach die neue Option 'disableNotices' auf
-                true setzen. Der Standardwert ist false.
-            </para>
-
-            <example id="zend.translate.migration.fromonesixtooneseven.example">
-                <title>Setzen von Sprachen ohne das man Notizen erhält</title>
-
-                <para>
-                    Nehmen wir an das wir 'en' vorhanden haben und unser Benutzer 'fr' anfragt was
-                    nicht in unserem Portfolio der übersetzten Sprachen ist.
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$language = new Zend_Translate('gettext',
-                               '/path/to/translations',
-                               'auto');
-]]></programlisting>
-
-                <para>
-                    In diesem Fall werden wir eine Notiz darüber erhalten das die Sprache 'fr' nicht
-                    vorhanden ist. Durch das einfache Hinzufügen der Option wird die Notiz
-                    abgeschaltet.
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$language = new Zend_Translate('gettext',
-                               '/path/to/translations',
-                               'auto',
-                               array('disableNotices' => true));
-]]></programlisting>
-
-            </example>
-
-        </sect3>
-    </sect2>
-</sect1>

+ 0 - 625
documentation/manual/de/module_specs/Zend_Validate-Messages.xml

@@ -1,625 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17904 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.validate.messages">
-
-    <title>Prüfungsmeldungen</title>
-
-    <para>
-        Jede Prüfung die auf <classname>Zend_Validate</classname> basiert, bietet im Fall einer
-        fehlgeschlagen Prüfung eine oder mehrere Meldungen an. Diese Information kann verwendet
-        werden um eigene Meldungen zu setzen, oder um die Meldungen die eine Prüfung zurückgeben
-        kann zu übersetzen. Die folgende Tabelle zeigt alle vorhandenen Meldungen welche von
-        jeder einzelner Prüfung zurückgegeben wird.
-    </para>
-
-    <table id="zend.validate.messages.table">
-        <title>Vorhandene Prüfmeldungen</title>
-        <tgroup cols="3">
-            <thead>
-                <row>
-                    <entry>Prüfung</entry>
-                    <entry>Konstante</entry>
-                    <entry>Meldung</entry>
-                </row>
-            </thead>
-            <tbody>
-                <row>
-                    <entry morerows="1" valign="middle">Alnum</entry>
-                    <entry><constant>NOT_ALNUM</constant></entry>
-                    <entry>'%value%' has not only alphabetic and digit characters</entry>
-                </row>
-                <row>
-                    <entry><constant>STRING_EMPTY</constant></entry>
-                    <entry>'%value%' is an empty string</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">Alpha</entry>
-                    <entry><constant>NOT_ALPHA</constant></entry>
-                    <entry>'%value%' has not only alphabetic characters</entry>
-                </row>
-                <row>
-                    <entry><constant>STRING_EMPTY</constant></entry>
-                    <entry>'%value%' is an empty string</entry>
-                </row>
-                <row>
-                    <entry>Barcode</entry>
-                    <entry>---</entry>
-                    <entry>messages are thrown by a subclass</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">Barcode_Ean13</entry>
-                    <entry><constant>INVALID</constant></entry>
-                    <entry>'%value%' is an invalid <constant>EAN</constant>-13 barcode</entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_LENGTH</constant></entry>
-                    <entry>'%value%' should be 13 characters</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_NUMERIC</constant></entry>
-                    <entry>'%value%' should contain only numeric characters</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">Barcode_UpcA</entry>
-                    <entry><constant>INVALID</constant></entry>
-                    <entry>'%value%' is an invalid <constant>UPC</constant>-A barcode</entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_LENGTH</constant></entry>
-                    <entry>'%value%' should be 12 characters</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">Between</entry>
-                    <entry><constant>NOT_BETWEEN</constant></entry>
-                    <entry>'%value%' is not between '%min%' and '%max%', inclusively</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_BETWEEN_STRICT</constant></entry>
-                    <entry>'%value%' is not strictly between '%min%' and '%max%'</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">Ccnum</entry>
-                    <entry><constant>LENGTH</constant></entry>
-                    <entry>'%value%' must contain between 13 and 19 digits</entry>
-                </row>
-                <row>
-                    <entry><constant>CHECKSUM</constant></entry>
-                    <entry>Luhn algorithm (mod-10 checksum) failed on '%value%'</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">Date</entry>
-                    <entry><constant>FALSEFORMAT</constant></entry>
-                    <entry>'%value%' does not fit given date format</entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID</constant></entry>
-                    <entry>'%value%' does not appear to be a valid date</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">Db_Abstract</entry>
-                    <entry><constant>ERROR_NO_RECORD_FOUND</constant></entry>
-                    <entry>No record matching %value% was found</entry>
-                </row>
-                <row>
-                    <entry><constant>ERROR_RECORD_FOUND</constant></entry>
-                    <entry>A record matching %value% was found</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">Digits</entry>
-                    <entry><constant>NOT_DIGITS</constant></entry>
-                    <entry>'%value%' contains not only digit characters</entry>
-                </row>
-                <row>
-                    <entry><constant>STRING_EMPTY</constant></entry>
-                    <entry>'%value%' is an empty string</entry>
-                </row>
-                <row>
-                    <entry morerows="7" valign="middle">EmailAddress</entry>
-                    <entry><constant>INVALID</constant></entry>
-                    <entry>
-                        '%value%' is not a valid email address in the basic format
-                        local-part@hostname
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_FORMAT</constant></entry>
-                    <entry>
-                        '%value%' is not a valid email address in the basic format
-                        local-part@hostname
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_HOSTNAME</constant></entry>
-                    <entry>'%hostname%' is not a valid hostname for email address '%value%'</entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_MX_RECORD</constant></entry>
-                    <entry>
-                        '%hostname%' does not appear to have a valid MX record for the email address
-                        '%value%'
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>DOT_ATOM</constant></entry>
-                    <entry>'%localPart%' not matched against dot-atom format</entry>
-                </row>
-                <row>
-                    <entry><constant>QUOTED_STRING</constant></entry>
-                    <entry>'%localPart%' not matched against quoted-string format</entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_LOCAL_PART</constant></entry>
-                    <entry>
-                        '%localPart%' is not a valid local part for email address '%value%'
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>LENGTH_EXCEEDED</constant></entry>
-                    <entry>'%value%' exceeds the allowed length</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">File_Count</entry>
-                    <entry><constant>TOO_MUCH</constant></entry>
-                    <entry>
-                        Too much files, maximum '%max%' are allowed but '%count%' are given
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>TOO_LESS</constant></entry>
-                    <entry>
-                        Too less files, minimum '%min%' are expected but '%count%' are given
-                    </entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_Crc32</entry>
-                    <entry><constant>DOES_NOT_MATCH</constant></entry>
-                    <entry>The file '%value%' does not match the given crc32 hashes</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_DETECTED</constant></entry>
-                    <entry>There was no crc32 hash detected for the given file</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_FOUND</constant></entry>
-                    <entry>The file '%value%' could not be found</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">File_ExcludeExtension</entry>
-                    <entry><constant>FALSE_EXTENSION</constant></entry>
-                    <entry>The file '%value%' has a false extension</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_FOUND</constant></entry>
-                    <entry>The file '%value%' was not found</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_ExcludeMimeType</entry>
-                    <entry><constant>FALSE_TYPE</constant></entry>
-                    <entry>The file '%value%' has a false mimetype of '%type%'</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_DETECTED</constant></entry>
-                    <entry>The mimetype of file '%value%' could not been detected</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_READABLE</constant></entry>
-                    <entry>The file '%value%' can not be read</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_Exists</entry>
-                    <entry><constant>DOES_NOT_EXIST</constant></entry>
-                    <entry>The file '%value%' does not exist</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">File_Extension</entry>
-                    <entry><constant>FALSE_EXTENSION</constant></entry>
-                    <entry>The file '%value%' has a false extension</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_FOUND</constant></entry>
-                    <entry>The file '%value%' was not found</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_FilesSize</entry>
-                    <entry><constant>TOO_BIG</constant></entry>
-                    <entry>
-                        All files in sum should have a maximum size of '%max%' but '%size%' were
-                        detected
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>TOO_SMALL</constant></entry>
-                    <entry>
-                        All files in sum should have a minimum size of '%min%' but '%size%' were
-                        detected
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_READABLE</constant></entry>
-                    <entry>One or more files can not be read</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_Hash</entry>
-                    <entry><constant>DOES_NOT_MATCH</constant></entry>
-                    <entry>The file '%value%' does not match the given hashes</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_DETECTED</constant></entry>
-                    <entry>There was no hash detected for the given file</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_FOUND</constant></entry>
-                    <entry>The file '%value%' could not be found</entry>
-                </row>
-                <row>
-                    <entry morerows="5" valign="middle">File_ImageSize</entry>
-                    <entry><constant>WIDTH_TOO_BIG</constant></entry>
-                    <entry>
-                        Maximum allowed width for image '%value%' should be '%maxwidth%' but
-                        '%width%' detected
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>WIDTH_TOO_SMALL</constant></entry>
-                    <entry>
-                        Minimum expected width for image '%value%' should be '%minwidth%' but
-                        '%width%' detected
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>HEIGHT_TOO_BIG</constant></entry>
-                    <entry>
-                        Maximum allowed height for image '%value%' should be '%maxheight%' but
-                        '%height%' detected
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>HEIGHT_TOO_SMALL</constant></entry>
-                    <entry>
-                        Minimum expected height for image '%value%' should be '%minheight%' but
-                        '%height%' detected
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_DETECTED</constant></entry>
-                    <entry>The size of image '%value%' could not be detected</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_READABLE</constant></entry>
-                    <entry>The image '%value%' can not be read</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_IsCompressed</entry>
-                    <entry><constant>FALSE_TYPE</constant></entry>
-                    <entry>The file '%value%' is not compressed, '%type%' detected</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_DETECTED</constant></entry>
-                    <entry>The mimetype of file '%value%' could not been detected</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_READABLE</constant></entry>
-                    <entry>The file '%value%' can not be read</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_IsImage</entry>
-                    <entry><constant>FALSE_TYPE</constant></entry>
-                    <entry>The file '%value%' is no image, '%type%' detected</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_DETECTED</constant></entry>
-                    <entry>The mimetype of file '%value%' could not been detected</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_READABLE</constant></entry>
-                    <entry>The file '%value%' can not be read</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_Md5</entry>
-                    <entry><constant>DOES_NOT_MATCH</constant></entry>
-                    <entry>The file '%value%' does not match the given md5 hashes</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_DETECTED</constant></entry>
-                    <entry>There was no md5 hash detected for the given file</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_FOUND</constant></entry>
-                    <entry>The file '%value%' could not be found</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_MimeType</entry>
-                    <entry><constant>FALSE_TYPE</constant></entry>
-                    <entry>The file '%value%' has a false mimetype of '%type%'</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_DETECTED</constant></entry>
-                    <entry>The mimetype of file '%value%' could not been detected</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_READABLE</constant></entry>
-                    <entry>The file '%value%' can not be read</entry>
-                </row>
-                <row>
-                    <entry>File_NotExists</entry>
-                    <entry><constant>DOES_EXIST</constant></entry>
-                    <entry>The file '%value%' does exist</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_Sha1</entry>
-                    <entry><constant>DOES_NOT_MATCH</constant></entry>
-                    <entry>The file '%value%' does not match the given sha1 hashes</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_DETECTED</constant></entry>
-                    <entry>There was no sha1 hash detected for the given file</entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_FOUND</constant></entry>
-                    <entry>The file '%value%' could not be found</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_Size</entry>
-                    <entry><constant>TOO_BIG</constant></entry>
-                    <entry>
-                        Maximum allowed size for file '%value%' is '%max%' but '%size%' detected
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>TOO_SMALL</constant></entry>
-                    <entry>
-                        Minimum expected size for file '%value%' is '%min%' but '%size%' detected
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_FOUND</constant></entry>
-                    <entry>The file '%value%' could not be found</entry>
-                </row>
-                <row>
-                    <entry morerows="9" valign="middle">File_Upload</entry>
-                    <entry><constant>INI_SIZE</constant></entry>
-                    <entry>The file '%value%' exceeds the defined ini size</entry>
-                </row>
-                <row>
-                    <entry><constant>FORM_SIZE</constant></entry>
-                    <entry>The file '%value%' exceeds the defined form size</entry>
-                </row>
-                <row>
-                    <entry><constant>PARTIAL</constant></entry>
-                    <entry>The file '%value%' was only partially uploaded</entry>
-                </row>
-                <row>
-                    <entry><constant>NO_FILE</constant></entry>
-                    <entry>The file '%value%' was not uploaded</entry>
-                </row>
-                <row>
-                    <entry><constant>NO_TMP_DIR</constant></entry>
-                    <entry>No temporary directory was found for the file '%value%'</entry>
-                </row>
-                <row>
-                    <entry><constant>CANT_WRITE</constant></entry>
-                    <entry>The file '%value%' can't be written</entry>
-                </row>
-                <row>
-                    <entry><constant>EXTENSION</constant></entry>
-                    <entry>
-                        The extension returned an error while uploading the file '%value%'
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>ATTACK</constant></entry>
-                    <entry>The file '%value%' was illegal uploaded, possible attack</entry>
-                </row>
-                <row>
-                    <entry><constant>FILE_NOT_FOUND</constant></entry>
-                    <entry>The file '%value%' was not found</entry>
-                </row>
-                <row>
-                    <entry><constant>UNKNOWN</constant></entry>
-                    <entry>Unknown error while uploading the file '%value%'</entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">File_WordCount</entry>
-                    <entry><constant>TOO_MUCH</constant></entry>
-                    <entry>
-                        Too much words, maximum '%max%' are allowed but '%count%' were counted
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>TOO_LESS</constant></entry>
-                    <entry>
-                        Too less words, minimum '%min%' are expected but '%count%' were counted
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>NOT_FOUND</constant></entry>
-                    <entry>The file '%value%' could not be found</entry>
-                </row>
-                <row>
-                    <entry>Float</entry>
-                    <entry><constant>NOT_FLOAT</constant></entry>
-                    <entry>'%value%' does not appear to be a float</entry>
-                </row>
-                <row>
-                    <entry>GreaterThan</entry>
-                    <entry><constant>NOT_GREATER</constant></entry>
-                    <entry>'%value%' is not greater than '%min%'</entry>
-                </row>
-                <row>
-                    <entry>Hex</entry>
-                    <entry><constant>NOT_HEX</constant></entry>
-                    <entry>'%value%' has not only hexadecimal digit characters</entry>
-                </row>
-                <row>
-                    <entry morerows="7" valign="middle">Hostname</entry>
-                    <entry><constant>IP_ADDRESS_NOT_ALLOWED</constant></entry>
-                    <entry>
-                        '%value%' appears to be an IP address, but IP addresses are not allowed
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>UNKNOWN_TLD</constant></entry>
-                    <entry>
-                        '%value%' appears to be a <acronym>DNS</acronym> hostname but cannot match
-                        <acronym>TLD</acronym> against known list
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_DASH</constant></entry>
-                    <entry>
-                        '%value%' appears to be a <acronym>DNS</acronym> hostname but contains a
-                        dash (-) in an invalid position
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_HOSTNAME_SCHEMA</constant></entry>
-                    <entry>
-                        '%value%' appears to be a <acronym>DNS</acronym> hostname but cannot match
-                        against hostname schema for <acronym>TLD</acronym> '%tld%'
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>UNDECIPHERABLE_TLD</constant></entry>
-                    <entry>
-                        '%value%' appears to be a <acronym>DNS</acronym> hostname but cannot extract
-                        <acronym>TLD</acronym> part
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_HOSTNAME</constant></entry>
-                    <entry>
-                        '%value%' does not match the expected structure for a <acronym>DNS</acronym>
-                        hostname
-                    </entry>
-                </row>
-                <row>
-                    <entry><constant>INVALID_LOCAL_NAME</constant></entry>
-                    <entry>'%value%' does not appear to be a valid local network name</entry>
-                </row>
-                <row>
-                    <entry><constant>LOCAL_NAME_NOT_ALLOWED</constant></entry>
-                    <entry>
-                        '%value%' appears to be a local network name but local network names are not
-                        allowed
-                    </entry>
-                </row>
-                <row>
-                    <entry morerows="2" valign="middle">Iban</entry>
-                    <entry><constant>NOTSUPPORTED</constant></entry>
-                    <entry>'%value%' does not have <acronym>IBAN</acronym></entry>
-                </row>
-                <row>
-                    <entry><constant>FALSEFORMAT</constant></entry>
-                    <entry>'%value%' has a false format</entry>
-                </row>
-                <row>
-                    <entry><constant>CHECKFAILED</constant></entry>
-                    <entry>'%value%' has failed the <acronym>IBAN</acronym> check</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">Identical</entry>
-                    <entry><constant>NOT_SAME</constant></entry>
-                    <entry>The token '%token%' does not match the given token '%value%'</entry>
-                </row>
-                <row>
-                    <entry><constant>MISSING_TOKEN</constant></entry>
-                    <entry>No token was provided to match against</entry>
-                </row>
-                <row>
-                    <entry>InArray</entry>
-                    <entry><constant>NOT_IN_ARRAY</constant></entry>
-                    <entry>'%value%' was not found in the haystack</entry>
-                </row>
-                <row>
-                    <entry>Int</entry>
-                    <entry><constant>NOT_INT</constant></entry>
-                    <entry>'%value%' does not appear to be an integer</entry>
-                </row>
-                <row>
-                    <entry>Ip</entry>
-                    <entry><constant>NOT_IP_ADDRESS</constant></entry>
-                    <entry>'%value%' does not appear to be a valid IP address</entry>
-                </row>
-                <row>
-                    <entry>LessThan</entry>
-                    <entry><constant>NOT_LESS</constant></entry>
-                    <entry>'%value%' is not less than '%max%'</entry>
-                </row>
-                <row>
-                    <entry>NotEmpty</entry>
-                    <entry><constant>IS_EMPTY</constant></entry>
-                    <entry>Value is required and can't be empty</entry>
-                </row>
-                <row>
-                    <entry>Regex</entry>
-                    <entry><constant>NOT_MATCH</constant></entry>
-                    <entry>'%value%' does not match against pattern '%pattern%'</entry>
-                </row>
-                <row>
-                    <entry morerows="1" valign="middle">StringLength</entry>
-                    <entry><constant>TOO_SHORT</constant></entry>
-                    <entry>'%value%' is less than %min% characters long</entry>
-                </row>
-                <row>
-                    <entry><constant>TOO_LONG</constant></entry>
-                    <entry>'%value%' is greater than %max% characters long</entry>
-                </row>
-            </tbody>
-        </tgroup>
-    </table>
-
-    <para>
-        Zusätzlich kann man alle Meldungstemplates einer Prüfung mit der Methode
-        <methodname>getMessageTemplates()</methodname> erhalten. Sie gibt ein Array mit den
-        Meldungen zurück die eine Prüfung im Fall einer fehlgeschlagenen Prüfung zurückgeben könnte.
-    </para>
-
-    <programlisting language="php"><![CDATA[
-$validator = new Zend_Validate_Alnum();
-$messages  = $validator->getMessageTemplates();
-]]></programlisting>
-
-    <sect2 id="zend.validate.messages.limitation">
-        <title>Begrenzen der Größe einer Prüfungsmeldung</title>
-
-        <para>
-            Manchmal ist es notwendig die maximale Größe die eine Prüfungsmeldung haben kann zu
-            begrenzen. Zum Beispiel wenn die View nur eine maximale Größe von 100 Zeichen für die
-            Darstellung auf einer Zeile erlaubt. Um die Verwendung zu vereinfachen, ist
-            <classname>Zend_Validate</classname> dazu in der Lage die maximal zurückgegebene
-            Größe einer Prüfnachricht zu begrenzen.
-        </para>
-
-        <para>
-            Um die aktuell gesetzte Größe zu erhalten ist
-            <methodname>Zend_Validate::getMessageLength()</methodname> zu verwenden. Wenn diese
-            -1 ist, dann wird die zurückgegebene Nachricht nicht begrenzt. Das ist das
-            Standardverhalten.
-        </para>
-
-        <para>
-            Um die Größe der zurückgegebenen Nachrichten zu begrenzen ist
-            <methodname>Zend_Validate::setMessageLength()</methodname> zu verwenden. Man kann diese
-            auf jede benötigte Integer Größe setzen. Wenn die zurückzugebende Nachricht die
-            gesetzte Größe überschreitet, dann wird die Nachricht abgeschnitten und der String
-            '<emphasis>...</emphasis>' wird statt dem Rest der Nachricht hinzugefügt.
-        </para>
-
-        <programlisting language="php"><![CDATA[
-Zend_Validate::setMessageLength(100);
-]]></programlisting>
-
-        <note>
-            <para>
-                Es ist zu beachten das die gesetzte Länge der Nachrichten für alle Prüfungen
-                verwendet wird, sogar für selbstdefinierte, solange Sie
-                <classname>Zend_Validate_Abstract</classname> erweitern.
-            </para>
-        </note>
-    </sect2>
-
-</sect1>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 0 - 62
documentation/manual/de/module_specs/Zend_View-Migration.xml

@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17172 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.view.migration">
-    <title>Migration von vorhergehenden Versionen</title>
-
-    <para>
-        Dieses Kapitel dokumentiert primär Brüche in der Rückwärts-Kompatibilität die in
-        <classname>Zend_View</classname> durchgeführt wurden, und sollte als Hilfe im Fall einer
-        Migration von vorhergehenden Versionen dienen.
-    </para>
-
-    <sect2 id="zend.view.migration.zf5748">
-        <title>Migration von Versionen vor 1.7.5</title>
-
-        <para>
-            Vor dem 1.7.5 Release wurde das Zend Framework Team darauf aufmerksam gemacht das eine
-            potentielle Local File Inclusion (LFI) Schwäche in der
-            <methodname>Zend_View::render()</methodname> Methode existiert. Vor 1.7.5, erlaubte die
-            Methode standardmäßig, die Fähigkeit View Skripte zu spezifizieren die Schreibweisen für
-            Eltern-Verzeichnisse enthalten (z.B. "../" oder "..\"). Das öffnet die Möglichkeit für
-            eine LFI Attacke wenn ungefilterte Benutzereingaben an die
-            <methodname>render()</methodname> Methode übergeben werden:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-// Wobei $_GET['foobar'] = '../../../../etc/passwd'
-echo $view->render($_GET['foobar']); // LFI Einbruch
-]]></programlisting>
-
-        <para>
-            <classname>Zend_View</classname> wirft jetzt standardmäßig eine Ausnahme wenn so ein
-            View Skript angefragt wird.
-        </para>
-
-        <sect3 id="zend.view.migration.zf5748.disabling">
-            <title>Ausschalten des LFI Schutzes für die render() Methode</title>
-
-            <para>
-                Da viele Entwickler gemeldet haben das Sie so eine Schreibweise in Ihren
-                Anwendungen verwenden die <emphasis>nicht</emphasis> das Ergebnis einer
-                Benutzereingabe sind, wurde ein spezielles Flag erstellt um das Deaktivieren des
-                standardmäßigen Schutzes zu erlauben. Es gibt 2 Methoden um das Durchzuführen:
-                Indem der 'lfiProtectionOn' Schlüssel in den Konstruktor-Optionen übergeben wird,
-                oder durch den expliziten Aufruf der <methodname>setLfiProtection()</methodname>
-                Methode.
-            </para>
-
-            <programlisting language="php"><![CDATA[
-// Ausschalten über den Konstruktor
-$view = new Zend_View(array('lfiProtectionOn' => false));
-
-// Ausschalten über expliziten Aufruf der Methode:
-$view = new Zend_View();
-$view->setLfiProtection(false);
-]]></programlisting>
-        </sect3>
-    </sect2>
-</sect1>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 265 - 0
documentation/manual/de/ref/migration-06.xml

@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18682 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.06">
+    <title>Zend Framework 0.6</title>
+
+    <para>
+        Wenn man von einem älteren Release auf Zend Framework 0.6 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
+    </para>
+
+    <sect2 id="migration.06.zend.controller">
+        <title>Zend_Controller</title>
+
+        <para>
+            Die grundlegende Verwendung der <acronym>MVC</acronym> Komponenten hat sich nicht
+            verändert; man kann immer noch das folgende machen:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+require_once 'Zend/Controller/Front.php';
+Zend_Controller_Front::run('/path/to/controllers');
+]]></programlisting>
+
+        <programlisting language="php"><![CDATA[
+/* -- Erstelle einen Router -- */
+$router = new Zend_Controller_RewriteRouter();
+$router->addRoute('user',
+                  'user/:username',
+                  array('controller' => 'user', 'action' => 'info')
+);
+
+/* -- Setze ihn im Controller -- */
+$ctrl = Zend_Controller_Front::getInstance();
+$ctrl->setRouter($router);
+
+/* -- Setze da Controller Verzeichnis und starte die Verarbeitung -- */
+$ctrl->setControllerDirectory('/path/to/controllers');
+$ctrl->dispatch();
+]]></programlisting>
+
+        <para>
+            Wir empfehlen die Verwendung des Response Objektes, um Inhalte und Header zu sammeln.
+            Dies erlaubt den flexibleren Wechsel von Ausgabeformaten (z.B. <acronym>JSON</acronym>
+            oder <acronym>XML</acronym> statt <acronym>XHTML</acronym>) in deiner Applikation.
+            Standardmäßig verarbeitet <methodname>dispatch()</methodname> die Antwort, sendet
+            Header und gibt die Inhalte aus. Man kann den Front Controller auch auffordern, die
+            Antwort durch <methodname>returnResponse()</methodname> zurückzugeben und die Antwort
+            dann auf eigene Weise ausgeben. Eine zukünftige Version des Front Controllers könnte
+            die Verwendung des Response Objektes durch Output Buffering erzwingen.
+        </para>
+
+        <para>
+            Es gibt viele weitere zusätzliche Funktionalitäten, welche die vorherige
+            <acronym>API</acronym> erweitern. Diese sind in der Dokumentation aufgeführt.
+        </para>
+
+        <para>
+            Die meisten Änderungen, die man beachten muss, betreffen das Erweitern der diversen
+            Komponenten. Die wichtigsten davon sind:
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    <methodname>Zend_Controller_Front::dispatch()</methodname> fängt standardmäßig
+                    die Ausnahmen im Response Objekt ab und gibt sie nicht aus, um sicherzugehen,
+                    dass keine sensitiven Systeminformationen ausgegeben werden. Man kann dies auf
+                    mehrere Arten überschreiben:
+                </para>
+
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            Setzen von <methodname>throwExceptions()</methodname> im Front
+                            Controller:
+                        </para>
+                        <programlisting language="php"><![CDATA[
+$front->throwExceptions(true);
+]]></programlisting>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            Setzen von <methodname>renderExceptions()</methodname> im Response
+                            Objekt:
+                        </para>
+                        <programlisting language="php"><![CDATA[
+$response->renderExceptions(true);
+$front->setResponse($response);
+$front->dispatch();
+
+// oder:
+$front->returnResponse(true);
+$response = $front->dispatch();
+$response->renderExceptions(true);
+echo $response;
+]]></programlisting>
+                    </listitem>
+                </itemizedlist>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <methodname>Zend_Controller_Dispatcher_Interface::dispatch()</methodname>
+                    akzeptiert und gibt nun ein <link
+                        linkend="zend.controller.request">Anfrage Objekt</link> anstelle eines
+                    Dispatcher Token zurück.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <methodname>Zend_Controller_Router_Interface::route()</methodname>
+                    akzeptiert und gibt nun ein <link
+                        linkend="zend.controller.request">Anfrage Objekt</link> anstelle eines
+                    Dispatcher Token zurück.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para><classname>Zend_Controller_Action</classname> Änderungen beinhalten:</para>
+
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            Der Konstruktur akzeptiert nun genau drei Argumente,
+                            <classname>Zend_Controller_Request_Abstract</classname>
+                            <varname>$request</varname>,
+                            <classname>Zend_Controller_Response_Abstract</classname>
+                            <varname>$response</varname>, und
+                            <type>Array</type> <varname>$params</varname> (Optional).
+                            <methodname>Zend_Controller_Action::__construct()</methodname>
+                            verwendet diese, um die Request, Response und invokeArgs Eigenschaften
+                            für das Objekt zu setzen, und beim Überschreiben des Konstrukturs
+                            sollte man dies ebenfalls tun. Besser ist es, die
+                            <methodname>init()</methodname> Methode zu verwenden, um jedwede
+                            Instanzkonfiguration durchzuführen, weil diese Methode als letzte
+                            Methode des Konstrukturs aufgerufen wird.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <methodname>run()</methodname> ist nicht länger als final definiert,
+                            wird aber auch nicht länger vom Front Controller verwendet; sein
+                            einziger Zweck ist, dass die Klasse auch als Page Controller verwendet
+                            werden kann. Sie nimmt nun zwei optionale Argument an, ein
+                            <classname>Zend_Controller_Request_Abstract</classname>
+                            <varname>$request</varname> und ein
+                            <classname>Zend_Controller_Response_Abstract</classname>
+                            <varname>$response</varname>.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <methodname>indexAction()</methodname> muss nicht mehr länger definiert
+                            werden, aber wird als Standardaktion empfohlen. Dies erlaubt dem
+                            RewriteRouter und den Action Controllern andere Standardaktionsmethoden
+                            zu definieren.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <methodname>__call()</methodname> sollte überschrieben werden, um jede
+                            undefinierte Aktion automatisch verarbeiten zu können.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <methodname>_redirect()</methodname> nimmt nun ein optionales zweites
+                            Argument entgegen, den <acronym>HTTP</acronym> Code, der mit dem
+                            Redirect zurückgegeben werden soll, und ein optionales drittes Argument
+                            <varname>$prependBase</varname>, das angibt, dass die im Request Objekt
+                            registrierte Basis URL der übergebenen <acronym>URL</acronym> voran
+                            gestellt werden soll.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            Die <varname>$_action</varname> Eigenschaft wird nicht mehr gesetzt.
+                            Diese Eigenschaft war ein
+                            <classname>Zend_Controller_Dispatcher_Token</classname>, der in der
+                            aktuellen Inkarnation nicht mehr länger existiert. Der einzige Zweck
+                            des Tokens war, Informationen über angeforderte Controller, Aktion und
+                            <acronym>URL</acronym> Parameter bereit zu stellen. Diese Infrmationen
+                            ist nun im Request Objekt verfügbar und kann wie folgt abgerufen
+                            werden:
+                        </para>
+
+                        <programlisting language="php"><![CDATA[
+// Hole den angeforderten Controllernamen
+// Der Zugriff erfolgte bisher über: $this->_action->getControllerName().
+// Das Beispiel unten verwendet getRequest(), obwohl man auch direkt auf die
+// $_request Eigenschaft zugreifen kann; die Verwendung von getRequest() wird
+// empfohlen, da eine Elternklasse den Zugriff auf das Request Objekt
+// überschreiben könnte
+$controller = $this->getRequest()->getControllerName();
+
+// Hole den angeforderten Aktionsnamen
+// Der Zugriff erfolgte bisher über: $this->_action->getActionName().
+$action = $this->getRequest()->getActionName();
+
+// Hole die Anfrageparameter
+// Dies hat sich nicht verändert; die _getParams() und _getParam()
+// Methoden leiten nun einfach auf das Request Objekt weiter.
+$params = $this->_getParams();
+// fordere den 'foo' Parameter an und verwende
+// 'default', wenn kein Standardwert gefunden werden kann
+$foo = $this->_getParam('foo', 'default');
+]]></programlisting>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <methodname>noRouteAction()</methodname> wurde entfernt. Der geeignete
+                            Weg, um nicht vorhandene Aktionsmethoden abzufangen, wenn man sie an
+                            eine Standardaktion weiter leiten möchte, sollte die Verwendung von
+                            <methodname>__call()</methodname> sein:
+                        </para>
+
+                        <programlisting language="php"><![CDATA[
+public function __call($method, $args)
+{
+    // Wenn eine nicht vorhandene 'Action' Methode angefordert wurde,
+    // leite auf die Standard Aktionsmethode um:
+    if ('Action' == substr($method, -6)) {
+        return $this->defaultAction();
+    }
+
+    throw new Zend_Controller_Exception('Invalid method called');
+}
+]]></programlisting>
+                    </listitem>
+                </itemizedlist>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <methodname>Zend_Controller_RewriteRouter::setRewriteBase()</methodname> wurde
+                    entfernt. Stattdessen soll
+                    <methodname>Zend_Controller_Front::setBaseUrl()</methodname> verwendet werden
+                    (oder <methodname>Zend_Controller_Request_Http::setBaseUrl()</methodname>, wenn
+                    die Request Klasse verwendet wird).
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Controller_Plugin_Interface</classname> wurde durch
+                    <classname>Zend_Controller_Plugin_Abstract</classname> ersetzt. Alle Methoden
+                    nehmen nun ein <link linkend="zend.controller.request">Request Objekt</link>
+                    statt eines Dispatcher Tokens entgegen bzw. geben es zurück.
+                </para>
+            </listitem>
+        </itemizedlist>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 101 - 0
documentation/manual/de/ref/migration-08.xml

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18682 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.08">
+    <title>Zend Framework 0.8</title>
+
+    <para>
+        Wenn man von einem älteren Release auf Zend Framework 0.8 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
+    </para>
+
+    <sect2 id="migration.08.zend.controller">
+        <title>Zend_Controller</title>
+
+        <para>
+            Durch bisherige Änderungen bleibt die wesentliche Verwendung der <acronym>MVC</acronym>
+            Komponenten gleich:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+require_once 'Zend/Controller/Front.php';
+Zend_Controller_Front::run('/path/to/controllers');
+]]></programlisting>
+
+        <para>
+            Dennoch wurde die Verzeichnisstruktur gründliche überarbeitet, verschiedene Komponenten
+            wurden entfernt und mehrere andere umbenannt und hinzugefügt. Die Änderungen beinhalten:
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    <classname>Zend_Controller_Router</classname> wurde entfernt für den Rewrite
+                    Router entfernt.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Controller_RewriteRouter</classname> wurde in
+                    <classname>Zend_Controller_Router_Rewrite</classname> umbenannt und zum Standard
+                    Router befördert, der mit dem Framework ausgeliefert wird;
+                    <classname>Zend_Controller_Front</classname> wird ihn als Standard verwenden,
+                    wenn kein anderer Router übergeben wird.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    Eine neue Route Klasse für die Verwendung mit dem Rewrite Router wurde
+                    eingeführt: <classname>Zend_Controller_Router_Route_Module</classname>; sie
+                    deckt die Standardrouten ab, die vom <acronym>MVC</acronym> verwendet werden
+                    und bietet die Unterstützung für <link
+                        linkend="zend.controller.modular">Controller Module</link>.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Controller_Router_StaticRoute</classname> wurde umbenannt in
+                    <classname>Zend_Controller_Router_Route_Static</classname>.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Controller_Dispatcher</classname> wurde umbenannt in
+                    <classname>Zend_Controller_Dispatcher_Standard</classname>.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <methodname>Zend_Controller_Action::_forward()</methodname>'s Argumente wurden
+                    geändert. Die Signatur ist nun:
+                </para>
+
+                <programlisting language="php"><![CDATA[
+final protected function _forward($action,
+                                  $controller = null,
+                                  $module = null,
+                                  array $params = null);
+]]></programlisting>
+
+                <para>
+                    <varname>$action</varname> wird immer benötigt; wenn kein Controller angegeben
+                    wird, wird eine Action im aktuellen Controller angenommen.
+                    <varname>$module</varname> wird immer ignoriert, es sei denn
+                    <varname>$controller</varname> wird angegeben. Schließlich werden alle
+                    übergebenen Parameter <varname>$params</varname> an das Request Objekt
+                    angehängt. Wenn man keinen Controller oder kein Modul angeben, aber dennoch
+                    Parameter übergeben möchte, gibt man einfach <constant>NULL</constant> für diese
+                    Werte an.
+                </para>
+            </listitem>
+        </itemizedlist>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 54 - 0
documentation/manual/de/ref/migration-09.xml

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18682 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.09">
+    <title>Zend Framework 0.9</title>
+
+    <para>
+        Wenn man von einem älteren Release auf Zend Framework 0.9 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
+    </para>
+
+    <sect2 id="migration.09.zend.controller">
+        <title>Zend_Controller</title>
+
+        <para>
+            0.9.3 bietet <link linkend="zend.controller.actionhelpers">Aktionhelfer</link> neu an.
+            Als Teil dieser Änderung wurden die folgenden Methoden entfernt da Sie nun im <link
+                linkend="zend.controller.actionhelpers.redirector">Weiterleitungs
+                Aktionhelfer</link> inkludiert sind:
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    <methodname>setRedirectCode()</methodname>; wurde umbenannt in
+                    <methodname>Zend_Controller_Action_Helper_Redirector::setCode()</methodname>.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>setRedirectPrependBase()</methodname>; wurde umbenannt in
+                    <methodname>Zend_Controller_Action_Helper_Redirector::setPrependBase()</methodname>.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>setRedirectExit()</methodname>; wurde umbenannt in
+                    <methodname>Zend_Controller_Action_Helper_Redirector::setExit()</methodname>.
+                </para>
+            </listitem>
+        </itemizedlist>
+
+        <para>
+            Lese die <link linkend="zend.controller.actionhelpers">Aktionhelfer Dokumentation</link>
+            für nähere Informationen über das empfangen und manipulieren von Helfer Objekten und die
+            <link linkend="zend.controller.actionhelpers.redirector">Weiterleitungshelfer
+                Dokumentation</link> für weitere Information über das setzen von
+            Weiterleitungsoptionen (sowie alternative Methoden des weiterleitens).
+        </para>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 295 - 0
documentation/manual/de/ref/migration-10.xml

@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18682 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.10">
+    <title>Zend Framework 1.0</title>
+
+    <para>
+        Wenn man von einem älteren Release auf Zend Framework 1.0 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
+    </para>
+
+    <sect2 id="migration.10.zend.controller">
+        <title>Zend_Controller</title>
+
+        <para>
+            Die prinzipiellen Änderungen die durch 1.0.0RC1 angeboten werden sind die Einführung und
+            standardmäßige Aktivierung des
+            <link linkend="zend.controller.plugins.standard.errorhandler">ErrorHandler</link>
+            Plugins und den
+            <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>
+            Aktionhelfer. Bitte lies die Dokumentation jedes einzelnen gründlich um zu sehen wie sie
+            arbeiten und welchen Effekt Sie auf die eigene Anwendung haben können.
+        </para>
+
+        <para>
+            Der <classname>ErrorHandler</classname> Plugin läuft wärend der
+            <methodname>postDispatch()</methodname> Prüfung auf Ausnahmen, und leitet zu einem
+            spezifizierten Fehlerhandler Controller weiter. Solch ein Controller sollte in der
+            eigenen Anwendung inkludiert werden. Er kann deaktiviert werden durch das setzen des
+            Frontcontroller Parameters <property>noErrorHandler</property>:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$front->setParam('noErrorHandler', true);
+]]></programlisting>
+
+        <para>
+            Der <classname>ViewRenderer</classname> Aktionhelfer automatisiert die Injizierung der
+            View in den Aktioncontroller genauso wie das autorendern von Viewskripten basierend auf
+            die aktuelle Aktion. Das primäre Problem dem man begegnen kann ist, wenn man Aktionen
+            hat die keine View Skripte rendern und weder vorwärts- noch weiterleiten, da der
+            <classname>ViewRenderer</classname> versucht ein View Skript zu Rendern basierend auf
+            dem Aktionnamen.
+        </para>
+
+        <para>
+            Es gibt verschiedene Strategien die man anwenden kann um den eigenen Code upzudaten. In
+            kurzer Form, kann man global den <classname>ViewRenderer</classname> im eigenen
+            Frontcontroller Bootstrap vor dem Abarbeiten ausschalten:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// Annahme das $front eine Instanz von Zend_Controller_Front ist
+$front->setParam('noViewRenderer', true);
+]]></programlisting>
+
+        <para>
+            Trotzdem ist es keine gute Langzeitstrategie, da es auch bedeutet das man mehr Code
+            schreiben muß.
+        </para>
+
+        <para>
+            Wenn man bereit ist damit zu beginnen die <classname>ViewRenderer</classname>
+            Funktionalität zu verwenden, gibt es verschiedene Dinge die man im eigenen
+            Controllercode beachten muß. Zuerst muß auf die Aktionmethoden (die Methoden die mit
+            'Action' enden) geachtet werden, und ausgesucht werden was eine jede machen soll. Wenn
+            nichts vom folgenden passiert, muß man Änderungen durchführen:
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>Aufruf von <command>$this->render();</command></para>
+            </listitem>
+            <listitem>
+                <para>Aufruf von <command>$this->_forward();</command></para>
+            </listitem>
+            <listitem>
+                <para>Aufruf von <command>$this->_redirect();</command></para>
+            </listitem>
+            <listitem>
+                <para>Aufruf des <classname>Redirector</classname> Aktionhelfers</para>
+            </listitem>
+        </itemizedlist>
+
+        <para>
+            Die einfachste Änderung ist das Ausschalten des Auto-Rendering für diese Methode:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$this->_helper->viewRenderer->setNoRender();
+]]></programlisting>
+
+        <para>
+            Wenn man herausfindet das keine der eigenen Aktionmethoden rendern, weiterleiten oder
+            umleiten, wird man voraussichtlich die oben angeführte Zeile in die eigene
+            <methodname>preDispatch()</methodname> oder <methodname>init()</methodname> Methode
+            einfügen wollen:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+public function preDispatch()
+{
+    // Ausschalten des autorendern vom View Skript
+    $this->_helper->viewRenderer->setNoRender()
+    // .. andere Dinge tun...
+}
+]]></programlisting>
+
+        <para>
+            Wenn <methodname>render()</methodname> aufgerufen wird, und man
+            <link linkend="zend.controller.modular">die konventionelle Modulare Verzeichnis
+                Struktur</link> verwendet, wird man den Code ändern wollen um Autorendern zu
+            Verwenden:
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    Wenn man mehrere View Skripte in einer einzelnen Aktion rendert muß nichts
+                    geändert werden.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Wenn man einfach <methodname>render()</methodname> ohne Argumente aufruft,
+                    können diese Zeilen entfernt werden.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Wenn man <methodname>render()</methodname> mit Argumenten aufruft, und danach
+                    nicht irgendeine Bearbeitung durchführt oder mehrere View sktipe rendert, können
+                    diese Aufrufe zu <command>$this->_helper->viewRenderer();</command> geändert
+                    werden.
+                </para>
+            </listitem>
+        </itemizedlist>
+
+        <para>
+            Wenn die konventionelle modulare Verzeichnisstruktur nicht verwendet wird, gibt es eine
+            Vielzahl von Methoden für das Setzen des View Basispfades und der Skript
+            Pfadspezifikationen so das man den <classname>ViewRenderer</classname> verwenden kann.
+            Bitte lies die <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer
+                Dokumentation</link> für Informationen über diese Methoden.
+        </para>
+
+        <para>
+            Wenn ein View Objekt von der Registry verwendet, oder das eigene View Objekt verändert,
+            oder eine andere View Implementation verwendet wird, dann wird man den
+            <classname>ViewRenderer</classname> in diesem Objekt injiziieren wollen. Das kann ganz
+            einfach jederzeit durchgeführt werden.
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    Vor dem Verarbeiten einer Frontcontroller Instanz:
+                </para>
+
+                <programlisting language="php"><![CDATA[
+// Annahme das $view bereits definiert wurde
+$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
+Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
+]]></programlisting>
+            </listitem>
+
+            <listitem>
+                <para>
+                    Jederzeit wärend des Bootstrap Prozesses:
+                </para>
+
+                <programlisting language="php"><![CDATA[
+$viewRenderer =
+    Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
+$viewRenderer->setView($view);
+]]></programlisting>
+            </listitem>
+        </itemizedlist>
+
+        <para>
+            Es gibt viele Wege den <classname>ViewRenderer</classname> zu modifizieren inklusive dem
+            Setzen eines anderen View Skripts zum Rendern, dem Spezifizieren von Veränderungen für
+            alle veränderbaren Elemente eines View Skript Pfades (inklusive der Endung), dem
+            Auswählen eines Antwort-benannten Segments zur Anpassung und mehr. Wenn die
+            konventionelle modulare Verzeichnisstruktur nicht verwendet wird, kann noch immer eine
+            andere Pfad Spezifikation mit dem <classname>ViewRenderer</classname> zugeordnet werden.
+        </para>
+
+        <para>
+            Wir empfehlen die Adaptierung des eigenen Codes um den
+            <classname>ErrorHandler</classname> und <classname>ViewRenderer</classname> zu verwenden
+            da diese neue Kernfunktionalitäten sind.
+        </para>
+    </sect2>
+
+    <sect2 id="migration.10.zend.currency">
+        <title>Zend_Currency</title>
+
+        <para>
+            Die Erstellung von <classname>Zend_Currency</classname> wurde vereinfacht.
+            Es muß nicht länger ein Skript angegeben oder auf <constant>NULL</constant> gesetzt
+            werden. Der optionale script Parameter ist jetzt eine Option welche durch die
+            <methodname>setFormat()</methodname> Methode gesetzt werden kann.
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$currency = new Zend_Currency($currency, $locale);
+]]></programlisting>
+
+        <para>
+            Die <methodname>setFormat()</methodname> Methode nimmt jetzt ein Array von Optionen.
+            Diese Optionen werden permanent gesetzt und überschreiben alle vorher gesetzten Werte.
+            Auch eine neue Option 'precision' wurde integriert. Die folgenden Optionen wurden
+            überarbeitet:
+        </para>
+
+        <itemizedlist mark='opencircle'>
+            <listitem>
+                <para>
+                    <emphasis>position</emphasis>:
+                    Ersetzt den alten 'rules' Parameter.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis>script</emphasis>:
+                    Ersetzt den alten 'script' Parameter.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis>format</emphasis>:
+                    Ersetzt den alten 'locale' Parameter welcher keine neue Währung, sondern
+                    nur das Format der Nummern setzt.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis>display</emphasis>:
+                    Ersetzt den alten 'rules' Parameter.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis>precision</emphasis>:
+                    Neuer Parameter.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis>name</emphasis>: Ersetzt den alten 'rules' Parameter. Setzt den
+                    vollständigen Namen der Währung.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis>currency</emphasis>:
+                    Neuer Parameter.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <emphasis>symbol</emphasis>:
+                    Neuer Parameter.
+                </para>
+            </listitem>
+        </itemizedlist>
+
+        <programlisting language="php"><![CDATA[
+$currency->setFormat(array $options);
+]]></programlisting>
+
+        <para>
+            Die <methodname>toCurrency()</methodname> Methode unterstützt die optionalen 'script'
+            und 'locale' Parameter nicht mehr. Stattdessen nimmt sie ein Array von Optionen welche
+            die selben Schlüssel enthalten können wie die <methodname>setFormat()</methodname>
+            Methode.
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$currency->toCurrency($value, array $options);
+]]></programlisting>
+
+        <para>
+            Die Methoden <methodname>getSymbol()</methodname>,
+            <methodname>getShortName()</methodname>, <methodname>getName()</methodname>,
+            <methodname>getRegionList()</methodname> und <methodname>getCurrencyList()</methodname>
+            sind nicht länger statisch und können vom Objekt aus aufgerufen werden. Die geben den
+            aktuell gesetzten Wert des Objekts zurück wenn kein Parameter gesetzt wurde.
+        </para>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 240 - 0
documentation/manual/de/ref/migration-110.xml

@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18683 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.110">
+    <title>Zend Framework 1.10</title>
+
+    <para>
+        Wenn man von einem älteren Release auf Zend Framework 1.10 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
+    </para>
+
+    <sect2 id="migration.110.zend.file.transfer">
+        <title>Zend_File_Transfer</title>
+        <sect3 id="migration.110.zend.file.transfer.count">
+            <title>Count Prüfung</title>
+
+            <para>
+                Vor dem Release 1.10 hat die <classname>MimeType</classname> Prüfung eine falsche
+                Benennung verwendet. Aus Gründen der Konsistenz wurden die folgenden Konstanten
+                geändert:
+            </para>
+
+            <table id="migration.110.zend.file.transfer.count.table">
+                <title>Geänderte Prüfmeldungen</title>
+                <tgroup cols="4">
+                    <thead>
+                        <row>
+                            <entry>Alt</entry>
+                            <entry>Neu</entry>
+                            <entry>Wert</entry>
+                        </row>
+                    </thead>
+
+                    <tbody>
+                        <row>
+                            <entry><constant>TOO_MUCH</constant></entry>
+                            <entry><constant>TOO_MANY</constant></entry>
+                            <entry>
+                                Too many files, maximum '%max%' are allowed but '%count%' are given
+                            </entry>
+                        </row>
+
+                        <row>
+                            <entry><constant>TOO_LESS</constant></entry>
+                            <entry><constant>TOO_FEW</constant></entry>
+                            <entry>
+                                Too few files, minimum '%min%' are expected but '%count%' are given
+                            </entry>
+                        </row>
+                    </tbody>
+                </tgroup>
+            </table>
+
+            <para>
+                Wenn man diese Meldungen im eigenen Code übersetzt dann sollte man die neuen
+                Konstanten verwenden. Als Vorteil muss man den originalen String im englischen nicht
+                mehr übersetzen um die richtige Schreibweise zu erhalten.
+            </para>
+        </sect3>
+
+        <sect3 id="migration.110.zend.file.transfer.mimetype">
+            <title>MimeType Prüfung</title>
+
+            <para>
+                Aus Sicherheitsgründen haben wir den standardmäßigen Fallback Mechanismus der
+                <classname>MimeType</classname>, <classname>ExcludeMimeType</classname>,
+                <classname>IsCompressed</classname> und <classname>IsImage</classname> Prüfungen
+                ausgeschaltet. Das bedeutet, wenn die <emphasis>fileInfo</emphasis> oder
+                <emphasis>magicMime</emphasis> Erweiterungen nicht gefunden werden können, dann
+                wird die Prüfung immer fehlschlagen.
+            </para>
+
+            <para>
+                Wenn es notwendig ist das man für die Prüfung die <acronym>HTTP</acronym> Felder
+                verwendet welche vom Benutzer geschickt werden, dann kann man dieses Feature
+                einschalten indem die <methodname>enableHeaderCheck()</methodname> Methode
+                verwendet wird.
+            </para>
+
+            <note>
+                <title>Sicherheits Hinweis</title>
+
+                <para>
+                    Man sollte beachten, das wenn man sich auf die <acronym>HTTP</acronym> Felder
+                    verlässt, die vom Benutzer geschickt werden, das ein Sicherheits Risiko ist.
+                    Diese können einfach geändert werden und könnten es einem Benutzer erlauben eine
+                    schädliche Datei zu schicken.
+                </para>
+            </note>
+
+            <example id="migration.110.zend.file.transfer.example">
+                <title>Die Verwendung der HTTP Felder erlauben</title>
+
+                <programlisting language="php"><![CDATA[
+// Bei der Initiierung
+$valid = new Zend_File_Transfer_Adapter_Http(array('headerCheck' => true);
+
+// oder im Nachhinein
+$valid->enableHeaderCheck();
+]]></programlisting>
+            </example>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.110.zend.validate">
+        <title>Zend_Validate</title>
+
+        <sect3 id="migration.110.zend.validate.selfwritten">
+            <title>Selbst geschriebene Adapter</title>
+
+            <para>
+                Wenn in einer selbst geschriebenen Prüfung ein Fehler gesetzt wird um diesen
+                zurückzugeben muß die <methodname>_error()</methodname> Methode aufgerufen werden.
+                Vor Zend Framework 1.10 konnte man diese Methode ohne einen angegebenen Parameter
+                aufrufen. Es wurde dann das erste gefundene Nachrichtentemplate verwendet.
+            </para>
+
+            <para>
+                Dieses Verhalten ist problematisch wenn man Prüfungen hat die mehr als eine
+                Nachricht zurückgeben kann. Auch wenn man eine existierende Prüfung erweitert kann
+                man unerwartete Ergebnisse erhalten. Das kann zum Problem führen das der Benutzer
+                nicht die Nachricht erhält die man erwartet.
+            </para>
+
+            <programlisting language="php"><![CDATA[
+My_Validator extends Zend_Validate_Abstract
+{
+    public isValid($value)
+    {
+        ...
+        $this->_error(); // Unerwartete Ergebnisse zwischen verschiedenen OS
+        ...
+    }
+}
+]]></programlisting>
+
+            <para>
+                Um dieses Problem zu verhindern erlaubt es die <methodname>_error()</methodname>
+                Methode nicht mehr ohne einen angegebenen Parameter aufgerufen zu werden.
+            </para>
+
+            <programlisting language="php"><![CDATA[
+My_Validator extends Zend_Validate_Abstract
+{
+    public isValid($value)
+    {
+        ...
+        $this->_error(self::MY_ERROR);
+        // Definierter Fehler, keine unerwarteten Ergebnisse
+        ...
+    }
+}
+]]></programlisting>
+        </sect3>
+
+        <sect3 id="migration.110.zend.validate.datevalidator">
+            <title>Vereinfachungen im Date Prüfer</title>
+
+            <para>
+                Vor Zend Framework 1.10 wurden 2 identische Nachrichten im Date Prüfer geworfen.
+                Es gab <constant>NOT_YYYY_MM_DD</constant> und <constant>FALSEFORMAT</constant>.
+                Ab Zend Framework 1.10 wird nur mehr die <constant>FALSEFORMAT</constant> Meldung
+                zurückgegeben wenn das angegebene Datum mit dem gesetzten Format nicht
+                übereinstimmt.
+            </para>
+        </sect3>
+
+        <sect3 id="migration.110.zend.validate.barcodevalidator">
+            <title>Fehlerbehebungen im Alpha, Alum und Barcode Prüfer</title>
+
+            <para>
+                Vor dem Zend Framework 1.10 waren Nachrichten in den 2 Barcode Adaptern, dem Alpha
+                und dem Alnum Prüfer identisch. Das führte zu Problemen bei der Verwendung von
+                eigenen Meldungen, Übersetzungen oder mehreren Instanzen dieser Prüfer.
+            </para>
+
+            <para>
+                Mit Zend Framework 1.10 wurden die Werte dieser Konstanten so geändert das Sie
+                eindeutig sind. Wenn man, so wie es im Handbuhc erklärt wird, die Konstanten
+                verwendet gibt es keine Änderungen. Aber wenn man den Inhalt der Konstanten im
+                eigenen Code verwendet dann muß man diese Ändern. Die folgende Tabelle zeigt die
+                geänderten Werte:
+            </para>
+
+            <table id="migration.110.zend.validate.barcodevalidator.table">
+                <title>Vorhandenen Meldungen der Prüfer</title>
+                <tgroup cols="3">
+                    <thead>
+                        <row>
+                            <entry>Prüfer</entry>
+                            <entry>Konstante</entry>
+                            <entry>Wert</entry>
+                        </row>
+                    </thead>
+
+                    <tbody>
+                        <row>
+                            <entry>Alnum</entry>
+                            <entry><constant>STRING_EMPTY</constant></entry>
+                            <entry>alnumStringEmpty</entry>
+                        </row>
+
+                        <row>
+                            <entry>Alpha</entry>
+                            <entry><constant>STRING_EMPTY</constant></entry>
+                            <entry>alphaStringEmpty</entry>
+                        </row>
+
+                        <row>
+                            <entry>Barcode_Ean13</entry>
+                            <entry><constant>INVALID</constant></entry>
+                            <entry>ean13Invalid</entry>
+                        </row>
+
+                        <row>
+                            <entry>Barcode_Ean13</entry>
+                            <entry><constant>INVALID_LENGTH</constant></entry>
+                            <entry>ean13InvalidLength</entry>
+                        </row>
+
+                        <row>
+                            <entry>Barcode_UpcA</entry>
+                            <entry><constant>INVALID_LENGTH</constant></entry>
+                            <entry>upcaInvalidLength</entry>
+                        </row>
+
+                        <row>
+                            <entry>Digits</entry>
+                            <entry><constant>STRING_EMPTY</constant></entry>
+                            <entry>digitsStringEmpty</entry>
+                        </row>
+                    </tbody>
+                </tgroup>
+            </table>
+        </sect3>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 134 - 0
documentation/manual/de/ref/migration-15.xml

@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18682 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.15">
+    <title>Zend Framework 1.5</title>
+
+    <para>
+        Wenn man von einem älteren Release auf Zend Framework 1.5 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
+    </para>
+
+    <sect2 id="migration.15.zend.controller">
+        <title>Zend_Controller</title>
+
+        <para>
+            Obwohl die meisten grundsätzlichen Funktionalitäten die gleichen bleiben und alle
+            dokumentierten Funktionalitäten die gleichen bleiben gibt es doch ein spezielles
+            <emphasis>undokumentiertes</emphasis> "Feature" das geändert wurde.
+        </para>
+
+        <para>
+            Wenn <acronym>URL</acronym>s geschrieben werden besteht der dokumentierte Weg darin die
+            Aktionsnamen camelCased mit einem Trennzeichen zu schreiben; diese sind normalerweise
+            '.' oder '-', können aber im Dispatcher konfiguriert werden. Der Dispatcher ändert den
+            Aktionsnamen intern auf Kleinschreibung und verwendet diese Trennzeichen um die
+            Aktionsmethode wieder zu bauen indem er sie camelCase schreibt. Trotzdem, weil
+            <acronym>PHP</acronym> Funktionen nicht unabhängig von der Schreibweise sind,
+            <emphasis>könnte</emphasis> man <acronym>URL</acronym>s mit camelCase schreiben und der
+            Dispatcher würde diese auf den gleichen Platz auflösen. Zum Beispiel, 'camel-cased'
+            würde durch den Dispatcher zu 'camelCasedAction' werden; trotzdem, durch den Fall der
+            unabhängigen Schreibweise in <acronym>PHP</acronym>, würden beide die selbe Methode
+            ausführen.
+        </para>
+
+        <para>
+            Das führt zu Problemen mit dem ViewRenderer wenn View Skripte aufgelöst werden. Der
+            kanonische, dokumentierte Weg besteht darin das alle Trennzeichen zu Bindestrichen
+            umgewandelt und die Wörter kleingeschrieben werden. Das erzeugt eine semantische
+            Bindung zwischen Aktionen und View Skripten, und die Normalisierung stellt sicher
+            das die Skripte gefunden werden. Trotzdem, wenn die Aktion 'camelCased' aufgerufen und
+            aufgelöst wird, ist das Trennzeichen nicht mehr vorhanden, und der ViewRenderer
+            versucht einen anderen Ort aufzulösen -- <filename>camelcased.phtml</filename> statt
+            <filename>camel-cased.phtml</filename>.
+        </para>
+
+        <para>
+            Einige Entwickler hängen an diesem "Feature", welches nie angedacht war. Verschiedene
+            Änderungen im 1.5.0 Baum, führen dazu das der ViewRenderer diese Pfade nicht länger
+            auflöst; die semantische Bindung wird nun erzwungen. Ale erstes, erzwingt der
+            Dispatcher nun die Groß-/Kleinschreibung in Aktionsnamen. Das bedeutet dass das
+            hinleiten zu eigenen Aktionen über die URL durch Verwendung von camelCase nicht länger
+            auf die gleiche Methode aufgelöst wird wie mit Trennzeichen (z.B. 'camel-casing').
+            Das führt dazu das der ViewRenderer jetzt nur mehr zeichen-getrennte Aktionen
+            honoriert wenn er View Skripte auflöst.
+        </para>
+
+        <para>
+            Wenn man findet das man auf dieses "Feature" nicht verzichten kann gibt es mehrere
+            Optionen:
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    Beste Option: Die View Skripte umbenennen. Vorteile: zukünftige Kompatibilität.
+                    Nachteile: Wenn man viele View Skripte hat die auf dem vorigen aufbauen führt
+                    das, unerwarteter Weise, zu vielen Umbenennungen die durchgeführt werden müssen.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    Zweitbeste Option: Der ViewRenderer delegiert nun die Auflösung von View
+                    Skripten zu <classname>Zend_Filter_Inflector</classname>; man kann die Regeln
+                    des Inflectors ändern damit er nicht länger die Wörter der Aktion mit einem
+                    Bindestrich trennt:
+                </para>
+
+                <programlisting language="php"><![CDATA[
+$viewRenderer =
+    Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
+$inflector = $viewRenderer->getInflector();
+$inflector->setFilterRule(':action', array(
+    new Zend_Filter_PregReplace(
+        '#[^a-z0-9' . preg_quote(DIRECTORY_SEPARATOR, '#') . ']+#i',
+        ''
+    ),
+    'StringToLower'
+));
+]]></programlisting>
+
+                <para>
+                    Der obige Code ändert den Inflector so, das er Wörter nicht länger mit einem
+                    Bindestrich trennt; Es kann auch gewünscht sein den 'StringToLower' Filter zu
+                    entfernen man die aktuellen View Skripte camelCased benannt haben
+                    <emphasis>will</emphasis>.
+                </para>
+
+                <para>
+                    Wenn die Umbenennung der View Skripte zu aufwendig oder Zeitintensiv ist, dann
+                    ist das die beste Option wenn man die Zeit hierfür findet.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    Die am wenigsten zu empfehlende Option: Man kann den Dispatcher dazu zwingen
+                    camelCase Aktionsnamen mit einem neuen Front Controller Flag
+                    <property>useCaseSensitiveActions</property> zu bearbeiten:
+                </para>
+
+                <programlisting language="php"><![CDATA[
+$front->setParam('useCaseSensitiveActions', true);
+]]></programlisting>
+
+                <para>
+                    Das erlaubt es camelCase in der URL zu verwenden uns es trotzdem auf die
+                    gleiche Aktion aufzulösen wie wenn Trennzeichen verwendet worden wären. Das
+                    bedeutet dass das Originale Problem trotzdem durchschlägt; es kann notwendig
+                    sein die zweite Option von oben zusätzlich zu verwenden um sicherzustellen
+                    das die Dinge in allen Variationen funktionieren.
+                </para>
+
+                <para>
+                    Man sollte auch beachten das die Verwendung dieses Flags eine Notiz auslöst,
+                    das dessen Verwendung nicht mehr durchgeführt werden sollte.
+                </para>
+            </listitem>
+        </itemizedlist>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 104 - 0
documentation/manual/de/ref/migration-16.xml

@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18682 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.16">
+    <title>Zend Framework 1.6</title>
+
+    <para>
+        Wenn man von einem älteren Release auf Zend Framework 1.6 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
+    </para>
+
+    <sect2 id="migration.16.zend.controller">
+        <title>Zend_Controller</title>
+
+        <sect3 id="migration.16.zend.controller.dispatcher">
+            <title>Änderungen im Dispatcher Interface</title>
+
+            <para>
+                Benutzer haben uns darauf aufmerksam gemacht das sowohl
+                <classname>Zend_Controller_Front</classname> als auch
+                <classname>Zend_Controller_Router_Route_Module</classname> Methoden des Dispatchers
+                verwenden die nicht im Dispatcher Interface waren. Wir haben jetzt die folgenden
+                drei Methoden hinzugefügt um sicherzustellen das eigene Dispatcher weiterhin mit der
+                ausgelieferten Implementation arbeiten:
+            </para>
+
+            <itemizedlist>
+                <listitem><para>
+                    <methodname>getDefaultModule()</methodname>: Sollte den Namen des
+                    Standardmoduls zurückgeben.
+                </para></listitem>
+
+                <listitem><para>
+                    <methodname>getDefaultControllerName()</methodname>: Sollte den Namen des
+                    Standardcontrollers zurückgeben.
+                </para></listitem>
+
+                <listitem><para>
+                    <methodname>getDefaultAction()</methodname>: Sollte den Namen der
+                    Standardaktion zurückgeben.
+                </para></listitem>
+            </itemizedlist>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.16.zend.file.transfer">
+        <title>Zend_File_Transfer</title>
+
+        <sect3 id="migration.16.zend.file.transfer.validators">
+            <title>Änderungen bei der Verwendung von Prüfungen</title>
+
+            <para>
+                Wie von Benutzern festgestellt wurde, haben die Prüfungen von
+                <classname>Zend_File_Transfer</classname> nicht auf die gleiche Art und Weise
+                funktioniert wie standardmäßigen von <classname>Zend_Form</classname>.
+                <classname>Zend_Form</classname> erlaubt die Verwendung eines
+                <varname>$breakChainOnFailure</varname> Parameters der die Prüfung für alle weitere
+                Prüfer unterbricht wenn ein Prüffehler aufgetreten ist.
+            </para>
+
+            <para>
+                Deshalb wurde dieser Parameter bei allen bestehenden Prüfungen von
+                <classname>Zend_File_Transfer</classname> hinzugefügt.
+            </para>
+
+            <itemizedlist>
+                <listitem><para>
+                    Alte <acronym>API</acronym> der Methode:
+                    <methodname>addValidator($validator, $options, $files)</methodname>.
+                </para></listitem>
+
+                <listitem><para>
+                    Neue <acronym>API</acronym> der Methode:
+                    <methodname>addValidator($validator, $breakChainOnFailure, $options,
+                    $files)</methodname>.
+                </para></listitem>
+            </itemizedlist>
+
+            <para>
+                Um also eigene Skripte auf die neue <acronym>API</acronym> zu migrieren, muß einfach
+                ein <constant>FALSE</constant> nach der Definition der gewünschten Prüfung
+                hinzugefügt werden.
+            </para>
+
+            <example id="migration.16.zend.file.transfer.example">
+                <title>Wie man eigene Dateiprüfungen von 1.6.1 auf 1.6.2 ändert</title>
+
+                <programlisting language="php"><![CDATA[
+// Beispiel für 1.6.1
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('FilesSize', array('1B', '100kB'));
+
+// Selbes Beispiel für 1.6.2 und neuer
+// Beachte das hinzugefügte boolsche false
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('FilesSize', false, array('1B', '100kB'));
+]]></programlisting>
+            </example>
+        </sect3>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 264 - 102
documentation/manual/de/module_specs/Zend_File_Transfer-Migration.xml → documentation/manual/de/ref/migration-17.xml

@@ -1,68 +1,46 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17987 -->
+<!-- EN-Revision: 18682 -->
 <!-- Reviewed: no -->
-<sect1 id="zend.file.transfer.migration">
-
-    <title>Migration von vorhergehenden Versionen</title>
+<sect1 id="migration.17">
+    <title>Zend Framework 1.7</title>
 
     <para>
-        Die <acronym>API</acronym> von <classname>Zend_File_Transfer</classname> wurde von Zeit zu
-        Zeit verändert. Wenn man bereits angefangen hat <classname>Zend_File_Transfer</classname>
-        und dessen Subkomponenten in vorhergehenden Versionen zu verwenden sollte man den anbei
-        beschriebenen Richtlinien folgen um eigene Skripts auf die neue <acronym>API</acronym> zu
-        migrieren.
+        Wenn man von einem älteren Release auf Zend Framework 1.7 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
     </para>
 
-    <sect2 id="zend.file.transfer.migration.fromonenineonetooneten">
-        <title>Migration von 1.9 zu 1.10 oder neuer</title>
-
-        <sect3 id="zend.file.transfer.migration.fromonenineonetooneten.mimetype">
-            <title>MimeType Prüfung</title>
+    <sect2 id="migration.17.zend.controller">
+        <title>Zend_Controller</title>
 
-            <para>
-                Aus Sicherheitsgründen haben wir den standardmäßigen Fallback Mechanismus der
-                <classname>MimeType</classname>, <classname>ExcludeMimeType</classname>,
-                <classname>IsCompressed</classname> und <classname>IsImage</classname> Prüfungen
-                ausgeschaltet. Das bedeutet, wenn die <emphasis>fileInfo</emphasis> oder
-                <emphasis>magicMime</emphasis> Erweiterungen nicht gefunden werden können, dann
-                wird die Prüfung immer fehlschlagen.
-            </para>
+        <sect3 id="migration.17.zend.controller.dispatcher">
+            <title>Änderungen im Dispatcher Interface</title>
 
             <para>
-                Wenn es notwendig ist das man für die Prüfung die <acronym>HTTP</acronym> Felder
-                verwendet welche vom Benutzer geschickt werden, dann kann man dieses Feature
-                einschalten indem die <methodname>enableHeaderCheck()</methodname> Methode
-                verwendet wird.
+                Benutzer haben uns darauf aufmerksam gemacht das
+                <classname>Zend_Controller_Action_Helper_ViewRenderer</classname> Methoden auf der
+                abstrakten Dispatcher Klasse verwendet hat die nicht im Dispatcher Interface waren.
+                Die folgenden Methoden wurden hinzugefügt um sicherzustellen das eigene Dispatcher
+                weiterhin mit den ausgelieferten Implementierungen funktionieren:
             </para>
 
-            <note>
-                <title>Sicherheits Hinweis</title>
-
-                <para>
-                    Man sollte beachten, das wenn man sich auf die <acronym>HTTP</acronym> Felder
-                    verlässt, die vom Benutzer geschickt werden, das ein Sicherheits Risiko ist.
-                    Diese können einfach geändert werden und könnten es einem Benutzer erlauben eine
-                    schädliche Datei zu schicken.
-                </para>
-            </note>
-
-            <example id="zend.file.transfer.migration.fromonenineonetooneten.example">
-                <title>Die Verwendung der HTTP Felder erlauben</title>
-
-                <programlisting language="php"><![CDATA[
-// Bei der Initiierung
-$valid = new Zend_File_Transfer_Adapter_Http(array('headerCheck' => true);
-
-// oder im Nachhinein
-$valid->enableHeaderCheck();
-]]></programlisting>
-        </example>
+            <itemizedlist>
+                <listitem>
+                    <para>
+                        <methodname>formatModuleName()</methodname>: sollte verwendet werden um
+                        einen rohen Controllernamen zu nehmen, wie den einen der in einem
+                        Anfrageobjekt gepackt ist, und Ihn in einen richtigen Klassennamen zu
+                        reformatieren den eine Klasse, die
+                        <classname>Zend_Controller_Action</classname> erweitert, verwenden würde
+                    </para>
+                </listitem>
+            </itemizedlist>
         </sect3>
     </sect2>
 
-    <sect2 id="zend.file.transfer.migration.fromonesixtooneseven">
-        <title>Migration von 1.6 zu 1.7 oder neuer</title>
-        <sect3 id="zend.file.transfer.migration.fromonesixtooneseven.validators">
+    <sect2 id="migration.17.zend.file.transfer">
+        <title>Zend_File_Transfer</title>
+
+        <sect3 id="migration.17.zend.file.transfer.validators">
             <title>Änderungen bei der Verwendung von Filtern und Prüfungen</title>
 
             <para>
@@ -84,7 +62,7 @@ $valid->enableHeaderCheck();
                 Parameter getan werden muß.
             </para>
 
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.rename">
+            <sect4 id="migration.17.zend.file.transfer.validators.rename">
                 <title>Filter: Rename</title>
 
                 <itemizedlist>
@@ -104,7 +82,7 @@ $valid->enableHeaderCheck();
                     </para></listitem>
                 </itemizedlist>
 
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.rename.example">
+                <example id="migration.17.zend.file.transfer.validators.rename.example">
                     <title>Änderungen für den Rename Filter von 1.6 zu 1.7</title>
 
                     <programlisting language="php"><![CDATA[
@@ -123,7 +101,7 @@ $upload->addFilter('Rename',
                 </example>
             </sect4>
 
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.count">
+            <sect4 id="migration.17.zend.file.transfer.validators.count">
                 <title>Prüfung: Count</title>
 
                 <itemizedlist>
@@ -142,7 +120,7 @@ $upload->addFilter('Rename',
                     </para></listitem>
                 </itemizedlist>
 
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.count.example">
+                <example id="migration.17.zend.file.transfer.validators.count.example">
                     <title>Änderungen für die Count Prüfung von 1.6 zu 1.7</title>
 
                     <programlisting language="php"><![CDATA[
@@ -161,7 +139,7 @@ $upload->addValidator('Count',
                 </example>
             </sect4>
 
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.extension">
+            <sect4 id="migration.17.zend.file.transfer.validators.extension">
                 <title>Prüfung: Extension</title>
 
                 <itemizedlist>
@@ -179,7 +157,7 @@ $upload->addValidator('Count',
                     </para></listitem>
                 </itemizedlist>
 
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.extension.example">
+                <example id="migration.17.zend.file.transfer.validators.extension.example">
                     <title>Änderungen für die Extension Prüfung von 1.6 zu 1.7</title>
 
                     <programlisting language="php"><![CDATA[
@@ -198,7 +176,7 @@ $upload->addValidator('Extension',
                 </example>
             </sect4>
 
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.filessize">
+            <sect4 id="migration.17.zend.file.transfer.validators.filessize">
                 <title>Prüfung: FilesSize</title>
 
                 <itemizedlist>
@@ -225,7 +203,7 @@ $upload->addValidator('Extension',
                     verwendet werden.
                 </para>
 
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.filessize.example">
+                <example id="migration.17.zend.file.transfer.validators.filessize.example">
                     <title>Änderungen für die FilesSize Prüfung von 1.6 zu 1.7</title>
 
                     <programlisting language="php"><![CDATA[
@@ -251,7 +229,7 @@ $upload->setUseByteSting(true); // Flag setzen
                 </example>
             </sect4>
 
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.hash">
+            <sect4 id="migration.17.zend.file.transfer.validators.hash">
                 <title>Prüfung: Hash</title>
 
                 <itemizedlist>
@@ -269,7 +247,7 @@ $upload->setUseByteSting(true); // Flag setzen
                     </para></listitem>
                 </itemizedlist>
 
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.hash.example">
+                <example id="migration.17.zend.file.transfer.validators.hash.example">
                     <title>Änderungen für die Hash Prüfung von 1.6 zu 1.7</title>
 
                     <programlisting language="php"><![CDATA[
@@ -288,7 +266,7 @@ $upload->addValidator('Hash',
                 </example>
             </sect4>
 
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.imagesize">
+            <sect4 id="migration.17.zend.file.transfer.validators.imagesize">
                 <title>Prüfung: ImageSize</title>
 
                 <itemizedlist>
@@ -309,7 +287,7 @@ $upload->addValidator('Hash',
                     </para></listitem>
                 </itemizedlist>
 
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.imagesize.example">
+                <example id="migration.17.zend.file.transfer.validators.imagesize.example">
                     <title>Änderungen für die ImageSize Prüfung von 1.6 zu 1.7</title>
 
                     <programlisting language="php"><![CDATA[
@@ -330,7 +308,7 @@ $upload->addValidator('ImageSize',
                 </example>
             </sect4>
 
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.size">
+            <sect4 id="migration.17.zend.file.transfer.validators.size">
                 <title>Prüfung: Size</title>
 
                 <itemizedlist>
@@ -349,7 +327,7 @@ $upload->addValidator('ImageSize',
                     </para></listitem>
                 </itemizedlist>
 
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.size.example">
+                <example id="migration.17.zend.file.transfer.validators.size.example">
                     <title>Änderungen für die Size Prüfung von 1.6 zu 1.7</title>
 
                     <programlisting language="php"><![CDATA[
@@ -371,58 +349,242 @@ $upload->addValidator('Size',
         </sect3>
     </sect2>
 
-    <sect2 id="zend.file.transfer.migration.fromonesixonetoonesixtwo">
-        <title>Migration von 1.6.1 zu 1.6.2 oder neuer</title>
-        <sect3 id="zend.file.transfer.migration.fromonesixonetoonesixtwo.validators">
-            <title>Änderungen bei der Verwendung von Prüfungen</title>
+    <sect2 id="migration.17.zend.locale">
+        <title>Zend_Locale</title>
+
+        <sect3 id="migration.17.zend.locale.islocale">
+            <title>Änderungen bei der Verwendung von isLocale()</title>
 
             <para>
-                Wie von Benutzern festgestellt wurde, haben die Prüfungen von
-                <classname>Zend_File_Transfer</classname> nicht auf die gleiche Art und Weise
-                funktioniert wie standardmäßigen von <classname>Zend_Form</classname>.
-                <classname>Zend_Form</classname> erlaubt die Verwendung eines
-                <varname>$breakChainOnFailure</varname> Parameters der die Prüfung für alle weitere
-                Prüfer unterbricht wenn ein Prüffehler aufgetreten ist.
+                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>
-                Deshalb wurde dieser Parameter bei allen bestehenden Prüfungen von
-                <classname>Zend_File_Transfer</classname> hinzugefügt.
+                Um die Skripte auf die neue <acronym>API</acronym> zu migrieren muß die Methode
+                einfach wie anbei gezeigt verwendet werden.
             </para>
 
-            <itemizedlist>
-                <listitem><para>
-                    Alte <acronym>API</acronym> der Methode:
-                    <methodname>addValidator($validator, $options, $files)</methodname>.
-                </para></listitem>
-
-                <listitem><para>
-                    Neue <acronym>API</acronym> der Methode:
-                    <methodname>addValidator($validator, $breakChainOnFailure, $options,
-                    $files)</methodname>.
-                </para></listitem>
-            </itemizedlist>
+            <example id="migration.17.zend.locale.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="migration.17.zend.locale.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 also eigene Skripte auf die neue <acronym>API</acronym> zu migrieren, muß einfach
-                ein <constant>FALSE</constant> nach der Definition der gewünschten Prüfung
-                hinzugefügt werden.
+                Um die eigenen Skripte auf die neue <acronym>API</acronym> zu migrieren, muß einfach
+                die Methode wie unten gezeigt verwendet werden.
             </para>
 
-            <example id="zend.file.transfer.migration.fromonesixonetoonesixtwo.example">
-                <title>Wie man eigene Dateiprüfungen von 1.6.1 auf 1.6.2 ändert</title>
+            <example id="migration.17.zend.locale.getdefault.example">
+                <title>Wie man getDefault() von 1.6 auf 1.7 ändert</title>
 
                 <programlisting language="php"><![CDATA[
-// Beispiel für 1.6.1
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('FilesSize', array('1B', '100kB'));
+// Beispiel für 1.6
+$locales = $locale->getDefault(Zend_Locale::BROWSER);
 
-// Selbes Beispiel für 1.6.2 und neuer
-// Beachte das hinzugefügte boolsche false
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('FilesSize', false, array('1B', '100kB'));
+// 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>
+
+    <sect2 id="migration.17.zend.translate">
+        <title>Zend_Translate</title>
+
+        <sect3 id="migration.17.zend.translate.languages">
+            <title>Setzen von Sprachen</title>
+
+            <para>
+                Wenn man die automatische Erkennung von Sprachen verwendet, oder Sprachen manuell
+                auf <classname>Zend_Translate</classname> setzt kann es sein das man von Zeit zu
+                Zeit eine Notiz geworfen bekommen die über nicht hinzugefügte oder leere
+                Übersetzungen schreibt. In einigen vorhergehenden Releases wurde in einigen Fällen
+                auch eine Exception geworfen.
+            </para>
+
+            <para>
+                Der Grund ist, das wenn ein Benutzer eine nicht existierende Sprache anfragt, man
+                einfach keinen Weg hat um festzustellen was falsch ist. Deswegen haben wir diese
+                Notizen hinzugefügt die einem in den eigenen Logs zeigen das der Benutzer eine
+                Sprache angefragt hat die man nicht unterstützt. Es ist zu beachten das der Code,
+                selbst wenn eine Notiz getriggert wird, weiterhin ohne Probleme arbeitet.
+            </para>
+
+            <para>
+                Aber wenn man einen eigenen Fehler oder Exception Handler, wie XDebug, verwendet
+                wird man alle Notizen zurückerhalten, selbst wenn man das nicht gewollt hat. Das ist
+                der Fall, weil diese Handler alle Einstellungen von <acronym>PHP</acronym> selbst
+                überschreiben.
+            </para>
+
+            <para>
+                Um diese Notizen wegzubekommen kann man einfach die neue Option 'disableNotices' auf
+                true setzen. Der Standardwert ist false.
+            </para>
+
+            <example id="migration.17.zend.translate.example">
+                <title>Setzen von Sprachen ohne das man Notizen erhält</title>
+
+                <para>
+                    Nehmen wir an das wir 'en' vorhanden haben und unser Benutzer 'fr' anfragt was
+                    nicht in unserem Portfolio der übersetzten Sprachen ist.
+                </para>
+
+                <programlisting language="php"><![CDATA[
+$language = new Zend_Translate('gettext',
+                               '/path/to/translations',
+                               'auto');
+]]></programlisting>
+
+                <para>
+                    In diesem Fall werden wir eine Notiz darüber erhalten das die Sprache 'fr' nicht
+                    vorhanden ist. Durch das einfache Hinzufügen der Option wird die Notiz
+                    abgeschaltet.
+                </para>
+
+                <programlisting language="php"><![CDATA[
+$language = new Zend_Translate('gettext',
+                               '/path/to/translations',
+                               'auto',
+                               array('disableNotices' => true));
+]]></programlisting>
+            </example>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.17.zend.view">
+        <title>Zend_View</title>
+
+        <note>
+            <para>
+                Die Änderung der API in <classname>Zend_View</classname> sind nur dann zu beachten
+                wenn man zum Release 1.7.5 oder höher hochrüstet.
+            </para>
+        </note>
+
+        <para>
+            Vor dem 1.7.5 Release wurde das Zend Framework Team darauf aufmerksam gemacht das eine
+            potentielle Local File Inclusion (LFI) Schwäche in der
+            <methodname>Zend_View::render()</methodname> Methode existiert. Vor 1.7.5, erlaubte die
+            Methode standardmäßig, die Fähigkeit View Skripte zu spezifizieren die Schreibweisen für
+            Eltern-Verzeichnisse enthalten (z.B. "../" oder "..\"). Das öffnet die Möglichkeit für
+            eine LFI Attacke wenn ungefilterte Benutzereingaben an die
+            <methodname>render()</methodname> Methode übergeben werden:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// Wobei $_GET['foobar'] = '../../../../etc/passwd'
+echo $view->render($_GET['foobar']); // LFI Einbruch
+]]></programlisting>
+
+        <para>
+            <classname>Zend_View</classname> wirft jetzt standardmäßig eine Ausnahme wenn so ein
+            View Skript angefragt wird.
+        </para>
+
+        <sect3 id="zend.view.migration.zf5748.disabling">
+            <title>Ausschalten des LFI Schutzes für die render() Methode</title>
+
+            <para>
+                Da viele Entwickler gemeldet haben das Sie so eine Schreibweise in Ihren
+                Anwendungen verwenden die <emphasis>nicht</emphasis> das Ergebnis einer
+                Benutzereingabe sind, wurde ein spezielles Flag erstellt um das Deaktivieren des
+                standardmäßigen Schutzes zu erlauben. Es gibt 2 Methoden um das Durchzuführen:
+                Indem der 'lfiProtectionOn' Schlüssel in den Konstruktor-Optionen übergeben wird,
+                oder durch den expliziten Aufruf der <methodname>setLfiProtection()</methodname>
+                Methode.
+            </para>
+
+            <programlisting language="php"><![CDATA[
+// Ausschalten über den Konstruktor
+$view = new Zend_View(array('lfiProtectionOn' => false));
+
+// Ausschalten über expliziten Aufruf der Methode:
+$view = new Zend_View();
+$view->setLfiProtection(false);
 ]]></programlisting>
-        </example>
         </sect3>
     </sect2>
 </sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 60 - 0
documentation/manual/de/ref/migration-18.xml

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18682 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.18">
+    <title>Zend Framework 1.8</title>
+
+    <para>
+        Wenn man von einem älteren Release auf Zend Framework 1.8 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
+    </para>
+
+    <sect2 id="migration.18.zend.controller">
+        <title>Zend_Controller</title>
+
+        <sect3 id="migration.18.zend.controller.router">
+            <title>Änderungen der Standard Route</title>
+
+            <para>
+                Da übersetzte Segmente in der neuen Standard Route eingeführt wurden, ist das
+                '<emphasis>@</emphasis>' Zeichen kein spezielles Zeichen am Begin eines Segments
+                der Route. Um es trotzdem in einem statischen Segment verwenden zu können, muß es
+                durch das Voranstellen eines zweiten '<emphasis>@</emphasis>' Zeichens escapt
+                werden. Die selbe Regel trifft für das '<emphasis>:</emphasis>' Zeichen zu:
+            </para>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.18.zend.locale">
+        <title>Zend_Locale</title>
+
+        <sect3 id="migration.18.zend.locale.defaultcaching">
+            <title>Standard Caching</title>
+
+            <para>
+                Ab Zend Framework 1.8 wurde ein standardmäßiges Caching hinzugefügt. Der Grund
+                für diese Änderung war, das die meisten Benutzer Performance Probleme hatten,
+                aber kein Caching verwendet wurde. Da der I18n Core eine Engstelle ist wenn kein
+                Caching verwendet wird, wurde entschieden ein standardmäßiges Caching hinzuzufügen
+                wenn für <classname>Zend_Locale</classname> kein Cache gesetzt wurde.
+            </para>
+
+            <para>
+                Manchmal ist es trotzdem gewünscht ein Cachen zu verhindern, selbst wenn das die
+                Performance beeinträchtigt. Um das zu tun kann das Cachen durch Verwendung der
+                <methodname>disableCache()</methodname> Methode abgeschaltet werden.
+            </para>
+
+            <example id="migration.18.zend.locale.example">
+                <title>Standardmäßiges Caching abschalten</title>
+
+                <programlisting language="php"><![CDATA[
+Zend_Locale::disableCache(true);
+]]></programlisting>
+            </example>
+        </sect3>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 276 - 0
documentation/manual/de/ref/migration-19.xml

@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18682 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.19">
+    <title>Zend Framework 1.9</title>
+
+    <para>
+        Wenn man von einem älteren Release auf Zend Framework 1.9 oder höher hochrüstet sollte
+        man die folgenden Migrations Hinweise beachten.
+    </para>
+
+    <sect2 id="migration.19.zend.filter">
+        <title>Zend_Filter</title>
+
+        <para>
+            Vor dem Release 1.9 erlaubte <classname>Zend_Filter</classname> die Verwendung der
+            statischen Methode <methodname>get()</methodname>. Ab dem Release 1.9 wurde diese
+            Methode zu <methodname>filterStatic()</methodname> umbenannt um besser zu beschreiben
+            was Sie macht. Die alte <methodname>get()</methodname> Methode wurde als deprecated
+            markiert.
+        </para>
+    </sect2>
+
+    <sect2 id="migration.19.zend.http.client">
+        <title>Zend_Http_Client</title>
+        <sect3 id="migration.19.zend.http.client.fileuploadsarray">
+            <title>
+                Änderungen in der internen Speicherung der Information von hochgeladenen Dateien
+            </title>
+
+            <para>
+                In Version 1.9 vom Zend Framework gibt es eine Ändernug wie
+                <classname>Zend_Http_Client</classname> Informationen über hochgeladenen Dateien
+                intern speichert, bei denen die
+                <methodname>Zend_Http_Client::setFileUpload()</methodname> Methode verwendet wird.
+            </para>
+
+            <para>
+                Diese Änderung wurde durchgeführt um es zu erlauben mehrere Dateien mit dem
+                gleichen Formularnamen, als Array von Dateien, hochzuladen. Weitere Informationen
+                über dieses Problem können in <ulink
+                    url="http://framework.zend.com/issues/browse/ZF-5744">diesem
+                    Fehlerreport</ulink> gefunden werden.
+            </para>
+
+            <example id="migration.19.zend.http.client.fileuploadsarray.example">
+                <title>Interne Speicherung der Informationen von hochgeladenen Dateien</title>
+
+                <programlisting language="php"><![CDATA[
+// Zwei Dateien mit dem gleichen Namen des Formularelements als Array hochladen
+$client = new Zend_Http_Client();
+$client->setFileUpload('file1.txt',
+                       'userfile[]',
+                       'some raw data',
+                       'text/plain');
+$client->setFileUpload('file2.txt',
+                       'userfile[]',
+                       'some other data',
+                       'application/octet-stream');
+
+// In Zend Framework 1.8 oder älter, ist der Wert der geschützten
+// Variable $client->files:
+// $client->files = array(
+//     'userfile[]' => array('file2.txt',
+                             'application/octet-stream',
+                             'some other data')
+// );
+
+// In Zend Framework 1.9 oder neuer, ist der Wert von $client->files:
+// $client->files = array(
+//     array(
+//         'formname' => 'userfile[]',
+//         'filename' => 'file1.txt,
+//         'ctype'    => 'text/plain',
+//         'data'     => 'some raw data'
+//     ),
+//     array(
+//         'formname' => 'userfile[]',
+//         'filename' => 'file2.txt',
+//         'formname' => 'application/octet-stream',
+//         'formname' => 'some other data'
+//     )
+// );
+]]></programlisting>
+            </example>
+
+            <para>
+                Wie man sieht gestattet diese Änderung die Verwendung des gleichen Namens für das
+                Formularelement mit mehr als einer Datei - trotzdem führt dies zu einer subtilen
+                Änderung der Rückwärtskompatibilität und sollte erwähnt werden.
+            </para>
+        </sect3>
+
+        <sect3 id="migration.19.zend.http.client.getparamsrecursize">
+            <title>
+                Zend_Http_Client::_getParametersRecursive() sollte nicht mehr eingesetzt werden
+            </title>
+
+            <para>
+                Beginnend mit Version 1.9, wird die geschützte Methode
+                <methodname>_getParametersRecursive()</methodname> nicht mehr von
+                <classname>Zend_Http_Client</classname> verwendet und ist abgelehnt (deprecated).
+                Ihre Verwendung führt zu einer E_NOTICE Nachricht die von <acronym>PHP</acronym>
+                kommt.
+            </para>
+
+            <para>
+                Wenn man <classname>Zend_Http_Client</classname> erweitert und diese Methode
+                aufrufr, sollte man sehen das man stattdessen die statische Methode
+                <methodname>Zend_Http_Client::_flattenParametersArray()</methodname> verwendet.
+            </para>
+
+            <para>
+                Nochmals, da <classname>_getParametersRecursive</classname> eine geschützte Methode
+                ist, sind nur Benutzer betroffen die <classname>Zend_Http_Client</classname>
+                erweitert haben.
+            </para>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.19.zend.locale">
+        <title>Zend_Locale</title>
+
+        <sect3 id="migration.19.zend.locale.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="migration.19.zend.locale.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="migration.19.zend.view.helper.navigation">
+        <title>Zend_View_Helper_Navigation</title>
+
+        <para>
+            Vor dem Release 1.9 hat der Menü Helfer
+            (<classname>Zend_View_Helper_Navigation_Menu</classname>) Untermenüs nicht richtig
+            dargestellt. Wenn <code>onlyActiveBranch</code> <constant>TRUE</constant> war und die
+            Option <code>renderParents</code> <constant>FALSE</constant> wurde nichts dargestellt
+            wenn die tiefste aktive Seite auf einer geringeren Tiele als die <code>minDepth</code>
+            Option war.
+        </para>
+
+        <para>
+            In einfacheren Worten; Wenn <code>minDepth</code> auf <code>1</code> gesetzt war und
+            die aktive Seite eine der Seiten am Anfangs-Level, wurde nichts dargestellt wie das
+            folgende Beispiel zeigt.
+        </para>
+
+        <para>
+            Das folgende Container Setup wird angenommen:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+<?php
+$container = new Zend_Navigation(array(
+    array(
+        'label' => 'Home',
+        'uri'   => '#'
+    ),
+    array(
+        'label'  => 'Products',
+        'uri'    => '#',
+        'active' => true,
+        'pages'  => array(
+            array(
+                'label' => 'Server',
+                'uri'   => '#'
+            ),
+            array(
+                'label' => 'Studio',
+                'uri'   => '#'
+            )
+        )
+    ),
+    array(
+        'label' => 'Solutions',
+        'uri'   => '#'
+    )
+));
+]]></programlisting>
+
+        <para>
+            Der folgende Code wird in einem View Script verwendet:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+<?php echo $this->navigation()->menu()->renderMenu($container, array(
+    'minDepth'         => 1,
+    'onlyActiveBranch' => true,
+    'renderParents'    => false
+)); ?>
+]]></programlisting>
+
+        <para>
+            Vor dem Release 1.9 würde der obige Codeabschnitt nichts ausgeben.
+        </para>
+
+        <para>
+            Seit dem Release 1.9 akzeptiert die <methodname>_renderDeepestMenu()</methodname>
+            Methode in <classname>Zend_View_Helper_Navigation_Menu</classname> aktive Seiten die ein
+            Level unter <code>minDepth</code> sind, solange diese Seite Kinder hat.
+        </para>
+
+        <para>
+            Der gleiche Codeabschnitt zeigt jetzt die folgende Ausgabe:
+        </para>
+
+        <programlisting language="html"><![CDATA[
+<ul class="navigation">
+    <li>
+        <a href="#">Server</a>
+    </li>
+    <li>
+        <a href="#">Studio</a>
+    </li>
+</ul>
+]]></programlisting>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 33 - 0
documentation/manual/de/ref/migration-introduction.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 18682 -->
+<!-- Reviewed: no -->
+<sect1 id="migration.introduction">
+    <title>Einführung</title>
+
+    <para>
+        Wenn man mit dem Zend Framework für eine längere Zeit arbeitet, dann kann es sein dass man
+        auf ein neues Release hochrüsten will, weil neue Features integriert und gefundene Bugs
+        behoben werden.
+    </para>
+
+    <para>
+        Wir bei Zend Framework versuchen mögliche Probleme die man bei einem Upgrade haben könnte
+        zu vermeiden. Rückwärts Kompatibilität ist eines unserer Hauptziele.
+    </para>
+
+    <para>
+        Trotzdem ist es von Zeit zu Zeit nicht möglich oder es ist sogar notwendig Änderungen zu
+        machen die auch Effekt auf den eigenen Code haben, um Probleme zu vermeiden oder andere
+        zu lösen. Um mögliche Änderungen zu erkennen die man machen muß wenn man auf ein neues
+        Release vom Zend Framework hochrüstet, sollte man dieses Kapitel sorgfältig lesen.
+    </para>
+
+    <para>
+        Anbei findet man Informationen über bekannte Änderungen welche Effekt auf eigenen Code
+        haben, und Beispiele über notwendige Änderungen die man durchführen muss wenn man
+        hochrüstet.
+    </para>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 9 - 3
documentation/manual/de/ref/requirements-php-extensions-table.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16908 -->
+<!-- EN-Revision: 18682 -->
 <!-- Reviewed: no -->
 <table frame='all' id="requirements.extensions.table-1">
     <title>PHP Erweiterungen verwendet im Zend Framework nach Komponente</title>
@@ -1338,19 +1338,25 @@
                 <entry>---</entry>
             </row>
             <row>
-                <entry>
+                <entry morerows="1" valign="middle">
                     <emphasis>
                         <ulink
                             url="http://www.php.net/manual/en/ref.zlib.php">zlib</ulink>
                     </emphasis>
                 </entry>
-                <entry>Hard</entry>
+                <entry morerows="1" valign="middle">Hard</entry>
                 <entry>
                     <ulink
                         url="http://framework.zend.com/manual/en/zend.pdf.html">
                         <classname>Zend_Pdf</classname>
                     </ulink>
                 </entry>
+                <entry>
+                    <ulink
+                        url="http://framework.zend.com/manual/en/zend.filter.set.compress.html">
+                        <classname>Zend_Filter_Compress</classname>
+                    </ulink>
+                </entry>
             </row>
         </tbody>
     </tgroup>

+ 7 - 2
documentation/manual/de/ref/requirements-zendcomponents-table.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16908 -->
+<!-- EN-Revision: 18682 -->
 <!-- Reviewed: no -->
 <table frame='all' id="requirements.zendcomponents.table-1">
     <title>
@@ -381,7 +381,7 @@
                 <entry>upload_extension</entry>
             </row>
             <row>
-                <entry>
+                <entry morerows="1" valign="middle">
                     <emphasis>
                         <ulink
                             url="http://framework.zend.com/manual/en/zend.filter.html">
@@ -394,6 +394,11 @@
                     <ulink
                         url="http://www.php.net/manual/en/language.oop5.reflection.php">Reflection</ulink>
                 </entry>
+                <entry>Soft</entry>
+                <entry>
+                    <ulink
+                        url="http://www.php.net/manual/en/ref.zlib.php">zlib</ulink>
+                </entry>
             </row>
             <row>
                 <entry>