Browse Source

[DOCUMENTATION] Russian:
- Sync

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@15726 44c647ce-9c0f-0410-b52a-842ac1e357ba

irina 16 years ago
parent
commit
b014354850
39 changed files with 945 additions and 650 deletions
  1. 1 1
      documentation/manual/ru/module_specs/Zend_Config_Ini.xml
  2. 4 4
      documentation/manual/ru/module_specs/Zend_Config_Xml.xml
  3. 25 35
      documentation/manual/ru/module_specs/Zend_Controller-ActionController.xml
  4. 4 4
      documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-ActionStack.xml
  5. 21 23
      documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-AutoComplete.xml
  6. 12 20
      documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-ContextSwitch.xml
  7. 6 5
      documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-FlashMessenger.xml
  8. 65 16
      documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-Json.xml
  9. 8 11
      documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-Redirector.xml
  10. 24 33
      documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-ViewRenderer.xml
  11. 23 31
      documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers.xml
  12. 30 28
      documentation/manual/ru/module_specs/Zend_Controller-Basics.xml
  13. 11 12
      documentation/manual/ru/module_specs/Zend_Controller-Dispatcher.xml
  14. 25 29
      documentation/manual/ru/module_specs/Zend_Controller-Exceptions.xml
  15. 18 21
      documentation/manual/ru/module_specs/Zend_Controller-FrontController.xml
  16. 59 53
      documentation/manual/ru/module_specs/Zend_Controller-Migration.xml
  17. 14 19
      documentation/manual/ru/module_specs/Zend_Controller-Modular.xml
  18. 3 1
      documentation/manual/ru/module_specs/Zend_Controller-Plugins-ActionStack.xml
  19. 13 18
      documentation/manual/ru/module_specs/Zend_Controller-Plugins-ErrorHandler.xml
  20. 12 13
      documentation/manual/ru/module_specs/Zend_Controller-Plugins.xml
  21. 30 18
      documentation/manual/ru/module_specs/Zend_Controller-QuickStart.xml
  22. 23 23
      documentation/manual/ru/module_specs/Zend_Controller-Request.xml
  23. 14 19
      documentation/manual/ru/module_specs/Zend_Controller-Response.xml
  24. 191 0
      documentation/manual/ru/module_specs/Zend_Controller-Router-Route-Chain.xml
  25. 11 77
      documentation/manual/ru/module_specs/Zend_Controller-Router-Route-Hostname.xml
  26. 13 23
      documentation/manual/ru/module_specs/Zend_Controller-Router-Route-Regex.xml
  27. 3 2
      documentation/manual/ru/module_specs/Zend_Controller-Router-Route-Static.xml
  28. 201 23
      documentation/manual/ru/module_specs/Zend_Controller-Router-Route.xml
  29. 52 59
      documentation/manual/ru/module_specs/Zend_Controller-Router.xml
  30. 1 1
      documentation/manual/ru/module_specs/Zend_Db_Adapter.xml
  31. 1 1
      documentation/manual/ru/module_specs/Zend_Db_Profiler.xml
  32. 3 3
      documentation/manual/ru/module_specs/Zend_Debug.xml
  33. 1 1
      documentation/manual/ru/module_specs/Zend_Dom-Query.xml
  34. 2 2
      documentation/manual/ru/module_specs/Zend_Form-QuickStart.xml
  35. 1 1
      documentation/manual/ru/module_specs/Zend_Search_Lucene-JavaLucene.xml
  36. 2 2
      documentation/manual/ru/module_specs/Zend_Search_Lucene-Queries.xml
  37. 16 16
      documentation/manual/ru/module_specs/Zend_Search_Lucene-QueryLanguage.xml
  38. 1 1
      documentation/manual/ru/module_specs/Zend_View-Introduction.xml
  39. 1 1
      documentation/manual/ru/module_specs/Zend_View-Scripts.xml

+ 1 - 1
documentation/manual/ru/module_specs/Zend_Config_Ini.xml

@@ -57,7 +57,7 @@ $config = new Zend_Config_Ini('/path/to/config.ini',
             более сложных случаях. Допустим, конфигурационные данные
             более сложных случаях. Допустим, конфигурационные данные
             находятся в файле <code>/path/to/config.ini</code>:
             находятся в файле <code>/path/to/config.ini</code>:
         </para>
         </para>
-        <programlisting role="ini"><![CDATA[
+        <programlisting language="ini"><![CDATA[
 ; Конфигурационные данные производственного сайта
 ; Конфигурационные данные производственного сайта
 [production]
 [production]
 webhost                  = www.example.com
 webhost                  = www.example.com

+ 4 - 4
documentation/manual/ru/module_specs/Zend_Config_Xml.xml

@@ -39,7 +39,7 @@
             более сложных случаях. Допустим, конфигурационные данные
             более сложных случаях. Допустим, конфигурационные данные
             находятся в файле <code>/path/to/config.xml</code>:
             находятся в файле <code>/path/to/config.xml</code>:
         </para>
         </para>
-        <programlisting role="xml"><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <?xml version="1.0"?>
 <?xml version="1.0"?>
 <configdata>
 <configdata>
     <production>
     <production>
@@ -89,7 +89,7 @@ echo $config->database->params->dbname; // выведет "dbname"
             атрибутов в родительский узел, они потом будут преобразованы в
             атрибутов в родительский узел, они потом будут преобразованы в
             потомки этого узла:
             потомки этого узла:
         </para>
         </para>
-        <programlisting role="xml"><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <?xml version="1.0"?>
 <?xml version="1.0"?>
 <configdata>
 <configdata>
     <production webhost="www.example.com">
     <production webhost="www.example.com">
@@ -110,7 +110,7 @@ echo $config->database->params->dbname; // выведет "dbname"
             тегов дважды. Вы просто создаете пустой тег, значение которого
             тегов дважды. Вы просто создаете пустой тег, значение которого
             содержится в атрибуте <code>value</code>:
             содержится в атрибуте <code>value</code>:
         </para>
         </para>
-        <programlisting role="xml"><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <?xml version="1.0"?>
 <?xml version="1.0"?>
 <configdata>
 <configdata>
     <production>
     <production>
@@ -146,7 +146,7 @@ echo $config->database->params->dbname; // выведет "dbname"
             первого параметра и должна начинаться с символов
             первого параметра и должна начинаться с символов
             <code>'&lt;?xml'</code>:
             <code>'&lt;?xml'</code>:
         </para>
         </para>
-        <programlisting role="xml"><![CDATA[
+        <programlisting language="xml"><![CDATA[
 $string = <<<EOT
 $string = <<<EOT
 <?xml version="1.0"?>
 <?xml version="1.0"?>
 <config>
 <config>

+ 25 - 35
documentation/manual/ru/module_specs/Zend_Controller-ActionController.xml

@@ -1,10 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.action">
 <sect1 id="zend.controller.action">
     <title>Контроллеры действий</title>
     <title>Контроллеры действий</title>
 
 
     <sect2 id="zend.controller.action.introduction">
     <sect2 id="zend.controller.action.introduction">
         <title>Введение</title>
         <title>Введение</title>
         <para>
         <para>
-            <code>Zend_Controller_Action</code> - абстрактный класс,
+            <classname>Zend_Controller_Action</classname> - абстрактный класс,
             который можно использовать для реализации контроллеров действий
             который можно использовать для реализации контроллеров действий
             для последующего их использования с фронт-контроллером при
             для последующего их использования с фронт-контроллером при
             разработке сайта, основанного на паттерне Model-View-Controller
             разработке сайта, основанного на паттерне Model-View-Controller
@@ -12,13 +14,13 @@
         </para>
         </para>
 
 
         <para>
         <para>
-            Для того, чтобы использовать <code>Zend_Controller_Action</code>,
+            Для того, чтобы использовать <classname>Zend_Controller_Action</classname>,
             нужно создать его подкласс в своей действующей директории
             нужно создать его подкласс в своей действующей директории
             контроллеров (или расширить его для создания своего базового класса
             контроллеров (или расширить его для создания своего базового класса
             контроллеров действий). Работа с ним в основном сводится к
             контроллеров действий). Работа с ним в основном сводится к
             созданию его подкласса и написании методов действий, соответствующих
             созданию его подкласса и написании методов действий, соответствующих
             различным действиям, которые должен обрабатывать этот контроллер.
             различным действиям, которые должен обрабатывать этот контроллер.
-            Маршрутизатор и диспетчер компоненты <code>Zend_Controller</code>
+            Маршрутизатор и диспетчер компоненты <classname>Zend_Controller</classname>
             будут считать за методы действий все методы в классе
             будут считать за методы действий все методы в классе
             контроллера с именем, заканчивающимся на 'Action'.
             контроллера с именем, заканчивающимся на 'Action'.
         </para>
         </para>
@@ -40,8 +42,7 @@ class FooController extends Zend_Controller_Action
         // делает что-нибудь
         // делает что-нибудь
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Приведенный выше класс <code>FooController</code> (контроллер
             Приведенный выше класс <code>FooController</code> (контроллер
@@ -88,8 +89,7 @@ class FooController extends Zend_Controller_Action
             ->setParam('noViewRenderer', true);
             ->setParam('noViewRenderer', true);
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 <code>initView()</code>, <code>getViewScript()</code>,
                 <code>initView()</code>, <code>getViewScript()</code>,
@@ -114,8 +114,7 @@ class FooController extends Zend_Controller_Action
         $this->_helper->viewRenderer->setNoRender();
         $this->_helper->viewRenderer->setNoRender();
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 Основные причины для отключения <code>ViewRenderer</code> - вам
                 Основные причины для отключения <code>ViewRenderer</code> - вам
@@ -164,15 +163,14 @@ class FooController extends Zend_Controller_Action
         ));
         ));
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.action.prepostdispatch">
     <sect2 id="zend.controller.action.prepostdispatch">
         <title>Перехватчики Pre- и Post-Dispatch</title>
         <title>Перехватчики Pre- и Post-Dispatch</title>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Action</code> определяет два метода, которые
+            <classname>Zend_Controller_Action</classname> определяет два метода, которые
             вызываются до и после требуемого действия,
             вызываются до и после требуемого действия,
             <code>preDispatch()</code> и <code>postDispatch()</code>. Они
             <code>preDispatch()</code> и <code>postDispatch()</code>. Они
             могут быть полезны в различных случаях - например, проверка
             могут быть полезны в различных случаях - например, проверка
@@ -210,8 +208,7 @@ class FooController extends Zend_Controller_Action
                 <programlisting language="php"><![CDATA[
                 <programlisting language="php"><![CDATA[
 $this->getResponse()->setHeader('Content-Type', 'text/xml');
 $this->getResponse()->setHeader('Content-Type', 'text/xml');
 $this->getResponse()->appendBody($content);
 $this->getResponse()->appendBody($content);
-]]>
-                </programlisting>
+]]></programlisting>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
@@ -262,8 +259,7 @@ if ($this->_hasParam('id') {
 } else {
 } else {
     $id = 1;
     $id = 1;
 }
 }
-]]>
-                    </programlisting>
+]]></programlisting>
                 </note>
                 </note>
             </listitem>
             </listitem>
         </itemizedlist>
         </itemizedlist>
@@ -284,7 +280,7 @@ if ($this->_hasParam('id') {
         </note>
         </note>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Action</code> предоставляет простейший и
+            <classname>Zend_Controller_Action</classname> предоставляет простейший и
             гибкий механизм интеграции видов. Два метода осуществляют это:
             гибкий механизм интеграции видов. Два метода осуществляют это:
             <code>initView()</code> и <code>render()</code>. Первый метод
             <code>initView()</code> и <code>render()</code>. Первый метод
             выполняет отложенную загрузку открытого свойства <code>$view</code>,
             выполняет отложенную загрузку открытого свойства <code>$view</code>,
@@ -302,9 +298,9 @@ if ($this->_hasParam('id') {
                 извлечения объекта вида, но этот объект может быть
                 извлечения объекта вида, но этот объект может быть
                 инициализирован в любое время. По умолчанию
                 инициализирован в любое время. По умолчанию
                 <code>initView()</code> заполняет свойство <code>$view</code>
                 <code>initView()</code> заполняет свойство <code>$view</code>
-                объектом <code>Zend_View</code>, но может также использоваться
+                объектом <classname>Zend_View</classname>, но может также использоваться
                 любой класс, реализующий интерфейс
                 любой класс, реализующий интерфейс
-                <code>Zend_View_Interface</code>. Если <code>$view</code> уже
+                <classname>Zend_View_Interface</classname>. Если <code>$view</code> уже
                 инициализирован, то просто возвращается это свойство.
                 инициализирован, то просто возвращается это свойство.
             </para>
             </para>
 
 
@@ -323,8 +319,7 @@ applicationOrModule/
                 index.phtml
                 index.phtml
         helpers/
         helpers/
         filters/
         filters/
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 Другими словами, предполагается, что скрипты вида находятся в
                 Другими словами, предполагается, что скрипты вида находятся в
@@ -349,8 +344,7 @@ applicationOrModule/
 string render(string $action = null,
 string render(string $action = null,
               string $name = null,
               string $name = null,
               bool $noController = false);
               bool $noController = false);
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 <code>render()</code> рендерит скрипт вида. Если не были
                 <code>render()</code> рендерит скрипт вида. Если не были
@@ -415,8 +409,7 @@ class MyController extends Zend_Controller_Action
         $this->render();
         $this->render();
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </sect3>
         </sect3>
     </sect2>
     </sect2>
 
 
@@ -425,7 +418,7 @@ class MyController extends Zend_Controller_Action
 
 
         <para>
         <para>
             Кроме аксессоров и методов интеграции видов,
             Кроме аксессоров и методов интеграции видов,
-            <code>Zend_Controller_Action</code> имеет несколько сервисных
+            <classname>Zend_Controller_Action</classname> имеет несколько сервисных
             методов для выполнения распространенных зачач в методах действий
             методов для выполнения распространенных зачач в методах действий
             (или в методах pre- и post-dispatch).
             (или в методах pre- и post-dispatch).
         </para>
         </para>
@@ -508,7 +501,7 @@ class MyController extends Zend_Controller_Action
 
 
         <para>
         <para>
             Задумано, что в порядке создания контроллеров действий должны
             Задумано, что в порядке создания контроллеров действий должны
-            создаваться подклассы от <code>Zend_Controller_Action</code>.
+            создаваться подклассы от <classname>Zend_Controller_Action</classname>.
             Как минимум, вам нужно будет определить методы действий, которые
             Как минимум, вам нужно будет определить методы действий, которые
             может вызывать контроллер.
             может вызывать контроллер.
         </para>
         </para>
@@ -518,7 +511,7 @@ class MyController extends Zend_Controller_Action
             можете также обнаружить, что большинство установок или сервисных
             можете также обнаружить, что большинство установок или сервисных
             методов повторяются в ваших различных контроллерах. В этом случае
             методов повторяются в ваших различных контроллерах. В этом случае
             создание общего базового контроллера, расширяющего
             создание общего базового контроллера, расширяющего
-            <code>Zend_Controller_Action</code>, может решить проблему
+            <classname>Zend_Controller_Action</classname>, может решить проблему
             избыточности.
             избыточности.
         </para>
         </para>
 
 
@@ -535,7 +528,7 @@ class MyController extends Zend_Controller_Action
 
 
             <para>
             <para>
                 По умолчанию этот метод бросает исключение
                 По умолчанию этот метод бросает исключение
-                <code>Zend_Controller_Action_Exception</code>, означающее, что
+                <classname>Zend_Controller_Action_Exception</classname>, означающее, что
                 требуемый метод не найден в контроллере. Если требуемый метод
                 требуемый метод не найден в контроллере. Если требуемый метод
                 заканчивается строкой 'Action', то предполагается, что было
                 заканчивается строкой 'Action', то предполагается, что было
                 запрошено действие и оно не существует; такая ошибка приводит к
                 запрошено действие и оно не существует; такая ошибка приводит к
@@ -567,8 +560,7 @@ class MyController extends Zend_Controller_Action
                             500);
                             500);
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 Другая возможность состоит в том, что вы можете
                 Другая возможность состоит в том, что вы можете
@@ -598,8 +590,7 @@ class MyController extends Zend_Controller_Action
                             500);
                             500);
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <para>
         <para>
@@ -628,8 +619,7 @@ abstract class My_Base_Controller extends Zend_Controller_Action
         return $this->view;
         return $this->view;
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Надеемся, из написанного в этом разделе вы смогли увидеть, насколько
             Надеемся, из написанного в этом разделе вы смогли увидеть, насколько

+ 4 - 4
documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-ActionStack.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.actionstack">
 <sect3 id="zend.controller.actionhelpers.actionstack">
     <title>ActionStack</title>
     <title>ActionStack</title>
 
 
@@ -51,8 +53,7 @@ class FooController extends Zend_Controller_Action
         $this->_helper->actionStack('bat', 'bar');
         $this->_helper->actionStack('bat', 'bar');
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
     </example>
     </example>
 
 
@@ -90,8 +91,7 @@ class FooController extends Zend_Controller_Action
         $this->_helper->actionStack($request);
         $this->_helper->actionStack($request);
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
     </example>
     </example>
 </sect3>
 </sect3>
 <!--
 <!--

+ 21 - 23
documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-AutoComplete.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.autocomplete">
 <sect3 id="zend.controller.actionhelpers.autocomplete">
     <title>AutoComplete</title>
     <title>AutoComplete</title>
 
 
@@ -43,8 +45,7 @@ class FooController extends Zend_Controller_Action
                                   ->prepareAutoCompletion($data);
                                   ->prepareAutoCompletion($data);
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         По умолчанию этот помощник делает следующее:
         По умолчанию этот помощник делает следующее:
@@ -139,8 +140,7 @@ class FooController extends Zend_Controller_Action
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 // в контроллере действий:
 // в контроллере действий:
 $this->_helper->autoCompleteDojo($data);
 $this->_helper->autoCompleteDojo($data);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <example id="zend.controller.actionhelpers.autocomplete.dojo.example1">
         <example id="zend.controller.actionhelpers.autocomplete.dojo.example1">
             <title>Автодополнение с Dojo и Zend MVC</title>
             <title>Автодополнение с Dojo и Zend MVC</title>
@@ -166,7 +166,7 @@ $this->_helper->autoCompleteDojo($data);
                 TestNameReadStore.js со следующим содержимым:
                 TestNameReadStore.js со следующим содержимым:
             </para>
             </para>
 
 
-            <programlisting role="javascript"><![CDATA[
+            <programlisting language="javascript"><![CDATA[
 dojo.provide("custom.TestNameReadStore");
 dojo.provide("custom.TestNameReadStore");
 dojo.declare("custom.TestNameReadStore", dojox.data.QueryReadStore, {
 dojo.declare("custom.TestNameReadStore", dojox.data.QueryReadStore, {
     fetch:function (request) {
     fetch:function (request) {
@@ -174,8 +174,7 @@ dojo.declare("custom.TestNameReadStore", dojox.data.QueryReadStore, {
         return this.inherited("fetch", arguments);
         return this.inherited("fetch", arguments);
     }
     }
 });
 });
-]]>
-</programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 Этот класс просто наследует от класса QueryReadStore фреймворка
                 Этот класс просто наследует от класса QueryReadStore фреймворка
@@ -218,8 +217,7 @@ class TestController extends Zend_Controller_Action
         return $this->_form;
         return $this->_form;
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 Здесь мы просто создаем форму с методами 'test' и 'go'. Метод
                 Здесь мы просто создаем форму с методами 'test' и 'go'. Метод
@@ -272,8 +270,7 @@ class TestController extends Zend_Controller_Action
         $this->_helper->autoCompleteDojo($matches);
         $this->_helper->autoCompleteDojo($matches);
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 В методе <code>autocompleteAction()</code> мы делаем несколько
                 В методе <code>autocompleteAction()</code> мы делаем несколько
@@ -295,23 +292,24 @@ class TestController extends Zend_Controller_Action
             </para>
             </para>
 
 
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
-<? // установка хранилища данных: ?>
+<?php // установка хранилища данных: ?>
 <div dojoType="custom.TestNameReadStore" jsId="testStore"
 <div dojoType="custom.TestNameReadStore" jsId="testStore"
-    url="<?= $this->baseUrl() ?>/unit-test/autocomplete/format/ajax"
+    url="<?php echo $this->baseUrl() ?>/unit-test/autocomplete/format/ajax"
     requestMethod="get"></div>
     requestMethod="get"></div>
 
 
-<? // рендеринг формы: ?>
-<?= $this->form ?>
+<?php // рендеринг формы: ?>
+<?php echo $this->form ?>
 
 
-<? // подключение css для Dojo в HTML-заголовке: ?>
-<? $this->headStyle()->captureStart() ?>
-@import "<?= $this->baseUrl() ?>/javascript/dijit/themes/tundra/tundra.css";
-@import "<?= $this->baseUrl() ?>/javascript/dojo/resources/dojo.css";
-<? $this->headStyle()->captureEnd() ?>
+<? // подключение CSS для Dojo в HTML-заголовке: ?>
+<?php $this->headStyle()->captureStart() ?>
+@import "<?php echo $this->baseUrl()
+?>/javascript/dijit/themes/tundra/tundra.css";
+@import "<?php echo $this->baseUrl() ?>/javascript/dojo/resources/dojo.css";
+<?php $this->headStyle()->captureEnd() ?>
 
 
-<? // подключение javascript в HTML-заголовке, включая все
+<?php // подключение javascript в HTML-заголовке, включая все
    // необходимые библиотеки для Dojo: ?>
    // необходимые библиотеки для Dojo: ?>
-<? $this->headScript()
+<?php $this->headScript()
         ->setAllowArbitraryAttributes(true)
         ->setAllowArbitraryAttributes(true)
         ->appendFile($this->baseUrl() . '/javascript/dojo/dojo.js',
         ->appendFile($this->baseUrl() . '/javascript/dojo/dojo.js',
             'text/javascript',
             'text/javascript',
@@ -323,7 +321,7 @@ dojo.require("dojo.parser");
 dojo.require("dojox.data.QueryReadStore");
 dojo.require("dojox.data.QueryReadStore");
 dojo.require("dijit.form.ComboBox");
 dojo.require("dijit.form.ComboBox");
 dojo.require("custom.TestNameReadStore");
 dojo.require("custom.TestNameReadStore");
-<? $this->headScript()->captureEnd() ?>
+<?php $this->headScript()->captureEnd() ?>
 ]]></programlisting>
 ]]></programlisting>
 
 
             <para>
             <para>

+ 12 - 20
documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-ContextSwitch.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.contextswitch">
 <sect3 id="zend.controller.actionhelpers.contextswitch">
     <title>ContextSwitch и AjaxContext</title>
     <title>ContextSwitch и AjaxContext</title>
 
 
@@ -65,8 +67,7 @@ class NewsController extends Zend_Controller_Action
     {
     {
     }
     }
 }
 }
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Предположим, нам нужно, чтобы действие <code>listAction()</code> было
         Предположим, нам нужно, чтобы действие <code>listAction()</code> было
@@ -87,8 +88,7 @@ class NewsController extends Zend_Controller_Action
 
 
     // ...
     // ...
 }
 }
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Этим будет:
         Этим будет:
@@ -169,8 +169,7 @@ class NewsController extends Zend_Controller_Action
 
 
                 <programlisting language="php"><![CDATA[
                 <programlisting language="php"><![CDATA[
 $this->_helper->contextSwitch()->setAutoJsonSerialization(false);
 $this->_helper->contextSwitch()->setAutoJsonSerialization(false);
-]]>
-                </programlisting>
+]]></programlisting>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
@@ -334,8 +333,7 @@ class FooController extends Zend_Controller_Action
     {
     {
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Предположим, что мы хотим добавить контекст XML к действию 'list',
             Предположим, что мы хотим добавить контекст XML к действию 'list',
@@ -354,8 +352,7 @@ class FooController extends Zend_Controller_Action
              ->initContext();
              ->initContext();
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Мы можем также просто определить свойство <code>$contexts</code>
             Мы можем также просто определить свойство <code>$contexts</code>
@@ -375,8 +372,7 @@ class FooController extends Zend_Controller_Action
         $this->_helper->contextSwitch()->initContext();
         $this->_helper->contextSwitch()->initContext();
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Этот способ менее трудоемкий, но заключает в себе больше
             Этот способ менее трудоемкий, но заключает в себе больше
@@ -479,8 +475,7 @@ class NewsController extends Zend_Controller_Action
         $this->_helper->contextSwitch()->initContext();
         $this->_helper->contextSwitch()->initContext();
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             В некоторых случаях может потребоваться принудительное использование
             В некоторых случаях может потребоваться принудительное использование
@@ -491,8 +486,7 @@ class NewsController extends Zend_Controller_Action
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $contextSwitch->initContext('xml');
 $contextSwitch->initContext('xml');
-]]>
-        </programlisting>
+]]></programlisting>
     </sect4>
     </sect4>
 
 
     <sect4 id="zend.controller.actionhelpers.contextswitch.misc">
     <sect4 id="zend.controller.actionhelpers.contextswitch.misc">
@@ -517,8 +511,7 @@ $contextSwitch->initContext('xml');
                 <programlisting language="php"><![CDATA[
                 <programlisting language="php"><![CDATA[
 $contextSwitch->setAutoJsonSerialization(false);
 $contextSwitch->setAutoJsonSerialization(false);
 $contextSwitch->initContext();
 $contextSwitch->initContext();
-]]>
-                </programlisting>
+]]></programlisting>
 
 
                 <para>
                 <para>
                     Вы можете получить значение этого флага через метод
                     Вы можете получить значение этого флага через метод
@@ -794,8 +787,7 @@ class CommentController extends Zend_Controller_Action
         // переменным вида и эти значения будет возвращены в формате JSON.
         // переменным вида и эти значения будет возвращены в формате JSON.
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 На клиентской стороне посредством AJAX-библиотеки производятся
                 На клиентской стороне посредством AJAX-библиотеки производятся

+ 6 - 5
documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-FlashMessenger.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.flashmessenger">
 <sect3 id="zend.controller.actionhelpers.flashmessenger">
     <title>FlashMessenger</title>
     <title>FlashMessenger</title>
 
 
@@ -8,9 +10,9 @@
             которые нужно отобразить пользователю при следующем запросе.
             которые нужно отобразить пользователю при следующем запросе.
             Для хранения сообщений до следующего запроса
             Для хранения сообщений до следующего запроса
             <code>FlashMessenger</code> использует
             <code>FlashMessenger</code> использует
-            <code>Zend_Session_Namespace</code> . Как правило, лучше всего
-            использовать тот <code>Zend_Session</code> или
-            <code>Zend_Session_Namespace</code>, который вы инициализировали с
+            <classname>Zend_Session_Namespace</classname> . Как правило, лучше всего
+            использовать тот <classname>Zend_Session</classname> или
+            <classname>Zend_Session_Namespace</classname>, который вы инициализировали с
             помощью <code>Zend_Session::start()</code> в своем файле загрузки.
             помощью <code>Zend_Session::start()</code> в своем файле загрузки.
             (За более подробной информацией об использовании см.
             (За более подробной информацией об использовании см.
             <link linkend="zend.session.advanced_usage.starting_a_session">Zend Session</link>).
             <link linkend="zend.session.advanced_usage.starting_a_session">Zend Session</link>).
@@ -61,7 +63,6 @@ class SomeController extends Zend_Controller_Action
         $this->render();
         $this->render();
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
     </sect4>
     </sect4>
 </sect3>
 </sect3>

+ 65 - 16
documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-Json.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.json">
 <sect3 id="zend.controller.actionhelpers.json">
     <title>JSON</title>
     <title>JSON</title>
 
 
@@ -17,6 +19,19 @@
                 Отключает макеты, если они включены.
                 Отключает макеты, если они включены.
         </para></listitem>
         </para></listitem>
 
 
+        <listitem>
+            <para>
+                Опционально в качестве второго аргумента можно передавать
+                массив опций для <code>Zend_Json::encode()</code>.
+                Этот масив опций позволяет включать макеты и кодирование
+                с использованием <classname>Zend_Json_Expr</classname>.
+            </para>
+
+            <programlisting language="php"><![CDATA[
+$this->_helper->json($data, array('enableJsonExprFinder' => true));
+]]></programlisting>
+        </listitem>
+
         <listitem><para>
         <listitem><para>
                 Отключает ViewRenderer, если он включен.
                 Отключает ViewRenderer, если он включен.
         </para></listitem>
         </para></listitem>
@@ -60,27 +75,61 @@ class FooController extends Zend_Controller_Action
     </programlisting>
     </programlisting>
 
 
     <note>
     <note>
-        <title>Использование с макетами</title>
+        <title>Использование макетов</title>
 
 
         <para>
         <para>
-            Для того, чтобы использовать отдельные макеты для JSON-ответов
-            (например, для того, чтобы помещать JSON-ответы в некоторый
-            контекст), все методы в помощнике JSON принимают второй опциональный
-            параметр - флаг для включения и отключения макетов. Передача
-            значения <code>true</code> сохранит макеты включенными:
+            Если вы имеете отдельный макет для ответов JSON (возможно, для того,
+            чтобы включить ответ JSON в некоторый контекст), то на этот случай
+            все методы в помощнике JSON принимает второй, опциональный
+            аргумент - флаг для включения/отключения макетов. Передача булевого
+            значения <code>true</code> позволит оставить макеты включенными:
         </para>
         </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
-class FooController extends Zend_Controller_Action
-{
-    public function barAction()
-    {
-        // Получение данных в формате json, макеты остаются включенными
-        $json = $this->_helper->json->encodeJson($data, true);
-    }
-}
-]]>
-        </programlisting>
+$this->_helper->json($data, true);
+]]></programlisting>
+
+        <para>
+            Вы можете также передавать массив через второй параметр.
+            Этот массив может содержать набор опций, включая опцию
+            <code>keepLayouts</code>:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$this->_helper->json($data, array('keepLayouts' => true);
+]]></programlisting>
+    </note>
+
+    <note>
+        <title>Включение кодирования через Zend_Json_Expr</title>
+
+        <para>
+            <classname>Zend_Json::encode()</classname> позволяет закодировывать
+            "родные" выражения JSON с использованием объектов
+            <code>Zend_Json_Expr</code>. Эта опция по умолчанию отключена.
+            Для того, чтобы включить эту опцию, передавайте
+            булево значение <code>true</code> через опцию
+            <code>enableJsonExprFinder</code>:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$this->_helper->json($data, array('enableJsonExprFinder' => true);
+]]></programlisting>
+
+        <para>
+            При использовании этой опции вы <emphasis>должны</emphasis>
+            передавать массив в качестве второго параметра. Это также
+            позволяет комбинировать опции друг с другом - например, с опцией
+            <code>keepLayouts</code>. Все эти опции потом передаются
+            <classname>Zend_Json::encode()</classname>.
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$this->_helper->json($data, array(
+    'enableJsonExprFinder' => true,
+    'keepLayouts'          => true,
+));
+]]></programlisting>
     </note>
     </note>
 </sect3>
 </sect3>
 <!--
 <!--

+ 8 - 11
documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-Redirector.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.redirector">
 <sect3 id="zend.controller.actionhelpers.redirector">
     <title>Redirector</title>
     <title>Redirector</title>
 
 
@@ -138,7 +140,7 @@
             <para>
             <para>
                 В этом примере переопределяются несколько опций, включая
                 В этом примере переопределяются несколько опций, включая
                 код статуса HTTP, используемого при перенаправлении
                 код статуса HTTP, используемого при перенаправлении
-                ('303'), и определение URL, используемое по умолчанию при
+                (303), и определение URL, используемое по умолчанию при
                 перенаправлении.
                 перенаправлении.
             </para>
             </para>
 
 
@@ -176,8 +178,7 @@ class SomeController extends Zend_Controller_Action
         return; // никогда не будет достигнуто
         return; // никогда не будет достигнуто
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <example id="zend.controller.actionhelper.redirector.basicusage.example-2">
         <example id="zend.controller.actionhelper.redirector.basicusage.example-2">
@@ -215,8 +216,7 @@ class AlternativeController extends Zend_Controller_Action
         // т.к. по умолчанию производится переход и завершение выполнения
         // т.к. по умолчанию производится переход и завершение выполнения
         return;
         return;
     }
     }
-}]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <example id="zend.controller.actionhelper.redirector.basicusage.example-3">
         <example id="zend.controller.actionhelper.redirector.basicusage.example-3">
@@ -263,8 +263,7 @@ class ForwardController extends Zend_Controller_Action
                                        );
                                        );
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <example id="zend.controller.actionhelper.redirector.basicusage.example-4">
         <example id="zend.controller.actionhelper.redirector.basicusage.example-4">
@@ -286,8 +285,7 @@ $route = new Zend_Controller_Router_Route(
           'action' => 'view')
           'action' => 'view')
 );
 );
 $router->addRoute('blogArchive', $route);
 $router->addRoute('blogArchive', $route);
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 При заданном массиве, в котором year (год), month (месяц), и day
                 При заданном массиве, в котором year (год), month (месяц), и day
@@ -326,8 +324,7 @@ class BlogAdminController extends Zend_Controller_Action
         );
         );
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
     </sect4>
     </sect4>
 </sect3>
 </sect3>

+ 24 - 33
documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers-ViewRenderer.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.viewrenderer">
 <sect3 id="zend.controller.actionhelpers.viewrenderer">
     <title>ViewRenderer</title>
     <title>ViewRenderer</title>
 
 
@@ -94,8 +96,7 @@ $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
 $viewRenderer->setView($view)
 $viewRenderer->setView($view)
              ->setViewSuffix('php');
              ->setViewSuffix('php');
 Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
 Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
-]]>
-                    </programlisting>
+]]></programlisting>
                 </listitem>
                 </listitem>
 
 
                 <listitem>
                 <listitem>
@@ -105,11 +106,11 @@ Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
                     </para>
                     </para>
 
 
                     <programlisting language="php"><![CDATA[
                     <programlisting language="php"><![CDATA[
-$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
+$viewRenderer =
+    Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
 $viewRenderer->setView($view)
 $viewRenderer->setView($view)
              ->setViewSuffix('php');
              ->setViewSuffix('php');
-]]>
-                    </programlisting>
+]]></programlisting>
                 </listitem>
                 </listitem>
             </itemizedlist>
             </itemizedlist>
         </note>
         </note>
@@ -128,8 +129,7 @@ $viewRenderer->setView($view)
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
 Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Во время инстанцирования контроллера действий производится вызов
             Во время инстанцирования контроллера действий производится вызов
@@ -175,8 +175,7 @@ class Foo_BarController extends Zend_Controller_Action
 
 
 // в одном из ваших скриптов вида:
 // в одном из ваших скриптов вида:
 $this->foo(); // вызывает Foo_View_Helper_Foo::foo()
 $this->foo(); // вызывает Foo_View_Helper_Foo::foo()
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             <code>ViewRenderer</code> также определяет несколько аксессоров для
             <code>ViewRenderer</code> также определяет несколько аксессоров для
@@ -294,8 +293,7 @@ $this->_helper->viewRenderer('foo');
 // Рендеринг form.phtml в сегмент ответа 'html' в обход
 // Рендеринг form.phtml в сегмент ответа 'html' в обход
 // поддиректории:
 // поддиректории:
 $this->_helper->viewRenderer('form', 'html', true);
 $this->_helper->viewRenderer('form', 'html', true);
-]]>
-                </programlisting>
+]]></programlisting>
 
 
                 <note><para>
                 <note><para>
                         <code>setRender()</code> и <code>direct()</code> в
                         <code>setRender()</code> и <code>direct()</code> в
@@ -318,8 +316,7 @@ $view    = new Zend_View(array('encoding' => 'UTF-8'));
 $options = array('noController' => true, 'neverRender' => true);
 $options = array('noController' => true, 'neverRender' => true);
 $viewRenderer =
 $viewRenderer =
     new Zend_Controller_Action_Helper_ViewRenderer($view, $options);
     new Zend_Controller_Action_Helper_ViewRenderer($view, $options);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             <code>ViewRenderer</code> имеет несколько дополнительных методов для
             <code>ViewRenderer</code> имеет несколько дополнительных методов для
@@ -466,8 +463,8 @@ $viewRenderer =
 
 
                     <para>
                     <para>
                         Внутри себя инфлектор использует фильтры
                         Внутри себя инфлектор использует фильтры
-                        <code>Zend_Filter_Word_CamelCaseToDash</code> и
-                        <code>Zend_Filter_StringToLower</code>.
+                        <classname>Zend_Filter_Word_CamelCaseToDash</classname> и
+                        <classname>Zend_Filter_StringToLower</classname>.
                     </para>
                     </para>
                 </listitem>
                 </listitem>
 
 
@@ -483,9 +480,9 @@ $viewRenderer =
 
 
                     <para>
                     <para>
                         Внутри себя инфлектор использует фильтры
                         Внутри себя инфлектор использует фильтры
-                        <code>Zend_Filter_Word_CamelCaseToDash</code>,
-                        <code>Zend_Filter_Word_UnderscoreToSeparator</code> и
-                        <code>Zend_Filter_StringToLower</code>.
+                        <classname>Zend_Filter_Word_CamelCaseToDash</classname>,
+                        <classname>Zend_Filter_Word_UnderscoreToSeparator</classname> и
+                        <classname>Zend_Filter_StringToLower</classname>.
                     </para>
                     </para>
                 </listitem>
                 </listitem>
 
 
@@ -502,9 +499,9 @@ $viewRenderer =
 
 
                     <para>
                     <para>
                         Внутри себя инфлектор использует фильтры
                         Внутри себя инфлектор использует фильтры
-                        <code>Zend_Filter_Word_CamelCaseToDash</code>,
-                        <code>Zend_Filter_PregReplace</code> и
-                        <code>Zend_Filter_StringToLower</code>.
+                        <classname>Zend_Filter_Word_CamelCaseToDash</classname>,
+                        <classname>Zend_Filter_PregReplace</classname> и
+                        <classname>Zend_Filter_StringToLower</classname>.
                     </para>
                     </para>
                 </listitem>
                 </listitem>
             </itemizedlist>
             </itemizedlist>
@@ -676,8 +673,7 @@ class Foo_BarController extends Zend_Controller_Action
         $this->_redirect('/index');
         $this->_redirect('/index');
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <note>
         <note>
@@ -745,8 +741,7 @@ class Bar_BatController extends Zend_Controller_Action
         $this->_helper->viewRenderer->setNoRender();
         $this->_helper->viewRenderer->setNoRender();
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <note>
         <note>
@@ -803,8 +798,7 @@ class Foo_BarController extends Zend_Controller_Action
     }
     }
 
 
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <example id="zend.controller.actionhelper.viewrenderer.basicusage.example-4">
         <example id="zend.controller.actionhelper.viewrenderer.basicusage.example-4">
@@ -837,8 +831,7 @@ class Foo_BarController extends Zend_Controller_Action
         $view->setEscape('htmlspecialchars');
         $view->setEscape('htmlspecialchars');
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
     </sect4>
     </sect4>
 
 
@@ -885,8 +878,7 @@ $viewRenderer->setViewBasePathSpec('/opt/vendor/templates')
              ->setViewScriptPathNoControllerSpec(':action.:suffix')
              ->setViewScriptPathNoControllerSpec(':action.:suffix')
              ->setViewSuffix('tpl');
              ->setViewSuffix('tpl');
 Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
 Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <example id="zend.controller.actionhelper.viewrenderer.advancedusage.example-2">
         <example id="zend.controller.actionhelper.viewrenderer.advancedusage.example-2">
@@ -919,8 +911,7 @@ class SearchController extends Zend_Controller_Action
         // рендеринг скрипта вида
         // рендеринг скрипта вида
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
     </sect4>
     </sect4>
 </sect3>
 </sect3>

+ 23 - 31
documentation/manual/ru/module_specs/Zend_Controller-ActionHelpers.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.actionhelpers" xmlns:xi="http://www.w3.org/2001/XInclude">
 <sect1 id="zend.controller.actionhelpers" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Помощники действий</title>
     <title>Помощники действий</title>
 
 
@@ -7,7 +9,7 @@
             Помощники действий (action helpers) дают разработчикам возможность
             Помощники действий (action helpers) дают разработчикам возможность
             добавлять функционал во время выполнения или по требованию в любые
             добавлять функционал во время выполнения или по требованию в любые
             контроллеры действий, которые наследуют от
             контроллеры действий, которые наследуют от
-            <code>Zend_Controller_Action</code>.
+            <classname>Zend_Controller_Action</classname>.
             Помощники действий помогают снизить необходимость в наследовании от
             Помощники действий помогают снизить необходимость в наследовании от
             абстрактного контроллера действий при добавлении общего
             абстрактного контроллера действий при добавлении общего
             функционала в контроллер действий.
             функционала в контроллер действий.
@@ -19,7 +21,7 @@
             подобную той, которая используется в
             подобную той, которая используется в
             <link linkend="zend.view.helpers">Zend_View_Helper</link> и
             <link linkend="zend.view.helpers">Zend_View_Helper</link> и
             <link linkend="zend.controller.plugins">Zend_Controller_Plugin</link>.
             <link linkend="zend.controller.plugins">Zend_Controller_Plugin</link>.
-            Помощники действий (как и <code>Zend_View_Helper</code>) могут быть
+            Помощники действий (как и <classname>Zend_View_Helper</classname>) могут быть
             загружены и вызваны по требованию, либо инстанцироваться во время
             загружены и вызваны по требованию, либо инстанцироваться во время
             запроса (начальной загрузки) или создания контроллера действий
             запроса (начальной загрузки) или создания контроллера действий
             (init()). Для того, чтобы лучше разобраться с этим, см. ниже раздел
             (init()). Для того, чтобы лучше разобраться с этим, см. ниже раздел
@@ -38,7 +40,7 @@
 
 
         <para>
         <para>
             Брокер помощников хранится как член <code>$_helper</code> класса
             Брокер помощников хранится как член <code>$_helper</code> класса
-            <code>Zend_Controller_Action</code>; используйте брокер для
+            <classname>Zend_Controller_Action</classname>; используйте брокер для
             получения или вызова помощников. Методы для этого включают в себя:
             получения или вызова помощников. Методы для этого включают в себя:
         </para>
         </para>
 
 
@@ -52,8 +54,7 @@
                 <programlisting language="php"><![CDATA[
                 <programlisting language="php"><![CDATA[
 $flashMessenger = $this->_helper->getHelper('FlashMessenger');
 $flashMessenger = $this->_helper->getHelper('FlashMessenger');
 $flashMessenger->addMessage('We did something in the last request');
 $flashMessenger->addMessage('We did something in the last request');
-]]>
-                </programlisting>
+]]></programlisting>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
@@ -66,8 +67,7 @@ $flashMessenger->addMessage('We did something in the last request');
                 <programlisting language="php"><![CDATA[
                 <programlisting language="php"><![CDATA[
 $flashMessenger = $this->_helper->FlashMessenger;
 $flashMessenger = $this->_helper->FlashMessenger;
 $flashMessenger->addMessage('We did something in the last request');
 $flashMessenger->addMessage('We did something in the last request');
-]]>
-                </programlisting>
+]]></programlisting>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
@@ -81,8 +81,7 @@ $flashMessenger->addMessage('We did something in the last request');
 
 
                 <programlisting language="php"><![CDATA[
                 <programlisting language="php"><![CDATA[
 $this->_helper->FlashMessenger('We did something in the last request');
 $this->_helper->FlashMessenger('We did something in the last request');
-]]>
-                </programlisting>
+]]></programlisting>
             </listitem>
             </listitem>
         </itemizedlist>
         </itemizedlist>
 
 
@@ -105,7 +104,7 @@ $this->_helper->FlashMessenger('We did something in the last request');
         <title>Брокер помощников</title>
         <title>Брокер помощников</title>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Action_HelperBroker</code> управляет
+            <classname>Zend_Controller_Action_HelperBroker</classname> управляет
             регистрацией объектов помощников и путей к помощникам, а также
             регистрацией объектов помощников и путей к помощникам, а также
             извлечением помощников по требованию.
             извлечением помощников по требованию.
         </para>
         </para>
@@ -117,8 +116,7 @@ $this->_helper->FlashMessenger('We did something in the last request');
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 Zend_Controller_Action_HelperBroker::addHelper($helper);
 Zend_Controller_Action_HelperBroker::addHelper($helper);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Само собой, инстанцирование и передача помощников брокеру отнимают
             Само собой, инстанцирование и передача помощников брокеру отнимают
@@ -140,8 +138,7 @@ Zend_Controller_Action_HelperBroker::addHelper($helper);
 // Добавление помощников, начинающихся
 // Добавление помощников, начинающихся
 // с My_Action_Helpers в My/Action/Helpers/
 // с My_Action_Helpers в My/Action/Helpers/
 Zend_Controller_Action_HelperBroker::addPrefix('My_Action_Helpers');
 Zend_Controller_Action_HelperBroker::addPrefix('My_Action_Helpers');
-]]>
-                </programlisting>
+]]></programlisting>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
@@ -157,8 +154,7 @@ Zend_Controller_Action_HelperBroker::addPrefix('My_Action_Helpers');
 // Добавление помощников, начинающихся с Helper в Plugins/Helpers/
 // Добавление помощников, начинающихся с Helper в Plugins/Helpers/
 Zend_Controller_Action_HelperBroker::addPath('./Plugins/Helpers',
 Zend_Controller_Action_HelperBroker::addPath('./Plugins/Helpers',
                                              'Helper');
                                              'Helper');
-]]>
-                </programlisting>
+]]></programlisting>
             </listitem>
             </listitem>
         </itemizedlist>
         </itemizedlist>
 
 
@@ -188,8 +184,7 @@ Zend_Controller_Action_HelperBroker::addPath('./Plugins/Helpers',
 if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
 if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
     echo 'Redirector helper registered';
     echo 'Redirector helper registered';
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Есть также два статических метода для извлечения помощников из
             Есть также два статических метода для извлечения помощников из
@@ -222,8 +217,7 @@ if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
 $redirector =
 $redirector =
     Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
     Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Наконец, для удаления зарегистрированного помощника из брокера
             Наконец, для удаления зарегистрированного помощника из брокера
@@ -237,8 +231,7 @@ $redirector =
 if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
 if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
     Zend_Controller_Action_HelperBroker::removeHelper('redirector')
     Zend_Controller_Action_HelperBroker::removeHelper('redirector')
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.actionhelper.stockhelpers">
     <sect2 id="zend.controller.actionhelper.stockhelpers">
@@ -285,11 +278,11 @@ if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
         <title>Написание собственных помощников</title>
         <title>Написание собственных помощников</title>
 
 
         <para>
         <para>
-            Помощники действий расширяют
-            <code>Zend_Controller_Action_Helper_Abstract</code>, абстрактный
-            класс, дающий базовый интерфейс и функционал, который требуется для
-            использования с брокером помощников. Он включает в себя следующие
-            методы:
+            Помощники действий наследуют от абстрактного класса
+            <classname>Zend_Controller_Action_Helper_Abstract</classname>,
+            который предоставляет базовый интерфейс и функционал, необходимые
+            для использования с брокером помощников. Он включает в себя
+            следующие методы:
         </para>
         </para>
 
 
         <itemizedlist>
         <itemizedlist>
@@ -344,8 +337,8 @@ if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
                     извлекает ту часть имени класса, которая следует после
                     извлекает ту часть имени класса, которая следует после
                     последнего символа подчеркивания, иначе возвращается полное
                     последнего символа подчеркивания, иначе возвращается полное
                     имя класса. Например, если класс называется
                     имя класса. Например, если класс называется
-                    <code>Zend_Controller_Action_Helper_Redirector</code>, то он
-                    вернет <code>Redirector</code>, а если класс называется
+                    <classname>Zend_Controller_Action_Helper_Redirector</classname>,
+                    то он вернет <code>Redirector</code>, а если класс называется
                     <code>FooMessage</code> то он просто вернет свое полное имя.
                     <code>FooMessage</code> то он просто вернет свое полное имя.
                 </para>
                 </para>
             </listitem>
             </listitem>
@@ -365,8 +358,7 @@ if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) {
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 // Перенаправление на /blog/view/item/id/42
 // Перенаправление на /blog/view/item/id/42
 $this->_helper->redirector('item', 'view', 'blog', array('id' => 42));
 $this->_helper->redirector('item', 'view', 'blog', array('id' => 42));
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Метод брокера помощников <code>__call()</code> ищет помощника с
             Метод брокера помощников <code>__call()</code> ищет помощника с

+ 30 - 28
documentation/manual/ru/module_specs/Zend_Controller-Basics.xml

@@ -1,11 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.basics">
 <sect1 id="zend.controller.basics">
     <title>Основы Zend_Controller</title>
     <title>Основы Zend_Controller</title>
 
 
     <para>
     <para>
-        Система <code>Zend_Controller</code> спроектирована быть легковесной,
+        Система <classname>Zend_Controller</classname> спроектирована быть легковесной,
         модульной и расширяемой. Ее минимализм допускает гибкость и некоторую
         модульной и расширяемой. Ее минимализм допускает гибкость и некоторую
         свободу в использовании, при этом она достаточно структурирована, чтобы
         свободу в использовании, при этом она достаточно структурирована, чтобы
-        системы, построенные с использованием <code>Zend_Controller</code>,
+        системы, построенные с использованием <classname>Zend_Controller</classname>,
         использовали некоторые общие соглашения и сходное размещение кода.
         использовали некоторые общие соглашения и сходное размещение кода.
     </para>
     </para>
 
 
@@ -20,7 +22,7 @@
     </para>
     </para>
 
 
     <para>
     <para>
-        Рабочий процесс <code>Zend_Controller</code> осуществляется несколькими
+        Рабочий процесс <classname>Zend_Controller</classname> осуществляется несколькими
         компонентами. Несмотря на то, что для использования этой системы нет
         компонентами. Несмотря на то, что для использования этой системы нет
         необходимости в совершенном понимании внутренней работы всех этих
         необходимости в совершенном понимании внутренней работы всех этих
         компонент, полезно иметь практическое представление об этом процессе.
         компонент, полезно иметь практическое представление об этом процессе.
@@ -29,25 +31,25 @@
         <itemizedlist>
         <itemizedlist>
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    Фронт-контроллер (<code>Zend_Controller_Front</code>)
+                    Фронт-контроллер (<classname>Zend_Controller_Front</classname>)
                     управляет всем рабочим процессом системы
                     управляет всем рабочим процессом системы
-                    <code>Zend_Controller</code>. Это одна из интерпретаций
-                    паттерна FrontController. <code>Zend_Controller_Front</code>
+                    <classname>Zend_Controller</classname>. Это одна из интерпретаций
+                    паттерна FrontController. <classname>Zend_Controller_Front</classname>
                     обрабатывает все запросы, полученные сервером, и в конечном
                     обрабатывает все запросы, полученные сервером, и в конечном
                     счете отвечает за делегацию запросов контроллерам действий
                     счете отвечает за делегацию запросов контроллерам действий
-                    (<code>Zend_Controller_Action</code>).
+                    (<classname>Zend_Controller_Action</classname>).
                 </para>
                 </para>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    <code>Zend_Controller_Request_Abstract</code> (часто
+                    <classname>Zend_Controller_Request_Abstract</classname> (часто
                     называется <code>объектом запроса</code>) представляет
                     называется <code>объектом запроса</code>) представляет
                     переменные запроса и предоставляет методы для установки и
                     переменные запроса и предоставляет методы для установки и
                     получения имен контроллера, действия и любых параметров
                     получения имен контроллера, действия и любых параметров
                     запроса. Кроме того, он отслеживает, было ли обработано
                     запроса. Кроме того, он отслеживает, было ли обработано
                     содержащееся в нем действие диспетчером
                     содержащееся в нем действие диспетчером
-                    <code>Zend_Controller_Dispatcher</code>.
+                    <classname>Zend_Controller_Dispatcher</classname>.
                     Расширения абстрактного объекта запроса могут
                     Расширения абстрактного объекта запроса могут
                     использоваться для инкапсуляции всех переменных
                     использоваться для инкапсуляции всех переменных
                     запроса, позволяя роутерам извлекать информацию
                     запроса, позволяя роутерам извлекать информацию
@@ -57,21 +59,21 @@
 
 
                 <para>
                 <para>
                     По умолчанию используется
                     По умолчанию используется
-                    <code>Zend_Controller_Request_Http</code>. Он
+                    <classname>Zend_Controller_Request_Http</classname>. Он
                     предоставляет доступ ко всем переменным HTTP-запроса.
                     предоставляет доступ ко всем переменным HTTP-запроса.
                 </para>
                 </para>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    <code>Zend_Controller_Router_Interface</code>
+                    <classname>Zend_Controller_Router_Interface</classname>
                     используется для описания маршрутизаторов.
                     используется для описания маршрутизаторов.
                     Маршрутизация — это процесс исследования переменных запроса
                     Маршрутизация — это процесс исследования переменных запроса
                     для определения того, какой контроллер и какое действие в
                     для определения того, какой контроллер и какое действие в
                     этом контроллере должны получить этот запрос. Эти
                     этом контроллере должны получить этот запрос. Эти
                     контроллер, действие и опциональные параметры
                     контроллер, действие и опциональные параметры
                     устанавливаются в объекте запроса для обработки диспетчером
                     устанавливаются в объекте запроса для обработки диспетчером
-                    <code>Zend_Controller_Dispatcher_Standard</code>.
+                    <classname>Zend_Controller_Dispatcher_Standard</classname>.
                     Маршрутизация производится только один раз: когда вначале
                     Маршрутизация производится только один раз: когда вначале
                     получен запрос и до того, как первый контроллер примет
                     получен запрос и до того, как первый контроллер примет
                     управление.
                     управление.
@@ -79,9 +81,9 @@
 
 
                 <para>
                 <para>
                     Используемый по умолчанию маршрутизатор
                     Используемый по умолчанию маршрутизатор
-                    <code>Zend_Controller_Router_Rewrite</code> принимает
+                    <classname>Zend_Controller_Router_Rewrite</classname> принимает
                     конечную точку URI в том виде, в котором она определена в
                     конечную точку URI в том виде, в котором она определена в
-                    <code>Zend_Controller_Request_Http</code>, и разлагает ее на
+                    <classname>Zend_Controller_Request_Http</classname>, и разлагает ее на
                     контроллер, действие и параметры, основываясь на пути в URL.
                     контроллер, действие и параметры, основываясь на пути в URL.
                     Например, URL
                     Например, URL
                     <code>http://localhost/foo/bar/key/value</code>
                     <code>http://localhost/foo/bar/key/value</code>
@@ -91,7 +93,7 @@
                 </para>
                 </para>
 
 
                 <para>
                 <para>
-                    <code>Zend_Controller_Router_Rewrite</code> может также
+                    <classname>Zend_Controller_Router_Rewrite</classname> может также
                     использоваться для сопоставления с произвольными путями,
                     использоваться для сопоставления с произвольными путями,
                     за более подробной информацией см. <link
                     за более подробной информацией см. <link
                     linkend="zend.controller.router">документацию по Rewrite
                     linkend="zend.controller.router">документацию по Rewrite
@@ -101,7 +103,7 @@
 
 
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    <code>Zend_Controller_Dispatcher_Interface</code>
+                    <classname>Zend_Controller_Dispatcher_Interface</classname>
                     используется для описания диспетчеров.
                     используется для описания диспетчеров.
                     Диспетчеризация — это процесс извлечения контроллера и
                     Диспетчеризация — это процесс извлечения контроллера и
                     действия из объекта запроса, нахождения соответствующих
                     действия из объекта запроса, нахождения соответствующих
@@ -127,7 +129,7 @@
 
 
                 <para>
                 <para>
                     По умолчанию используется диспетчер
                     По умолчанию используется диспетчер
-                    <code>Zend_Controller_Dispatcher_Standard</code>.
+                    <classname>Zend_Controller_Dispatcher_Standard</classname>.
                     Он определяет контроллеры как классы с именами,
                     Он определяет контроллеры как классы с именами,
                     завершающимися словом Controller, и в которых все слова
                     завершающимися словом Controller, и в которых все слова
                     начинаются со сточной буквы (MixedCase), методы действий —
                     начинаются со сточной буквы (MixedCase), методы действий —
@@ -172,17 +174,17 @@
 
 
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    <code>Zend_Controller_Action</code> — базовая
+                    <classname>Zend_Controller_Action</classname> — базовая
                     составляющая контроллера действий. Каждый контроллер
                     составляющая контроллера действий. Каждый контроллер
                     является отдельным классом, расширяющим
                     является отдельным классом, расширяющим
-                    <code>Zend_Controller_Action</code>, и этот класс
+                    <classname>Zend_Controller_Action</classname>, и этот класс
                     должен содержать один или более методов действий.
                     должен содержать один или более методов действий.
                 </para>
                 </para>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    <code>Zend_Controller_Response_Abstract</code>
+                    <classname>Zend_Controller_Response_Abstract</classname>
                     определяет базовый класс ответа, используемый для
                     определяет базовый класс ответа, используемый для
                     сбора и возвращения ответов из контроллеров действий.
                     сбора и возвращения ответов из контроллеров действий.
                     Он собирает как тело ответа, так и заголовки.
                     Он собирает как тело ответа, так и заголовки.
@@ -190,27 +192,27 @@
 
 
                 <para>
                 <para>
                     По умолчанию используется класс
                     По умолчанию используется класс
-                    <code>Zend_Controller_Response_Http</code>, который
+                    <classname>Zend_Controller_Response_Http</classname>, который
                     подходит для использования в среде HTTP.
                     подходит для использования в среде HTTP.
                 </para>
                 </para>
             </listitem>
             </listitem>
         </itemizedlist>
         </itemizedlist>
 
 
     <para>
     <para>
-        Рабочий процесс <code>Zend_Controller</code> относительно простой.
-        Запрос получается объектом <code>Zend_Controller_Front</code>,
+        Рабочий процесс <classname>Zend_Controller</classname> относительно простой.
+        Запрос получается объектом <classname>Zend_Controller_Front</classname>,
         который в свою очередь вызывает
         который в свою очередь вызывает
-        <code>Zend_Controller_Router_Rewrite</code> для определения того, какой
+        <classname>Zend_Controller_Router_Rewrite</classname> для определения того, какой
         контроллер (и какое действие в этом контроллере) следует использовать.
         контроллер (и какое действие в этом контроллере) следует использовать.
-        <code>Zend_Controller_Router_Rewrite</code>
+        <classname>Zend_Controller_Router_Rewrite</classname>
         анализирует URI для установки имени контроллера и имени действия в
         анализирует URI для установки имени контроллера и имени действия в
-        запросе. Затем <code>Zend_Controller_Front</code> входит в цикл
+        запросе. Затем <classname>Zend_Controller_Front</classname> входит в цикл
         диспетчеризации. Он вызывает
         диспетчеризации. Он вызывает
-        <code>Zend_Controller_Dispatcher_Standard</code>, передавая ему
+        <classname>Zend_Controller_Dispatcher_Standard</classname>, передавая ему
         запрос для запуска контроллера и действия, определенных в запросе
         запрос для запуска контроллера и действия, определенных в запросе
         (или тех, которые используются по умолчанию). После того, как
         (или тех, которые используются по умолчанию). После того, как
         контроллер завершит работу, управление возвращается
         контроллер завершит работу, управление возвращается
-        <code>Zend_Controller_Front</code>. Если предыдущий контроллер
+        <classname>Zend_Controller_Front</classname>. Если предыдущий контроллер
         переустановкой статуса диспетчеризации в запросе
         переустановкой статуса диспетчеризации в запросе
         указал, что должен быть запущен другой контроллер, то цикл
         указал, что должен быть запущен другой контроллер, то цикл
         продолжается и выполняется запуск другого контроллера. В противном
         продолжается и выполняется запуск другого контроллера. В противном

+ 11 - 12
documentation/manual/ru/module_specs/Zend_Controller-Dispatcher.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.dispatcher">
 <sect1 id="zend.controller.dispatcher">
     <title>Диспетчер</title>
     <title>Диспетчер</title>
 
 
@@ -6,12 +8,12 @@
 
 
         <para>
         <para>
             Диспетчеризация — это процесс принятия объекта запроса
             Диспетчеризация — это процесс принятия объекта запроса
-            (<code>Zend_Controller_Request_Abstract</code>), извлечения
+            (<classname>Zend_Controller_Request_Abstract</classname>), извлечения
             содержащихся в нем имени модуля, имени контроллера, имени действия и
             содержащихся в нем имени модуля, имени контроллера, имени действия и
             необязательных параметров, затем инстанцирования контроллера и
             необязательных параметров, затем инстанцирования контроллера и
             вызова действия в нем. Если не найдены модуль, контроллер или
             вызова действия в нем. Если не найдены модуль, контроллер или
             действие, то будут использоваться значения по умолчанию.
             действие, то будут использоваться значения по умолчанию.
-            <code>Zend_Controller_Dispatcher_Standard</code> определяет
+            <classname>Zend_Controller_Dispatcher_Standard</classname> определяет
             <code>index</code> как значение по умолчанию для контроллера и
             <code>index</code> как значение по умолчанию для контроллера и
             действия, и <code>default</code> - для модуля, но позволяет
             действия, и <code>default</code> - для модуля, но позволяет
             разработчику изменять эти значения, используя
             разработчику изменять эти значения, используя
@@ -39,8 +41,7 @@ $front->setParam('prefixDefaultModule', true);
 
 
 // Через диспетчер:
 // Через диспетчер:
 $dispatcher->setParam('prefixDefaultModule', true);
 $dispatcher->setParam('prefixDefaultModule', true);
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 Это позволяет повторно использовать существующий модуль в
                 Это позволяет повторно использовать существующий модуль в
@@ -96,15 +97,14 @@ public function bazAction()
     // Foo_BarController::bazAction():
     // Foo_BarController::bazAction():
     $this->_forward('baz', 'bar', 'foo', array('baz' => 'bogus'));
     $this->_forward('baz', 'bar', 'foo', array('baz' => 'bogus'));
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.dispatcher.subclassing">
     <sect2 id="zend.controller.dispatcher.subclassing">
         <title>Создание подклассов диспетчера</title>
         <title>Создание подклассов диспетчера</title>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Front</code> сначала вызывает
+            <classname>Zend_Controller_Front</classname> сначала вызывает
             маршрутизатор для получения первого действия в запросе. Затем он
             маршрутизатор для получения первого действия в запросе. Затем он
             входит в цикл диспетчеризации, в котором вызывается диспетчер для
             входит в цикл диспетчеризации, в котором вызывается диспетчер для
             запуска действия.
             запуска действия.
@@ -120,7 +120,7 @@ public function bazAction()
         </para>
         </para>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Dispatcher_Interface</code> определяет
+            <classname>Zend_Controller_Dispatcher_Interface</classname> определяет
             следующие методы, которые требуется использовать во всех реализациях
             следующие методы, которые требуется использовать во всех реализациях
             диспетчера:
             диспетчера:
         </para>
         </para>
@@ -272,14 +272,13 @@ interface Zend_Controller_Dispatcher_Interface
      */
      */
     public function getDefaultAction();
     public function getDefaultAction();
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Однако в большинстве случаев вам достаточно будет только расширить
             Однако в большинстве случаев вам достаточно будет только расширить
-            абстрактный класс <code>Zend_Controller_Dispatcher_Abstract</code>,
+            абстрактный класс <classname>Zend_Controller_Dispatcher_Abstract</classname>,
             в котором уже определены все эти методы или класс
             в котором уже определены все эти методы или класс
-            <code>Zend_Controller_Dispatcher_Standard</code> для изменения
+            <classname>Zend_Controller_Dispatcher_Standard</classname> для изменения
             функционала стандартного диспетчера.
             функционала стандартного диспетчера.
         </para>
         </para>
 
 

+ 25 - 29
documentation/manual/ru/module_specs/Zend_Controller-Exceptions.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.exceptions">
 <sect1 id="zend.controller.exceptions">
     <title>Исключения</title>
     <title>Исключения</title>
 
 
@@ -16,7 +18,7 @@
             Сообщения исключений и данные обратной трассировки часто содержат
             Сообщения исключений и данные обратной трассировки часто содержат
             важную системную информацию, такую, как текст запросов SQL,
             важную системную информацию, такую, как текст запросов SQL,
             местонахождение файлов и т.п. Поэтому в целях защиты вашего сайта
             местонахождение файлов и т.п. Поэтому в целях защиты вашего сайта
-            <code>Zend_Controller_Front</code> по умолчанию отлавливает все
+            <classname>Zend_Controller_Front</classname> по умолчанию отлавливает все
             исключения и регистрирует их в объектах ответа; в свою очередь,
             исключения и регистрирует их в объектах ответа; в свою очередь,
             объект ответа по умолчанию не отображает сообщения исключений.
             объект ответа по умолчанию не отображает сообщения исключений.
         </para>
         </para>
@@ -85,8 +87,7 @@ try {
 } catch (Exception $e) {
 } catch (Exception $e) {
     // самостоятельная обработка исключения
     // самостоятельная обработка исключения
 }
 }
-]]>
-                </programlisting>
+]]></programlisting>
 
 
                 <para>
                 <para>
                     Возможно, этот метод является наиболее легким способом
                     Возможно, этот метод является наиболее легким способом
@@ -137,8 +138,7 @@ if ($response->isException()) {
     $response->sendHeaders();
     $response->sendHeaders();
     $response->outputBody();
     $response->outputBody();
 }
 }
-]]>
-                </programlisting>
+]]></programlisting>
 
 
                 <para>
                 <para>
                     Основное преимущество этого метода по сравнению с
                     Основное преимущество этого метода по сравнению с
@@ -194,8 +194,7 @@ $front->setParam('useDefaultControllerAlways', true);
 // или
 // или
 
 
 $dispatcher->setParam('useDefaultControllerAlways', true);
 $dispatcher->setParam('useDefaultControllerAlways', true);
-]]>
-                        </programlisting>
+]]></programlisting>
 
 
                         <para>
                         <para>
                             Когда этот флаг установлен, то диспетчер будет
                             Когда этот флаг установлен, то диспетчер будет
@@ -212,7 +211,7 @@ $dispatcher->setParam('useDefaultControllerAlways', true);
                         <para>
                         <para>
                             Исключение, бросаемое методом
                             Исключение, бросаемое методом
                             <code>dispatch()</code>, является экземпляром класса
                             <code>dispatch()</code>, является экземпляром класса
-                            <code>Zend_Controller_Dispatcher_Exception</code>,
+                            <classname>Zend_Controller_Dispatcher_Exception</classname>,
                             содержащим текст 'Invalid controller specified'
                             содержащим текст 'Invalid controller specified'
                             (указан недействительный контроллер).
                             (указан недействительный контроллер).
                             Используйте один из методов, описанных в
                             Используйте один из методов, описанных в
@@ -238,7 +237,7 @@ $dispatcher->setParam('useDefaultControllerAlways', true);
                 <itemizedlist>
                 <itemizedlist>
                     <listitem>
                     <listitem>
                         <para>
                         <para>
-                            Создать подкласс <code>Zend_Controller_Action</code>
+                            Создать подкласс <classname>Zend_Controller_Action</classname>
                             и переопределить в нем метод <code>__call()</code>.
                             и переопределить в нем метод <code>__call()</code>.
                             Например:
                             Например:
                         </para>
                         </para>
@@ -257,8 +256,7 @@ class My_Controller_Action extends Zend_Controller_Action
         throw new Exception('Invalid method');
         throw new Exception('Invalid method');
     }
     }
 }
 }
-]]>
-                        </programlisting>
+]]></programlisting>
                         <para>
                         <para>
                             Пример выше перехватывает любые вызовы
                             Пример выше перехватывает любые вызовы
                             несуществующих методов действий и перенаправляет их
                             несуществующих методов действий и перенаправляет их
@@ -269,7 +267,7 @@ class My_Controller_Action extends Zend_Controller_Action
                     <listitem>
                     <listitem>
                         <para>
                         <para>
                             Создать подкласс
                             Создать подкласс
-                            <code>Zend_Controller_Dispatcher</code> и
+                            <classname>Zend_Controller_Dispatcher</classname> и
                             переопределить в нем метод <code>getAction()</code>
                             переопределить в нем метод <code>getAction()</code>
                             так, чтобы он проводил проверку того, существует ли
                             так, чтобы он проводил проверку того, существует ли
                             запрошенное действие. Например:
                             запрошенное действие. Например:
@@ -298,8 +296,7 @@ class My_Controller_Dispatcher extends Zend_Controller_Dispatcher
         return $action;
         return $action;
     }
     }
 }
 }
-]]>
-                        </programlisting>
+]]></programlisting>
 
 
                         <para>
                         <para>
                             Код выше проверяет существование запрошенного
                             Код выше проверяет существование запрошенного
@@ -327,7 +324,7 @@ class My_Controller_Dispatcher extends Zend_Controller_Dispatcher
                         </para>
                         </para>
 
 
                         <para>
                         <para>
-                            Создав подкласс <code>Zend_Controller_Action</code>
+                            Создав подкласс <classname>Zend_Controller_Action</classname>
                             и модифицировав метод <code>preDispatch()</code>, вы
                             и модифицировав метод <code>preDispatch()</code>, вы
                             можете изменить все
                             можете изменить все
                             свои контроллеры так, чтобы они переходили
                             свои контроллеры так, чтобы они переходили
@@ -357,29 +354,28 @@ class My_Controller_PreDispatchPlugin extends Zend_Controller_Plugin_Abstract
 {
 {
     public function preDispatch(Zend_Controller_Request_Abstract $request)
     public function preDispatch(Zend_Controller_Request_Abstract $request)
     {
     {
-        $dispatcher =
-            Zend_Controller_Front::getInstance()->getDispatcher();
-        $controller = $dispatcher->getController($request);
+        $front      = Zend_Controller_Front::getInstance();
+        $dispatcher = $front->getDispatcher();
+        $class      = $dispatcher->getControllerClass($request);
         if (!$controller) {
         if (!$controller) {
-            $controller =
-                $dispatcher->getDefaultControllerName($request);
+            $class = $dispatcher->getDefaultControllerClass($request);
         }
         }
-        $action     = $dispatcher->getAction($request);
 
 
-        if (!method_exists($controller, $action)) {
-            $defaultAction = $dispatcher->getDefaultAction();
+        $r      = new ReflectionClass($class);
+        $action = $dispatcher->getActionMethod($request);
+
+        if (!$r->hasMethod($action)) {
+            $defaultAction  = $dispatcher->getDefaultAction();
             $controllerName = $request->getControllerName();
             $controllerName = $request->getControllerName();
-            $response =
-                Zend_Controller_Front::getInstance()->getResponse();
-            $response->setRedirect('/' . $controllerName .
-                                   '/' . $defaultAction);
+            $response       = $front->getResponse();
+            $response->setRedirect('/' . $controllerName
+                                  . '/' . $defaultAction);
             $response->sendHeaders();
             $response->sendHeaders();
             exit;
             exit;
         }
         }
     }
     }
 }
 }
-]]>
-                        </programlisting>
+]]></programlisting>
 
 
                         <para>
                         <para>
                             В этом примере мы проверяем, доступно ли в
                             В этом примере мы проверяем, доступно ли в

+ 18 - 21
documentation/manual/ru/module_specs/Zend_Controller-FrontController.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.front">
 <sect1 id="zend.controller.front">
     <title>Фронт-контроллер</title>
     <title>Фронт-контроллер</title>
 
 
@@ -5,17 +7,18 @@
         <title>Обзор</title>
         <title>Обзор</title>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Front</code> реализует
+            <classname>Zend_Controller_Front</classname> реализует
             <ulink url="http://www.martinfowler.com/eaaCatalog/frontController.html">паттерн
             <ulink url="http://www.martinfowler.com/eaaCatalog/frontController.html">паттерн
-            Front Controller</ulink>, используемый в приложениях MVC. Его
-            назначение состоит в инициализации окружения запроса, проложении
+            Front Controller</ulink>, используемый в приложениях <ulink
+                url="http://en.wikipedia.org/wiki/Model-view-controller">MVC</ulink>.
+            Его назначение состоит в инициализации окружения запроса, проложении
             маршрута приходящего запроса и последующем запуске выявленных
             маршрута приходящего запроса и последующем запуске выявленных
             действий. Он агрегирует все ответы и возвращает их по завершении
             действий. Он агрегирует все ответы и возвращает их по завершении
             процесса.
             процесса.
         </para>
         </para>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Front</code> также реализует
+            <classname>Zend_Controller_Front</classname> также реализует
             <ulink url="http://en.wikipedia.org/wiki/Singleton_pattern">паттерн
             <ulink url="http://en.wikipedia.org/wiki/Singleton_pattern">паттерн
             Singleton</ulink>, это означает, что в любое время может быть
             Singleton</ulink>, это означает, что в любое время может быть
             доступен только один экземпляр этого класса. Это позволяет ему также
             доступен только один экземпляр этого класса. Это позволяет ему также
@@ -24,7 +27,7 @@
         </para>
         </para>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Front</code> регистрирует в себе <link
+            <classname>Zend_Controller_Front</classname> регистрирует в себе <link
             linkend="zend.controller.plugins">брокер плагинов</link> (plugin
             linkend="zend.controller.plugins">брокер плагинов</link> (plugin
             broker), что позволяет с помощью плагинов отслеживать события,
             broker), что позволяет с помощью плагинов отслеживать события,
             инициируемые фронт-контроллером.
             инициируемые фронт-контроллером.
@@ -60,8 +63,7 @@
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
 // Отключение плагина ErrorHandler:
 // Отключение плагина ErrorHandler:
 $front->setParam('noErrorHandler', true);
 $front->setParam('noErrorHandler', true);
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 Для того, чтобы отключить <code>ViewRenderer</code>, сделайте
                 Для того, чтобы отключить <code>ViewRenderer</code>, сделайте
@@ -71,8 +73,7 @@ $front->setParam('noErrorHandler', true);
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
 // Отключение помощника ViewRenderer:
 // Отключение помощника ViewRenderer:
 $front->setParam('noViewRenderer', true);
 $front->setParam('noViewRenderer', true);
-]]>
-            </programlisting>
+]]></programlisting>
         </note>
         </note>
 
 
     </sect2>
     </sect2>
@@ -98,8 +99,7 @@ $front->setParam('noViewRenderer', true);
 
 
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
 $front = Zend_Controller_Front::getInstance();
 $front = Zend_Controller_Front::getInstance();
-]]>
-            </programlisting>
+]]></programlisting>
         </sect3>
         </sect3>
 
 
         <sect3 id="zend.controller.front.methods.primary.setcontrollerdirectory">
         <sect3 id="zend.controller.front.methods.primary.setcontrollerdirectory">
@@ -132,8 +132,7 @@ $front->setControllerDirectory(array(
 
 
 // Добавление директории модуля 'foo':
 // Добавление директории модуля 'foo':
 $front->addControllerDirectory('../modules/foo/controllers', 'foo');
 $front->addControllerDirectory('../modules/foo/controllers', 'foo');
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <note>
             <note>
                 <para>
                 <para>
@@ -267,8 +266,7 @@ $front->addControllerDirectory('../modules/foo/controllers', 'foo');
 // Инстанцирование фронт-контроллера, установка директории контроллера и
 // Инстанцирование фронт-контроллера, установка директории контроллера и
 // выполнение диспетчеризации в одном вызове:
 // выполнение диспетчеризации в одном вызове:
 Zend_Controller_Front::run('../application/controllers');
 Zend_Controller_Front::run('../application/controllers');
-]]>
-            </programlisting>
+]]></programlisting>
         </sect3>
         </sect3>
     </sect2>
     </sect2>
 
 
@@ -558,10 +556,10 @@ Zend_Controller_Front::run('../application/controllers');
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.front.subclassing">
     <sect2 id="zend.controller.front.subclassing">
-        <title>Создание подклассов фронт-контроллера</title>
+        <title>Расширение фронт-контроллера</title>
 
 
         <para>
         <para>
-            При создании подкласса фронт-контроллера, необходимо, как
+            При наследовании от фронт-контроллера, необходимо, как
             минимум, переопределить метод <code>getInstance()</code>.
             минимум, переопределить метод <code>getInstance()</code>.
         </para>
         </para>
 
 
@@ -577,16 +575,15 @@ class My_Controller_Front extends Zend_Controller_Front
         return self::$_instance;
         return self::$_instance;
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Такое переопределение метода <code>getInstance()</code> гарантирует
             Такое переопределение метода <code>getInstance()</code> гарантирует
             то, что последующий вызов
             то, что последующий вызов
             <code>Zend_Controller_Front::getInstance()</code> вернет экземпляр
             <code>Zend_Controller_Front::getInstance()</code> вернет экземпляр
             созданного вами подкласса вместо экземпляра
             созданного вами подкласса вместо экземпляра
-            <code>Zend_Controller_Front</code> - это особенно полезно для
-            некоторых альтернативных маршрутизаторов и помощников видов.
+            <classname>Zend_Controller_Front</classname> - это особенно полезно
+            для некоторых альтернативных маршрутизаторов и помощников видов.
         </para>
         </para>
 
 
         <para>
         <para>

+ 59 - 53
documentation/manual/ru/module_specs/Zend_Controller-Migration.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.migration">
 <sect1 id="zend.controller.migration">
     <title>Переход с предыдущих версий</title>
     <title>Переход с предыдущих версий</title>
 
 
@@ -8,6 +10,24 @@
         архитектуру.
         архитектуру.
     </para>
     </para>
 
 
+    <sect2 id="zend.controller.migration.fromoneseventooneeight">
+        <title>Переход с 1.7.x на 1.8.0 и более поздние версии</title>
+
+        <sect3 id="zend.controller.migration.fromoneseventooneeight.router">
+            <title>Изменения в стандартном маршруте</title>
+
+            <para>
+                Поскольку в новый стандартный маршрут были добавлены
+                переводимые сегменты, символ <code>@</code> стал
+                специальным символом в начале сегмента маршрута.
+                Для того, чтобы можно было использовать его в статических
+                сегментах, вы должны экранировать его путем добавления второго
+                символа <code>@</code>. То же самое правило теперь применяется
+                и к символу <code>:</code>.
+            </para>
+        </sect3>
+    </sect2>
+
     <sect2 id="zend.controller.migration.fromonesixtooneseven">
     <sect2 id="zend.controller.migration.fromonesixtooneseven">
         <title>Переход с 1.6.x на 1.7.0 и более поздние версии</title>
         <title>Переход с 1.6.x на 1.7.0 и более поздние версии</title>
 
 
@@ -16,7 +36,7 @@
 
 
             <para>
             <para>
                 Пользователи обратили наше внимание на тот факт, что
                 Пользователи обратили наше внимание на тот факт, что
-                <code>Zend_Controller_Action_Helper_ViewRenderer</code>
+                <classname>Zend_Controller_Action_Helper_ViewRenderer</classname>
                 использует не присутствующий в интерфейсе метод из
                 использует не присутствующий в интерфейсе метод из
                 абстрактного класса диспетчера. Мы добавили
                 абстрактного класса диспетчера. Мы добавили
                 этот метод в интерфейс диспетчера для того,
                 этот метод в интерфейс диспетчера для того,
@@ -30,7 +50,7 @@
                     необработанное имя контроллера (в том виде, в котором оно
                     необработанное имя контроллера (в том виде, в котором оно
                     хранится в объекте запроса) и преобразовывать его в имя
                     хранится в объекте запроса) и преобразовывать его в имя
                     класса контроллера, наследующего от
                     класса контроллера, наследующего от
-                    <code>Zend_Controller_Action</code>.
+                    <classname>Zend_Controller_Action</classname>.
                 </para></listitem>
                 </para></listitem>
             </itemizedlist>
             </itemizedlist>
         </sect3>
         </sect3>
@@ -44,8 +64,8 @@
 
 
             <para>
             <para>
                 Пользователи обратили наше внимание на тот факт, что
                 Пользователи обратили наше внимание на тот факт, что
-                <code>Zend_Controller_Front</code> и
-                <code>Zend_Controller_Router_Route_Module</code> используют
+                <classname>Zend_Controller_Front</classname> и
+                <classname>Zend_Controller_Router_Route_Module</classname> используют
                 методы диспетчера, которые не определены в его интерфейсе.
                 методы диспетчера, которые не определены в его интерфейсе.
                 Мы добавили следующие три метода в его интерфейс для того,
                 Мы добавили следующие три метода в его интерфейс для того,
                 чтобы гарантировать работу созданного вами диспетчера с
                 чтобы гарантировать работу созданного вами диспетчера с
@@ -138,7 +158,7 @@
                 <para>
                 <para>
                     Второй лучший вариант: ViewRenderer теперь делегирует
                     Второй лучший вариант: ViewRenderer теперь делегирует
                     определение скриптов вида инфлектору
                     определение скриптов вида инфлектору
-                    <code>Zend_Filter_Inflector</code>; вы можете изменить
+                    <classname>Zend_Filter_Inflector</classname>; вы можете изменить
                     правила инфлектора так, чтобы он более не разделял слова в
                     правила инфлектора так, чтобы он более не разделял слова в
                     имени действия знаком тире:
                     имени действия знаком тире:
                 </para>
                 </para>
@@ -154,8 +174,7 @@ $inflector->setFilterRule(':action', array(
     ),
     ),
     'StringToLower'
     'StringToLower'
 ));
 ));
-]]>
-                </programlisting>
+]]></programlisting>
 
 
                 <para>
                 <para>
                     Приведенный выше код изменит инфлектор таким образом, чтобы
                     Приведенный выше код изменит инфлектор таким образом, чтобы
@@ -182,8 +201,7 @@ $inflector->setFilterRule(':action', array(
 
 
                 <programlisting language="php"><![CDATA[
                 <programlisting language="php"><![CDATA[
 $front->setParam('useCaseSensitiveActions', true);
 $front->setParam('useCaseSensitiveActions', true);
-]]>
-</programlisting>
+]]></programlisting>
 
 
                 <para>
                 <para>
                     Это позволит вам использовать camelCase в URL-ах и они будут
                     Это позволит вам использовать camelCase в URL-ах и они будут
@@ -226,8 +244,7 @@ $front->setParam('useCaseSensitiveActions', true);
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $front->setParam('noErrorHandler', true);
 $front->setParam('noErrorHandler', true);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Помощник действий <code>ViewRenderer</code> автоматизирует
             Помощник действий <code>ViewRenderer</code> автоматизирует
@@ -249,8 +266,7 @@ $front->setParam('noErrorHandler', true);
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 // $front является экземпляром Zend_Controller_Front
 // $front является экземпляром Zend_Controller_Front
 $front->setParam('noViewRenderer', true);
 $front->setParam('noViewRenderer', true);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Но в долгосрочной перспективе это не лучшее решение, поскольку
             Но в долгосрочной перспективе это не лучшее решение, поскольку
@@ -288,8 +304,7 @@ $front->setParam('noViewRenderer', true);
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $this->_helper->viewRenderer->setNoRender();
 $this->_helper->viewRenderer->setNoRender();
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Если вы обнаружили, что ни один из методов действий не производит
             Если вы обнаружили, что ни один из методов действий не производит
@@ -305,8 +320,7 @@ public function preDispatch()
     $this->_helper->viewRenderer->setNoRender()
     $this->_helper->viewRenderer->setNoRender()
     // ... еще код ..
     // ... еще код ..
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Если вы вызываете <code>render()</code> и используете
             Если вы вызываете <code>render()</code> и используете
@@ -366,8 +380,7 @@ public function preDispatch()
 // Предполагается, что $view уже определен
 // Предполагается, что $view уже определен
 $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
 $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
 Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
 Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
-]]>
-                </programlisting>
+]]></programlisting>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
@@ -378,8 +391,8 @@ Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
                 <programlisting language="php"><![CDATA[
                 <programlisting language="php"><![CDATA[
 $viewRenderer =
 $viewRenderer =
     Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
     Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
-$viewRenderer->setView($view);]]>
-                </programlisting>
+$viewRenderer->setView($view);
+]]></programlisting>
             </listitem>
             </listitem>
         </itemizedlist>
         </itemizedlist>
 
 
@@ -454,8 +467,7 @@ $viewRenderer->setView($view);]]>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 Zend_Controller_Front::run('/path/to/controllers');
 Zend_Controller_Front::run('/path/to/controllers');
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Тем не менее, структура директорий была подвергнута пересмотру,
             Тем не менее, структура директорий была подвергнута пересмотру,
@@ -466,17 +478,17 @@ Zend_Controller_Front::run('/path/to/controllers');
         <itemizedlist>
         <itemizedlist>
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    <code>Zend_Controller_Router</code> удален в пользу
+                    <classname>Zend_Controller_Router</classname> удален в пользу
                     использования Rewrite Router.
                     использования Rewrite Router.
                 </para>
                 </para>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    <code>Zend_Controller_RewriteRouter</code> переименован в
-                    <code>Zend_Controller_Router_Rewrite</code>, теперь это
+                    <classname>Zend_Controller_RewriteRouter</classname> переименован в
+                    <classname>Zend_Controller_Router_Rewrite</classname>, теперь это
                     стандартный маршрутизатор, поставляемый с фреймворком.
                     стандартный маршрутизатор, поставляемый с фреймворком.
-                    <code>Zend_Controller_Front</code> будет использовать его по
+                    <classname>Zend_Controller_Front</classname> будет использовать его по
                     умолчанию, если не был установлен другой маршрутизатор.
                     умолчанию, если не был установлен другой маршрутизатор.
                 </para>
                 </para>
             </listitem>
             </listitem>
@@ -484,7 +496,7 @@ Zend_Controller_Front::run('/path/to/controllers');
             <listitem>
             <listitem>
                 <para>
                 <para>
                     Добавлен новый класс маршрута для использования с Rewrite
                     Добавлен новый класс маршрута для использования с Rewrite
-                    Router - <code>Zend_Controller_Router_Route_Module</code>.
+                    Router - <classname>Zend_Controller_Router_Route_Module</classname>.
                     Он включает в себя маршрут по умолчанию, используемый
                     Он включает в себя маршрут по умолчанию, используемый
                     MVC, и поддерживает <link
                     MVC, и поддерживает <link
                         linkend="zend.controller.modular">модули
                         linkend="zend.controller.modular">модули
@@ -494,15 +506,15 @@ Zend_Controller_Front::run('/path/to/controllers');
 
 
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    <code>Zend_Controller_Router_StaticRoute</code> переименован
-                    в <code>Zend_Controller_Router_Route_Static</code>.
+                    <classname>Zend_Controller_Router_StaticRoute</classname> переименован
+                    в <classname>Zend_Controller_Router_Route_Static</classname>.
                 </para>
                 </para>
             </listitem>
             </listitem>
 
 
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    <code>Zend_Controller_Dispatcher</code> переименован в
-                    <code>Zend_Controller_Dispatcher_Standard</code>.
+                    <classname>Zend_Controller_Dispatcher</classname> переименован в
+                    <classname>Zend_Controller_Dispatcher_Standard</classname>.
                 </para>
                 </para>
             </listitem>
             </listitem>
 
 
@@ -518,8 +530,7 @@ final protected function _forward($action,
                                   $controller = null,
                                   $controller = null,
                                   $module = null,
                                   $module = null,
                                   array $params = null);
                                   array $params = null);
-]]>
-                </programlisting>
+]]></programlisting>
 
 
                 <para>
                 <para>
                     <code>$action</code> - обязательный аргумент. Если не был
                     <code>$action</code> - обязательный аргумент. Если не был
@@ -545,8 +556,7 @@ final protected function _forward($action,
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 Zend_Controller_Front::run('/path/to/controllers');
 Zend_Controller_Front::run('/path/to/controllers');
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 /* -- создание маршрутизатора -- */
 /* -- создание маршрутизатора -- */
@@ -563,8 +573,7 @@ $ctrl->setRouter($router);
 /* -- установка директории контроллеров и запуск диспетчеризации -- */
 /* -- установка директории контроллеров и запуск диспетчеризации -- */
 $ctrl->setControllerDirectory('/path/to/controllers');
 $ctrl->setControllerDirectory('/path/to/controllers');
 $ctrl->dispatch();
 $ctrl->dispatch();
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Рекомендуется использовать объект ответа для сбора содержимого и
             Рекомендуется использовать объект ответа для сбора содержимого и
@@ -605,8 +614,7 @@ $ctrl->dispatch();
                         </para>
                         </para>
                         <programlisting language="php"><![CDATA[
                         <programlisting language="php"><![CDATA[
 $front->throwExceptions(true);
 $front->throwExceptions(true);
-]]>
-                        </programlisting>
+]]></programlisting>
                     </listitem>
                     </listitem>
 
 
                     <listitem>
                     <listitem>
@@ -624,8 +632,7 @@ $front->returnResponse(true);
 $response = $front->dispatch();
 $response = $front->dispatch();
 $response->renderExceptions(true);
 $response->renderExceptions(true);
 echo $response;
 echo $response;
-]]>
-                        </programlisting>
+]]></programlisting>
                     </listitem>
                     </listitem>
                 </itemizedlist>
                 </itemizedlist>
             </listitem>
             </listitem>
@@ -634,20 +641,20 @@ echo $response;
                 <code>Zend_Controller_Dispatcher_Interface::dispatch()</code>
                 <code>Zend_Controller_Dispatcher_Interface::dispatch()</code>
                 теперь принимает и возвращает объект запроса
                 теперь принимает и возвращает объект запроса
                 <xref linkend="zend.controller.request" />
                 <xref linkend="zend.controller.request" />
-                вместо метки <code>Zend_Controller_Dispatcher_Token</code>.
+                вместо метки <classname>Zend_Controller_Dispatcher_Token</classname>.
             </para></listitem>
             </para></listitem>
 
 
             <listitem><para>
             <listitem><para>
                 <code>Zend_Controller_Router_Interface::route()</code>
                 <code>Zend_Controller_Router_Interface::route()</code>
                 теперь принимает и возвращает объект ответа
                 теперь принимает и возвращает объект ответа
                 <xref linkend="zend.controller.request" />
                 <xref linkend="zend.controller.request" />
-                вместо метки <code>Zend_Controller_Dispatcher_Token</code>
+                вместо метки <classname>Zend_Controller_Dispatcher_Token</classname>
             </para></listitem>
             </para></listitem>
 
 
             <listitem>
             <listitem>
                 <para>
                 <para>
-                    Изменения <code>Zend_Controller_Action</code> включают в
-                    себя следующие:
+                    Изменения <classname>Zend_Controller_Action</classname> включают в
+                    себя следующее:
                 </para>
                 </para>
 
 
                 <itemizedlist>
                 <itemizedlist>
@@ -704,7 +711,7 @@ echo $response;
                         <para>
                         <para>
                             Свойство <code>_action</code> больще не
                             Свойство <code>_action</code> больще не
                             устанавливается. Это свойство было объектом класса
                             устанавливается. Это свойство было объектом класса
-                            <code>Zend_Controller_Dispatcher_Token</code>,
+                            <classname>Zend_Controller_Dispatcher_Token</classname>,
                             которй больше не существует в текущем воплощении.
                             которй больше не существует в текущем воплощении.
                             Единственным назначением метки (token) было
                             Единственным назначением метки (token) было
                             предоставление информации о запрошенных контроллере,
                             предоставление информации о запрошенных контроллере,
@@ -732,8 +739,8 @@ $params = $this->_getParams();
 
 
 // запрашивается параметр 'foo', если параметр не найден,
 // запрашивается параметр 'foo', если параметр не найден,
 // то используется значение по умолчанию 'default'
 // то используется значение по умолчанию 'default'
-$foo = $this->_getParam('foo', 'default');]]>
-                        </programlisting>
+$foo = $this->_getParam('foo', 'default');
+]]></programlisting>
                     </listitem>
                     </listitem>
 
 
                     <listitem>
                     <listitem>
@@ -755,8 +762,7 @@ public function __call($method, $args)
 
 
     throw new Zend_Controller_Exception('Invalid method called');
     throw new Zend_Controller_Exception('Invalid method called');
 }
 }
-]]>
-                        </programlisting>
+]]></programlisting>
                     </listitem>
                     </listitem>
                 </itemizedlist>
                 </itemizedlist>
             </listitem>
             </listitem>
@@ -771,8 +777,8 @@ public function __call($method, $args)
             </para></listitem>
             </para></listitem>
 
 
             <listitem><para>
             <listitem><para>
-                <code>Zend_Controller_Plugin_Interface</code> был заменен на
-                <code>Zend_Controller_Plugin_Abstract</code>. Все методы теперь
+                <classname>Zend_Controller_Plugin_Interface</classname> был заменен на
+                <classname>Zend_Controller_Plugin_Abstract</classname>. Все методы теперь
                 принимают и возвращают объект ответа
                 принимают и возвращают объект ответа
                 <xref linkend="zend.controller.request" /> вместо метки
                 <xref linkend="zend.controller.request" /> вместо метки
                 диспетчеризации.
                 диспетчеризации.

+ 14 - 19
documentation/manual/ru/module_specs/Zend_Controller-Modular.xml

@@ -1,5 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.modular">
 <sect1 id="zend.controller.modular">
-    <title>Использование определенной соглашением модульной структуры директорий</title>
+    <title>Использование модульной структуры директорий</title>
 
 
     <sect2 id="zend.controller.modular.introduction">
     <sect2 id="zend.controller.modular.introduction">
         <title>Введение</title>
         <title>Введение</title>
@@ -10,8 +12,7 @@
             пример такой структуры:
             пример такой структуры:
         </para>
         </para>
 
 
-        <programlisting>
-<![CDATA[
+        <programlisting language="txt"><![CDATA[
 docroot/
 docroot/
     index.php
     index.php
 application/
 application/
@@ -46,8 +47,7 @@ application/
                 list/
                 list/
             helpers/
             helpers/
             filters/
             filters/
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             В этой парадигме имена модулей используются как префиксы к
             В этой парадигме имена модулей используются как префиксы к
@@ -105,8 +105,7 @@ $front->setControllerDirectory(array(
       'default' => '/path/to/application/controllers',
       'default' => '/path/to/application/controllers',
       'blog'    => '/path/to/application/blog/controllers'
       'blog'    => '/path/to/application/blog/controllers'
 ));
 ));
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Метод <code>addControllerDirectory()</code> принимает необязательный
             Метод <code>addControllerDirectory()</code> принимает необязательный
@@ -118,8 +117,7 @@ $front->setControllerDirectory(array(
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $front->addControllerDirectory('/path/to/application/news/controllers',
 $front->addControllerDirectory('/path/to/application/news/controllers',
                                'news');
                                'news');
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Лучшее напоследок: самый легкий способ определения
             Лучшее напоследок: самый легкий способ определения
@@ -142,8 +140,7 @@ $front->addControllerDirectory('/path/to/application/news/controllers',
  *             controllers/
  *             controllers/
  */
  */
 $front->addModuleDirectory('/path/to/application/modules');
 $front->addModuleDirectory('/path/to/application/modules');
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Пример выше определит модули <code>default</code>, <code>foo</code>
             Пример выше определит модули <code>default</code>, <code>foo</code>
@@ -171,8 +168,7 @@ $front->addModuleDirectory('/path/to/application/modules');
  */
  */
 $front->setModuleControllerDirectoryName('con');
 $front->setModuleControllerDirectoryName('con');
 $front->addModuleDirectory('/path/to/application/modules');
 $front->addModuleDirectory('/path/to/application/modules');
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <note><para>
         <note><para>
             Вы можете указать, что для модулей не должна использоваться
             Вы можете указать, что для модулей не должна использоваться
@@ -186,8 +182,8 @@ $front->addModuleDirectory('/path/to/application/modules');
 
 
         <para>
         <para>
             Маршрут, используемый по умолчанию в
             Маршрут, используемый по умолчанию в
-            <code>Zend_Controller_Router_Rewrite</code>, является объектом типа
-            <code>Zend_Controller_Router_Route_Module</code>. Этот маршрут
+            <classname>Zend_Controller_Router_Rewrite</classname>, является объектом типа
+            <classname>Zend_Controller_Router_Route_Module</classname>. Этот маршрут
             использует один из следующих шаблонов маршрутизации:
             использует один из следующих шаблонов маршрутизации:
         </para>
         </para>
 
 
@@ -211,7 +207,7 @@ $front->addModuleDirectory('/path/to/application/modules');
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.modular.defaultcontroller">
     <sect2 id="zend.controller.modular.defaultcontroller">
-        <title>Молуль или глобальный контроллер по умолчанию</title>
+        <title>Модуль или глобальный контроллер по умолчанию</title>
 
 
         <para>
         <para>
             В маршрутизаторе, используемом по умолчанию, если контроллер не был
             В маршрутизаторе, используемом по умолчанию, если контроллер не был
@@ -224,15 +220,14 @@ $front->addModuleDirectory('/path/to/application/modules');
         </para>
         </para>
 
 
         <para>
         <para>
-            Если хотите всегда использовать глобальное пространство имен, то
+            Если требуется всегда использовать глобальное пространство имен, то
             установите параметр <code>useGlobalDefault</code> во
             установите параметр <code>useGlobalDefault</code> во
             фронт-контроллере:
             фронт-контроллере:
         </para>
         </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $front->setParam('useDefaultControllerAlways', true);
 $front->setParam('useDefaultControllerAlways', true);
-]]>
-        </programlisting>
+]]></programlisting>
     </sect2>
     </sect2>
 </sect1>
 </sect1>
 <!--
 <!--

+ 3 - 1
documentation/manual/ru/module_specs/Zend_Controller-Plugins-ActionStack.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.plugins.standard.actionstack">
 <sect3 id="zend.controller.plugins.standard.actionstack">
     <title>ActionStack</title>
     <title>ActionStack</title>
 
 
@@ -22,7 +24,7 @@
         <listitem><para>
         <listitem><para>
                 <code>getRegistry()</code> и <code>setRegistry()</code>.
                 <code>getRegistry()</code> и <code>setRegistry()</code>.
                 Внутри себя <code>ActionStack</code> использует экземпляр
                 Внутри себя <code>ActionStack</code> использует экземпляр
-                <code>Zend_Registry</code> для хранения стека. Вы можете с
+                <classname>Zend_Registry</classname> для хранения стека. Вы можете с
                 помощью этих аксессоров заменить экземпляр реестра на другой или
                 помощью этих аксессоров заменить экземпляр реестра на другой или
                 извлечь его.
                 извлечь его.
         </para></listitem>
         </para></listitem>

+ 13 - 18
documentation/manual/ru/module_specs/Zend_Controller-Plugins-ErrorHandler.xml

@@ -1,8 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.plugins.standard.errorhandler">
 <sect3 id="zend.controller.plugins.standard.errorhandler">
     <title>Zend_Controller_Plugins_ErrorHandler</title>
     <title>Zend_Controller_Plugins_ErrorHandler</title>
 
 
     <para>
     <para>
-        <code>Zend_Controller_Plugins_ErrorHandler</code> представляет собой
+        <classname>Zend_Controller_Plugins_ErrorHandler</classname> представляет собой
         плагин для обработки исключений, брошенных вашим приложением, включая
         плагин для обработки исключений, брошенных вашим приложением, включая
         те, которые вызваны отсутствием запрошенного контроллера или
         те, которые вызваны отсутствием запрошенного контроллера или
         действия. Он является альтернативой способам, перечисленным в <link
         действия. Он является альтернативой способам, перечисленным в <link
@@ -36,7 +38,7 @@
     </para>
     </para>
 
 
     <para>
     <para>
-        По умолчанию <code>Zend_Controller_Plugins_ErrorHandler</code> будет
+        По умолчанию <classname>Zend_Controller_Plugins_ErrorHandler</classname> будет
         производить переход к
         производить переход к
         <code>ErrorController::errorAction()</code> в модуле по умолчанию. Вы
         <code>ErrorController::errorAction()</code> в модуле по умолчанию. Вы
         можете установить альтернативные значения для перехода, используя
         можете установить альтернативные значения для перехода, используя
@@ -81,7 +83,7 @@
     </para>
     </para>
 
 
     <para>
     <para>
-        <code>Zend_Controller_Plugin_ErrorHandler</code> регистрирует
+        <classname>Zend_Controller_Plugin_ErrorHandler</classname> регистрирует
         перехватчик <code>postDispatch()</code> и проверяет, есть ли
         перехватчик <code>postDispatch()</code> и проверяет, есть ли
         зарегистрированые исключения в
         зарегистрированые исключения в
         <link linkend="zend.controller.response">объекте ответа</link>.
         <link linkend="zend.controller.response">объекте ответа</link>.
@@ -121,8 +123,7 @@ class ErrorController extends Zend_Controller_Action
         $errors = $this->_getParam('error_handler');
         $errors = $this->_getParam('error_handler');
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Имея объект ошибки, вы можете получить тип ошибки через
             Имея объект ошибки, вы можете получить тип ошибки через
@@ -181,8 +182,7 @@ class ErrorController extends Zend_Controller_Action
         }
         }
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Вы можете извлекать исключение, которое инициировало вызов
             Вы можете извлекать исключение, которое инициировало вызов
@@ -195,7 +195,6 @@ public function errorAction()
 {
 {
         $errors = $this->_getParam('error_handler');
         $errors = $this->_getParam('error_handler');
 
 
-
         switch ($errors->type) {
         switch ($errors->type) {
             case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
             case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
             case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
             case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
@@ -222,8 +221,8 @@ public function errorAction()
                             $exception->getTraceAsString());
                             $exception->getTraceAsString());
                 break;
                 break;
         }
         }
-}]]>
-        </programlisting>
+}
+]]></programlisting>
     </sect4>
     </sect4>
 
 
     <sect4 id="zend.controller.plugins.standard.errorhandler.buffer">
     <sect4 id="zend.controller.plugins.standard.errorhandler.buffer">
@@ -247,8 +246,7 @@ public function errorAction()
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $this->getResponse()->clearBody();
 $this->getResponse()->clearBody();
-]]>
-        </programlisting>
+]]></programlisting>
     </sect4>
     </sect4>
 
 
     <sect4 id="zend.controller.plugins.standard.errorhandler.examples">
     <sect4 id="zend.controller.plugins.standard.errorhandler.examples">
@@ -259,8 +257,7 @@ $this->getResponse()->clearBody();
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
 $front = Zend_Controller_Front::getInstance();
 $front = Zend_Controller_Front::getInstance();
 $front->registerPlugin(new Zend_Controller_Plugin_ErrorHandler());
 $front->registerPlugin(new Zend_Controller_Plugin_ErrorHandler());
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <example id="zend.controller.plugins.standard.errorhandler.examples.example-2">
         <example id="zend.controller.plugins.standard.errorhandler.examples.example-2">
@@ -272,8 +269,7 @@ $front->registerPlugin(new Zend_Controller_Plugin_ErrorHandler(array(
     'controller' => 'static',
     'controller' => 'static',
     'action'     => 'error'
     'action'     => 'error'
 )));
 )));
-]]>
-            </programlisting>
+]]></programlisting>
         </example>
         </example>
 
 
         <example id="zend.controller.plugins.standard.errorhandler.examples.example-3">
         <example id="zend.controller.plugins.standard.errorhandler.examples.example-3">
@@ -332,8 +328,7 @@ EOH;
         $this->view->content = $content;
         $this->view->content = $content;
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
     </sect4>
     </sect4>
 </sect3>
 </sect3>
 <!--
 <!--

+ 12 - 13
documentation/manual/ru/module_specs/Zend_Controller-Plugins.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.plugins" xmlns:xi="http://www.w3.org/2001/XInclude">
 <sect1 id="zend.controller.plugins" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Плагины</title>
     <title>Плагины</title>
 
 
@@ -16,7 +18,7 @@
 
 
         <para>
         <para>
             Методы событий определены в абстрактном классе
             Методы событий определены в абстрактном классе
-            <code>Zend_Controller_Plugin_Abstract</code>, от которого должны
+            <classname>Zend_Controller_Plugin_Abstract</classname>, от которого должны
             наследовать все пользовательские плагины:
             наследовать все пользовательские плагины:
         </para>
         </para>
 
 
@@ -24,7 +26,7 @@
             <listitem>
             <listitem>
                 <para>
                 <para>
                     <code>routeStartup()</code> вызывается до того, как
                     <code>routeStartup()</code> вызывается до того, как
-                    <code>Zend_Controller_Front</code> вызовет
+                    <classname>Zend_Controller_Front</classname> вызовет
                     <link linkend="zend.controller.router">маршрутизатор</link>
                     <link linkend="zend.controller.router">маршрутизатор</link>
                     для сопоставления запроса с зарегистрированными маршрутами.
                     для сопоставления запроса с зарегистрированными маршрутами.
                 </para>
                 </para>
@@ -41,7 +43,7 @@
             <listitem>
             <listitem>
                 <para>
                 <para>
                     <code>dispatchLoopStartup()</code> вызывается до того,
                     <code>dispatchLoopStartup()</code> вызывается до того,
-                    как <code>Zend_Controller_Front</code> войдет в цикл
+                    как <classname>Zend_Controller_Front</classname> войдет в цикл
                     диспетчеризации.
                     диспетчеризации.
                 </para>
                 </para>
             </listitem>
             </listitem>
@@ -77,7 +79,7 @@
             <listitem>
             <listitem>
                 <para>
                 <para>
                     <code>dispatchLoopShutdown()</code> вызывается после выхода
                     <code>dispatchLoopShutdown()</code> вызывается после выхода
-                    <code>Zend_Controller_Front</code> из его цикла
+                    <classname>Zend_Controller_Front</classname> из его цикла
                     диспетчеризации.
                     диспетчеризации.
                 </para>
                 </para>
             </listitem>
             </listitem>
@@ -89,7 +91,7 @@
 
 
         <para>
         <para>
             Для того, чтобы написать класс плагина, просто включите и расширьте
             Для того, чтобы написать класс плагина, просто включите и расширьте
-            абстрактный класс <code>Zend_Controller_Plugin_Abstract</code>:
+            абстрактный класс <classname>Zend_Controller_Plugin_Abstract</classname>:
         </para>
         </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
@@ -97,12 +99,11 @@ class MyPlugin extends Zend_Controller_Plugin_Abstract
 {
 {
     // ...
     // ...
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Ни один из методов класса
             Ни один из методов класса
-            <code>Zend_Controller_Plugin_Abstract</code> не является
+            <classname>Zend_Controller_Plugin_Abstract</classname> не является
             абстрактным, поэтому классы плагинов не обязательно должны
             абстрактным, поэтому классы плагинов не обязательно должны
             реализовывать все из перечисленных выше методов событий.
             реализовывать все из перечисленных выше методов событий.
             Разработчики плагинов могут реализовывать только те методы, которые
             Разработчики плагинов могут реализовывать только те методы, которые
@@ -110,7 +111,7 @@ class MyPlugin extends Zend_Controller_Plugin_Abstract
         </para>
         </para>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Plugin_Abstract</code> также делает объекты
+            <classname>Zend_Controller_Plugin_Abstract</classname> также делает объекты
             запроса и ответа доступными плагинам контроллеров через методы
             запроса и ответа доступными плагинам контроллеров через методы
             <code>getRequest()</code> и <code>getResponse()</code>,
             <code>getRequest()</code> и <code>getResponse()</code>,
             соответственно.
             соответственно.
@@ -172,8 +173,7 @@ $front->setControllerDirectory('/path/to/controllers')
       ->setRouter(new Zend_Controller_Router_Rewrite())
       ->setRouter(new Zend_Controller_Router_Rewrite())
       ->registerPlugin(new MyPlugin());
       ->registerPlugin(new MyPlugin());
 $front->dispatch();
 $front->dispatch();
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             При условии, что вызываемые действия не производят вывод, и
             При условии, что вызываемые действия не производят вывод, и
@@ -188,8 +188,7 @@ $front->dispatch();
 <p>preDispatch() called</p>
 <p>preDispatch() called</p>
 <p>postDispatch() called</p>
 <p>postDispatch() called</p>
 <p>dispatchLoopShutdown() called</p>
 <p>dispatchLoopShutdown() called</p>
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <note>
         <note>
             <para>
             <para>

+ 30 - 18
documentation/manual/ru/module_specs/Zend_Controller-QuickStart.xml

@@ -1,15 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.quickstart">
 <sect1 id="zend.controller.quickstart">
     <title>Zend_Controller - Быстрый старт</title>
     <title>Zend_Controller - Быстрый старт</title>
 
 
     <sect2 id="zend.controller.quickstart.introduction">
     <sect2 id="zend.controller.quickstart.introduction">
         <title>Введение</title>
         <title>Введение</title>
         <para>
         <para>
-            <code>Zend_Controller</code> является ядром системы MVC в Zend
+            <classname>Zend_Controller</classname> является ядром системы MVC в Zend
             Framework. Аббревиатура MVC - сокращение от
             Framework. Аббревиатура MVC - сокращение от
             <ulink url="http://en.wikipedia.org/wiki/Model-view-controller">Model-View-Controller</ulink>
             <ulink url="http://en.wikipedia.org/wiki/Model-view-controller">Model-View-Controller</ulink>
             (модель-вид-контроллер), это паттерн проектирования, предназначенный
             (модель-вид-контроллер), это паттерн проектирования, предназначенный
             для отделения логики приложения от логики представления.
             для отделения логики приложения от логики представления.
-            <code>Zend_Controller_Front</code> реализует паттерн
+            <classname>Zend_Controller_Front</classname> реализует паттерн
             <ulink url="http://www.martinfowler.com/eaaCatalog/frontController.html">Front
             <ulink url="http://www.martinfowler.com/eaaCatalog/frontController.html">Front
             Controller</ulink>, в котором все запросы перехватываются
             Controller</ulink>, в котором все запросы перехватываются
             фронт-контроллером (front controller) и перенаправляются отдельным
             фронт-контроллером (front controller) и перенаправляются отдельным
@@ -17,7 +19,7 @@
             производится по запрошенному URL.
             производится по запрошенному URL.
         </para>
         </para>
         <para>
         <para>
-            Система <code>Zend_Controller</code> построена с расчетом на
+            Система <classname>Zend_Controller</classname> построена с расчетом на
             расширяемость как через наследование от уже существующих классов
             расширяемость как через наследование от уже существующих классов
             и написание новых классов, реализующих различные интерфейсы и
             и написание новых классов, реализующих различные интерфейсы и
             абстрактные классы, образующих основу семейства классов
             абстрактные классы, образующих основу семейства классов
@@ -32,7 +34,7 @@
         <para>
         <para>
             Если вам нужна более подробная информация, то сразу переходите к
             Если вам нужна более подробная информация, то сразу переходите к
             следующим разделам. Если хотите быстро начать работать с
             следующим разделам. Если хотите быстро начать работать с
-            <code>Zend_Controller</code>, то читайте далее.
+            <classname>Zend_Controller</classname>, то читайте далее.
         </para>
         </para>
 
 
         <sect3 id="zend.controller.quickstart.go.directory">
         <sect3 id="zend.controller.quickstart.go.directory">
@@ -89,13 +91,28 @@ RewriteRule ^.*$ - [NC,L]
 RewriteRule ^.*$ index.php [NC,L]
 RewriteRule ^.*$ index.php [NC,L]
 ]]>
 ]]>
             </programlisting>
             </programlisting>
-            
+
+            <note>
+                <title>Узнайте больше о mod_rewrite</title>
+
+                <para>
+                    Приведенные выше правила перезаписи позволяют получить
+                    доступ к любому файлу в корневой для веб-документов
+                    директории вашего виртуального хоста. Если
+                    в ней есть файлы, которые нужно скрыть от посторонних глаз,
+                    то вы наверное захотите установить более строгие правила.
+                    Перейдите на сайт Apache, чтобы
+                    <ulink
+                        url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">узнать больше о mod_rewrite</ulink>.
+                </para>
+            </note>
+
             <para>
             <para>
                 Если у вас IIS 7.0, то используйте следующую
                 Если у вас IIS 7.0, то используйте следующую
                 конфигурацию перезаписи:
                 конфигурацию перезаписи:
             </para>
             </para>
 
 
-            <programlisting role="xml"><![CDATA[
+            <programlisting language="xml"><![CDATA[
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
 <configuration>
      <system.webServer>
      <system.webServer>
@@ -152,8 +169,7 @@ RewriteRule ^.*$ index.php [NC,L]
 
 
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
 Zend_Controller_Front::run('/path/to/app/controllers');
 Zend_Controller_Front::run('/path/to/app/controllers');
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 Этот код выполняет инстанцирование и запуск фронт-контроллера,
                 Этот код выполняет инстанцирование и запуск фронт-контроллера,
@@ -180,7 +196,7 @@ Zend_Controller_Front::run('/path/to/app/controllers');
             </para>
             </para>
 
 
             <para>
             <para>
-                Диспетчер <code>Zend_Controller</code> принимает значение
+                Диспетчер <classname>Zend_Controller</classname>-а принимает значение
                 контроллера и находит соответствующий ему класс. По умолчанию
                 контроллера и находит соответствующий ему класс. По умолчанию
                 это имя контроллера, начинающееся с заглавной буквы и со словом
                 это имя контроллера, начинающееся с заглавной буквы и со словом
                 <code>Controller</code> в конце. Таким образом, контроллер
                 <code>Controller</code> в конце. Таким образом, контроллер
@@ -216,8 +232,7 @@ class IndexController extends Zend_Controller_Action
     {
     {
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 По умолчанию включен помощник действий <link
                 По умолчанию включен помощник действий <link
@@ -225,7 +240,7 @@ class IndexController extends Zend_Controller_Action
                 Это означает, что, просто определив метод действия и
                 Это означает, что, просто определив метод действия и
                 соответствующий скрипт вида, вы получите рендеринг контента.
                 соответствующий скрипт вида, вы получите рендеринг контента.
                 По умолчанию в MVC в качестве "вида" используется
                 По умолчанию в MVC в качестве "вида" используется
-                <code>Zend_View</code>. <code>render()</code> использует имя
+                <classname>Zend_View</classname>. <code>render()</code> использует имя
                 контроллера (например, <code>index</code>) и имя текущего
                 контроллера (например, <code>index</code>) и имя текущего
                 действия (например, <code>index</code>) для определения того,
                 действия (например, <code>index</code>) для определения того,
                 какой шаблон тянуть. По умолчанию шаблоны имеют расширение
                 какой шаблон тянуть. По умолчанию шаблоны имеют расширение
@@ -266,8 +281,7 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     <h1>Hello, World!</h1>
     <h1>Hello, World!</h1>
 </body>
 </body>
 </html>
 </html>
-]]>
-            </programlisting>
+]]></programlisting>
         </sect3>
         </sect3>
 
 
         <sect3 id="zend.controller.quickstart.go.errorhandler">
         <sect3 id="zend.controller.quickstart.go.errorhandler">
@@ -289,8 +303,7 @@ class ErrorController extends Zend_Controller_Action
     {
     {
     }
     }
 }
 }
-]]>
-            </programlisting>
+]]></programlisting>
 
 
             <para>
             <para>
                 Согласно уже обсуждаемой выше структуре директорий этот файл
                 Согласно уже обсуждаемой выше структуре директорий этот файл
@@ -315,8 +328,7 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     <p>An error occurred; please try again later.</p>
     <p>An error occurred; please try again later.</p>
 </body>
 </body>
 </html>
 </html>
-]]>
-            </programlisting>
+]]></programlisting>
         </sect3>
         </sect3>
 
 
         <sect3 id="zend.controller.quickstart.go.finish">
         <sect3 id="zend.controller.quickstart.go.finish">

+ 23 - 23
documentation/manual/ru/module_specs/Zend_Controller-Request.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.request">
 <sect1 id="zend.controller.request">
     <title>Объект запроса</title>
     <title>Объект запроса</title>
     <sect2 id="zend.controller.request.introduction">
     <sect2 id="zend.controller.request.introduction">
@@ -6,7 +8,7 @@
             Объект запроса - это простой "объект значений"
             Объект запроса - это простой "объект значений"
             (<ulink url="http://www.patternsforphp.com/wiki/Value_Object">value
             (<ulink url="http://www.patternsforphp.com/wiki/Value_Object">value
             object</ulink>), который передается между
             object</ulink>), который передается между
-            <code>Zend_Controller_Front</code>, маршрутизатором,
+            <classname>Zend_Controller_Front</classname>, маршрутизатором,
             диспетчером и контроллерами. Он хранит в себе имена запрошенных
             диспетчером и контроллерами. Он хранит в себе имена запрошенных
             модуля, контроллера, действия и необязательные параметры, а также
             модуля, контроллера, действия и необязательные параметры, а также
             остальную среду (переменные) запроса, будь это HTTP, CLI или
             остальную среду (переменные) запроса, будь это HTTP, CLI или
@@ -45,7 +47,7 @@
         <para>
         <para>
             Методов, которые можно использовать в запросе, может быть больше, в
             Методов, которые можно использовать в запросе, может быть больше, в
             зависимости от типа запроса. Например, используемый по умолчанию
             зависимости от типа запроса. Например, используемый по умолчанию
-            запрос <code>Zend_Controller_Request_Http</code> имеет методы для
+            запрос <classname>Zend_Controller_Request_Http</classname> имеет методы для
             получения URI запроса, пути в нем, параметров <code>$_GET</code> и
             получения URI запроса, пути в нем, параметров <code>$_GET</code> и
             <code>$_POST</code>, и т.д.
             <code>$_POST</code>, и т.д.
         </para>
         </para>
@@ -76,7 +78,7 @@
             <title>Доступ к данным запроса</title>
             <title>Доступ к данным запроса</title>
 
 
             <para>
             <para>
-                <code>Zend_Controller_Request_Http</code> инкапсулирует доступ к
+                <classname>Zend_Controller_Request_Http</classname> инкапсулирует доступ к
                 соответствующим значениям, таким, как имя и значение ключа для
                 соответствующим значениям, таким, как имя и значение ключа для
                 переменных контроллера и действия, и все дополнительные
                 переменных контроллера и действия, и все дополнительные
                 параметры, полученные из URI. Он также позволяет обращаться
                 параметры, полученные из URI. Он также позволяет обращаться
@@ -92,7 +94,7 @@
                 <title>Суперглобальные данные</title>
                 <title>Суперглобальные данные</title>
                 <para>
                 <para>
                     Когда получаете доступ к суперглобальным данным через
                     Когда получаете доступ к суперглобальным данным через
-                    <code>Zend_Controller_Request_Http</code> как к публичным
+                    <classname>Zend_Controller_Request_Http</classname> как к публичным
                     свойствам, то необходимо помнить, что имя свойства (ключ
                     свойствам, то необходимо помнить, что имя свойства (ключ
                     суперглобального массива) сопоставляются с суперглобальными
                     суперглобального массива) сопоставляются с суперглобальными
                     массивами в определенной последовательности: 1. GET,
                     массивами в определенной последовательности: 1. GET,
@@ -189,20 +191,19 @@
                     <code>$_SERVER['REQUEST_URI']</code>. Если вы используете
                     <code>$_SERVER['REQUEST_URI']</code>. Если вы используете
                     такие установки и получаете неверную маршрутизацию, то
                     такие установки и получаете неверную маршрутизацию, то
                     должны использовать для своего объекта запроса класс
                     должны использовать для своего объекта запроса класс
-                    <code>Zend_Controller_Request_Apache404</code> вместо
-                    <code>Zend_Controller_Request_Http</code>, используемого по
+                    <classname>Zend_Controller_Request_Apache404</classname> вместо
+                    <classname>Zend_Controller_Request_Http</classname>, используемого по
                     умолчанию.
                     умолчанию.
                 </para>
                 </para>
 
 
                 <programlisting language="php"><![CDATA[
                 <programlisting language="php"><![CDATA[
 $request = new Zend_Controller_Request_Apache404();
 $request = new Zend_Controller_Request_Apache404();
 $front->setRequest($request);
 $front->setRequest($request);
-]]>
-                </programlisting>
+]]></programlisting>
 
 
                 <para>
                 <para>
                     Этот класс расширяет
                     Этот класс расширяет
-                    <code>Zend_Controller_Request_Http</code> и просто изменяет
+                    <classname>Zend_Controller_Request_Http</classname> и просто изменяет
                     автоопределение URI запроса. Он может использоваться в
                     автоопределение URI запроса. Он может использоваться в
                     качестве замены.
                     качестве замены.
                 </para>
                 </para>
@@ -214,9 +215,9 @@ $front->setRequest($request);
             <title>Базовый URL и поддиректории</title>
             <title>Базовый URL и поддиректории</title>
 
 
             <para>
             <para>
-                <code>Zend_Controller_Request_Http</code> позволяет использовать
-                <code>Zend_Controller_Router_Rewrite</code> в поддиректориях.
-                <code>Zend_Controller_Request_Http</code> попытается автоматически
+                <classname>Zend_Controller_Request_Http</classname> позволяет использовать
+                <classname>Zend_Controller_Router_Rewrite</classname> в поддиректориях.
+                <classname>Zend_Controller_Request_Http</classname> попытается автоматически
                 определить ваш базовый URL и соответствующим образом установить
                 определить ваш базовый URL и соответствующим образом установить
                 его.
                 его.
             </para>
             </para>
@@ -250,10 +251,10 @@ $front->setRequest($request);
                 Если базовый URL определяется некорректно, то вы можете заменить
                 Если базовый URL определяется некорректно, то вы можете заменить
                 его своим базовым путем с помощью метода
                 его своим базовым путем с помощью метода
                 <code>setBaseUrl()</code>, который есть в классах
                 <code>setBaseUrl()</code>, который есть в классах
-                <code>Zend_Http_Request</code>,
-                <code>Zend_Controller_Request_Http</code> и
-                <code>Zend_Controller_Front</code>. Легче всего установить его
-                через <code>Zend_Controller_Front</code>, который в свою очередь
+                <classname>Zend_Http_Request</classname>,
+                <classname>Zend_Controller_Request_Http</classname> и
+                <classname>Zend_Controller_Front</classname>. Легче всего установить его
+                через <classname>Zend_Controller_Front</classname>, который в свою очередь
                 установит его в объекте запроса. Пример установки своего
                 установит его в объекте запроса. Пример установки своего
                 базового URL:
                 базового URL:
             </para>
             </para>
@@ -268,8 +269,7 @@ $controller->setControllerDirectory('./application/controllers')
            ->setRouter($router)
            ->setRouter($router)
            ->setBaseUrl('/projects/myapp'); // установка базового URL!
            ->setBaseUrl('/projects/myapp'); // установка базового URL!
 $response   = $controller->dispatch();
 $response   = $controller->dispatch();
-]]>
-            </programlisting>
+]]></programlisting>
 
 
         </sect3>
         </sect3>
 
 
@@ -302,7 +302,8 @@ $response   = $controller->dispatch();
             <title>Определение запросов AJAX</title>
             <title>Определение запросов AJAX</title>
 
 
             <para>
             <para>
-                <code>Zend_Controller_Request_Http</code> имеет зачаточный метод
+                <classname>Zend_Controller_Request_Http</classname> имеет
+                рудиментарный метод
                 для определения запросов AJAX: <code>isXmlHttpRequest()</code>.
                 для определения запросов AJAX: <code>isXmlHttpRequest()</code>.
                 Этот метод проверяет наличие заголовка HTTP-запроса
                 Этот метод проверяет наличие заголовка HTTP-запроса
                 <code>X-Requested-With</code> со значением 'XMLHttpRequest'.
                 <code>X-Requested-With</code> со значением 'XMLHttpRequest'.
@@ -326,7 +327,7 @@ $response   = $controller->dispatch();
                 заголовки HTTP-запросов. Если ваша библиотека не отправляет этот
                 заголовки HTTP-запросов. Если ваша библиотека не отправляет этот
                 заголовок, то просто добавьте его в качестве заголовка ответа,
                 заголовок, то просто добавьте его в качестве заголовка ответа,
                 чтобы быть уверенным в том, что метод
                 чтобы быть уверенным в том, что метод
-                <code>isXmlHttpRequest()</code> работает для вас.
+                <code>isXmlHttpRequest()</code> работает в вашем случае.
             </para>
             </para>
         </sect3>
         </sect3>
     </sect2>
     </sect2>
@@ -336,7 +337,7 @@ $response   = $controller->dispatch();
 
 
         <para>
         <para>
             Базовый класс запроса, используемый для всех объектов запроса, -
             Базовый класс запроса, используемый для всех объектов запроса, -
-            абстрактный класс <code>Zend_Controller_Request_Abstract</code>.
+            абстрактный класс <classname>Zend_Controller_Request_Abstract</classname>.
             Он определяет следующие методы:
             Он определяет следующие методы:
         </para>
         </para>
 
 
@@ -422,8 +423,7 @@ abstract class Zend_Controller_Request_Abstract
      */
      */
     public function isDispatched();
     public function isDispatched();
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Объект запроса является контейнером для переменных запроса. Цепочке
             Объект запроса является контейнером для переменных запроса. Цепочке

+ 14 - 19
documentation/manual/ru/module_specs/Zend_Controller-Response.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.response">
 <sect1 id="zend.controller.response">
     <title>Объект ответа</title>
     <title>Объект ответа</title>
 
 
@@ -17,8 +19,7 @@
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $front->throwExceptions(true);
 $front->throwExceptions(true);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Для отправки выходных данных, включая заголовки, используйте
             Для отправки выходных данных, включая заголовки, используйте
@@ -27,8 +28,7 @@ $front->throwExceptions(true);
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $response->sendResponse();
 $response->sendResponse();
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <note>
         <note>
             <para>
             <para>
@@ -49,8 +49,7 @@ $response = $front->dispatch();
 // производим необходимые манипуляции с данными (например,
 // производим необходимые манипуляции с данными (например,
 // журналирование), затем отправляем выходные данные:
 // журналирование), затем отправляем выходные данные:
 $response->sendResponse();
 $response->sendResponse();
-]]>
-            </programlisting>
+]]></programlisting>
         </note>
         </note>
 
 
         <para>
         <para>
@@ -65,8 +64,7 @@ $response->sendResponse();
 $this->getResponse()
 $this->getResponse()
     ->setHeader('Content-Type', 'text/html')
     ->setHeader('Content-Type', 'text/html')
     ->appendBody($content);
     ->appendBody($content);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Этим достигается то, что все заголовки будут отправлены
             Этим достигается то, что все заголовки будут отправлены
@@ -118,8 +116,7 @@ $response = $front->dispatch();
 
 
 // В конце выводим ответ
 // В конце выводим ответ
 $response->sendResponse();
 $response->sendResponse();
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             По умолчанию сообщения исключений не отображаются. Это поведение
             По умолчанию сообщения исключений не отображаются. Это поведение
@@ -142,8 +139,7 @@ $response->sendResponse();
 // или:
 // или:
 $front->throwExceptions(true);
 $front->throwExceptions(true);
 $front->dispatch();
 $front->dispatch();
-]]>
-        </programlisting>
+]]></programlisting>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.response.headers">
     <sect2 id="zend.controller.response.headers">
@@ -308,8 +304,7 @@ class MyController extends Zend_Controller_Action
         $this->render();
         $this->render();
     }
     }
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             В примере выше вызов <code>/my/foo</code> приведет к тому, что
             В примере выше вызов <code>/my/foo</code> приведет к тому, что
@@ -323,8 +318,7 @@ array(
     'default' => ..., // содержимое тела страницы из MyController::fooAction()
     'default' => ..., // содержимое тела страницы из MyController::fooAction()
     'footer'  => ...  // содержимое низа страницы
     'footer'  => ...  // содержимое низа страницы
 );
 );
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Рендеринг производится в том порядке, в котором элементы
             Рендеринг производится в том порядке, в котором элементы
@@ -509,9 +503,10 @@ array(
 
 
         <para>
         <para>
             Базовым классом ответа является
             Базовым классом ответа является
-            <code>Zend_Controller_Response_Abstract</code>, все создаваемые
-            вами подклассы должны наследовать от него или одного из его
-            потомков. Доступные методы были перечислены в предыдущих разделах.
+            <classname>Zend_Controller_Response_Abstract</classname>, все
+            создаваемые вами подклассы должны наследовать от него или одного из
+            его потомков. Доступные методы были перечислены в предыдущих
+            разделах.
         </para>
         </para>
 
 
         <para>
         <para>

+ 191 - 0
documentation/manual/ru/module_specs/Zend_Controller-Router-Route-Chain.xml

@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect3 id="zend.controller.router.routes.chain">
+    <title>Zend_Controller_Router_Route_Chain</title>
+
+    <para>
+        <classname>Zend_Controller_Router_Route_Chain</classname>
+        является маршрутом, который позволяет объединять несколько маршрутов
+        между собой. Это позволяет, например, объединять маршруты по имени
+        хоста с маршрутами по пути или несколько маршрутов по пути.
+        Объединение может быть произведено программным путем или в
+        конфигурационном файле.
+    </para>
+
+    <note>
+        <title>Приоритет параметров</title>
+        <para>
+            При объединении маршрутов параметры внешнего маршрута имеют
+            больший приоритет, чем параметры внутреннего маршрута. 
+            Таким образом, если вы определили контроллер одновременно во
+            внутреннем и внешнем маршрутах, то будет выбран контроллер из
+            внешнего маршрута.
+        </para>
+    </note>
+    
+    <para>
+        При объединении маршрутов программным путем есть два способа достижения
+        этого. Первый состоит в создании нового экземпляра класса
+        <classname>Zend_Controller_Router_Route_Chain</classname>
+        и последующем вызове метода <code>chain</code> несколько раз
+        со всеми маршрутами, которые должны быть объединены между собой.
+        Другой состоит в том, чтобы брать первый маршрут, например, маршрут по
+        имени хоста, и вызывать его метод <code>chain</code> с маршрутом,
+        который должен быть добавлен к нему.
+        При этом маршрут по имени хоста не изменяется, но будет
+        возвращен новый экземпляр класса
+        <classname>Zend_Controller_Router_Route_Chain</classname>, который
+        объединяет в себе два маршрута:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+// Создаются два маршрута
+$hostnameRoute = new Zend_Controller_Router_Route_Hostname(...);
+$pathRoute     = new Zend_Controller_Router_Route(...);
+
+// Первый способ - объединение через маршрут-"цепочку
+$chainedRoute = new Zend_Controller_Router_Route_Chain();
+$chainedRoute->chain($hostnameRoute)
+             ->chain($pathRoute);
+
+// Второй способ - непосредственное объединение
+$chainedRoute = $hostnameRoute->chain($pathRoute);
+]]></programlisting>
+
+    <para>
+        При объединении маршрутов их разделителем по умолчанию будет
+        косая черта. Но может понадобиться использовать и другие разделители:
+    </para>
+
+    <programlisting language="php"><![CDATA[
+// Создаются два маршрута
+$firstRoute  = new Zend_Controller_Router_Route('foo');
+$secondRoute = new Zend_Controller_Router_Route('bar');
+
+// Объединение с использованием другого разделителя
+$chainedRoute = $firstRoute->chain($secondRoute, '-');
+
+// Результирующий маршрут: "foo-bar"
+echo $chainedRoute->assemble();
+]]></programlisting>
+
+    <sect4 id="zend.controller.router.routes.chain.config">
+        <title>Объединение маршрутов через Zend_Config</title>
+
+        <para>
+            Для объединения маршрутов в конфигурационном файле есть
+            дополнительные параметры. Наиболее простой способ состоит в
+            использовании параметра <code>chains</code>.
+            Это просто список маршрутов, которые будут
+            объединены с родительским. Ни родительский, ни дочерний
+            маршруты не будут добавлены в маршрутизатор напрямую, в него будет
+            добавлен только составленный из них маршрут. Имя объединенного
+            маршрута в маршрутизаторе будет состоять из имени родительского
+            маршрута и имени дочернего маршрута, объединенных с использованием
+            тире (-). Простая конфигурация в формате XML может выглядеть
+            следующим образом:
+        </para>
+
+        <programlisting language="xml"><![CDATA[
+<routes>
+    <www type="Zend_Controller_Router_Route_Hostname">
+        <route>www.example.com</route>
+        <chains>
+            <language type="Zend_Controller_Router_Route">
+                <route>:language</route>
+                <reqs language="[a-z]{2}">
+                <chains>
+                    <index type="Zend_Controller_Router_Route_Static">
+                        <route></route>
+                        <defaults module="default" controller="index" action="index" />
+                    </index>
+                    <imprint type="Zend_Controller_Router_Route_Static">
+                        <route>imprint</route>
+                        <defaults module="default" controller="index" action="index" />
+                    </imprint>
+                </chains>
+            </language>
+        </chains>
+    </www>
+    <users type="Zend_Controller_Router_Route_Hostname">
+        <route>users.example.com</route>
+        <chains>
+            <profile type="Zend_Controller_Router_Route">
+                <route>:username</route>
+                <defaults module="users" controller="profile" action="index" />
+            </profile>
+        </chains>
+    </users>
+    <misc type="Zend_Controller_Router_Route_Static">
+        <route>misc</route>
+    </misc>
+</routes>
+]]></programlisting>
+
+        <para>
+            Результатом будет три маршрута: <code>www-language-index</code>,
+            <code>www-language-imprint</code> и <code>users-language-profile</code>,
+            которые будут соответствовать только именам хоста, подходящим под
+            заданные определения, и маршрут <code>misc</code>, который будет
+            соответствовать любым именам хоста.
+        </para>
+
+        <para>
+            Альтернативный способ создания объединенных маршрутов состоит в
+            применении параметра <code>chain</code>,
+            который может использоваться только с маршрутами типа
+            <classname>Zend_Controller_Router_Route_Chain</classname>,
+            эти маршруты указываются на том же уровне, что и остальные:
+        </para>
+
+        <programlisting language="xml"><![CDATA[
+<routes>
+    <www type="Zend_Controller_Router_Route_Chain">
+        <route>www.example.com</route>
+    </www>
+    <language type="Zend_Controller_Router_Route">
+        <route>:language</route>
+        <reqs language="[a-z]{2}">
+    </language>
+    <index type="Zend_Controller_Router_Route_Static">
+        <route></route>
+        <defaults module="default" controller="index" action="index" />
+    </index>
+    <imprint type="Zend_Controller_Router_Route_Static">
+        <route>imprint</route>
+        <defaults module="default" controller="index" action="index" />
+    </imprint>
+
+    <www-index type="Zend_Controller_Router_Route_Chain">
+        <chain>www, language, index</chain>
+    </www-index>
+    <www-imprint type="Zend_Controller_Router_Route_Chain">
+        <chain>www, language, imprint</chain>
+    </www-imprint>
+</routes>
+]]></programlisting>
+
+        <para>
+            Вы можете также передавать параметр <code>chain</code> в виде
+            массива вместо перечисления маршрутов через запятую:
+        </para>
+
+        <programlisting language="xml"><![CDATA[
+<routes>
+    <www-index type="Zend_Controller_Router_Route_Chain">
+        <chain>www</chain>
+        <chain>language</chain>
+        <chain>index</chain>
+    </www-index>
+    <www-imprint type="Zend_Controller_Router_Route_Chain">
+        <chain>www</chain>
+        <chain>language</chain>
+        <chain>imprint</chain>
+    </www-imprint>
+</routes>
+]]></programlisting>
+    </sect4>
+</sect3>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 11 - 77
documentation/manual/ru/module_specs/Zend_Controller-Router-Route-Hostname.xml

@@ -1,10 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.router.routes.hostname">
 <sect3 id="zend.controller.router.routes.hostname">
     <title>Zend_Controller_Router_Route_Hostname</title>
     <title>Zend_Controller_Router_Route_Hostname</title>
 
 
     <para>
     <para>
-        <code>Zend_Controller_Router_Route_Hostname</code> является маршрутом,
-        основанным на имени хоста. Он работает аналогично стандартному маршруту,
-        но использует имя хоста в URL вместо пути.
+        <classname>Zend_Controller_Router_Route_Hostname</classname> является
+        маршрутом, основанным на имени хоста. Он работает аналогично
+        стандартному маршруту, но использует имя хоста в URL вместо пути.
     </para>
     </para>
 
 
     <para>
     <para>
@@ -27,13 +29,12 @@ $hostnameRoute = new Zend_Controller_Router_Route_Hostname(
 $plainPathRoute = new Zend_Controller_Router_Route_Static('');
 $plainPathRoute = new Zend_Controller_Router_Route_Static('');
 
 
 $router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
 $router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Первым параметром в конструкторе
         Первым параметром в конструкторе
-        <code>Zend_Controller_Router_Route_Hostname</code> является определение
-        маршрута, которое будет сопоставляться с именем хоста.
+        <classname>Zend_Controller_Router_Route_Hostname</classname> является
+        определение маршрута, которое будет сопоставляться с именем хоста.
         Определения маршрутов содержат статические и динамические части,
         Определения маршрутов содержат статические и динамические части,
         разделенные точкой ('.'). Динамические части, называемые
         разделенные точкой ('.'). Динамические части, называемые
         переменными, помечаются знаком двоеточия:
         переменными, помечаются знаком двоеточия:
@@ -44,83 +45,16 @@ $router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
     <para>
     <para>
         Технически маршруты по имени хоста могут использоваться сами по
         Технически маршруты по имени хоста могут использоваться сами по
         себе, но этого никогда не следует делать по той причине, что
         себе, но этого никогда не следует делать по той причине, что
-        отдельно такой маршрут может соответствовать любому
+        сам по себе такой маршрут может соответствовать любому
         пути. Поэтому нужно объединять маршруты по имени хоста
         пути. Поэтому нужно объединять маршруты по имени хоста
         с маршрутами по пути. Это можно делать так, как
         с маршрутами по пути. Это можно делать так, как
         показано в примере выше - путем вызова
         показано в примере выше - путем вызова
         <code>$hostnameRoute->chain($pathRoute);</code>.
         <code>$hostnameRoute->chain($pathRoute);</code>.
         При этом <code>$hostnameRoute</code> не изменяется, но будет
         При этом <code>$hostnameRoute</code> не изменяется, но будет
         возвращен новый маршрут
         возвращен новый маршрут
-        (<code>Zend_Controller_Router_Route_Chain</code>), который может быть
-        передан маршрутизатору.
+        (<classname>Zend_Controller_Router_Route_Chain</classname>), который
+        может быть передан маршрутизатору.
     </para>
     </para>
-
-    <note>
-        <title>Приоритет параметров</title>
-        <para>
-            При объединении маршрутоа по имени хоста и маршрута по пути
-            параметры маршрута по имени хоста имеют больший приоритет.
-            Таким образом, если вы определили контроллер одновременно в
-            маршрутах обоих типов, то будет выбран контроллер из
-            маршрута по имени хоста.
-        </para>
-    </note>
-
-    <sect4 id="zend.controller.router.routes.hostname.config">
-        <title>Указание маршрутов по имени хоста через <code>Zend_Config</code></title>
-
-        <para>
-            Для объединения маршрутов по имени хоста и по пути есть
-            дополнительный параметр для конфигурации -
-            <code>chains</code>. Это просто список маршрутов, который будет
-            объединен с родительским маршрутом. Ни родительский, ни дочерний
-            маршруты не будут добавлены в маршрутизатор напрямую, в него будет
-            добавлен только составленный из них маршрут. Имя объединенного
-            маршрута в маршрутизаторе будет состоять из имени родительского
-            маршрута и имени дочернего маршрута, объединенных с использованием
-            тире (-). Простая конфигугация в формате XML может выглядеть
-            следующим образом:
-        </para>
-
-        <programlisting role="xml"><![CDATA[
-<routes>
-    <www type="Zend_Controller_Router_Route_Hostname">
-        <route>www.example.com</route>
-        <chains>
-            <index type="Zend_Controller_Router_Route_Static">
-                <route></route>
-                <defaults module="default" controller="index" action="index" />
-            </index>
-            <imprint type="Zend_Controller_Router_Route_Static">
-                <route>imprint</route>
-                <defaults module="default" controller="index" action="index" />
-            </imprint>
-        </chains>
-    </www>
-    <users type="Zend_Controller_Router_Route_Hostname">
-        <route>users.example.com</route>
-        <chains>
-            <profile type="Zend_Controller_Router_Route">
-                <route>:username</route>
-                <defaults module="users" controller="profile" action="index" />
-            </profile>
-        </chains>
-    </users>
-    <misc type="Zend_Controller_Router_Route_Static">
-        <route>misc</route>
-    </misc>
-</routes>
-]]>
-        </programlisting>
-
-        <para>
-            Результатом будет три маршрута: <code>www-index</code>,
-            <code>www-imprint</code> и <code>users-profile</code>,
-            которые будут соответствовать только именам хоста, подходящим под
-            заданные определения, и маршрут <code>misc</code>, который будет
-            соответствовать любым именам хоста.
-        </para>
-    </sect4>
 </sect3>
 </sect3>
 <!--
 <!--
 vim:se ts=4 sw=4 et:
 vim:se ts=4 sw=4 et:

+ 13 - 23
documentation/manual/ru/module_specs/Zend_Controller-Router-Route-Regex.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.router.routes.regex">
 <sect3 id="zend.controller.router.routes.regex">
     <title>Zend_Controller_Router_Route_Regex</title>
     <title>Zend_Controller_Router_Route_Regex</title>
 
 
@@ -26,8 +28,7 @@ $route = new Zend_Controller_Router_Route_Regex(
     )
     )
 );
 );
 $router->addRoute('archive', $route);
 $router->addRoute('archive', $route);
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Каждый определенный подшаблон регулярного выражения будет внедрен в
         Каждый определенный подшаблон регулярного выражения будет внедрен в
@@ -42,8 +43,7 @@ $values = array(
     'controller' => 'archive',
     'controller' => 'archive',
     'action'     => 'show'
     'action'     => 'show'
 );
 );
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <note>
     <note>
         <para>
         <para>
@@ -85,8 +85,7 @@ public function showAction()
     $request = $this->getRequest();
     $request = $this->getRequest();
     $year    = $request->getParam(1); // $year = '2006';
     $year    = $request->getParam(1); // $year = '2006';
 }
 }
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <note>
     <note>
         <para>
         <para>
@@ -114,8 +113,7 @@ $route = new Zend_Controller_Router_Route_Regex(
     )
     )
 );
 );
 $router->addRoute('archive', $route);
 $router->addRoute('archive', $route);
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         А теперь давайте обратимся к проблеме, которую вы, должно быть, заметили
         А теперь давайте обратимся к проблеме, которую вы, должно быть, заметили
@@ -139,8 +137,7 @@ $route = new Zend_Controller_Router_Route_Regex(
     )
     )
 );
 );
 $router->addRoute('archive', $route);
 $router->addRoute('archive', $route);
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Это приведет к тому, что в объект запроса будут добавлены следующие
         Это приведет к тому, что в объект запроса будут добавлены следующие
@@ -153,8 +150,7 @@ $values = array(
     'controller' => 'archive',
     'controller' => 'archive',
     'action'     => 'show'
     'action'     => 'show'
 );
 );
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Для того, чтобы соответствия работали в любом окружении, они могут быть
         Для того, чтобы соответствия работали в любом окружении, они могут быть
@@ -162,7 +158,6 @@ $values = array(
         переменных, так и индексы подшаблонов:
         переменных, так и индексы подшаблонов:
     </para>
     </para>
 
 
-
     <programlisting language="php"><![CDATA[
     <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
 $route = new Zend_Controller_Router_Route_Regex(
     'archive/(\d+)',
     'archive/(\d+)',
@@ -177,8 +172,7 @@ $route = new Zend_Controller_Router_Route_Regex(
     array( ... ),
     array( ... ),
     array('year' => 1)
     array('year' => 1)
 );
 );
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <note>
     <note>
         <para>
         <para>
@@ -198,8 +192,7 @@ $route = new Zend_Controller_Router_Route_Regex(
     array( ... ),
     array( ... ),
     array('year' => 1)
     array('year' => 1)
 );
 );
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Это приведет к тому, что в объекте запроса будут значения с разными
         Это приведет к тому, что в объекте запроса будут значения с разными
@@ -215,8 +208,7 @@ $values = array(
     'controller' => 'archive',
     'controller' => 'archive',
     'action'     => 'show'
     'action'     => 'show'
 );
 );
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Поскольку регулярные выражения трудно реверсировать, то вам нужно будет
         Поскольку регулярные выражения трудно реверсировать, то вам нужно будет
@@ -233,8 +225,7 @@ $route = new Zend_Controller_Router_Route_Regex(
     array('year' => 1),
     array('year' => 1),
     'archive/%s'
     'archive/%s'
 );
 );
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Все это можно реализовать через объект стандартного маршрута, поэтому вы
         Все это можно реализовать через объект стандартного маршрута, поэтому вы
@@ -263,8 +254,7 @@ $route = new Zend_Controller_Router_Route_Regex(
     'blog/archive/%d-%s.html'
     'blog/archive/%d-%s.html'
 );
 );
 $router->addRoute('blogArchive', $route);
 $router->addRoute('blogArchive', $route);
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Как вы можете видеть, маршруты Regex дают несравненно большую гибкость
         Как вы можете видеть, маршруты Regex дают несравненно большую гибкость

+ 3 - 2
documentation/manual/ru/module_specs/Zend_Controller-Router-Route-Static.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.router.routes.static">
 <sect3 id="zend.controller.router.routes.static">
     <title>Zend_Controller_Router_Route_Static</title>
     <title>Zend_Controller_Router_Route_Static</title>
 
 
@@ -15,8 +17,7 @@ $route = new Zend_Controller_Router_Route_Static(
     array('controller' => 'auth', 'action' => 'login')
     array('controller' => 'auth', 'action' => 'login')
 );
 );
 $router->addRoute('login', $route);
 $router->addRoute('login', $route);
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Этот маршрут будет соответствовать URL
         Этот маршрут будет соответствовать URL

+ 201 - 23
documentation/manual/ru/module_specs/Zend_Controller-Router-Route.xml

@@ -1,8 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect3 id="zend.controller.router.routes.standard">
 <sect3 id="zend.controller.router.routes.standard">
     <title>Zend_Controller_Router_Route</title>
     <title>Zend_Controller_Router_Route</title>
 
 
     <para>
     <para>
-        <code>Zend_Controller_Router_Route</code> - стандартный маршрут
+        <classname>Zend_Controller_Router_Route</classname> - стандартный маршрут
         фреймворка. Он сочетает в себе легкость использования и гибкость
         фреймворка. Он сочетает в себе легкость использования и гибкость
         определения маршрутов. Каждый маршрут состоит в основном из карты URL
         определения маршрутов. Каждый маршрут состоит в основном из карты URL
         (статических и динамических частей (переменных)), и может быть
         (статических и динамических частей (переменных)), и может быть
@@ -27,11 +29,10 @@ $route = new Zend_Controller_Router_Route(
 );
 );
 
 
 $router->addRoute('user', $route);
 $router->addRoute('user', $route);
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
-        Первый параметр конструктора <code>Zend_Controller_Router_Route</code> -
+        Первый параметр конструктора <classname>Zend_Controller_Router_Route</classname> -
         определение маршрута, которое будет сопоставляться с URL. Определения
         определение маршрута, которое будет сопоставляться с URL. Определения
         маршрутов содержат статические и динамические части, разделенные
         маршрутов содержат статические и динамические части, разделенные
         символом косой черты ('/'). Статические части являются обычным текстом:
         символом косой черты ('/'). Статические части являются обычным текстом:
@@ -56,7 +57,7 @@ $router->addRoute('user', $route);
         Этот маршрут должен сработать, когда вы вводите
         Этот маршрут должен сработать, когда вы вводите
         <code>http://domain.com/author/martel</code> в своем броузере, в этом
         <code>http://domain.com/author/martel</code> в своем броузере, в этом
         случае все его переменные будут добавлены в объект
         случае все его переменные будут добавлены в объект
-        <code>Zend_Controller_Request</code> и будут доступны в вашем
+        <classname>Zend_Controller_Request</classname> и будут доступны в вашем
         контроллере <code>ProfileController</code>.
         контроллере <code>ProfileController</code>.
         Переменные, возвращаемые в этом примере, могут быть представленые в виде
         Переменные, возвращаемые в этом примере, могут быть представленые в виде
         следующего массива пар ключ/значение:
         следующего массива пар ключ/значение:
@@ -68,11 +69,10 @@ $values = array(
     'controller' => 'profile',
     'controller' => 'profile',
     'action'     => 'userinfo'
     'action'     => 'userinfo'
 );
 );
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
-        Затем <code>Zend_Controller_Dispatcher_Standard</code> должен вызвать
+        Затем <classname>Zend_Controller_Dispatcher_Standard</classname> должен вызвать
         метод <code>userinfoAction()</code> вашего класса
         метод <code>userinfoAction()</code> вашего класса
         <code>ProfileController</code> (используется модуль по умолчанию),
         <code>ProfileController</code> (используется модуль по умолчанию),
         основываясь на этих значениях. Вы сможете получать эти переменные через
         основываясь на этих значениях. Вы сможете получать эти переменные через
@@ -88,8 +88,7 @@ public function userinfoAction()
 
 
     $username = $this->_getParam('username');
     $username = $this->_getParam('username');
 }
 }
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <para>
     <para>
         Определение маршрута может содержать в себе еще один специальный символ
         Определение маршрута может содержать в себе еще один специальный символ
@@ -105,8 +104,7 @@ $route = new Zend_Controller_Router_Route(
     array('module' => 'default')
     array('module' => 'default')
 );
 );
 $router->addRoute('default', $route);
 $router->addRoute('default', $route);
-]]>
-    </programlisting>
+]]></programlisting>
 
 
     <sect4 id="zend.controller.router.routes.standard.variable-defaults">
     <sect4 id="zend.controller.router.routes.standard.variable-defaults">
         <title>Значения переменных по умолчанию</title>
         <title>Значения переменных по умолчанию</title>
@@ -114,7 +112,7 @@ $router->addRoute('default', $route);
         <para>
         <para>
             Любая переменная в маршруте может иметь значение по умолчанию, для
             Любая переменная в маршруте может иметь значение по умолчанию, для
             этого используется второй параметр конструктора
             этого используется второй параметр конструктора
-            <code>Zend_Controller_Router_Route</code>. Этот параметр является
+            <classname>Zend_Controller_Router_Route</classname>. Этот параметр является
             массивом с ключами, представляющими имена переменных, и со
             массивом с ключами, представляющими имена переменных, и со
             значениями в качестве значений переменных по умолчанию:
             значениями в качестве значений переменных по умолчанию:
         </para>
         </para>
@@ -125,8 +123,7 @@ $route = new Zend_Controller_Router_Route(
     array('year' => 2006)
     array('year' => 2006)
 );
 );
 $router->addRoute('archive', $route);
 $router->addRoute('archive', $route);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Маршрут выше будет соответствовать URL-ам
             Маршрут выше будет соответствовать URL-ам
@@ -136,11 +133,11 @@ $router->addRoute('archive', $route);
         </para>
         </para>
 
 
         <para>
         <para>
-            В этом примере переменная year будет добавлена в объект запроса.
+            В этом примере переменная <code>year</code> будет добавлена в объект запроса.
             Поскольку не была предоставлена информация для маршрутизации (не
             Поскольку не была предоставлена информация для маршрутизации (не
-            определены параметры controller и action), то управление будет
+            определены параметры <code>controller</code> и <code>action</code>), то управление будет
             передано контроллеру и методу действия, используемым по умолчанию
             передано контроллеру и методу действия, используемым по умолчанию
-            (оба определены в <code>Zend_Controller_Dispatcher_Abstract</code>).
+            (оба определены в <classname>Zend_Controller_Dispatcher_Abstract</classname>).
             Для того, чтобы сделать этот пример более полезным, нужно
             Для того, чтобы сделать этот пример более полезным, нужно
             передать действительные контроллер и действие в качестве значений по
             передать действительные контроллер и действие в качестве значений по
             умолчанию:
             умолчанию:
@@ -156,8 +153,7 @@ $route = new Zend_Controller_Router_Route(
     )
     )
 );
 );
 $router->addRoute('archive', $route);
 $router->addRoute('archive', $route);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             В результате будет вызван метод <code>showAction()</code> класса
             В результате будет вызван метод <code>showAction()</code> класса
@@ -171,7 +167,7 @@ $router->addRoute('archive', $route);
 
 
         <para>
         <para>
             Можно передать конструктору
             Можно передать конструктору
-            <code>Zend_Controller_Router_Route</code> третий параметр, в котором
+            <classname>Zend_Controller_Router_Route</classname> третий параметр, в котором
             установлены требования к переменным. Они определяются как части
             установлены требования к переменным. Они определяются как части
             регулярных выражений:
             регулярных выражений:
         </para>
         </para>
@@ -187,8 +183,7 @@ $route = new Zend_Controller_Router_Route(
     array('year' => '\d+')
     array('year' => '\d+')
 );
 );
 $router->addRoute('archive', $route);
 $router->addRoute('archive', $route);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             В случае маршрута, определенного таким образом, маршрутизатор будет
             В случае маршрута, определенного таким образом, маршрутизатор будет
@@ -200,6 +195,189 @@ $router->addRoute('archive', $route);
             переход к следующему маршруту в цепочке.
             переход к следующему маршруту в цепочке.
         </para>
         </para>
     </sect4>
     </sect4>
+
+    <sect4 id="zend.controller.router.routes.standard.translated-segments">
+        <title>Переводимые сегменты</title>
+
+        <para>
+            Стандартный маршрут поддерживает переводимые сегменты. Для того,
+            чтобы использовать эту возможность, нужно как минимум указать,
+            какой переводчик (экземпляр <classname>Zend_Translate</classname>)
+            должен использоваться - одним из следующих способов:
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    Поместить его в реестр с ключом <code>Zend_Translate</code>.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Установить через статический метод
+                    <classname>Zend_Controller_Router_Route::setDefaultTranslator()</classname>.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Передать его конструктору в качестве четвертого параметра.
+                </para>
+            </listitem>
+        </itemizedlist>
+
+        <para>
+            По умолчанию используется локаль, указанная в экземпляре
+            <classname>Zend_Translate</classname>. Для того, чтобы
+            переопределить ее, вы можете установить ее значение (экземпляр
+            <classname>Zend_Locale</classname> или строка с локалью)
+            одним из следующих способов:
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    Поместить ее в реестр с ключом
+                    <classname>Zend_Locale</classname>.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Установить через статический метод
+                    <classname>Zend_Controller_Router_Route::setDefaultLocale()</classname>.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Передать ее конструктору в качестве пятого параметра.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Передать ее как параметр <code>@locale</code> методу
+                    <code>assemble()</code>.
+                </para>
+            </listitem>
+        </itemizedlist>
+
+        <para>
+            Переводимые сегменты делятся на два типа. У статических
+            сегментов в начале ставится один символ <code>@</code>,
+            они будут переведены в соответствии текущей локалью при сборке URL
+            и преобразованы обратно в идентификатор сообщения при сопоставлении
+            URL с маршрутом.
+            У динамических сегментов в начале ставится <code>:@</code>.
+            При сборке URL данный параметр будет переведен и результат перевода
+            будет добавлен на его место.
+            При сопоставлении переведенный параметр из URL будет преобразован
+            обратно в идентификатор сообщения.
+        </para>
+
+        <note>
+            <title>Идентификаторы сообщений и отдельный языковый файл</title>
+            <para>
+                Может случайно получиться так, что идентификатор сообщения,
+                который вы собираетесь использовать в одном из своих
+                маршрутов, уже используется в ваших скриптах вида или где-то
+                еще.
+                Для того, чтобы иметь полный контроль над вашими
+                URL-ами, следует использовать отдельный языковый файл для
+                сообщений, используемых в маршруте.
+            </para>
+        </note>
+
+        <para>
+            Следующий пример демонстрирует наиболее простой способ подготовки
+            стандартного маршрута с использованием переводимых сегментов:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// Подготовка переводчика
+$translator = new Zend_Translate('array', array(), 'en');
+$translator->addTranslation(array('archive' => 'archiv',
+                                  'year'    => 'jahr',
+                                  'month'   => 'monat',
+                                  'index'   => 'uebersicht'),
+                            'de');
+
+// Установка текущей локали для переводчика
+$translator->setLocale('en');
+
+// Установка его в качестве используемого по умолчанию для маршрутов
+Zend_Controller_Router_Route::setDefaultTranslator($translator);
+]]></programlisting>
+
+        <para>
+            Этот пример демонстрирует использование статических сегментов:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// Создание маршрута
+$route = new Zend_Controller_Router_Route(
+    '@archive',
+    array(
+        'controller' => 'archive',
+        'action'     => 'index'
+    )
+);
+$router->addRoute('archive', $route);
+
+// Сборка URL в локали, используемой по умолчанию: archive
+$route->assemble(array());
+
+// Сборка URL в немецкой локали: archiv
+$route->assemble(array());
+]]></programlisting>
+
+        <para>
+            Вы можете использовать динамические сегменты для создания
+            переведенных версий как в случае использования маршрутов основанных
+            на модулях:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// Создание маршрута
+$route = new Zend_Controller_Router_Route(
+    ':@controller/:@action/*',
+    array(
+        'controller' => 'index',
+        'action'     => 'index'
+    )
+);
+$router->addRoute('archive', $route);
+
+// Сборка URL в локали, используемой по умолчанию: archive/index/foo/bar
+$route->assemble(array('controller' => 'archive', 'foo' => 'bar'));
+
+// Сборка URL в немецкой локали: archiv/uebersicht/foo/bar
+$route->assemble(array('controller' => 'archive', 'foo' => 'bar'));
+]]></programlisting>
+
+        <para>
+            Вы можете также комбинировать статические и динамические сегменты:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// Создание маршрута
+$route = new Zend_Controller_Router_Route(
+    '@archive/:@mode/:value',
+    array(
+        'mode'       => 'year'
+        'value'      => 2005,
+        'controller' => 'archive',
+        'action'     => 'show'
+    ),
+    array('mode'  => '(month|year)'
+          'value' => '\d+')
+);
+$router->addRoute('archive', $route);
+
+// Сборка URL в локали, используемой по умолчанию: archive/month/5
+$route->assemble(array('mode' => 'month', 'value' => '5'));
+
+// Сборка URL в немецкой локали: archiv/monat/5
+$route->assemble(array('mode' => 'month', 'value' => '5', '@locale' => 'de'));
+]]></programlisting>
+    </sect4>
 </sect3>
 </sect3>
 <!--
 <!--
 vim:se ts=4 sw=4 et:
 vim:se ts=4 sw=4 et:

+ 52 - 59
documentation/manual/ru/module_specs/Zend_Controller-Router.xml

@@ -1,24 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.controller.router"  xmlns:xi="http://www.w3.org/2001/XInclude">
 <sect1 id="zend.controller.router"  xmlns:xi="http://www.w3.org/2001/XInclude">
-    <title>Стандартный маршрутизатор: Zend_Controller_Router_Rewrite</title>
+    <title>Стандартный маршрутизатор</title>
     <sect2 id="zend.controller.router.introduction">
     <sect2 id="zend.controller.router.introduction">
         <title>Введение</title>
         <title>Введение</title>
         <para>
         <para>
-            <code>Zend_Controller_Router_Rewrite</code> является стандартным
-            маршрутизатором Zend Framework. Маршрутизация - это процесс принятия
+            <classname>Zend_Controller_Router_Rewrite</classname> является стандартным
+            маршрутизатором фреймворка. Маршрутизация - это процесс принятия
             конечной точки URI (той части URI, которая
             конечной точки URI (той части URI, которая
             идет после базового URL) и ее разложения на параметры
             идет после базового URL) и ее разложения на параметры
             для определения того, какой контроллер и какое действие этого
             для определения того, какой контроллер и какое действие этого
             контроллера должны получить запрос. Значения контроллера,
             контроллера должны получить запрос. Значения контроллера,
             действия и необязательных параметров сохраняются в объекте
             действия и необязательных параметров сохраняются в объекте
-            <code>Zend_Controller_Request_Http</code>, который затем
+            <classname>Zend_Controller_Request_Http</classname>, который затем
             обрабатывается диспетчером
             обрабатывается диспетчером
-            <code>Zend_Controller_Dispatcher_Standard</code>. Маршрутизация
+            <classname>Zend_Controller_Dispatcher_Standard</classname>. Маршрутизация
             производится только один раз – когда вначале
             производится только один раз – когда вначале
             получен запрос и до того, как первый контроллер будет запущен.
             получен запрос и до того, как первый контроллер будет запущен.
         </para>
         </para>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Router_Rewrite</code> спроектирован для
+            <classname>Zend_Controller_Router_Rewrite</classname> спроектирован для
             того, чтобы обеспечить функциональность, подобную mod_rewrite,
             того, чтобы обеспечить функциональность, подобную mod_rewrite,
             с использованием чистого PHP. Он отчасти основан на маршрутизации,
             с использованием чистого PHP. Он отчасти основан на маршрутизации,
             используемой в Ruby on Rails и не требует каких-либо предварительных
             используемой в Ruby on Rails и не требует каких-либо предварительных
@@ -30,11 +32,10 @@
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 RewriteEngine on
 RewriteEngine on
 RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
 RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
-            или (более предпочтителен):
+            или (более предпочтительный вариант):
         </para>
         </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
@@ -44,8 +45,7 @@ RewriteCond %{REQUEST_FILENAME} -l [OR]
 RewriteCond %{REQUEST_FILENAME} -d
 RewriteCond %{REQUEST_FILENAME} -d
 RewriteRule ^.*$ - [NC,L]
 RewriteRule ^.*$ - [NC,L]
 RewriteRule ^.*$ index.php [NC,L]
 RewriteRule ^.*$ index.php [NC,L]
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Rewrite Router может также использоваться с веб-сервером IIS версии
             Rewrite Router может также использоваться с веб-сервером IIS версии
@@ -57,8 +57,7 @@ RewriteRule ^.*$ index.php [NC,L]
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.php [I]
 RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.php [I]
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <note>
         <note>
             <title>IIS Isapi_Rewrite</title>
             <title>IIS Isapi_Rewrite</title>
@@ -66,7 +65,7 @@ RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.
                 Если используется IIS, то <code>$_SERVER['REQUEST_URI']</code>
                 Если используется IIS, то <code>$_SERVER['REQUEST_URI']</code>
                 не будет определен, либо будет установлен как пустая
                 не будет определен, либо будет установлен как пустая
                 строка. В этом случае
                 строка. В этом случае
-                <code>Zend_Controller_Request_Http</code> попытается
+                <classname>Zend_Controller_Request_Http</classname> попытается
                 использовать <code>$_SERVER['HTTP_X_REWRITE_URL']</code>,
                 использовать <code>$_SERVER['HTTP_X_REWRITE_URL']</code>,
                 значение которого устанавливается расширением Isapi_Rewrite.
                 значение которого устанавливается расширением Isapi_Rewrite.
             </para>
             </para>
@@ -77,7 +76,7 @@ RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.
             и он может быть сконфигурирован следующим образом:
             и он может быть сконфигурирован следующим образом:
         </para>
         </para>
 
 
-        <programlisting role="xml"><![CDATA[
+        <programlisting language="xml"><![CDATA[
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
 <configuration>
      <system.webServer>
      <system.webServer>
@@ -110,14 +109,13 @@ RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.
             правило перезаписи:
             правило перезаписи:
         </para>
         </para>
 
 
-        <programlisting role="lighttpd"><![CDATA[
+        <programlisting language="lighttpd"><![CDATA[
 url.rewrite-once = (
 url.rewrite-once = (
     ".*\?(.*)$" => "/index.php?$1",
     ".*\?(.*)$" => "/index.php?$1",
     ".*\.(js|ico|gif|jpg|png|css|html)$" => "$0",
     ".*\.(js|ico|gif|jpg|png|css|html)$" => "$0",
     "" => "/index.php"
     "" => "/index.php"
 )
 )
-]]>
-        </programlisting>
+]]></programlisting>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.router.usage">
     <sect2 id="zend.controller.router.usage">
@@ -139,8 +137,7 @@ $router->addRoute(
                                      array('controller' => 'user',
                                      array('controller' => 'user',
                                            'action' => 'info'))
                                            'action' => 'info'))
 );
 );
-]]>
-        </programlisting>
+]]></programlisting>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.router.basic">
     <sect2 id="zend.controller.router.basic">
@@ -151,17 +148,16 @@ $router->addRoute(
             определение пользовательских маршрутов. Маршруты добавляются
             определение пользовательских маршрутов. Маршруты добавляются
             посредством вызовом метода <code>addRoute()</code> и передачей ему
             посредством вызовом метода <code>addRoute()</code> и передачей ему
             экземпляра класса, реализующего
             экземпляра класса, реализующего
-            <code>Zend_Controller_Router_Route</code>. Например:
+            <classname>Zend_Controller_Router_Route</classname>. Например:
         </para>
         </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $router->addRoute('user',
 $router->addRoute('user',
                   new Zend_Controller_Router_Route('user/:username'));
                   new Zend_Controller_Router_Route('user/:username'));
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
-            Rewrite Router поставляется вместе с пятью базовыми типами
+            Rewrite Router поставляется вместе с шестью базовыми типами
             маршрутов (один из которых является специальным):
             маршрутов (один из которых является специальным):
         </para>
         </para>
 
 
@@ -179,6 +175,9 @@ $router->addRoute('user',
                 <xref linkend="zend.controller.router.routes.hostname" />
                 <xref linkend="zend.controller.router.routes.hostname" />
             </para></listitem>
             </para></listitem>
             <listitem><para>
             <listitem><para>
+                <xref linkend="zend.controller.router.routes.chain" />
+            </para></listitem>
+            <listitem><para>
                 <xref linkend="zend.controller.router.default-routes" /> *
                 <xref linkend="zend.controller.router.default-routes" /> *
              </para></listitem>
              </para></listitem>
         </itemizedlist>
         </itemizedlist>
@@ -202,15 +201,14 @@ $router->addRoute('user',
 
 
         <note>
         <note>
             <para>
             <para>
-                Наиболее часто имя маршрута используется через хелпер
-                <code>Zend_View</code> для URL:
+                Наиболее часто имя маршрута используется через хелпер для URL
+                компоненты <classname>Zend_View</classname>:
             </para>
             </para>
 
 
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
 <a href=
 <a href=
-"<?= $this->url(array('username' => 'martel'), 'user') ?>">Martel</a>
-]]>
-            </programlisting>
+"<?php echo $this->url(array('username' => 'martel'), 'user') ?>">Martel</a>
+]]></programlisting>
 
 
             <para>
             <para>
                В результате значением атрибута href будет
                В результате значением атрибута href будет
@@ -223,7 +221,7 @@ $router->addRoute('user',
             маршрутам и сопоставления их определений с текущим URI запроса.
             маршрутам и сопоставления их определений с текущим URI запроса.
             Когда найдено соответствие, то из объекта маршрута возвращаются
             Когда найдено соответствие, то из объекта маршрута возвращаются
             значения переменных и добавляются в объект
             значения переменных и добавляются в объект
-            <code>Zend_Controller_Request</code> для дальнейшего использования в
+            <classname>Zend_Controller_Request</classname> для дальнейшего использования в
             диспетчере и пользовательских контроллерах. Если соответствие не
             диспетчере и пользовательских контроллерах. Если соответствие не
             найдено, то проверяется следующий маршрут в цепочке.
             найдено, то проверяется следующий маршрут в цепочке.
         </para>
         </para>
@@ -259,7 +257,7 @@ $router->addRoute('user',
         <para>
         <para>
             Есть три специальные переменные, которые могут использоваться в
             Есть три специальные переменные, которые могут использоваться в
             маршрутах: 'module', 'controller' и 'action'. Эти
             маршрутах: 'module', 'controller' и 'action'. Эти
-            переменные используются диспетчером <code>Zend_Controller_Dispatcher</code>
+            переменные используются диспетчером <classname>Zend_Controller_Dispatcher</classname>
             для нахождения контроллера и действия, которым передается
             для нахождения контроллера и действия, которым передается
             управление.
             управление.
         </para>
         </para>
@@ -276,10 +274,10 @@ $router->addRoute('user',
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.router.default-routes">
     <sect2 id="zend.controller.router.default-routes">
-        <title>Маршруты по умолчанию</title>
+        <title>Маршруты, используемые по умолчанию</title>
 
 
         <para>
         <para>
-            <code>Zend_Controller_Router_Rewrite</code> изначально
+            <classname>Zend_Controller_Router_Rewrite</classname> изначально
             сконфигурирован с одним маршрутом по умолчанию, который будет
             сконфигурирован с одним маршрутом по умолчанию, который будет
             соответствовать URI вида <code>контроллер/действие</code>. Кроме
             соответствовать URI вида <code>контроллер/действие</code>. Кроме
             того, в качестве первого элемента пути может быть указано имя
             того, в качестве первого элемента пути может быть указано имя
@@ -330,12 +328,11 @@ http://example/blog/archive/list/sort/alpha/date/desc
     action     == list
     action     == list
     sort       == alpha
     sort       == alpha
     date       == desc
     date       == desc
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Маршрутом, используемым по умолчанию, является объект
             Маршрутом, используемым по умолчанию, является объект
-            <code>Zend_Controller_Router_Route_Module</code>, сохраненный в
+            <classname>Zend_Controller_Router_Route_Module</classname>, сохраненный в
             RewriteRouter под именем (индексом) 'default'. Он создается
             RewriteRouter под именем (индексом) 'default'. Он создается
             приблизительно следующим образом:
             приблизительно следующим образом:
         </para>
         </para>
@@ -345,8 +342,7 @@ $compat = new Zend_Controller_Router_Route_Module(array(),
                                                   $dispatcher,
                                                   $dispatcher,
                                                   $request);
                                                   $request);
 $this->addRoute('default', $compat);
 $this->addRoute('default', $compat);
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Если вы не хотите использовать этот маршрут по умолчанию в своей
             Если вы не хотите использовать этот маршрут по умолчанию в своей
@@ -359,8 +355,7 @@ $this->addRoute('default', $compat);
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 // Удаление всех маршрутов по умолчанию
 // Удаление всех маршрутов по умолчанию
 $router->removeDefaultRoutes();
 $router->removeDefaultRoutes();
-]]>
-        </programlisting>
+]]></programlisting>
 
 
     </sect2>
     </sect2>
 
 
@@ -372,21 +367,20 @@ $router->removeDefaultRoutes();
             <code>http://domain.com/~user/application-root/</code>), в этом
             <code>http://domain.com/~user/application-root/</code>), в этом
             случае базовый URL приложения (<code>/~user/application-root</code>)
             случае базовый URL приложения (<code>/~user/application-root</code>)
             должен автоматически определяться в объекте
             должен автоматически определяться в объекте
-            <code>Zend_Controller_Request_Http</code> и соответствующим образом
+            <classname>Zend_Controller_Request_Http</classname> и соответствующим образом
             использоваться.
             использоваться.
         </para>
         </para>
 
 
         <para>
         <para>
             Если базовый URL определяется некорректно, то вы можете
             Если базовый URL определяется некорректно, то вы можете
             переопределить его через метод <code>setBaseUrl()</code> объекта
             переопределить его через метод <code>setBaseUrl()</code> объекта
-            <code>Zend_Controller_Request_Http</code> (см.
+            <classname>Zend_Controller_Request_Http</classname> (см.
             <xref linkend="zend.controller.request.http.baseurl" />):
             <xref linkend="zend.controller.request.http.baseurl" />):
         </para>
         </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $request->setBaseUrl('/~user/application-root/');
 $request->setBaseUrl('/~user/application-root/');
-]]>
-        </programlisting>
+]]></programlisting>
 
 
     </sect2>
     </sect2>
 
 
@@ -404,8 +398,7 @@ $request->setBaseUrl('/~user/application-root/');
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $router->setGlobalParam('lang', 'en');
 $router->setGlobalParam('lang', 'en');
-]]>
-        </programlisting>
+]]></programlisting>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.router.routes">
     <sect2 id="zend.controller.router.routes">
@@ -422,16 +415,19 @@ $router->setGlobalParam('lang', 'en');
         <xi:include href="Zend_Controller-Router-Route-Hostname.xml">
         <xi:include href="Zend_Controller-Router-Route-Hostname.xml">
             <xi:fallback><xi:include href="../../en/module_specs/Zend_Controller-Router-Route-Hostname.xml" /></xi:fallback>
             <xi:fallback><xi:include href="../../en/module_specs/Zend_Controller-Router-Route-Hostname.xml" /></xi:fallback>
         </xi:include>
         </xi:include>
+        <xi:include href="Zend_Controller-Router-Route-Chain.xml">
+            <xi:fallback><xi:include href="../../en/module_specs/Zend_Controller-Router-Route-Chain.xml" /></xi:fallback>
+        </xi:include>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.controller.router.add-config">
     <sect2 id="zend.controller.router.add-config">
-        <title>Использование <code>Zend_Config</code> вместе с RewriteRouter</title>
+        <title>Использование Zend_Config вместе с RewriteRouter</title>
 
 
         <para>
         <para>
             Иногда может быть более удобным обновлять конфигурационный файл
             Иногда может быть более удобным обновлять конфигурационный файл
             с новыми маршрутами, чем изменять код. Это возможно благодаря методу
             с новыми маршрутами, чем изменять код. Это возможно благодаря методу
             <code>addConfig()</code>. В сущности, вы создаете конфигурацию,
             <code>addConfig()</code>. В сущности, вы создаете конфигурацию,
-            совместимую с <code>Zend_Config</code>, считываете ее в своем коде и
+            совместимую с <classname>Zend_Config</classname>, считываете ее в своем коде и
             передаете RewriteRouter.
             передаете RewriteRouter.
         </para>
         </para>
 
 
@@ -458,20 +454,18 @@ routes.archive.defaults.controller = "archive"
 routes.archive.defaults.action = "show"
 routes.archive.defaults.action = "show"
 routes.archive.map.1 = "year"
 routes.archive.map.1 = "year"
 ; ИЛИ: routes.archive.map.year = 1
 ; ИЛИ: routes.archive.map.year = 1
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Этот INI-файл может быть затем прочитан в объект
             Этот INI-файл может быть затем прочитан в объект
-            <code>Zend_Config</code> как показано ниже:
+            <classname>Zend_Config</classname> как показано ниже:
         </para>
         </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $config = new Zend_Config_Ini('/path/to/config.ini', 'production');
 $config = new Zend_Config_Ini('/path/to/config.ini', 'production');
 $router = new Zend_Controller_Router_Rewrite();
 $router = new Zend_Controller_Router_Rewrite();
 $router->addConfig($config, 'routes');
 $router->addConfig($config, 'routes');
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             В примере выше мы говорим маршрутизатору, чтобы он использовал
             В примере выше мы говорим маршрутизатору, чтобы он использовал
@@ -482,12 +476,12 @@ $router->addConfig($config, 'routes');
             одну или более записей 'defaults'; опционально может быть одна
             одну или более записей 'defaults'; опционально может быть одна
             или более записей 'reqs' (сокращение от 'required'). Все это
             или более записей 'reqs' (сокращение от 'required'). Все это
             соответствует трем аргументам, передаваемым объекту
             соответствует трем аргументам, передаваемым объекту
-            <code>Zend_Controller_Router_Route_Interface</code>.
+            <classname>Zend_Controller_Router_Route_Interface</classname>.
             Опция с ключом 'type' может использоваться для определения класса,
             Опция с ключом 'type' может использоваться для определения класса,
             используемого для данного маршрута; по умолчанию используется
             используемого для данного маршрута; по умолчанию используется
-            класс <code>Zend_Controller_Router_Route</code>. В примере выше
+            класс <classname>Zend_Controller_Router_Route</classname>. В примере выше
             для маршрута 'news' должен использоваться класс
             для маршрута 'news' должен использоваться класс
-            <code>Zend_Controller_Router_Route_Static</code>.
+            <classname>Zend_Controller_Router_Route_Static</classname>.
         </para>
         </para>
     </sect2>
     </sect2>
 
 
@@ -505,7 +499,7 @@ $router->addConfig($config, 'routes');
         <para>
         <para>
             В какой-то момент вы можете захотеть использовать другую парадигму
             В какой-то момент вы можете захотеть использовать другую парадигму
             маршрутизации. Интерфейс
             маршрутизации. Интерфейс
-            <code>Zend_Controller_Router_Interface</code> дает минимальную
+            <classname>Zend_Controller_Router_Interface</classname> дает минимальную
             информацию, необходимую для создания маршрута и содержит всего один
             информацию, необходимую для создания маршрута и содержит всего один
             метод.
             метод.
         </para>
         </para>
@@ -520,8 +514,7 @@ interface Zend_Controller_Router_Interface
    */
    */
   public function route(Zend_Controller_Request_Abstract $request);
   public function route(Zend_Controller_Request_Abstract $request);
 }
 }
-]]>
-        </programlisting>
+]]></programlisting>
 
 
         <para>
         <para>
             Маршрутизация производится только один раз - когда в систему
             Маршрутизация производится только один раз - когда в систему

+ 1 - 1
documentation/manual/ru/module_specs/Zend_Db_Adapter.xml

@@ -531,7 +531,7 @@ try {
             для Zend_Db.
             для Zend_Db.
         </para>
         </para>
 
 
-        <programlisting role="sql"><![CDATA[
+        <programlisting language="sql"><![CDATA[
 CREATE TABLE accounts (
 CREATE TABLE accounts (
   account_name      VARCHAR(100) NOT NULL PRIMARY KEY
   account_name      VARCHAR(100) NOT NULL PRIMARY KEY
 );
 );

+ 1 - 1
documentation/manual/ru/module_specs/Zend_Db_Profiler.xml

@@ -102,7 +102,7 @@ $db = Zend_Db::factory('PDO_MYSQL', $params);
             <code>Zend_Config</code>, содержащим свойства, аналогичные ключам
             <code>Zend_Config</code>, содержащим свойства, аналогичные ключам
             массива, описанного выше. К примеру, файл "config.ini" может
             массива, описанного выше. К примеру, файл "config.ini" может
             содержать следующие данные:
             содержать следующие данные:
-            <programlisting role="ini"><![CDATA[
+            <programlisting language="ini"><![CDATA[
 [main]
 [main]
 db.profiler.class   = "MyProject_Db_Profiler"
 db.profiler.class   = "MyProject_Db_Profiler"
 db.profiler.enabled = true
 db.profiler.enabled = true

+ 3 - 3
documentation/manual/ru/module_specs/Zend_Debug.xml

@@ -1,3 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
 <sect1 id="zend.debug.dumping">
 <sect1 id="zend.debug.dumping">
 
 
     <title>Дамп переменных</title>
     <title>Дамп переменных</title>
@@ -13,10 +15,8 @@
     <example id="zend.debug.dumping.example">
     <example id="zend.debug.dumping.example">
         <title>Пример использования метода dump()</title>
         <title>Пример использования метода dump()</title>
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
-
 Zend_Debug::dump($var, $label=null, $echo=true);
 Zend_Debug::dump($var, $label=null, $echo=true);
-]]>
-        </programlisting>
+]]></programlisting>
     </example>
     </example>
 
 
     <para>
     <para>

+ 1 - 1
documentation/manual/ru/module_specs/Zend_Dom-Query.xml

@@ -118,7 +118,7 @@
                     ссылка со словом 'One' в листинге ниже:
                     ссылка со словом 'One' в листинге ниже:
                 </para>
                 </para>
 
 
-                <programlisting role="html"><![CDATA[
+                <programlisting language="html"><![CDATA[
 <div>
 <div>
 <table>
 <table>
     <tr>
     <tr>

+ 2 - 2
documentation/manual/ru/module_specs/Zend_Form-QuickStart.xml

@@ -317,7 +317,7 @@ $element->addDecorators(array(
             Код выше создает вывод наподобие следующего:
             Код выше создает вывод наподобие следующего:
         </para>
         </para>
 
 
-        <programlisting role="html"><![CDATA[
+        <programlisting language="html"><![CDATA[
 <dt><label for="username" class="required">Username</dt>
 <dt><label for="username" class="required">Username</dt>
 <dd>
 <dd>
     <input type="text" name="username" value="123-abc" />
     <input type="text" name="username" value="123-abc" />
@@ -600,7 +600,7 @@ class UserController extends Zend_Controller_Action
             ключ для формы ('login'):
             ключ для формы ('login'):
         </para>
         </para>
 
 
-        <programlisting role="ini"><![CDATA[
+        <programlisting language="ini"><![CDATA[
 [development]
 [development]
 ; общие метаданные для формы
 ; общие метаданные для формы
 user.login.action = "/user/login"
 user.login.action = "/user/login"

+ 1 - 1
documentation/manual/ru/module_specs/Zend_Search_Lucene-JavaLucene.xml

@@ -74,7 +74,7 @@
 -->
 -->
         </para>
         </para>
 
 
-        <programlisting role="java"><![CDATA[
+        <programlisting language="java"><![CDATA[
 /**
 /**
 * Создание индекса:
 * Создание индекса:
 */
 */

+ 2 - 2
documentation/manual/ru/module_specs/Zend_Search_Lucene-Queries.xml

@@ -86,7 +86,7 @@ try {
         Query string:
         Query string:
 -->
 -->
         </para>
         </para>
-        <programlisting role="querystring"><![CDATA[word1]]>
+        <programlisting language="querystring"><![CDATA[word1]]>
         </programlisting>
         </programlisting>
 
 
         <para>или</para>
         <para>или</para>
@@ -199,7 +199,7 @@ $hits  = $index->find($query);]]></programlisting>
             Query string:
             Query string:
 -->
 -->
         </para>
         </para>
-        <programlisting role="querystring"><![CDATA[+word1 author:word2 -word3]]></programlisting>
+        <programlisting language="querystring"><![CDATA[+word1 author:word2 -word3]]></programlisting>
 
 
         <itemizedlist>
         <itemizedlist>
             <listitem>
             <listitem>

+ 16 - 16
documentation/manual/ru/module_specs/Zend_Search_Lucene-QueryLanguage.xml

@@ -127,11 +127,11 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
             you can enter:
             you can enter:
 -->
 -->
         </para>
         </para>
-        <programlisting role="querystring"><![CDATA[title:"The Right Way" AND text:go]]></programlisting>
+        <programlisting language="querystring"><![CDATA[title:"The Right Way" AND text:go]]></programlisting>
         <para>
         <para>
             или
             или
         </para>
         </para>
-        <programlisting role="querystring"><![CDATA[title:"Do it right" AND go]]></programlisting>
+        <programlisting language="querystring"><![CDATA[title:"Do it right" AND go]]></programlisting>
         <para>
         <para>
             Если 'text' является полем, используемым по умолчанию, то указание
             Если 'text' является полем, используемым по умолчанию, то указание
             поля не требуется.
             поля не требуется.
@@ -148,7 +148,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
             Note: The field is only valid for the term, phrase or subquery that it directly precedes,
             Note: The field is only valid for the term, phrase or subquery that it directly precedes,
             so the query
             so the query
 -->
 -->
-            <programlisting role="querystring"><![CDATA[title:Do it right]]></programlisting>
+            <programlisting language="querystring"><![CDATA[title:Do it right]]></programlisting>
             будет искать в поле 'title' только "Do". Поиск "it" и "right" будет
             будет искать в поле 'title' только "Do". Поиск "it" и "right" будет
             производиться в полях, используемых по умолчанию, если установлены
             производиться в полях, используемых по умолчанию, если установлены
             поля по умолчанию, или по всем полям, если вместо поля по умолчанию
             поля по умолчанию, или по всем полям, если вместо поля по умолчанию
@@ -203,7 +203,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
             use the tilde, "~", symbol at the end of a Phrase. For example to search for a "Zend" and
             use the tilde, "~", symbol at the end of a Phrase. For example to search for a "Zend" and
             "Framework" within 10 words of each other in a document use the search:
             "Framework" within 10 words of each other in a document use the search:
 -->
 -->
-            <programlisting role="querystring"><![CDATA["Zend Framework"~10]]></programlisting>
+            <programlisting language="querystring"><![CDATA["Zend Framework"~10]]></programlisting>
         </para>
         </para>
     </sect2>
     </sect2>
 
 
@@ -230,7 +230,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
             Boosting allows you to control the relevance of a document by boosting its term. For example,
             Boosting allows you to control the relevance of a document by boosting its term. For example,
             if you are searching for
             if you are searching for
 -->
 -->
-            <programlisting role="querystring"><![CDATA[PHP framework]]></programlisting>
+            <programlisting language="querystring"><![CDATA[PHP framework]]></programlisting>
             и хотите, чтобы элемент 'PHP' был более релевантным, то усильте
             и хотите, чтобы элемент 'PHP' был более релевантным, то усильте
             его, используя символ ^ с коэффициентом усиления после этого
             его, используя символ ^ с коэффициентом усиления после этого
             элемента:
             элемента:
@@ -238,7 +238,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
             and you want the term "PHP" to be more relevant boost it using the ^ symbol along with the
             and you want the term "PHP" to be more relevant boost it using the ^ symbol along with the
             boost factor next to the term. You would type:
             boost factor next to the term. You would type:
 -->
 -->
-            <programlisting role="querystring"><![CDATA[PHP^4 framework]]></programlisting>
+            <programlisting language="querystring"><![CDATA[PHP^4 framework]]></programlisting>
             Это сделает более релевантными те документы, в которых встречается
             Это сделает более релевантными те документы, в которых встречается
             элемент 'PHP'. Вы можете также усиливать фразы и подзапросы, как в
             элемент 'PHP'. Вы можете также усиливать фразы и подзапросы, как в
             примере ниже:
             примере ниже:
@@ -247,7 +247,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
             This will make documents with the term PHP appear more relevant. You can also boost Phrase
             This will make documents with the term PHP appear more relevant. You can also boost Phrase
             Terms  and subqueries as in the example:
             Terms  and subqueries as in the example:
 -->
 -->
-            <programlisting role="querystring"><![CDATA["PHP framework"^4 "Zend Framework"]]></programlisting>
+            <programlisting language="querystring"><![CDATA["PHP framework"^4 "Zend Framework"]]></programlisting>
             По умолчанию коэффициент усиления равен 1. Несмотря на то, что
             По умолчанию коэффициент усиления равен 1. Несмотря на то, что
             коэффициент усиления должен быть положительным числом, он может быть
             коэффициент усиления должен быть положительным числом, он может быть
             меньше 1 (например, 0.2).
             меньше 1 (например, 0.2).
@@ -310,7 +310,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
 <!--
 <!--
                 To search for documents that contain "PHP framework" and "Zend Framework" use the query:
                 To search for documents that contain "PHP framework" and "Zend Framework" use the query:
 -->
 -->
-                <programlisting role="querystring"><![CDATA["PHP framework" AND "Zend Framework"]]></programlisting>
+                <programlisting language="querystring"><![CDATA["PHP framework" AND "Zend Framework"]]></programlisting>
             </para>
             </para>
         </sect3>
         </sect3>
 
 
@@ -328,7 +328,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
 <!--
 <!--
                 To search for documents that contain "PHP framework" or "Zend Framework" use the query:
                 To search for documents that contain "PHP framework" or "Zend Framework" use the query:
 -->
 -->
-                <programlisting role="querystring"><![CDATA["PHP framework" OR "Zend Framework"]]></programlisting>
+                <programlisting language="querystring"><![CDATA["PHP framework" OR "Zend Framework"]]></programlisting>
             </para>
             </para>
         </sect3>
         </sect3>
 
 
@@ -350,7 +350,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
 <!--
 <!--
                 To search for documents that contain "PHP framework" but not "Zend Framework" use the query:
                 To search for documents that contain "PHP framework" but not "Zend Framework" use the query:
 -->
 -->
-                <programlisting role="querystring"><![CDATA["PHP framework" AND NOT "Zend Framework"]]></programlisting>
+                <programlisting language="querystring"><![CDATA["PHP framework" AND NOT "Zend Framework"]]></programlisting>
             </para>
             </para>
         </sect3>
         </sect3>
 
 
@@ -380,7 +380,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
 <!--
 <!--
                 To search for documents that must contain "Zend" and may contain "Framework" use the query:
                 To search for documents that must contain "Zend" and may contain "Framework" use the query:
 -->
 -->
-                <programlisting role="querystring"><![CDATA[+Zend Framework]]></programlisting>
+                <programlisting language="querystring"><![CDATA[+Zend Framework]]></programlisting>
             </para>
             </para>
         </sect3>
         </sect3>
 
 
@@ -399,7 +399,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
 <!--
 <!--
                 To search for documents that contain "PHP framework" but not "Zend Framework" use the query:
                 To search for documents that contain "PHP framework" but not "Zend Framework" use the query:
 -->
 -->
-                <programlisting role="querystring"><![CDATA["PHP framework" -"Zend Framework"]]></programlisting>
+                <programlisting language="querystring"><![CDATA["PHP framework" -"Zend Framework"]]></programlisting>
             </para>
             </para>
         </sect3>
         </sect3>
 
 
@@ -436,7 +436,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
 <!--
 <!--
                 To search for documents that requires "PHP framework" and may contain "Zend Framework" use the query:
                 To search for documents that requires "PHP framework" and may contain "Zend Framework" use the query:
 -->
 -->
-                <programlisting role="querystring"><![CDATA[+"PHP framework" "Zend Framework"]]></programlisting>
+                <programlisting language="querystring"><![CDATA[+"PHP framework" "Zend Framework"]]></programlisting>
             </para>
             </para>
 
 
             <para>
             <para>
@@ -474,7 +474,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
             Java Lucene and Zend_Search_Lucene support using parentheses to group clauses to form sub queries. This can be
             Java Lucene and Zend_Search_Lucene support using parentheses to group clauses to form sub queries. This can be
             useful if you want to control the boolean logic for a query or mix different boolean query styles:
             useful if you want to control the boolean logic for a query or mix different boolean query styles:
 -->
 -->
-            <programlisting role="querystring"><![CDATA[+(framework OR library) +php]]></programlisting>
+            <programlisting language="querystring"><![CDATA[+(framework OR library) +php]]></programlisting>
             Zend_Search_Lucene поддердивает подзапросы на любой уровни
             Zend_Search_Lucene поддердивает подзапросы на любой уровни
             вложенности.
             вложенности.
 <!--
 <!--
@@ -499,7 +499,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
 <!--
 <!--
             To search for a title that contains both the word "return" and the phrase "pink panther" use the query:
             To search for a title that contains both the word "return" and the phrase "pink panther" use the query:
 -->
 -->
-            <programlisting role="querystring"><![CDATA[title:(+return +"pink panther")]]></programlisting>
+            <programlisting language="querystring"><![CDATA[title:(+return +"pink panther")]]></programlisting>
             Zend_Search_Lucene поддердивает подзапросы любого уровня
             Zend_Search_Lucene поддердивает подзапросы любого уровня
             вложенности.
             вложенности.
 <!--
 <!--
@@ -534,7 +534,7 @@ Zend_Search_Lucene::setDefaultSearchField('contents');]]></programlisting>
 <!--
 <!--
             To escape these character use the \ before the character. For example to search for (1+1):2 use the query:
             To escape these character use the \ before the character. For example to search for (1+1):2 use the query:
 -->
 -->
-            <programlisting role="querystring"><![CDATA[\(1\+1\)\:2]]></programlisting>
+            <programlisting language="querystring"><![CDATA[\(1\+1\)\:2]]></programlisting>
         </para>
         </para>
     </sect2>
     </sect2>
 
 

+ 1 - 1
documentation/manual/ru/module_specs/Zend_View-Introduction.xml

@@ -224,7 +224,7 @@ base/path/
                     Включить короткие теги в своем файле <code>.htaccess</code>:
                     Включить короткие теги в своем файле <code>.htaccess</code>:
                 </para>
                 </para>
 
 
-                <programlisting role="apache"><![CDATA[
+                <programlisting language="apache"><![CDATA[
 php_value "short_open_tag" "on"
 php_value "short_open_tag" "on"
 ]]></programlisting>
 ]]></programlisting>
 
 

+ 1 - 1
documentation/manual/ru/module_specs/Zend_View-Scripts.xml

@@ -164,7 +164,7 @@ if ($this->books) {
                 Это может соответствовать следующему файлу шаблона:
                 Это может соответствовать следующему файлу шаблона:
             </para>
             </para>
 
 
-            <programlisting role="html"><![CDATA[
+            <programlisting language="html"><![CDATA[
 <!-- booklist.tpl -->
 <!-- booklist.tpl -->
 <table>
 <table>
     <tr>
     <tr>