Kaynağa Gözat

formating source DOC-ES

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@19937 44c647ce-9c0f-0410-b52a-842ac1e357ba
benjamin-gonzales 16 yıl önce
ebeveyn
işleme
d36b430538
100 değiştirilmiş dosya ile 20671 ekleme ve 10492 silme
  1. 6 10
      documentation/manual/es/module_specs/Zend_Acl-Advanced.xml
  2. 520 233
      documentation/manual/es/module_specs/Zend_Amf-Server.xml
  3. 31 16
      documentation/manual/es/module_specs/Zend_Amf.xml
  4. 44 22
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-Db.xml
  5. 129 72
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-Frontcontroller.xml
  6. 64 37
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-Modules.xml
  7. 74 43
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-Session.xml
  8. 26 15
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-View.xml
  9. 416 214
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Application.xml
  10. 41 24
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml
  11. 393 205
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_BootstrapAbstract.xml
  12. 145 76
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrapper.xml
  13. 175 87
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_ResourceBootstrapper.xml
  14. 116 56
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Resource_Resource.xml
  15. 152 78
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Resource_ResourceAbstract.xml
  16. 17 13
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality.xml
  17. 83 46
      documentation/manual/es/module_specs/Zend_Application-Examples.xml
  18. 9 6
      documentation/manual/es/module_specs/Zend_Application-Introduction.xml
  19. 201 122
      documentation/manual/es/module_specs/Zend_Application-QuickStart.xml
  20. 336 214
      documentation/manual/es/module_specs/Zend_Application-TheoryOfOperation.xml
  21. 311 151
      documentation/manual/es/module_specs/Zend_Auth.xml
  22. 227 113
      documentation/manual/es/module_specs/Zend_Auth_Adapter_DbTable.xml
  23. 97 59
      documentation/manual/es/module_specs/Zend_Auth_Adapter_Digest.xml
  24. 196 104
      documentation/manual/es/module_specs/Zend_Auth_Adapter_Http.xml
  25. 121 55
      documentation/manual/es/module_specs/Zend_Auth_Adapter_OpenId.xml
  26. 66 44
      documentation/manual/es/module_specs/Zend_Cache-Introduction.xml
  27. 22 15
      documentation/manual/es/module_specs/Zend_Captcha.xml
  28. 68 36
      documentation/manual/es/module_specs/Zend_CodeGenerator-Examples.xml
  29. 45 29
      documentation/manual/es/module_specs/Zend_CodeGenerator-Introduction.xml
  30. 325 153
      documentation/manual/es/module_specs/Zend_CodeGenerator-Reference.xml
  31. 59 29
      documentation/manual/es/module_specs/Zend_Config-Introduction.xml
  32. 159 58
      documentation/manual/es/module_specs/Zend_Config-TheoryOfOperation.xml
  33. 99 49
      documentation/manual/es/module_specs/Zend_Config_Ini.xml
  34. 119 67
      documentation/manual/es/module_specs/Zend_Config_Xml.xml
  35. 489 264
      documentation/manual/es/module_specs/Zend_Controller-ActionController.xml
  36. 37 17
      documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-ActionStack.xml
  37. 235 126
      documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-AutoComplete.xml
  38. 589 291
      documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-ContextSwitch.xml
  39. 32 18
      documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-FlashMessenger.xml
  40. 113 60
      documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-Json.xml
  41. 223 106
      documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-Redirector.xml
  42. 556 271
      documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-ViewRenderer.xml
  43. 261 195
      documentation/manual/es/module_specs/Zend_Controller-Basics.xml
  44. 100 59
      documentation/manual/es/module_specs/Zend_Controller-Dispatcher.xml
  45. 230 124
      documentation/manual/es/module_specs/Zend_Controller-Exceptions.xml
  46. 474 249
      documentation/manual/es/module_specs/Zend_Controller-FrontController.xml
  47. 477 282
      documentation/manual/es/module_specs/Zend_Controller-Migration.xml
  48. 134 91
      documentation/manual/es/module_specs/Zend_Controller-QuickStart.xml
  49. 412 197
      documentation/manual/es/module_specs/Zend_Controller-Request.xml
  50. 89 44
      documentation/manual/es/module_specs/Zend_Controller-Router-Route-Chain.xml
  51. 54 26
      documentation/manual/es/module_specs/Zend_Controller-Router-Route-Hostname.xml
  52. 122 64
      documentation/manual/es/module_specs/Zend_Controller-Router-Route-Regex.xml
  53. 41 23
      documentation/manual/es/module_specs/Zend_Controller-Router-Route-Static.xml
  54. 229 106
      documentation/manual/es/module_specs/Zend_Controller-Router-Route.xml
  55. 337 208
      documentation/manual/es/module_specs/Zend_Controller-Router.xml
  56. 219 93
      documentation/manual/es/module_specs/Zend_Date-Introduction.xml
  57. 596 232
      documentation/manual/es/module_specs/Zend_Date-Overview.xml
  58. 425 244
      documentation/manual/es/module_specs/Zend_Db_Adapter.xml
  59. 54 34
      documentation/manual/es/module_specs/Zend_Db_Profiler-Firebug.xml
  60. 292 145
      documentation/manual/es/module_specs/Zend_Db_Profiler.xml
  61. 548 258
      documentation/manual/es/module_specs/Zend_Db_Select.xml
  62. 263 172
      documentation/manual/es/module_specs/Zend_Db_Statement.xml
  63. 448 256
      documentation/manual/es/module_specs/Zend_Db_Table-Relationships.xml
  64. 344 164
      documentation/manual/es/module_specs/Zend_Db_Table_Row.xml
  65. 211 116
      documentation/manual/es/module_specs/Zend_Db_Table_Rowset.xml
  66. 80 42
      documentation/manual/es/module_specs/Zend_Debug.xml
  67. 287 146
      documentation/manual/es/module_specs/Zend_Dojo-Data.xml
  68. 97 56
      documentation/manual/es/module_specs/Zend_Dojo-Form-Decorators.xml
  69. 509 314
      documentation/manual/es/module_specs/Zend_Dojo-Form-Elements.xml
  70. 36 18
      documentation/manual/es/module_specs/Zend_Dojo-Form-Examples.xml
  71. 76 37
      documentation/manual/es/module_specs/Zend_Dojo-Form.xml
  72. 408 198
      documentation/manual/es/module_specs/Zend_Dojo-View-Dojo.xml
  73. 553 300
      documentation/manual/es/module_specs/Zend_Dojo-View-Helpers.xml
  74. 23 10
      documentation/manual/es/module_specs/Zend_Dojo-View.xml
  75. 31 14
      documentation/manual/es/module_specs/Zend_Dojo.xml
  76. 12 7
      documentation/manual/es/module_specs/Zend_Dom.xml
  77. 22 13
      documentation/manual/es/module_specs/Zend_Exception.xml
  78. 184 74
      documentation/manual/es/module_specs/Zend_Filter.xml
  79. 198 96
      documentation/manual/es/module_specs/Zend_Form-Advanced.xml
  80. 206 96
      documentation/manual/es/module_specs/Zend_Form-Decorators.xml
  81. 483 229
      documentation/manual/es/module_specs/Zend_Form-Elements.xml
  82. 416 205
      documentation/manual/es/module_specs/Zend_Form-Forms.xml
  83. 131 59
      documentation/manual/es/module_specs/Zend_Form-I18n.xml
  84. 21 9
      documentation/manual/es/module_specs/Zend_Form-Introduction.xml
  85. 281 127
      documentation/manual/es/module_specs/Zend_Form-QuickStart.xml
  86. 357 151
      documentation/manual/es/module_specs/Zend_Form-StandardDecorators.xml
  87. 477 227
      documentation/manual/es/module_specs/Zend_Form-StandardElements.xml
  88. 31 12
      documentation/manual/es/module_specs/Zend_Json-Basics.xml
  89. 57 20
      documentation/manual/es/module_specs/Zend_Json-Introduction.xml
  90. 133 55
      documentation/manual/es/module_specs/Zend_Json-Objects.xml
  91. 802 348
      documentation/manual/es/module_specs/Zend_Json-Server.xml
  92. 96 40
      documentation/manual/es/module_specs/Zend_Json-xml2json.xml
  93. 65 47
      documentation/manual/es/module_specs/Zend_Layout-Introduction.xml
  94. 224 95
      documentation/manual/es/module_specs/Zend_Loader.xml
  95. 62 23
      documentation/manual/es/module_specs/Zend_Pdf-Create.xml
  96. 463 205
      documentation/manual/es/module_specs/Zend_Pdf-Drawing.xml
  97. 40 17
      documentation/manual/es/module_specs/Zend_Pdf-Introduction.xml
  98. 85 34
      documentation/manual/es/module_specs/Zend_Pdf-Pages.xml
  99. 173 70
      documentation/manual/es/module_specs/Zend_Pdf-Properties.xml
  100. 26 12
      documentation/manual/es/module_specs/Zend_Pdf-Save.xml

+ 6 - 10
documentation/manual/es/module_specs/Zend_Acl-Advanced.xml

@@ -66,20 +66,16 @@
             negar el acceso debido a una petición que proviene de una dirección IP que se ha
             marcado
             como una fuente de abusos.
-            <classname>Zend_Acl</classname>
-            tiene soporte para la
-            aplicación de normas basadas en cualquier condición que el
-            desarrollador necesite.
-        </para>
+            <classname>Zend_Acl</classname>tiene soporte para la
+            aplicación de normas basadas en cualquier condición que el
+            desarrollador necesite.</para>
 
         <para>
             <classname>Zend_Acl</classname>
             provee soporte para reglas condicionales con
-            <classname>Zend_Acl_Assert_Interface</classname>
-            . Con el fin de utilizar la regla
-            de aserción de la interfaz, un desarrollador escribe
-            una clase que implemente el método
-            <methodname>assert()</methodname>
+            <classname>Zend_Acl_Assert_Interface</classname>. Con el fin de utilizar la regla
+            de aserción de la interfaz, un desarrollador escribe
+            una clase que implemente el método<methodname>assert()</methodname>
             de la interfaz:
         </para>
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 520 - 233
documentation/manual/es/module_specs/Zend_Amf-Server.xml


+ 31 - 16
documentation/manual/es/module_specs/Zend_Amf.xml

@@ -1,21 +1,36 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15786 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15786 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.amf.introduction">
     <title>Introducción</title>
 
-   <para>
-        <classname>Zend_Amf</classname> provee apoyo para el Formato de Mensajes de ActionScript
-            <ulink url="http://en.wikipedia.org/wiki/Action_Message_Format">Action Message
-            Format</ulink> (<acronym>AMF</acronym>) de Adobe, que permite la comunicación entre
-        Adobe <ulink url="http://en.wikipedia.org/wiki/Adobe_Flash_Player">Flash Player</ulink> y
-            <acronym>PHP</acronym>. Específicamente, proporciona una aplicación para un servidor
-        gateway que tramita las solicitudes enviadas desde Flash Player al servidor, mapeando estos
-        requerimientos al objeto y a sus métodos de clase, como así también a llamadas arbitrarias
-        de comunicación.</para>
+    <para>
+        <classname>Zend_Amf</classname>
+        provee apoyo para el Formato de Mensajes de ActionScript
+        <ulink url="http://en.wikipedia.org/wiki/Action_Message_Format">Action Message
+            Format</ulink>
+        (
+        <acronym>AMF</acronym>
+        ) de Adobe, que permite la comunicación entre
+        Adobe
+        <ulink url="http://en.wikipedia.org/wiki/Adobe_Flash_Player">Flash Player</ulink>
+        y
+        <acronym>PHP</acronym>
+        . Específicamente, proporciona una aplicación para un servidor
+        gateway que tramita las
+        solicitudes enviadas desde Flash Player al servidor, mapeando estos
+        requerimientos al objeto
+        y a sus métodos de clase, como así también a llamadas arbitrarias
+        de comunicación.
+    </para>
 
-   <para>Las <ulink url="http://download.macromedia.com/pub/labs/amf/amf3_spec_121207.pdf">
-            especificaciones (en ingles) de AMF3</ulink> son de libre disponibilidad y sirven como
-        referencia para establecer qué tipos de mensajes pueden ser enviados entre Flash Player y el
-        servidor.</para>
-</sect1>
+    <para>
+        Las
+        <ulink url="http://download.macromedia.com/pub/labs/amf/amf3_spec_121207.pdf">
+            especificaciones (en ingles) de AMF3</ulink>
+        son de libre disponibilidad y sirven como
+        referencia para establecer qué tipos de mensajes
+        pueden ser enviados entre Flash Player y el
+        servidor.
+    </para>
+</sect1>

+ 44 - 22
documentation/manual/es/module_specs/Zend_Application-AvailableResources-Db.xml

@@ -1,46 +1,64 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16845 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16845 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.available-resources.db">
     <title>Zend_Application_Resource_Db</title>
 
-   <para>
-        <classname>Zend_Application_Resource_Db</classname> inicializará un adaptador
-            <classname>Zend_Db</classname> basado en las opciones que se le pasen. Por defecto,
-        también establece el adaptador por defecto para usarlo con
-            <classname>Zend_Db_Table</classname>.</para>
+    <para>
+        <classname>Zend_Application_Resource_Db</classname>
+        inicializará un adaptador
+        <classname>Zend_Db</classname>
+        basado en las opciones que se le pasen. Por defecto,
+        también establece el adaptador por
+        defecto para usarlo con
+        <classname>Zend_Db_Table</classname>
+        .
+    </para>
 
-   <para>Se reconocen las siguientes configuraciones claves:</para>
+    <para>Se reconocen las siguientes configuraciones claves:</para>
 
     <itemizedlist>
         <listitem>
-           <para>
+            <para>
                 <emphasis>
                     <property>adapter</property>
-                </emphasis>: tipo de adaptador <classname>Zend_Db</classname>.</para>
+                </emphasis>
+                : tipo de adaptador
+                <classname>Zend_Db</classname>
+                .
+            </para>
         </listitem>
 
         <listitem>
-           <para>
+            <para>
                 <emphasis>
                     <property>params</property>
-                </emphasis>: array asociativo de parámetros de configuración para utilizar al
-                recuperar la instancia del adaptador.</para>
+                </emphasis>
+                : array asociativo de parámetros de configuración para utilizar al
+                recuperar la
+                instancia del adaptador.
+            </para>
         </listitem>
 
         <listitem>
-           <para>
+            <para>
                 <emphasis>
                     <property>isDefaultTableAdapter</property>
-                </emphasis>: Indica si establecer o no este adaptador como el adaptador de tablas
-                por defecto.</para>
+                </emphasis>
+                : Indica si establecer o no este adaptador como el adaptador de tablas
+                por defecto.
+            </para>
         </listitem>
     </itemizedlist>
 
     <example id="zend.application.available-resources.db.configExample">
         <title>Muestra de la Configuracion de Recursos del Adaptador DB (Base de Datos) </title>
-       <para>A continuación, un ejemplo de configuración<acronym>INI</acronym> que puede ser
-            utilizada para iniciar el recurso DB.</para>
+        <para>
+            A continuación, un ejemplo de configuración
+            <acronym>INI</acronym>
+            que puede ser
+            utilizada para iniciar el recurso DB.
+        </para>
 
         <programlisting language="ini"><![CDATA[
 [production]
@@ -56,18 +74,22 @@ resources.db.isDefaultTableAdapter = true
     <note>
         <title>Recuperando la Instancia del Adaptador</title>
 
-       <para>Si decide no hacer la instanciación del adaptador con este recurso por defecto del
+        <para>Si decide no hacer la instanciación del adaptador con este recurso por defecto del
             adaptador de tabla, ¿cómo puede recuperar la instancia del adaptador?</para>
 
-       <para>Como con cualquier recurso de plugin, se puede recuperar el recurso de plugin de DB
+        <para>Como con cualquier recurso de plugin, se puede recuperar el recurso de plugin de DB
             desde su archivo de arranque:</para>
 
         <programlisting language="php"><![CDATA[
 $resource = $bootstrap->getPluginResource('db');
 ]]></programlisting>
 
-       <para>Una vez que tiene el recurso objeto, puede recuperar el adaptador de DB usando el
-            método <methodname>getDbAdapter()</methodname>:</para>
+        <para>
+            Una vez que tiene el recurso objeto, puede recuperar el adaptador de DB usando el
+            método
+            <methodname>getDbAdapter()</methodname>
+            :
+        </para>
 
         <programlisting language="php"><![CDATA[
 $db = $resource->getDbAdapter();

+ 129 - 72
documentation/manual/es/module_specs/Zend_Application-AvailableResources-Frontcontroller.xml

@@ -1,91 +1,145 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16847 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16847 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.available-resources.frontcontroller">
     <title>Zend_Application_Resource_Frontcontroller</title>
 
-   <para>
+    <para>
         Probablemente el recurso más común que se carga con
-        <classname>Zend_Application</classname> será el recurso Front Controller
+        <classname>Zend_Application</classname>
+        será el recurso Front Controller
         , que proporciona la habilidad para configurar
-        <classname>Zend_Controller_Front</classname>. Este recurso ofrece
-        la posibilidad de establecer parámetros arbitrarios del Front Controller,
+        <classname>Zend_Controller_Front</classname>
+        . Este recurso ofrece
+        la posibilidad de establecer parámetros arbitrarios del Front
+        Controller,
         especificar plugins para inicializar, y mucho más.
-   </para>
+    </para>
 
-   <para>
+    <para>
         Una vez inicializado, el recurso asigna la propiedad del
-        <varname>$frontController</varname> del bootstrap a la instancia
-        <classname>Zend_Controller_Front</classname>.
-   </para>
+        <varname>$frontController</varname>
+        del bootstrap a la instancia
+        <classname>Zend_Controller_Front</classname>
+        .
+    </para>
 
-   <para>
+    <para>
         Las claves de configuración disponibles incluyen las siguientes,
-        sin importar si son mayúsculas ó minúsculas:
+        sin importar si son
+        mayúsculas ó minúsculas:
    </para>
 
     <itemizedlist>
-        <listitem><para>
-            <emphasis><property>controllerDirectory</property></emphasis>:: ya sea un valor de string
-            especificando un único directorio controlador, o un array de
-            pares de directorio módulo/controlador.
-       </para></listitem>
-
-        <listitem><para>
-            <emphasis><property>moduleControllerDirectoryName</property></emphasis>: un valor de string
-            indicando el subdirectorio bajo el cual un módulo contiene controladores.
-       </para></listitem>
-
-        <listitem><para>
-            <emphasis><property>moduleDirectory</property></emphasis>: directorio bajo el cual pueden
-            encontrarse los módulos.
-       </para></listitem>
-
-        <listitem><para>
-            <emphasis><property>defaultControllerName</property></emphasis>: Nombre base del controlador por
-            defecto (normalmente, "índex").
-       </para></listitem>
-
-        <listitem><para>
-            <methodname>defaultAction</methodname>: nombre base de la acción por defecto
-            (normalmente, "índex").
-       </para></listitem>
-
-        <listitem><para>
-            <emphasis><property>defaultModule</property></emphasis>: nombre base del módulo por defecto
-            (normalmente, "default").
-       </para></listitem>
-
-        <listitem><para>
-            <emphasis><property>baseUrl</property></emphasis>: base explícita a la URL de la aplicación
-            (normalmente auto-detect).
-       </para></listitem>
-
-        <listitem><para>
-            <emphasis><property>plugins</property></emphasis>: array con los nombres de los plugins de las
-            clases de los Front Controllers.
-            El recurso instanciará a cada clase (sin argumentos al constructor)
-            y luego registra la instancia con el Front Controller.
-       </para></listitem>
-
-        <listitem><para>
-            <emphasis><property>params</property></emphasis>: array de pares clave/valor para registrarse con
-            el front controller.
-       </para></listitem>
+        <listitem>
+            <para>
+                <emphasis>
+                    <property>controllerDirectory</property>
+                </emphasis>
+                :: ya sea un valor de string
+                especificando un único directorio controlador, o un array de
+                pares de directorio módulo/controlador.
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <emphasis>
+                    <property>moduleControllerDirectoryName</property>
+                </emphasis>
+                : un valor de string
+                indicando el subdirectorio bajo el cual un módulo contiene controladores.
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <emphasis>
+                    <property>moduleDirectory</property>
+                </emphasis>
+                : directorio bajo el cual pueden
+                encontrarse los módulos.
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <emphasis>
+                    <property>defaultControllerName</property>
+                </emphasis>
+                : Nombre base del controlador por
+                defecto (normalmente, "índex").
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <methodname>defaultAction</methodname>
+                : nombre base de la acción por defecto
+                (normalmente, "índex").
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <emphasis>
+                    <property>defaultModule</property>
+                </emphasis>
+                : nombre base del módulo por defecto
+                (normalmente, "default").
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <emphasis>
+                    <property>baseUrl</property>
+                </emphasis>
+                : base explícita a la URL de la aplicación
+                (normalmente auto-detect).
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <emphasis>
+                    <property>plugins</property>
+                </emphasis>
+                : array con los nombres de los plugins de las
+                clases de los Front Controllers.
+                El recurso instanciará a cada clase (sin argumentos al constructor)
+                y luego registra la instancia con el Front Controller.
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <emphasis>
+                    <property>params</property>
+                </emphasis>
+                : array de pares clave/valor para registrarse con
+                el front controller.
+            </para>
+        </listitem>
     </itemizedlist>
 
-   <para>
+    <para>
         Si se ingresa una clave no reconocida, ésta será registrada como un
-        parámetro de Front Controller pasándolo a <methodname>setParam()</methodname>.
-   </para>
+        parámetro de Front
+        Controller pasándolo a
+        <methodname>setParam()</methodname>
+        .
+    </para>
 
     <example id="zend.application.available-resources.frontcontroller.configExample">
         <title>Ejemplo Front Controller resource configuration</title>
 
-       <para>
-            A continuación, <acronym>INI</acronym>  es un snippet para mostrar cómo configurar
+        <para>
+            A continuación,
+            <acronym>INI</acronym>
+            es un snippet para mostrar cómo configurar
             el recurso Front Controller.
-       </para>
+        </para>
 
         <programlisting language="ini"><![CDATA[
 [production]
@@ -103,13 +157,16 @@ resources.frontController.env = APPLICATION_ENV
     </example>
     <example id="zend.application.available-resources.frontcontroller.frontControllerPropertyExample">
         <title>Recuperar el Front Controller de su arranque (bootstrap)</title>
-       <para>
+        <para>
             Una vez que el recurso de su Front Controller ha sido inicializado,
-            se puede recuperar la instancia de Front Controller a través de la
-            propiedad <varname>$frontController</varname> de su bootstrap.
-       </para>
-
-         <programlisting language="php"><![CDATA[
+            se puede recuperar la
+            instancia de Front Controller a través de la
+            propiedad
+            <varname>$frontController</varname>
+            de su bootstrap.
+        </para>
+
+        <programlisting language="php"><![CDATA[
 $bootstrap->bootstrap('frontController');
 $front = $bootstrap->frontController;
 ]]></programlisting>

+ 64 - 37
documentation/manual/es/module_specs/Zend_Application-AvailableResources-Modules.xml

@@ -1,31 +1,42 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 18178 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 18178 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.available-resources.modules">
     <title>Zend_Application_Resource_Modules</title>
-   <para>
-        <classname>Zend_Application_Resource_Modules</classname> se utiliza
+    <para>
+        <classname>Zend_Application_Resource_Modules</classname>
+        se utiliza
         para inicializar sus módulos de aplicación. Si su módulo tiene un
-        archivo <filename>Bootstrap.php</filename> en su raíz, y contiene una clase
-        llamada <classname>Module_Bootstrap</classname> (donde "Module" es el nombre del
+        archivo
+        <filename>Bootstrap.php</filename>
+        en su raíz, y contiene una clase
+        llamada
+        <classname>Module_Bootstrap</classname>
+        (donde "Module" es el nombre del
         módulo), entonces usará esa clase para arrancar el módulo.
-   </para>
-   <para>
+    </para>
+    <para>
         Por defecto, se creará una instancia de
-        <classname>Zend_Application_Module_Autoloader</classname> para el
+        <classname>Zend_Application_Module_Autoloader</classname>
+        para el
         módulo, utilizando el nombre del módulo y del directorio para
         inicializarlo.
-   </para>
+    </para>
 
-   <para>
-        Ya que los módulos no reciben ningún parámetro por defecto, para poder activarlos via configuración,
-        será necesario crearlo como un array vacío. Seguiendo el estilo de configuración <acronim>INI</acronim>
+    <para>
+        Ya que los módulos no reciben ningún parámetro por defecto, para poder activarlos via
+        configuración,
+        será necesario crearlo como un array vacío. Seguiendo el estilo de
+        configuración
+        <acronim>INI</acronim>
         será similar a:
-   </para>
+    </para>
     <programlisting language="ini"><![CDATA[resources.modules[] =]]></programlisting>
-   <para>
-        Siguiendo el estilo de configuración <acronym>XML</acronym> será similar a:
-   </para>
+    <para>
+        Siguiendo el estilo de configuración
+        <acronym>XML</acronym>
+        será similar a:
+    </para>
     <programlisting language="xml"><![CDATA[
         <resources>
             <modules>
@@ -34,9 +45,11 @@
             </modules>
         </resources>
 ]]></programlisting>
-   <para>
-        Utilizando un array <acronym>PHP</acronym> estandar, simplemente creelo como un array vacío:
-   </para>
+    <para>
+        Utilizando un array
+        <acronym>PHP</acronym>
+        estandar, simplemente creelo como un array vacío:
+    </para>
     <programlisting language="php"><![CDATA[
 $options = array(
     'resources' => array(
@@ -47,30 +60,41 @@ $options = array(
 
     <note>
         <title>Dependencia de Recursos del Front Controller</title>
-       <para>
+        <para>
             El recurso Modules tiene una dependencia de
             <link linkend="zend.application.available-resources.frontcontroller">
-            Front Controller resource</link>. Usted puede, por supuesto,
-            proporcionar su propia sustitución de ese recurso mediante un
+                Front Controller resource</link>
+            . Usted puede, por supuesto,
+            proporcionar su propia sustitución de ese recurso mediante
+            un
             recurso personalizado de la clase Front Controller o un método
-            inicializador de la clase -- tan largo como se quiera siempre que
-            el plugin del recurso de la clase termine en "Frontcontroller"
+            inicializador de la
+            clase -- tan largo como se quiera siempre que
+            el plugin del recurso de la clase termine
+            en "Frontcontroller"
             o el método inicializador se llame "_initFrontController"
-            (case insensible).
-       </para>
+            (case
+            insensible).
+        </para>
     </note>
     <example id="zend.application.available-resources.modules.configExample">
         <title>Configurando Módulos</title>
-       <para>
+        <para>
             Usted puede especificar una configuración específica de un módulo
-            utilizando el nombre del módulo como un prefijo/sub-sección en su
+            utilizando el nombre
+            del módulo como un prefijo/sub-sección en su
             archivo de configuración.
        </para>
-       <para>
+        <para>
             Por ejemplo, supongamos que su aplicación tiene un módulo "noticias".
-            Los siguientes son ejemplos de <acronym>INI</acronym> y <acronym>XML</acronym>que muestran la
+            Los siguientes son
+            ejemplos de
+            <acronym>INI</acronym>
+            y
+            <acronym>XML</acronym>
+            que muestran la
             configuración de recursos en ese módulo.
-       </para>
+        </para>
         <programlisting language="ini"><![CDATA[
 [production]
 news.resources.db.adapter = "pdo_mysql"
@@ -104,13 +128,16 @@ news.resources.layout.layout = "news"
     </example>
     <example id="zend.application.available-resources.modules.retrieveBootstrapExample">
         <title>Recuperando el bootstrap de un módulo específico</title>
-       <para>
+        <para>
             En ocasiones, puede que necesite para recuperar el objeto bootstrap
-            de un módulo específico -- tal vez para ejecutar discretos
-            métodos bootstrap ,o a recoger el cargador automático con el fin de
+            de un módulo
+            específico -- tal vez para ejecutar discretos
+            métodos bootstrap ,o a recoger el cargador
+            automático con el fin de
             configurarlo. Esto puede hacerse utilizando el método
-            <methodname>getExecutedBootstraps()</methodname> de los recursos de Módulo.
-       </para>
+            <methodname>getExecutedBootstraps()</methodname>
+            de los recursos de Módulo.
+        </para>
         <programlisting language="php"><![CDATA[
 $resource = $bootstrap->getPluginResource('modules');
 $moduleBootstraps = $resource->getExecutedBootstraps();

+ 74 - 43
documentation/manual/es/module_specs/Zend_Application-AvailableResources-Session.xml

@@ -1,57 +1,80 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17136 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17136 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.available-resources.session">
     <title>Zend_Application_Resource_Session</title>
 
-   <para>
-        <classname>Zend_Application_Resource_Session</classname> le permite
-        configurar <classname>Zend_Session</classname> y opcionalmente
+    <para>
+        <classname>Zend_Application_Resource_Session</classname>
+        le permite
+        configurar
+        <classname>Zend_Session</classname>
+        y opcionalmente
         inicializar una sesión SaveHandler.
-   </para>
+    </para>
 
-   <para>
+    <para>
         Para establecer un manejador de sesiones, simplemente pasar al recurso
-        la clave opcional <property>saveHandler</property> (case insensible). El valor
+        la clave opcional
+        <property>saveHandler</property>
+        (case insensible). El valor
         de esta opción puede ser uno de los siguientes:
-   </para>
+    </para>
 
     <itemizedlist>
-        <listitem><para>
-            <type>String</type>: un string indicando una clase implementando
-            <classname>Zend_Session_SaveHandler_Interface</classname> que
-            debería ser instanciada.
-       </para></listitem>
+        <listitem>
+            <para>
+                <type>String</type>
+                : un string indicando una clase implementando
+                <classname>Zend_Session_SaveHandler_Interface</classname>
+                que
+                debería ser instanciada.
+            </para>
+        </listitem>
 
-        <listitem><para>
-            <type>Array</type>: un array con las claves "class" y,
-            opcionalmente, "options", indicando la clase que implementa
-            <classname>Zend_Session_SaveHandler_Interface</classname> que
-            debería ser instanciada y una variedad de opciones para proporcionar
-            a su constructor.
-       </para></listitem>
+        <listitem>
+            <para>
+                <type>Array</type>
+                : un array con las claves "class" y,
+                opcionalmente, "options", indicando la clase que implementa
+                <classname>Zend_Session_SaveHandler_Interface</classname>
+                que
+                debería ser instanciada y una variedad de opciones para proporcionar
+                a su constructor.
+            </para>
+        </listitem>
 
-        <listitem><para>
-            <classname>Zend_Session_SaveHandler_Interface</classname>: un objeto
-            implementando esta interfaz.
-       </para></listitem>
+        <listitem>
+            <para>
+                <classname>Zend_Session_SaveHandler_Interface</classname>
+                : un objeto
+                implementando esta interfaz.
+            </para>
+        </listitem>
     </itemizedlist>
 
-   <para>
+    <para>
         Pasando cualquier otra opción de claves será pasado a
-        <methodname>Zend_Session::setOptions()</methodname>  para configurar
-        <classname>Zend_Session</classname>.
-   </para>
+        <methodname>Zend_Session::setOptions()</methodname>
+        para configurar
+        <classname>Zend_Session</classname>
+        .
+    </para>
 
     <example id="zend.application.available-resources.session.configExample">
         <title>Configuración de recursos de la Sesión Ejemplo</title>
 
-       <para>
-            A continuación el snippet <acronym>INI</acronym> nos muestra cómo configurar el recurso
+        <para>
+            A continuación el snippet
+            <acronym>INI</acronym>
+            nos muestra cómo configurar el recurso
             para sesiones. Se establecen varias opciones
-            <classname>Zend_Session</classname>, como también configura una
-            instancia <classname>Zend_Session_SaveHandler_DbTable</classname>.
-       </para>
+            <classname>Zend_Session</classname>
+            , como también configura una
+            instancia
+            <classname>Zend_Session_SaveHandler_DbTable</classname>
+            .
+        </para>
 
         <programlisting language="ini"><![CDATA[
 resources.session.save_path = APPLICATION_PATH "/../data/session"
@@ -74,17 +97,25 @@ resources.session.saveHandler.options.lifetimeColumn = "lifetime"
     <note>
         <title>Configurando tu primera base de datos!</title>
 
-       <para>
+        <para>
             Si vas a configurar el manejador
-            <classname>Zend_Session_SaveHandler_DbTable</classname>  para guardar sesiones
+            <classname>Zend_Session_SaveHandler_DbTable</classname>
+            para guardar sesiones
             , primero deberas configurar tu conexión a la base de datos.
-            Lo puedes hacer mediante
-           <link linkend="zend.application.available-resources.db">Db</link>
-             -- y asegurate de que la llave "<property>resources.db</property>" esta antes que el
-            "<property>resources.session</property>"  -- o escribiedo tu propia clase para inicializar la base
-            de datos y establecer los valores predeterminados para el adaptador
-            <classname>Zend_Db_Table</classname> .
-       </para>
+            Lo
+            puedes hacer mediante
+            <link linkend="zend.application.available-resources.db">Db</link>
+            -- y asegurate de que la llave "
+            <property>resources.db</property>
+            " esta antes que el
+            "
+            <property>resources.session</property>
+            " -- o escribiedo tu propia clase para inicializar la base
+            de datos y establecer los
+            valores predeterminados para el adaptador
+            <classname>Zend_Db_Table</classname>
+            .
+        </para>
     </note>
 
 </sect2>

+ 26 - 15
documentation/manual/es/module_specs/Zend_Application-AvailableResources-View.xml

@@ -1,32 +1,43 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17172 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17172 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.available-resources.view">
     <title>Zend_Application_Resource_View</title>
 
-   <para>
-        <classname>Zend_Application_Resource_View</classname> puede ser
-        utilizada para configurar una instancia <classname>Zend_View</classname>.
-        Las opciones de configuración son por <link
-            linkend="zend.view.introduction.options">las opciones de <classname>Zend_View</classname></link>.
-   </para>
+    <para>
+        <classname>Zend_Application_Resource_View</classname>
+        puede ser
+        utilizada para configurar una instancia
+        <classname>Zend_View</classname>
+        .
+        Las opciones de configuración son por
+        <link linkend="zend.view.introduction.options">
+            las opciones de
+            <classname>Zend_View</classname>
+        </link>
+        .
+    </para>
 
-   <para>
+    <para>
         Una vez hecha la configuración de la instancia de vista, crea una
         instancia de
-        <classname>Zend_Controller_Action_Helper_ViewRenderer</classname> y
+        <classname>Zend_Controller_Action_Helper_ViewRenderer</classname>
+        y
         registra el ViewRenderer con
-        <classname>Zend_Controller_Action_HelperBroker</classname> -- desde la
+        <classname>Zend_Controller_Action_HelperBroker</classname>
+        -- desde la
         cual usted puede recuperarla posteriormente.
-   </para>
+    </para>
 
     <example id="zend.application.available-resources.view.configExample">
         <title>Ejemplo de configuración del recurso Vista</title>
 
-       <para>
-            A continuación un snippet <acronym>INI</acronym>  mostrando cómo configurar el recurso
+        <para>
+            A continuación un snippet
+            <acronym>INI</acronym>
+            mostrando cómo configurar el recurso
             vista (view).
-       </para>
+        </para>
 
         <programlisting language="ini"><![CDATA[
 resources.view.encoding = "UTF-8"

+ 416 - 214
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Application.xml

@@ -1,15 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17171 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17171 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.core-functionality.application">
     <title>Zend_Application</title>
 
-   <para>
-        <classname>Zend_Application</classname>  proporciona la funcionalidad
+    <para>
+        <classname>Zend_Application</classname>
+        proporciona la funcionalidad
         básica del componente, y el punto de entrada a su aplicación
         Zend Framework. Su propósito es doble: para configurar el medio ambiente
-        <acronym>PHP</acronym> (incluyendo autocarga), y ejecutar su aplicación bootstrap.
-   </para>
+        <acronym>PHP</acronym>
+        (incluyendo autocarga), y ejecutar su aplicación bootstrap.
+    </para>
 
     <table id="zend.application.core-functionality.application.api.options">
         <title>Zend_Application options</title>
@@ -22,36 +24,65 @@
             </thead>
             <tbody>
                 <row>
-                    <entry><emphasis><property>phpSettings</property></emphasis></entry>
-                    <entry><para>
-                        Array of <filename>php.ini</filename> settings to use. Keys should be the
-                        <filename>php.ini</filename> keys.
-                   </para></entry>
+                    <entry>
+                        <emphasis>
+                            <property>phpSettings</property>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        <para>
+                            Array of
+                            <filename>php.ini</filename>
+                            settings to use. Keys should be the
+                            <filename>php.ini</filename>
+                            keys.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><emphasis><property>includePaths</property></emphasis></entry>
-                    <entry><para>
-                        Additional paths to prepend to the
-                        <emphasis>include_path</emphasis>. Should be an array of paths.
-                   </para></entry>
+                    <entry>
+                        <emphasis>
+                            <property>includePaths</property>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        <para>
+                            Additional paths to prepend to the
+                            <emphasis>include_path</emphasis>
+                            . Should be an array of paths.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><emphasis><property>autoloaderNamespaces</property></emphasis></entry>
-                    <entry><para>
-                        Array of additional namespaces to register with the
-                        <classname>Zend_Loader_Autoloader</classname> instance.
-                   </para></entry>
+                    <entry>
+                        <emphasis>
+                            <property>autoloaderNamespaces</property>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        <para>
+                            Array of additional namespaces to register with the
+                            <classname>Zend_Loader_Autoloader</classname>
+                            instance.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><emphasis><property>bootstrap</property></emphasis></entry>
-                    <entry><para>
-                        Either the string path to the bootstrap class, or an array
-                        with elements for the 'path' and 'class' for the application
-                        bootstrap.
-                   </para></entry>
+                    <entry>
+                        <emphasis>
+                            <property>bootstrap</property>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        <para>
+                            Either the string path to the bootstrap class, or an array
+                            with elements for the 'path' and 'class' for the application
+                            bootstrap.
+                   </para>
+                    </entry>
                 </row>
             </tbody>
         </tgroup>
@@ -60,17 +91,19 @@
     <note>
         <title>Option names</title>
 
-       <para>
+        <para>
             Please note that option names are case insensitive.
        </para>
     </note>
 
-   <para>
+    <para>
         Típicamente, pasará toda la configuración al constructor
-        <classname>Zend_Application</classname>, pero también puede configurar
-        totalmente el objeto utilizando sus propios métodos. En esta referencia
+        <classname>Zend_Application</classname>
+        , pero también puede configurar
+        totalmente el objeto utilizando sus propios métodos. En esta
+        referencia
         se ilustran ambos casos de uso.
-   </para>
+    </para>
 
     <table id="zend.application.core-functionality.application.api.table">
         <title>Métodos de Zend_Application</title>
@@ -88,236 +121,405 @@
                     <entry>
                         <methodname>__construct($environment, $options = null)</methodname>
                     </entry>
-                    <entry><type>Void</type></entry>
-                    <entry><itemizedlist>
-                            <listitem><para>
-                                <varname>$environment</varname>: <emphasis>requerido</emphasis>,.
-                                String que representa el actual entorno de aplicación.
-                                Strings típicos podrían incluir "desarrollo",
-                                "pruebas", "qa", o "producción", pero será definido
-                                por sus requisitos organizacionales.
-                           </para></listitem>
+                    <entry>
+                        <type>Void</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$environment</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    ,.
+                                    String que representa el actual entorno de aplicación.
+                                    Strings típicos podrían incluir "desarrollo",
+                                    "pruebas", "qa", o "producción", pero será definido
+                                    por sus requisitos organizacionales.
+                                </para>
+                            </listitem>
 
                             <listitem>
-                           <para>
-                                <varname>$options</varname>>: <emphasis>opcional</emphasis>.
-                                El argumento puede ser uno de los siguientes valores:
-                           </para>
-                            <itemizedlist>
-                                <listitem><para>
-                                    <emphasis>String</emphasis>: path
-                                    al archivo <classname>Zend_Config</classname>
-                                    para cargarlo como donfiguración de su
-                                    aplicación.
-                                    <methodname>$environment</methodname> se utilizará para
-                                    determinar qué sección de la configuración
-                                    se traerá.
-                               </para></listitem>
+                                <para>
+                                    <varname>$options</varname>
+                                    >:
+                                    <emphasis>opcional</emphasis>
+                                    .
+                                    El argumento puede ser uno de los siguientes valores:
+                                </para>
+                                <itemizedlist>
+                                    <listitem>
+                                        <para>
+                                            <emphasis>String</emphasis>
+                                            : path
+                                            al archivo
+                                            <classname>Zend_Config</classname>
+                                            para cargarlo como donfiguración de su
+                                            aplicación.
+                                            <methodname>$environment</methodname>
+                                            se utilizará para
+                                            determinar qué sección de la configuración
+                                            se traerá.
+                                        </para>
+                                    </listitem>
 
-                                <listitem><para>
-                                    <emphasis><type>Array</type></emphasis>: array asociativo
-                                    de datos de configuración para su aplicación.
-                               </para></listitem>
+                                    <listitem>
+                                        <para>
+                                            <emphasis>
+                                                <type>Array</type>
+                                            </emphasis>
+                                            : array asociativo
+                                            de datos de configuración para su aplicación.
+                                        </para>
+                                    </listitem>
 
-                                <listitem><para>
-                                    <emphasis><classname>Zend_Config</classname></emphasis>:
-                                    instancia del objeto de configuración.
-                               </para></listitem>
-                            </itemizedlist>
-                        </listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Constructor. Los argumentos son como se describe,
-                        y será utilizado para establecer el estado incial del
-                        objeto. Una instancia de
-                        <classname>Zend_Loader_Autoloader</classname>
-                        es registrada durante la instanciación.
-                        Las opciones pasadas al onstructor se pasan a
-                        <methodname>setOptions()</methodname>.
-                   </para></entry>
+                                    <listitem>
+                                        <para>
+                                            <emphasis>
+                                                <classname>Zend_Config</classname>
+                                            </emphasis>
+                                            :
+                                            instancia del objeto de configuración.
+                                        </para>
+                                    </listitem>
+                                </itemizedlist>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Constructor. Los argumentos son como se describe,
+                            y será utilizado para establecer el estado incial del
+                            objeto. Una instancia de
+                            <classname>Zend_Loader_Autoloader</classname>
+                            es registrada durante la instanciación.
+                            Las opciones pasadas al onstructor se pasan a
+                            <methodname>setOptions()</methodname>
+                            .
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getEnvironment()</methodname></entry>
-                    <entry><methodname>string</methodname></entry>
+                    <entry>
+                        <methodname>getEnvironment()</methodname>
+                    </entry>
+                    <entry>
+                        <methodname>string</methodname>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar el string del medio ambiente que se pasó al
-                        constructor.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar el string del medio ambiente que se pasó al
+                            constructor.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getAutoloader()</methodname></entry>
-                    <entry><classname>Zend_Loader_Autoloader</classname></entry>
-                    <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar la instancia de
+                    <entry>
+                        <methodname>getAutoloader()</methodname>
+                    </entry>
+                    <entry>
                         <classname>Zend_Loader_Autoloader</classname>
-                        registrados durante la instanciación.
-                   </para></entry>
+                    </entry>
+                    <entry>N/A</entry>
+                    <entry>
+                        <para>
+                            Recuperar la instancia de
+                            <classname>Zend_Loader_Autoloader</classname>
+                            registrados durante la instanciación.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setOptions(array $options)</methodname></entry>
-                    <entry><classname>Zend_Application</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$options</varname>: <emphasis>requerido</emphasis>.
-                            Un array de opciones de aplicación.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Todas las opciones se almacenan internamente, y llamando
-                        al método varias veces las opciones se fusionarán.
-                        Las opciones concordantes con los diversos métodos
-                        setter se pasarán a esos métodos.
-                        Como ejemplo, la opción "phpSettings" será pasada a
-                        <methodname>setPhpSettings()</methodname>.
-                        (Los nombres de opciones son indiferentes a mayúsculas/
-                        minúsculas.)
-                   </para></entry>
+                    <entry>
+                        <methodname>setOptions(array $options)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Un array de opciones de aplicación.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Todas las opciones se almacenan internamente, y llamando
+                            al método varias veces las opciones se fusionarán.
+                            Las opciones concordantes con los diversos métodos
+                            setter se pasarán a esos métodos.
+                            Como ejemplo, la opción "phpSettings" será pasada a
+                            <methodname>setPhpSettings()</methodname>
+                            .
+                            (Los nombres de opciones son indiferentes a mayúsculas/
+                            minúsculas.)
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getOptions()</methodname></entry>
-                    <entry><methodname>array</methodname></entry>
+                    <entry>
+                        <methodname>getOptions()</methodname>
+                    </entry>
+                    <entry>
+                        <methodname>array</methodname>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar todas las opciones usadas para inicializar el
-                        objeto; podría ser utilizada para guardar en cache a
-                        través de <classname>Zend_Config</classname> las
-                        opciones para serializar un formato entre reqerimientos.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar todas las opciones usadas para inicializar el
+                            objeto; podría ser utilizada para guardar en cache a
+                            través de
+                            <classname>Zend_Config</classname>
+                            las
+                            opciones para serializar un formato entre reqerimientos.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>hasOption($key)</methodname></entry>
-                    <entry><type>Boolean</type></entry>
-                    <entry>
-                    <itemizedlist>
-                        <listitem><para>
-                            <varname>$key</varname>: String opcional de la clave de lookup
-                       </para></listitem>
-                    </itemizedlist>
-                    </entry>
-                    <entry><para>
-                        Determinar si una opción con la clave ha sido registrada
-                        o no. Las claves son indiferentes a mayúsculas/
-                        minúsculas.
-                   </para></entry>
+                    <entry>
+                        <methodname>hasOption($key)</methodname>
+                    </entry>
+                    <entry>
+                        <type>Boolean</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$key</varname>
+                                    : String opcional de la clave de lookup
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Determinar si una opción con la clave ha sido registrada
+                            o no. Las claves son indiferentes a mayúsculas/
+                            minúsculas.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getOption($key)</methodname></entry>
-                    <entry><methodname>mixed</methodname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$key</varname>: String opcional de la clave de lookup
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Recuperar el valor de la opción de una clave dada.
-                        Retorna <constant>NULL</constant> si la clave no existe.
-                   </para></entry>
+                    <entry>
+                        <methodname>getOption($key)</methodname>
+                    </entry>
+                    <entry>
+                        <methodname>mixed</methodname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$key</varname>
+                                    : String opcional de la clave de lookup
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Recuperar el valor de la opción de una clave dada.
+                            Retorna
+                            <constant>NULL</constant>
+                            si la clave no existe.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setPhpSettings(array $settings, $prefix = '')</methodname></entry>
-                    <entry><classname>Zend_Application</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$settings</varname>: <emphasis>requerido</emphasis>.
-                            Array asociativo en los settings de <acronym>PHP</acronym>  <acronym>INI</acronym>.
-                       </para></listitem>
+                    <entry>
+                        <methodname>setPhpSettings(array $settings, $prefix = '')</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$settings</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Array asociativo en los settings de
+                                    <acronym>PHP</acronym>
+                                    <acronym>INI</acronym>
+                                    .
+                                </para>
+                            </listitem>
 
-                        <listitem><para>
-                            <varname>$prefix</varname>: <emphasis>opcional</emphasis>.
-                            Prefijo de tipo string para anteponer a la opción
-                            claves. Usado internamente para permitir el mapping
-                            anidado de matrices separados por puntos en las
-                            claves de <filename>php.ini</filename>.
-                            En el uso normal, este argumento nunca debe ser
-                            pasado por un usuario.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Establece un conjunto de ajustaes en <filename>php.ini</filename>. para run-time.
-                        Las configuraciones separadas por punto pueden ser
-                        anidadas jerárquicamente
-                        (lo que puede ocurrir con los archivos <acronym>INI</acronym>
-                        <classname>Zend_Config</classname>) mediante un array de
-                        de arrays, y aún resolver correctamente.
-                   </para></entry>
+                            <listitem>
+                                <para>
+                                    <varname>$prefix</varname>
+                                    :
+                                    <emphasis>opcional</emphasis>
+                                    .
+                                    Prefijo de tipo string para anteponer a la opción
+                                    claves. Usado internamente para permitir el mapping
+                                    anidado de matrices separados por puntos en las
+                                    claves de
+                                    <filename>php.ini</filename>
+                                    .
+                                    En el uso normal, este argumento nunca debe ser
+                                    pasado por un usuario.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Establece un conjunto de ajustaes en
+                            <filename>php.ini</filename>
+                            . para run-time.
+                            Las configuraciones separadas por punto pueden ser
+                            anidadas jerárquicamente
+                            (lo que puede ocurrir con los archivos
+                            <acronym>INI</acronym>
+                            <classname>Zend_Config</classname>
+                            ) mediante un array de
+                            de arrays, y aún resolver correctamente.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setAutoloaderNamespaces(array $namespaces)</methodname></entry>
-                    <entry><classname>Zend_Application</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$namespaces</varname>: <emphasis>requerido</emphasis>.
-                            Array de strings representando los namespaces a
-                            registrar con la instancia
-                            <classname>Zend_Loader_Autoloader</classname>.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Registra los namespaces con la instancia
-                        <classname>Zend_Loader_Autoloader</classname>.
-                     </para></entry>
+                    <entry>
+                        <methodname>setAutoloaderNamespaces(array $namespaces)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$namespaces</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Array de strings representando los namespaces a
+                                    registrar con la instancia
+                                    <classname>Zend_Loader_Autoloader</classname>
+                                    .
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Registra los namespaces con la instancia
+                            <classname>Zend_Loader_Autoloader</classname>
+                            .
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setBootstrap($path, $class = null)</methodname></entry>
-                    <entry><classname>Zend_Application</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$path</varname>:: <emphasis>requerido</emphasis>.
-                            Puede ser tanto una instancia de
-                            <classname>Zend_Application_Bootstrap_Bootstrapper
-                            </classname>, un string del path a la clase bootstrap,
-                            un arrray asociativo de classname =&gt;nombre_de_archivo,
-                            o un array asociativo con las claves 'class' y 'path'.
-                       </para></listitem>
+                    <entry>
+                        <methodname>setBootstrap($path, $class = null)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$path</varname>
+                                    ::
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Puede ser tanto una instancia de
+                                    <classname>Zend_Application_Bootstrap_Bootstrapper
+                            </classname>,
+                                    un string del path a la clase bootstrap,
+                                    un arrray asociativo de classname =&gt;nombre_de_archivo,
+                                    o un array asociativo con las claves 'class' y 'path'.
+                                </para>
+                            </listitem>
 
-                        <listitem><para>
-                            <varname>$class</varname>: <emphasis>opcional</emphasis>.
-                            Si <varname>$path</varname>: es un string, entonces
-                            <varname>$class</varname> puede ser especificado,
-                            y debe ser el string nombre de clase de la
-                            clase contenida en el archivo representado por path.
-                       </para></listitem>
-                    </itemizedlist></entry>
+                            <listitem>
+                                <para>
+                                    <varname>$class</varname>
+                                    :
+                                    <emphasis>opcional</emphasis>
+                                    .
+                                    Si
+                                    <varname>$path</varname>
+                                    : es un string, entonces
+                                    <varname>$class</varname>
+                                    puede ser especificado,
+                                    y debe ser el string nombre de clase de la
+                                    clase contenida en el archivo representado por path.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getBootstrap()</methodname></entry>
-                    <entry><methodname>null | Zend_Application_Bootstrap_Bootstrapper</methodname></entry>
+                    <entry>
+                        <methodname>getBootstrap()</methodname>
+                    </entry>
+                    <entry>
+                        <methodname>null | Zend_Application_Bootstrap_Bootstrapper</methodname>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar la instancia del bootstrap registrado.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar la instancia del bootstrap registrado.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>bootstrap()</methodname></entry>
-                    <entry><methodname>void</methodname></entry>
+                    <entry>
+                        <methodname>bootstrap()</methodname>
+                    </entry>
+                    <entry>
+                        <methodname>void</methodname>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Llamar al método <methodname>bootstrap()</methodname>
-                        para cargar la aplicación.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Llamar al método
+                            <methodname>bootstrap()</methodname>
+                            para cargar la aplicación.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>run()</methodname></entry>
-                    <entry><methodname>void</methodname></entry>
+                    <entry>
+                        <methodname>run()</methodname>
+                    </entry>
+                    <entry>
+                        <methodname>void</methodname>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Llamar al método <methodname>run()</methodname> del bootstrap
-                        para despachar la aplicación.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Llamar al método
+                            <methodname>run()</methodname>
+                            del bootstrap
+                            para despachar la aplicación.
+                        </para>
+                    </entry>
                 </row>
             </tbody>
         </tgroup>

+ 41 - 24
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml

@@ -1,55 +1,72 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 19689 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 19689 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.core-functionality.bootstrap-bootstrap">
     <title>Zend_Application_Bootstrap_Bootstrap</title>
 
-   <para>
-        <classname>Zend_Application_Bootstrap_Bootstrap</classname> es una implementación concreta
-        de <link linkend="zend.application.core-functionality.bootstrap-bootstrapabstract"
-            >Zend_Application_Bootstrap_BootstrapAbstract</link>. Su principal característica es que
-        registra el <link linkend="zend.application.available-resources.frontcontroller">recurso
-            Front Controller</link>, y que el método <methodname>run()</methodname> primero
-        comprueba esté definido un módulo por defecto y luego despacha el front controller.</para>
+    <para>
+        <classname>Zend_Application_Bootstrap_Bootstrap</classname>
+        es una implementación concreta
+        de
+        <link linkend="zend.application.core-functionality.bootstrap-bootstrapabstract">
+        Zend_Application_Bootstrap_BootstrapAbstract
+        </link>
+        . Su principal característica es que
+        registra el
+        <link linkend="zend.application.available-resources.frontcontroller">recurso
+            Front Controller</link>
+        , y que el método
+        <methodname>run()</methodname>
+        primero
+        comprueba esté definido un módulo por defecto y luego despacha el front controller.
+    </para>
 
-   <para>En muchos casos, usted quisiera extender esta clase por sus necesidades de bootstrapping,
+    <para>En muchos casos, usted quisiera extender esta clase por sus necesidades de bootstrapping,
         o simplemente utilizar esta clase y proporcionar una lista de los plugins de recursos a
         utilizar.</para>
 
     <sect3 id="zend.application.core-functionality.bootstrap-bootstrap.autoloading">
         <title>Enabling Application Autoloading</title>
 
-       <para>
+        <para>
             Additionally, this bootstrap implementation provides the ability to specify the
             "namespace" or class prefix for resources located in its tree, which will enable
-            autoloading of various application resources; essentially, it instantiates a <link
-                linkend="zend.loader.autoloader-resource.module">Zend_Application_Module_Autoloader</link>
+            autoloading of various application resources; essentially, it instantiates a
+            <link linkend="zend.loader.autoloader-resource.module">Zend_Application_Module_Autoloader</link>
             object, providing the requested namespace and the bootstrap's directory as arguments.
             You may enable this functionality by providing a namespace to the "appnamespace"
-            configuration option. As an <acronym>INI</acronym> Ejemplo:
-       </para>
+            configuration option. As an
+            <acronym>INI</acronym>
+            Ejemplo:
+        </para>
 
         <programlisting language="ini"><![CDATA[
 appnamespace = "Application"
 ]]></programlisting>
 
-       <para>
-            O en <acronym>XML</acronym>:
-       </para>
+        <para>
+            O en
+            <acronym>XML</acronym>
+            :
+        </para>
 
         <programlisting language="xml"><![CDATA[
 <appnamespace>Application</appnamespace>
 ]]></programlisting>
 
-       <para>
-            By default, <classname>Zend_Tool</classname> will enable this option with the value
+        <para>
+            By default,
+            <classname>Zend_Tool</classname>
+            will enable this option with the value
             "Application".
-       </para>
+        </para>
 
-       <para>
-            Alternately, you can simply define the <varname>$_appNamespace</varname> property of your
+        <para>
+            Alternately, you can simply define the
+            <varname>$_appNamespace</varname>
+            property of your
             bootstrap class with the appropriate value:
-       </para>
+        </para>
 
         <programlisting language="php"><![CDATA[
 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap

+ 393 - 205
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_BootstrapAbstract.xml

@@ -1,18 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 18117 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 18117 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.core-functionality.bootstrap-bootstrapabstract">
     <title>Zend_Application_Bootstrap_BootstrapAbstract</title>
 
-   <para>
-        <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname> es
+    <para>
+        <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
+        es
         una clase abstracta que proporciona la base funcional de un arranque
-        (bootstrap) común. Implementa a ambos
+        (bootstrap) común.
+        Implementa a ambos
         <link linkend="zend.application.core-functionality.bootstrap-bootstrapper">
-            Zend_Application_Bootstrap_Bootstrapper</link> y a <link
-            linkend="zend.application.core-functionality.bootstrap-resourcebootstrapper">
-           <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname></link>.
-   </para>
+            Zend_Application_Bootstrap_Bootstrapper</link>
+        y a
+        <link linkend="zend.application.core-functionality.bootstrap-resourcebootstrapper">
+            <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+        </link>
+        .
+    </para>
 
     <table id="zend.application.core-functionality.bootstrap-bootstrapabstract.api.table">
         <title>Métodos de Zend_Application_Bootstrap_BootstrapAbstract</title>
@@ -27,90 +32,158 @@
             </thead>
             <tbody>
                 <row>
-                    <entry><methodname>__construct($application)</methodname></entry>
-                    <entry><methodname>void</methodname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$application</varname>: <emphasis>requerido</emphasis>.
-                            Acepta tanto a <classname>Zend_Application</classname> o al
-                            objeto <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
-                            como único argumento.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Constructor. Acepta un solo argumento, que debe ser un
-                        objeto <classname>Zend_Application</classname>, u otro
-                        objeto bootstrap.
-                   </para></entry>
+                    <entry>
+                        <methodname>__construct($application)</methodname>
+                    </entry>
+                    <entry>
+                        <methodname>void</methodname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$application</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Acepta tanto a
+                                    <classname>Zend_Application</classname>
+                                    o al
+                                    objeto
+                                    <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                                    como único argumento.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Constructor. Acepta un solo argumento, que debe ser un
+                            objeto
+                            <classname>Zend_Application</classname>
+                            , u otro
+                            objeto bootstrap.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setOptions(array $options)</methodname></entry>
-                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$options</varname>: <emphasis>requerido</emphasis>.
-                            Array de opciones a establecer.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry>
-                   <para>
-                        Cualquier opción que tiene un setter concordante invocará
-                        ese setter; de lo contrario, la opción será simplemente
-                        almacenada para su recuperación posterior.
-                        Como ejemplo, si su clase extendida definió
-                        un método  <methodname>setFoo()</methodname>, la opción 'foo'
-                        pasaría el valor a ese método.
-                   </para>
-                   <para>
-                        También pueden usarse dos opciones especiales clave.
-                        <property>pluginPaths</property> puede ser utilizada para
-                        especificar prefijos de paths para los recursos plugin;
-                        debería ser un array de la clase pares prefijo/path.
-                        <property>resources</property> puede ser utilizada para
-                        especificar los recursos plugin a utilizar,
-                        y debería estar constituído por pares de opciones plugin
-                        recurso/instanciación.
-                   </para>
+                    <entry>
+                        <methodname>setOptions(array $options)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Array de opciones a establecer.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Cualquier opción que tiene un setter concordante invocará
+                            ese setter; de lo contrario, la opción será simplemente
+                            almacenada para su recuperación posterior.
+                            Como ejemplo, si su clase extendida definió
+                            un método
+                            <methodname>setFoo()</methodname>
+                            , la opción 'foo'
+                            pasaría el valor a ese método.
+                        </para>
+                        <para>
+                            También pueden usarse dos opciones especiales clave.
+                            <property>pluginPaths</property>
+                            puede ser utilizada para
+                            especificar prefijos de paths para los recursos plugin;
+                            debería ser un array de la clase pares prefijo/path.
+                            <property>resources</property>
+                            puede ser utilizada para
+                            especificar los recursos plugin a utilizar,
+                            y debería estar constituído por pares de opciones plugin
+                            recurso/instanciación.
+                        </para>
                     </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getOptions()</methodname></entry>
-                    <entry><type>array</type></entry>
+                    <entry>
+                        <methodname>getOptions()</methodname>
+                    </entry>
+                    <entry>
+                        <type>array</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Devuelve todas las opciones registradas via
-                        <methodname>setOptions()</methodname>.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Devuelve todas las opciones registradas via
+                            <methodname>setOptions()</methodname>
+                            .
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>hasOption($key)</methodname></entry>
-                    <entry><type>boolean</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$key</varname>: <emphasis>requerido</emphasis>.
-                            Clave de opción a probar.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>Determinar si una opción clave está presente.</para></entry>
+                    <entry>
+                        <methodname>hasOption($key)</methodname>
+                    </entry>
+                    <entry>
+                        <type>boolean</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$key</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Clave de opción a probar.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>Determinar si una opción clave está presente.</para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getOption($key)</methodname></entry>
-                    <entry><type>mixed</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$key</varname>: <emphasis>requerido</emphasis>.
-                            Clave de opción para recuperar.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Recuperar el valor asociado con una opción clave;
-                        retorna <constant>NULL</constant> si ninguna opción está registrada con
-                        esa clave.
-                   </para></entry>
+                    <entry>
+                        <methodname>getOption($key)</methodname>
+                    </entry>
+                    <entry>
+                        <type>mixed</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$key</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Clave de opción para recuperar.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Recuperar el valor asociado con una opción clave;
+                            retorna
+                            <constant>NULL</constant>
+                            si ninguna opción está registrada con
+                            esa clave.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
@@ -122,171 +195,286 @@
                     <entry>
                         <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
                     </entry>
-                    <entry><itemizedlist>
-                            <listitem><para>
-                                <varname>$application</varname>: <emphasis>requerido</emphasis>.
-                           </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Registrar al objeto padre de la aplicación o en el bootstrap.
-                   </para></entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$application</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Registrar al objeto padre de la aplicación o en el bootstrap.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getApplication()</methodname></entry>
-                    <entry><classname>Zend_Application |
-                            Zend_Application_Bootstrap_Bootstrapper</classname></entry>
+                    <entry>
+                        <methodname>getApplication()</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application |
+                            Zend_Application_Bootstrap_Bootstrapper</classname>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar el objeto aplicación/bootstrap pasado via
-                        constructor.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar el objeto aplicación/bootstrap pasado via
+                            constructor.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getEnvironment()</methodname></entry>
-                    <entry><type>string</type></entry>
+                    <entry>
+                        <methodname>getEnvironment()</methodname>
+                    </entry>
+                    <entry>
+                        <type>string</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar el string del entorno registrado
-                        con el objeto padre de la aplicación o del bootstrap.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar el string del entorno registrado
+                            con el objeto padre de la aplicación o del bootstrap.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getClassResources()</methodname></entry>
-                    <entry><type>array</type></entry>
+                    <entry>
+                        <methodname>getClassResources()</methodname>
+                    </entry>
+                    <entry>
+                        <type>array</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar una lista de los recursos inicializadores de
-                        nombres disponibles con los fueron definidos en la clase.
-                        Esto puede ser de implementación específica.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar una lista de los recursos inicializadores de
+                            nombres disponibles con los fueron definidos en la clase.
+                            Esto puede ser de implementación específica.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getContainer()</methodname></entry>
-                    <entry><type>object</type></entry>
+                    <entry>
+                        <methodname>getContainer()</methodname>
+                    </entry>
+                    <entry>
+                        <type>object</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recupera el contenedor que almacena recursos.
-                        Si no hay un contenedor actualmente registrado,
-                        registra una instancia
-                        <link linkend="zend.registry">Zend_Registry</link>
-                        antes de retornarlo.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recupera el contenedor que almacena recursos.
+                            Si no hay un contenedor actualmente registrado,
+                            registra una instancia
+                            <link linkend="zend.registry">Zend_Registry</link>
+                            antes de retornarlo.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setContainer($container)</methodname></entry>
-                    <entry><classname>Zend_Application_Bootstrap_BootstrapAbstract</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$container</varname>, <emphasis>requerido</emphasis>.
-                            Un objeto en el cual almacenar recursos.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Proporciona un contenedor en el que se almacenan recursos.
-                        Cuando un método de recurso o plugin devuelve un valor,
-                        será almacenado en este contenedor para su recuperación
-                        posterior.
-                   </para></entry>
+                    <entry>
+                        <methodname>setContainer($container)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$container</varname>
+                                    ,
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Un objeto en el cual almacenar recursos.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Proporciona un contenedor en el que se almacenan recursos.
+                            Cuando un método de recurso o plugin devuelve un valor,
+                            será almacenado en este contenedor para su recuperación
+                            posterior.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>hasResource($name)</methodname></entry>
-                    <entry><type>boolean</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <methodname>$name</methodname>, <emphasis>requerido</emphasis>.
-                            Nombre del recurso a comprobar.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Cuando un método de recurso o plugin devuelve un valor,
-                        será almacenado en el contenedor de recursos (ver
-                        <methodname>getContainer()</methodname> y
-                        <methodname>setContainer()</methodname>. Este método indicará si
-                        se ha establecido o no un valor para ese recurso.
-                   </para></entry>
+                    <entry>
+                        <methodname>hasResource($name)</methodname>
+                    </entry>
+                    <entry>
+                        <type>boolean</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <methodname>$name</methodname>
+                                    ,
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Nombre del recurso a comprobar.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Cuando un método de recurso o plugin devuelve un valor,
+                            será almacenado en el contenedor de recursos (ver
+                            <methodname>getContainer()</methodname>
+                            y
+                            <methodname>setContainer()</methodname>
+                            . Este método indicará si
+                            se ha establecido o no un valor para ese recurso.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getResource($name)</methodname></entry>
-                    <entry><type>mixed</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$name</varname>, <emphasis>requerido</emphasis>.
-                            Nombre del recurso a recuperar.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Cuando un método de recurso o plugin devuelve un valor,
-                        será almacenado en el contenedor de recursos (ver
-                        <methodname>getContainer()</methodname> y
-                        <methodname>setContainer()</methodname>. Este método recuperará
-                        recursos del contenedor.
-                   </para></entry>
+                    <entry>
+                        <methodname>getResource($name)</methodname>
+                    </entry>
+                    <entry>
+                        <type>mixed</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$name</varname>
+                                    ,
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Nombre del recurso a recuperar.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Cuando un método de recurso o plugin devuelve un valor,
+                            será almacenado en el contenedor de recursos (ver
+                            <methodname>getContainer()</methodname>
+                            y
+                            <methodname>setContainer()</methodname>
+                            . Este método recuperará
+                            recursos del contenedor.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>bootstrap($resource = null)</methodname></entry>
-                    <entry><type>mixed</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$resource</varname>: <emphasis>opcional</emphasis>.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry>
-                   <para>
-                        Si <varname>$resource</varname> está vacío, ejecutar todos
-                        los recursos del bootstrap.
-                        Si es un string, ejecutar ese único recurso;
-                        si es un array, ejecutar cada recurso del array.
-                   </para>
+                    <entry>
+                        <methodname>bootstrap($resource = null)</methodname>
+                    </entry>
+                    <entry>
+                        <type>mixed</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$resource</varname>
+                                    :
+                                    <emphasis>opcional</emphasis>
+                                    .
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Si
+                            <varname>$resource</varname>
+                            está vacío, ejecutar todos
+                            los recursos del bootstrap.
+                            Si es un string, ejecutar ese único recurso;
+                            si es un array, ejecutar cada recurso del array.
+                        </para>
 
-                   <para>
-                        Este método puede ser utilizado para ejecutar
-                        bootstraps individuales, ya hayan sido definidos en la
-                        propia clase o mediante clases de recursos de plugin.
-                        Un recurso definido en la clase será ejecutado en
-                        preferencia por sobre un recurso de plugin en el caso
-                        de conflicto de nombres.
+                        <para>
+                            Este método puede ser utilizado para ejecutar
+                            bootstraps individuales, ya hayan sido definidos en la
+                            propia clase o mediante clases de recursos de plugin.
+                            Un recurso definido en la clase será ejecutado en
+                            preferencia por sobre un recurso de plugin en el caso
+                            de conflicto de nombres.
                    </para>
                     </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>run()</methodname></entry>
-                    <entry><type>void</type></entry>
+                    <entry>
+                        <methodname>run()</methodname>
+                    </entry>
+                    <entry>
+                        <type>void</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Define qué lógica de aplicación ejecutar luego del
-                        bootstrap.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Define qué lógica de aplicación ejecutar luego del
+                            bootstrap.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>__call($method, $args)</methodname></entry>
-                    <entry><type>mixed</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$method</varname>: <emphasis>requerido</emphasis>.
-                            El nombre del método a llamar.
-                       </para></listitem>
+                    <entry>
+                        <methodname>__call($method, $args)</methodname>
+                    </entry>
+                    <entry>
+                        <type>mixed</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$method</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    El nombre del método a llamar.
+                                </para>
+                            </listitem>
 
-                        <listitem><para>
-                            <varname>$args</varname>: <emphasis>requerido</emphasis>.
-                            Array de argumentos para usar en el método de llamada.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Ofrece comodidad para bootstrapping de recursos
-                        individuales permitiéndole llamar
-                        'bootstrap&lt;ResourceName&gt;()' en vez de usar el
-                        método <methodname>bootstrap()</methodname>.
-                   </para></entry>
+                            <listitem>
+                                <para>
+                                    <varname>$args</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Array de argumentos para usar en el método de llamada.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Ofrece comodidad para bootstrapping de recursos
+                            individuales permitiéndole llamar
+                            'bootstrap&lt;ResourceName&gt;()' en vez de usar el
+                            método
+                            <methodname>bootstrap()</methodname>
+                            .
+                        </para>
+                    </entry>
                 </row>
             </tbody>
         </tgroup>

+ 145 - 76
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrapper.xml

@@ -1,18 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15733 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15733 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.core-functionality.bootstrap-bootstrapper">
     <title>Zend_Application_Bootstrap_Bootstrapper</title>
 
-   <para>
-        <classname>Zend_Application_Bootstrap_Bootstrapper</classname> es la
+    <para>
+        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+        es la
         interfaz base que deben implementar todas clases bootstrap.
-        Las funcionalidades de base están encaminadan a la configuración,
-        identificación de los recursos, bootstraping (ya sea de los recursos
+        Las funcionalidades de base
+        están encaminadan a la configuración,
+        identificación de los recursos, bootstraping (ya sea de
+        los recursos
         individuales o de toda la aplicación), y de despachar la aplicación.
-   </para>
+    </para>
 
-   <para>
+    <para>
         Los siguientes métodos conforman la definición de la interfaz.
    </para>
 
@@ -29,99 +32,165 @@
             </thead>
             <tbody>
                 <row>
-                    <entry><methodname>__construct($application)</methodname></entry>
-                    <entry><type>void</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$application</varname>: <emphasis>requerido</emphasis>.
-                            Debe aceptar un objeto <classname>Zend_Application</classname> o
-                            <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
-                            como único argumento.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Constructor. Acepta un solo argumento, que debe ser un
-                        objeto
-                        <classname>Zend_Application</classname>, u otro objero
-                        bootstrap.
-                   </para></entry>
+                    <entry>
+                        <methodname>__construct($application)</methodname>
+                    </entry>
+                    <entry>
+                        <type>void</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$application</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Debe aceptar un objeto
+                                    <classname>Zend_Application</classname>
+                                    o
+                                    <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                                    como único argumento.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Constructor. Acepta un solo argumento, que debe ser un
+                            objeto
+                            <classname>Zend_Application</classname>
+                            , u otro objero
+                            bootstrap.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setOptions(array $options)</methodname></entry>
-                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$options</varname>: <emphasis>requerido</emphasis>.
-                            Array de opciones a establecer.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Típicamente, cualquier opción que tiene un setter
-                        concordante invocará ese setter; de lo contrario,
-                        la opción será simplemente almacenada para su
-                        recuperación posterior.
-                   </para></entry>
+                    <entry>
+                        <methodname>setOptions(array $options)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Array de opciones a establecer.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Típicamente, cualquier opción que tiene un setter
+                            concordante invocará ese setter; de lo contrario,
+                            la opción será simplemente almacenada para su
+                            recuperación posterior.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getApplication()</methodname></entry>
+                    <entry>
+                        <methodname>getApplication()</methodname>
+                    </entry>
                     <entry>
                         <classname>Zend_Application |
-                        Zend_Application_Bootstrap_Bootstrapper</classname>
+                            Zend_Application_Bootstrap_Bootstrapper</classname>
                     </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar el objeto aplicación/bootstrap pasado via
-                        constructor.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar el objeto aplicación/bootstrap pasado via
+                            constructor.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getEnvironment()</methodname></entry>
-                    <entry><type>String</type></entry>
+                    <entry>
+                        <methodname>getEnvironment()</methodname>
+                    </entry>
+                    <entry>
+                        <type>String</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar el string del medio ambiente registrado
-                        con el objeto padre de la aplicación o del bootstrap.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar el string del medio ambiente registrado
+                            con el objeto padre de la aplicación o del bootstrap.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getClassResources()</methodname></entry>
-                    <entry><type>array</type></entry>
+                    <entry>
+                        <methodname>getClassResources()</methodname>
+                    </entry>
+                    <entry>
+                        <type>array</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar una lista de los recursos inicializadores de
-                        nombres disponibles con los que fueron definidos en la clase.
-                        Esto puede ser de implementación específica.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar una lista de los recursos inicializadores de
+                            nombres disponibles con los que fueron definidos en la clase.
+                            Esto puede ser de implementación específica.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>bootstrap($resource = null)</methodname></entry>
-                    <entry><type>Mixed</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$resource</varname>: <emphasis>optional</emphasis>.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Si <varname>$resource</varname> está vacío, ejecutar todos
-                        los recursos del bootstrap.
-                        Si es un string, ejecutar ese único recurso;
-                        si es un array, ejecutar cada recurso del array.
-                   </para></entry>
+                    <entry>
+                        <methodname>bootstrap($resource = null)</methodname>
+                    </entry>
+                    <entry>
+                        <type>Mixed</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$resource</varname>
+                                    :
+                                    <emphasis>optional</emphasis>
+                                    .
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Si
+                            <varname>$resource</varname>
+                            está vacío, ejecutar todos
+                            los recursos del bootstrap.
+                            Si es un string, ejecutar ese único recurso;
+                            si es un array, ejecutar cada recurso del array.
+                        </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>run()</methodname></entry>
-                    <entry><type>void</type></entry>
+                    <entry>
+                        <methodname>run()</methodname>
+                    </entry>
+                    <entry>
+                        <type>void</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Define qué lógica de aplicación ejecutar luego del
-                        bootstrap.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Define qué lógica de aplicación ejecutar luego del
+                            bootstrap.
+                   </para>
+                    </entry>
                 </row>
             </tbody>
         </tgroup>

+ 175 - 87
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_ResourceBootstrapper.xml

@@ -1,21 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15733 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15733 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.core-functionality.bootstrap-resourcebootstrapper">
     <title>Zend_Application_Bootstrap_ResourceBootstrapper</title>
 
-   <para>
-        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname> es una
+    <para>
+        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+        es una
         interfaz para usar cuando una clase de arranque cargará recursos
-        externos -- por ejemplo, uno o más recursos no se definirán
-        directamente en la clase, sino más bien via plugins.
+        externos -- por
+        ejemplo, uno o más recursos no se definirán
+        directamente en la clase, sino más bien via
+        plugins.
         Debe ser utilizado en conjunción con
-        <link linkend="zend.application.core-functionality.bootstrap-bootstrapper">Zend_Application_Bootstrap_Bootstrapper</link>;
+        <link linkend="zend.application.core-functionality.bootstrap-bootstrapper">Zend_Application_Bootstrap_Bootstrapper</link>
+        ;
         <link linkend="zend.application.core-functionality.bootstrap-bootstrapabstract">Zend_Application_Bootstrap_BootstrapAbstract</link>
         que implementan esta funcionalidad.
-   </para>
+    </para>
 
-   <para>
+    <para>
         Los siguientes métodos conforman la definición de la interfaz.
    </para>
 
@@ -32,105 +36,189 @@
             </thead>
             <tbody>
                 <row>
-                    <entry><methodname>registerPluginResource($resource, $options =
-                            null)</methodname></entry>
-                    <entry><classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$resource</varname>: <emphasis>requerido</emphasis>.
-                            Un nombre de recurso o un objeto
-                            <classname>Zend_Application_Resource_Resource</classname>.
-                       </para></listitem>
+                    <entry>
+                        <methodname>registerPluginResource($resource, $options =
+                            null)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$resource</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Un nombre de recurso o un objeto
+                                    <classname>Zend_Application_Resource_Resource</classname>
+                                    .
+                                </para>
+                            </listitem>
 
-                        <listitem><para>
-                            <varname>$options</varname>: <emphasis>opcional</emphasis>.
-                            Un array o un objeto <classname>Zend_Config</classname>
-                            para pasar al recurso en instanciación.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Registre un recurso con la clase, proporcionando
-                        configuración opcional para pasar al recurso.
-                   </para></entry>
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>
+                                    :
+                                    <emphasis>opcional</emphasis>
+                                    .
+                                    Un array o un objeto
+                                    <classname>Zend_Config</classname>
+                                    para pasar al recurso en instanciación.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Registre un recurso con la clase, proporcionando
+                            configuración opcional para pasar al recurso.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>unregisterPluginResource($resource)</methodname></entry>
-                    <entry><classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$resource</varname>: <emphasis>requerido</emphasis>.
-                            Nombre de un recurso para des-registrar desde la clase.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Eliminar un recurso de plugin de la clase.
-                   </para></entry>
+                    <entry>
+                        <methodname>unregisterPluginResource($resource)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$resource</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Nombre de un recurso para des-registrar desde la clase.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Eliminar un recurso de plugin de la clase.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>hasPluginResource($resource)</methodname></entry>
-                    <entry><type>Boolean</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <methodname>$resource</methodname>: <emphasis>requerido</emphasis>.
-                            Nombre del recurso.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Determinar si un recurso específico se ha registrado
-                        en la clase.
-                   </para></entry>
+                    <entry>
+                        <methodname>hasPluginResource($resource)</methodname>
+                    </entry>
+                    <entry>
+                        <type>Boolean</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <methodname>$resource</methodname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Nombre del recurso.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Determinar si un recurso específico se ha registrado
+                            en la clase.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getPluginResource($resource)</methodname></entry>
-                    <entry><classname>Zend_Application_Resource_Resource</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$resource</varname>: <emphasis>requerido</emphasis>.
-                            Nombre de un recurso a recuperar (string).
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Recuperar una instacia de un recurso de plugin por su nombre.
-                   </para></entry>
+                    <entry>
+                        <methodname>getPluginResource($resource)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Resource_Resource</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$resource</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Nombre de un recurso a recuperar (string).
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Recuperar una instacia de un recurso de plugin por su nombre.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getPluginResourceNames()</methodname></entry>
-                    <entry><type>Array</type></entry>
+                    <entry>
+                        <methodname>getPluginResourceNames()</methodname>
+                    </entry>
+                    <entry>
+                        <type>Array</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar una lista de todos los nombres de recursos de
-                        plugin registrados.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar una lista de todos los nombres de recursos de
+                            plugin registrados.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setPluginLoader(Zend_Loader_PluginLoader_Interface
-                            $loader)</methodname></entry>
-                    <entry><classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$loader</varname>: <emphasis>requerido</emphasis>.
-                            Instancia del cargador de plugin para utilizar
-                            cuando se resuelven nombres de plugin a las clases.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Registre una instancia del cargador de plugin para
-                        utilizar cuando se resuelven nombres de clases de plugin.
-                   </para></entry>
+                    <entry>
+                        <methodname>setPluginLoader(Zend_Loader_PluginLoader_Interface
+                            $loader)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$loader</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Instancia del cargador de plugin para utilizar
+                                    cuando se resuelven nombres de plugin a las clases.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Registre una instancia del cargador de plugin para
+                            utilizar cuando se resuelven nombres de clases de plugin.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getPluginLoader()</methodname></entry>
-                    <entry><classname>Zend_Loader_PluginLoader_Interface</classname></entry>
+                    <entry>
+                        <methodname>getPluginLoader()</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Loader_PluginLoader_Interface</classname>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar el cargador de plugin registrado.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar el cargador de plugin registrado.
+                   </para>
+                    </entry>
                 </row>
             </tbody>
         </tgroup>

+ 116 - 56
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Resource_Resource.xml

@@ -1,17 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15814 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15814 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.core-functionality.resource-resource">
     <title>Zend_Application_Resource_Resource</title>
 
-   <para>
-        <classname>Zend_Application_Resource_Resource</classname> es una
+    <para>
+        <classname>Zend_Application_Resource_Resource</classname>
+        es una
         interfaz para recursos de plugin utilizados con clases bootstrap implementando
-        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>.
+        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+        .
         Se espera que los recursos de plugins permitan la configuración,
-        estar enterados del bootstrap, y aplicar un patrón de estrategia para la
+        estar enterados del
+        bootstrap, y aplicar un patrón de estrategia para la
         inicialización de recursos.
-   </para>
+    </para>
 
     <table id="zend.application.core-functionality.resource-resource.api">
         <title>Zend_Application_Resource_Resource Interface</title>
@@ -26,73 +29,130 @@
             </thead>
             <tbody>
                 <row>
-                    <entry><methodname>__construct($options = null)</methodname></entry>
-                    <entry><type>Void</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$options</varname>: <emphasis>opcional</emphasis>.
-                            Opciones con las cuales establecer el estado de los recursos.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        El constructor debería permitir pasar opciones con las
-                        cuales inicializar el estado.
-                   </para></entry>
+                    <entry>
+                        <methodname>__construct($options = null)</methodname>
+                    </entry>
+                    <entry>
+                        <type>Void</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>
+                                    :
+                                    <emphasis>opcional</emphasis>
+                                    .
+                                    Opciones con las cuales establecer el estado de los recursos.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            El constructor debería permitir pasar opciones con las
+                            cuales inicializar el estado.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap)</methodname></entry>
-                    <entry><classname>Zend_Application_Resource_Resource</classname></entry>
-                    <entry><itemizedlist>
-                            <listitem><para>
-                                <varname>$bootstrap</varname>: <emphasis>requerido</emphasis>.
-                                Padre del bootstrap inicializando este recurso.
-                           </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Debería permitir registrar el objeto padre del bootstrap.
-                   </para></entry>
+                    <entry>
+                        <methodname>setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Resource_Resource</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$bootstrap</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Padre del bootstrap inicializando este recurso.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Debería permitir registrar el objeto padre del bootstrap.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getBootstrap()</methodname></entry>
-                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
+                    <entry>
+                        <methodname>getBootstrap()</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar la instancia del bootstrap registrado.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar la instancia del bootstrap registrado.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setOptions(array $options)</methodname></entry>
-                    <entry><classname>Zend_Application_Resource_Resource</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$options</varname>: <emphasis>requerido</emphasis>.
-                            Opciones con las cuales establecer el estado.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Establecer el estado del recurso.
-                   </para></entry>
+                    <entry>
+                        <methodname>setOptions(array $options)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Resource_Resource</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Opciones con las cuales establecer el estado.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Establecer el estado del recurso.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getOptions()</methodname></entry>
-                    <entry><type>Array</type></entry>
+                    <entry>
+                        <methodname>getOptions()</methodname>
+                    </entry>
+                    <entry>
+                        <type>Array</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar opciones registradas.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar opciones registradas.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>init()</methodname></entry>
-                    <entry><type>Mixed</type></entry>
+                    <entry>
+                        <methodname>init()</methodname>
+                    </entry>
+                    <entry>
+                        <type>Mixed</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Patrón de estrategia: ejecute inicialización de los recursos.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Patrón de estrategia: ejecute inicialización de los recursos.
+                   </para>
+                    </entry>
                 </row>
             </tbody>
         </tgroup>

+ 152 - 78
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Resource_ResourceAbstract.xml

@@ -1,20 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16649 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16649 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.application.core-functionality.resource-resourceabstract">
     <title>Zend_Application_Resource_ResourceAbstract</title>
 
-   <para>
-        <classname>Zend_Application_Resource_ResourceAbstract</classname> es una clase abstracta
-        implementando <link linkend="zend.application.core-functionality.resource-resource">Zend_Application_Resource_Resource</link>,
+    <para>
+        <classname>Zend_Application_Resource_ResourceAbstract</classname>
+        es una clase abstracta
+        implementando
+        <link linkend="zend.application.core-functionality.resource-resource">Zend_Application_Resource_Resource</link>
+        ,
         y es un buen punto de partida para crear sus propios recursos de plugin
         personalizados.
-   </para>
+    </para>
 
-   <para>
-        Nota: esta clase abstracta no implementa el método <methodname>init()</methodname>;
+    <para>
+        Nota: esta clase abstracta no implementa el método
+        <methodname>init()</methodname>
+        ;
         esto se deja para la definición de extensiones concretas de la clase.
-   </para>
+    </para>
 
     <table id="zend.application.core-functionality.resource-resourceabstract.api">
         <title>Zend_Application_Resource_ResourceAbstract Methods</title>
@@ -29,64 +34,115 @@
             </thead>
             <tbody>
                 <row>
-                    <entry><methodname>__construct($options = null)</methodname></entry>
-                    <entry><type>Void</type></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$options</varname>: <emphasis>opcional</emphasis>.
-                            Opciones con las cuales establecer el estado del recurso.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        El constructor debería permitir pasar opciones con las
-                        cuales inicializar el estado.
-                   </para></entry>
+                    <entry>
+                        <methodname>__construct($options = null)</methodname>
+                    </entry>
+                    <entry>
+                        <type>Void</type>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>
+                                    :
+                                    <emphasis>opcional</emphasis>
+                                    .
+                                    Opciones con las cuales establecer el estado del recurso.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            El constructor debería permitir pasar opciones con las
+                            cuales inicializar el estado.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap)</methodname></entry>
-                    <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
-                    <entry><itemizedlist>
-                            <listitem><para>
-                                <varname>$bootstrap</varname>: <emphasis>requerido</emphasis>.
-                                Padre del bootstrap inicializando este recurso.
-                           </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Debería permitir registrar el objeto padre del bootstrap.
-                   </para></entry>
+                    <entry>
+                        <methodname>setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Resource_ResourceAbstract</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$bootstrap</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Padre del bootstrap inicializando este recurso.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Debería permitir registrar el objeto padre del bootstrap.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getBootstrap()</methodname></entry>
-                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
+                    <entry>
+                        <methodname>getBootstrap()</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar la instancia registrada del bootstrap.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar la instancia registrada del bootstrap.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>setOptions(array $options)</methodname></entry>
-                    <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
-                    <entry><itemizedlist>
-                        <listitem><para>
-                            <varname>$options</varname>: <emphasis>requerido</emphasis>.
-                            Opciones con las cuales establecer el estado.
-                       </para></listitem>
-                    </itemizedlist></entry>
-                    <entry><para>
-                        Establecer el estado del recurso.
-                   </para></entry>
+                    <entry>
+                        <methodname>setOptions(array $options)</methodname>
+                    </entry>
+                    <entry>
+                        <classname>Zend_Application_Resource_ResourceAbstract</classname>
+                    </entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>
+                                    :
+                                    <emphasis>requerido</emphasis>
+                                    .
+                                    Opciones con las cuales establecer el estado.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                    <entry>
+                        <para>
+                            Establecer el estado del recurso.
+                   </para>
+                    </entry>
                 </row>
 
                 <row>
-                    <entry><methodname>getOptions()</methodname></entry>
-                    <entry><type>Array</type></entry>
+                    <entry>
+                        <methodname>getOptions()</methodname>
+                    </entry>
+                    <entry>
+                        <type>Array</type>
+                    </entry>
                     <entry>N/A</entry>
-                    <entry><para>
-                        Recuperar opciones registradas.
-                   </para></entry>
+                    <entry>
+                        <para>
+                            Recuperar opciones registradas.
+                   </para>
+                    </entry>
                 </row>
             </tbody>
         </tgroup>
@@ -94,22 +150,31 @@
     <sect3 id="zend.application.core-functionality.resource-resourceabstract.names">
         <title>Resource Names</title>
 
-       <para>
+        <para>
             When registering plugin resources, one issue that arises is how you
-            should refer to them from the parent bootstrap class. There are
-            three different mechanisms that may be used, depending on how you
+            should refer to
+            them from the parent bootstrap class. There are
+            three different mechanisms that may be
+            used, depending on how you
             have configured the bootstrap and its plugin resources.
        </para>
 
-       <para>
+        <para>
             First, if your plugins are defined within a defined prefix path, you
-            may refer to them simply by their "short name" -- i.e., the portion
-            of the class name following the class prefix. As an example, the
-            class "<classname>Zend_Application_Resource_View</classname>" may be referenced as
-            simply "View", as the prefix path "<classname>Zend_Application_Resource</classname>"
+            may refer to them
+            simply by their "short name" -- i.e., the portion
+            of the class name following the class
+            prefix. As an example, the
+            class "
+            <classname>Zend_Application_Resource_View</classname>
+            " may be referenced as
+            simply "View", as the prefix path "
+            <classname>Zend_Application_Resource</classname>
+            "
             is already registered. You may register them using the full class name or the
-            short name:
-       </para>
+            short
+            name:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $app = new Zend_Application(APPLICATION_ENV, array(
@@ -126,9 +191,10 @@ $app = new Zend_Application(APPLICATION_ENV, array(
 ));
 ]]></programlisting>
 
-       <para>
+        <para>
             In each case, you can then bootstrap the resource and retrieve it
-            later using the short name:
+            later using the short
+            name:
        </para>
 
         <programlisting language="php"><![CDATA[
@@ -136,9 +202,10 @@ $bootstrap->bootstrap('view');
 $view = $bootstrap->getResource('view');
 ]]></programlisting>
 
-       <para>
+        <para>
             Second, if no matching plugin path is defined, you may still pass a
-            resource by the full class name. In this case, you can reference it
+            resource by the
+            full class name. In this case, you can reference it
             using the resource's full class name:
        </para>
 
@@ -154,7 +221,7 @@ $app = new Zend_Application(APPLICATION_ENV, array(
 ));
 ]]></programlisting>
 
-       <para>
+        <para>
             Obviously, this makes referencing the resource much more verbose:
        </para>
 
@@ -163,14 +230,18 @@ $bootstrap->bootstrap('My_Resource_View');
 $view = $bootstrap->getResource('My_Resource_View');
 ]]></programlisting>
 
-       <para>
+        <para>
             This brings us to the third option. You can specify an explicit name
-            that a given resource class will register as. This can be done by
-            adding a public <varname>$_explicitType</varname> property to the resource
+            that a given
+            resource class will register as. This can be done by
+            adding a public
+            <varname>$_explicitType</varname>
+            property to the resource
             plugin class, with a string value; that value will then be used
             whenever you wish to reference the plugin resource via the
-            bootstrap. As an example, let's define our own view class:
-       </para>
+            bootstrap. As an example,
+            let's define our own view class:
+        </para>
 
         <programlisting language="php"><![CDATA[
 class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
@@ -184,19 +255,22 @@ class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
 }
 ]]></programlisting>
 
-       <para>
+        <para>
             We can then bootstrap that resource or retrieve it by the name
-            "<classname>My_View</classname>":
-       </para>
+            "
+            <classname>My_View</classname>
+            ":
+        </para>
 
         <programlisting language="php"><![CDATA[
 $bootstrap->bootstrap('My_View');
 $view = $bootstrap->getResource('My_View');
 ]]></programlisting>
 
-       <para>
+        <para>
             Using these various naming approaches, you can override existing
-            resources, add your own, mix multiple resources to achieve complex
+            resources, add your
+            own, mix multiple resources to achieve complex
             initialization, and more.
        </para>
     </sect3>

+ 17 - 13
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality.xml

@@ -1,19 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15814 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15814 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.application.core-functionality" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Funcionalidad Básica</title>
 
-   <para>
-        Aquí encontrará documentación del tipo <acronym>API</acronym> acerca de todos los
-        componentes básicos de <classname>Zend_Application</classname>.
-   </para>
+    <para>
+        Aquí encontrará documentación del tipo
+        <acronym>API</acronym>
+        acerca de todos los
+        componentes básicos de
+        <classname>Zend_Application</classname>
+        .
+    </para>
 
-    <xi:include href="Zend_Application-CoreFunctionality-Application.xml" />
-    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_Bootstrapper.xml" />
-    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_ResourceBootstrapper.xml" />
-    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_BootstrapAbstract.xml" />
-    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml" />
-    <xi:include href="Zend_Application-CoreFunctionality-Resource_Resource.xml" />
-    <xi:include href="Zend_Application-CoreFunctionality-Resource_ResourceAbstract.xml" />
+    <xi:include href="Zend_Application-CoreFunctionality-Application.xml"/>
+    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_Bootstrapper.xml"/>
+    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_ResourceBootstrapper.xml"/>
+    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_BootstrapAbstract.xml"/>
+    <xi:include href="Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml"/>
+    <xi:include href="Zend_Application-CoreFunctionality-Resource_Resource.xml"/>
+    <xi:include href="Zend_Application-CoreFunctionality-Resource_ResourceAbstract.xml"/>
 </sect1>

+ 83 - 46
documentation/manual/es/module_specs/Zend_Application-Examples.xml

@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17734 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17734 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.application.examples">
     <title>Ejemplos</title>
 
-   <para>La propia clase Bootstrap suelen ser bastante mínima; a menudo, será
-        simplemente un talón vacío ampliando la clase base bootstrap:</para>
+    <para>La propia clase Bootstrap suelen ser bastante mínima; a menudo, será
+        simplemente un talón
+        vacío ampliando la clase base bootstrap:</para>
 
     <programlisting language="php"><![CDATA[
 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
@@ -13,7 +14,7 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 }
 ]]></programlisting>
 
-   <para>Con el archivo de configuración coresspondiente:</para>
+    <para>Con el archivo de configuración coresspondiente:</para>
 
     <programlisting language="ini"><![CDATA[
 ; APPLICATION_PATH/configs/application.ini
@@ -26,24 +27,40 @@ resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
 [development : production]
 ]]></programlisting>
 
-   <para>Sin embargo, si debiera ser necesaria un inicialización
-        personalizada, usted tiene dos opciones. En primer lugar, usted puede
-        escribir métodos prefijados con <emphasis>_init</emphasis> para
+    <para>
+        Sin embargo, si debiera ser necesaria un inicialización
+        personalizada, usted tiene dos
+        opciones. En primer lugar, usted puede
+        escribir métodos prefijados con
+        <emphasis>_init</emphasis>
+        para
         especificar códigos distintos de arranque. Estos métodos pueden ser
-        llamados por <methodname>bootstrap()</methodname>, y también pueden ser
+        llamados por
+        <methodname>bootstrap()</methodname>
+        , y también pueden ser
         llamados como si fueran métodos públicos:
-            <emphasis>bootstrap&lt;resource&gt;()</emphasis>. Deben
-        aceptar opcionalmente un array de opciones.</para>
-
-   <para>Si su método recurso devuelve un valor, será almacenado en un
-        contenedor en el bootstrap. Esto puede ser útil cuando diferentes
-        recursos necesitan interactuar (como un recurso inyectándose a sí mismo
-        en otro). Luego, el método <methodname>getResource()</methodname> puede
-        ser utilizado para recuperar esos valores.</para>
-
-   <para>El siguiente ejemplo muestra un recurso de método para inicializar el
-        objeto solicitado. Hace uso del segimiento de la dependencia (que
-        depende del recurso Front Controller), obteniendo un recurso desde el
+        <emphasis>bootstrap&lt;resource&gt;()</emphasis>
+        . Deben
+        aceptar opcionalmente un array de opciones.
+    </para>
+
+    <para>
+        Si su método recurso devuelve un valor, será almacenado en un
+        contenedor en el bootstrap.
+        Esto puede ser útil cuando diferentes
+        recursos necesitan interactuar (como un recurso
+        inyectándose a sí mismo
+        en otro). Luego, el método
+        <methodname>getResource()</methodname>
+        puede
+        ser utilizado para recuperar esos valores.
+    </para>
+
+    <para>El siguiente ejemplo muestra un recurso de método para inicializar el
+        objeto solicitado.
+        Hace uso del segimiento de la dependencia (que
+        depende del recurso Front Controller),
+        obteniendo un recurso desde el
         bootstrap y devolver el valor para almacenar en el bootstrap.</para>
 
     <programlisting language="php"><![CDATA[
@@ -69,36 +86,49 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 }
 ]]></programlisting>
 
-   <para>Nótese en este ejemplo la llamada a
-            <methodname>bootstrap()</methodname>; esto asegura que el front
-        controller ha sido inicializado antes de llamar a este método. Esa
-        llamada puede desencadenar tanto un recurso u otro método de la clase.</para>
+    <para>
+        Nótese en este ejemplo la llamada a
+        <methodname>bootstrap()</methodname>
+        ; esto asegura que el front
+        controller ha sido inicializado antes de llamar a este método.
+        Esa
+        llamada puede desencadenar tanto un recurso u otro método de la clase.
+    </para>
 
-   <para>La otra opción es usar plugins de recursos, estos son objetos que
-        realizan inicializaciones específicas, y pueden ser especificados:</para>
+    <para>La otra opción es usar plugins de recursos, estos son objetos que
+        realizan inicializaciones
+        específicas, y pueden ser especificados:</para>
 
     <itemizedlist>
         <listitem>
-           <para>Cuando se instancia un onbeto de
-                    <classname>Zend_Application</classname>
-           </para>
+            <para>
+                Cuando se instancia un onbeto de
+                <classname>Zend_Application</classname>
+            </para>
         </listitem>
         <listitem>
-           <para>Durante la inicialización del objeto bootstrap (arranque)
+            <para>Durante la inicialización del objeto bootstrap (arranque)
            </para>
         </listitem>
         <listitem>
-           <para>Habilitándolos explícitamente a través del método de llamada
+            <para>Habilitándolos explícitamente a través del método de llamada
                 al objeto bootstrap</para>
         </listitem>
     </itemizedlist>
 
-   <para>Los recursos de plugins implementan
-            <classname>Zend_Application_Resource_ResourceAbstract</classname>,
+    <para>
+        Los recursos de plugins implementan
+        <classname>Zend_Application_Resource_ResourceAbstract</classname>
+        ,
         que define simplemente que permitirán la inyección del llamador y
-        opciones, y que tienen un método <methodname>init()</methodname> method.
+        opciones, y que tienen un
+        método
+        <methodname>init()</methodname>
+        method.
         Como ejemplo, un recurso de una Vista (View) personalizada de bootstrap
-        podría ser como lo siguiente:</para>
+        podría ser
+        como lo siguiente:
+    </para>
 
     <programlisting language="php"><![CDATA[
 class My_Bootstrap_Resource_View
@@ -131,9 +161,11 @@ class My_Bootstrap_Resource_View
 }
 ]]></programlisting>
 
-   <para>Para decirle al bootstrap que utilice éste, se tendría que
-        proporcionar ya sea el nombre de la clase del plugin del recurso, o una
-        combinación del del prefijo de la ruta de carga del plugin y el nombre
+    <para>Para decirle al bootstrap que utilice éste, se tendría que
+        proporcionar ya sea el nombre de
+        la clase del plugin del recurso, o una
+        combinación del del prefijo de la ruta de carga del
+        plugin y el nombre
         corto del plugin del recurso (por ejemplo, "view"):</para>
 
     <programlisting language="php"><![CDATA[
@@ -157,8 +189,9 @@ $application = new Zend_Application(
 );
 ]]></programlisting>
 
-   <para>Los recursos que son plugins puede llamar a otros recursos e
-        inicializadores accediendo al bootstrap padre:</para>
+    <para>Los recursos que son plugins puede llamar a otros recursos e
+        inicializadores accediendo al
+        bootstrap padre:</para>
 
     <programlisting language="php"><![CDATA[
 class My_Bootstrap_Resource_Layout
@@ -177,7 +210,7 @@ class My_Bootstrap_Resource_Layout
 }
 ]]></programlisting>
 
-   <para>En el uso normal, se podría instanciar la aplicación, arrancarla, y
+    <para>En el uso normal, se podría instanciar la aplicación, arrancarla, y
         ejecutarla:</para>
 
     <programlisting language="php"><![CDATA[
@@ -186,8 +219,9 @@ $application->bootstrap()
             ->run();
 ]]></programlisting>
 
-   <para>Para un script personalizado, se podría necesitar simplemente
-        inicializar recursos específicos:</para>
+    <para>Para un script personalizado, se podría necesitar simplemente
+        inicializar recursos
+        específicos:</para>
 
     <programlisting language="php"><![CDATA[
 $application = new Zend_Application(...);
@@ -198,9 +232,12 @@ $service->setClass('Foo');  // uses database...
 echo $service->handle();
 ]]></programlisting>
 
-   <para>En lugar de utilizar el método <methodname>bootstrap()</methodname>
+    <para>
+        En lugar de utilizar el método
+        <methodname>bootstrap()</methodname>
         para llamar a los métodos internos o recursos, también puede usar
-        sobrecarga:</para>
+        sobrecarga:
+    </para>
 
     <programlisting language="php"><![CDATA[
 $application = new Zend_Application(...);

+ 9 - 6
documentation/manual/es/module_specs/Zend_Application-Introduction.xml

@@ -1,15 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15814 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15814 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.application.introduction">
     <title>Introducción</title>
 
-   <para>
+    <para>
         <classname>Zend_Application</classname>
         facilita la inicialización de nuestras aplicaciones
-        proporcionando recursos reutilizables, comunes y asociados con el módulo
+        proporcionando recursos reutilizables,
+        comunes y asociados con el módulo
         de la clase de arranque y control de dependencias.
-        También se ocupa de establecer el entorno de <acronym>PHP</acronym>
+        También
+        se ocupa de establecer el entorno de
+        <acronym>PHP</acronym>
         e introduce la autocarga (autoloading) por defecto.
-   </para>
+    </para>
 </sect1>

+ 201 - 122
documentation/manual/es/module_specs/Zend_Application-QuickStart.xml

@@ -1,50 +1,67 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17372 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17372 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.application.quick-start">
     <title>Inicio rápido con Zend_Application</title>
 
-   <para>
+    <para>
         Hay dos caminos para empezar con
-        <classname>Zend_Application</classname>, y dependen de cómo inicia su
-        proyecto. En cada caso, siempre se comienza con la creación de la
-        clase <classname>Bootstrap</classname>, y un archivo de configuración asociado.
-   </para>
-
-   <para>
-        Si se planea utilizar <classname>Zend_Tool</classname> para crear su
+        <classname>Zend_Application</classname>
+        , y dependen de cómo inicia su
+        proyecto. En cada caso, siempre se comienza con la creación de
+        la
+        clase
+        <classname>Bootstrap</classname>
+        , y un archivo de configuración asociado.
+    </para>
+
+    <para>
+        Si se planea utilizar
+        <classname>Zend_Tool</classname>
+        para crear su
         proyecto, continúe leyendo. Si va añadir
-        <classname>Zend_Application</classname> a un proyecto existente,
-        debe <link linkend="zend.application.quick-start.manual"> ir aquí</link>.
-   </para>
+        <classname>Zend_Application</classname>
+        a un proyecto existente,
+        debe
+        <link linkend="zend.application.quick-start.manual"> ir aquí</link>
+        .
+    </para>
 
     <sect2 id="zend.application.quick-start.zend-tool">
         <title>Usando Zend_Tool</title>
 
-       <para>
+        <para>
             La forma más rápida para comenzar a utilizar
-            <classname>Zend_Application</classname> es usar
-            <classname>Zend_Tool</classname> para generar su proyecto.
-            Esto también creará su clase y archivo <classname>Bootstrap</classname>.
-       </para>
-
-       <para>
-            Para crear un proyecto, ejecute el comando <command>zf</command> (en sistemas *nix):
-       </para>
+            <classname>Zend_Application</classname>
+            es usar
+            <classname>Zend_Tool</classname>
+            para generar su proyecto.
+            Esto también creará su clase y archivo
+            <classname>Bootstrap</classname>
+            .
+        </para>
+
+        <para>
+            Para crear un proyecto, ejecute el comando
+            <command>zf</command>
+            (en sistemas *nix):
+        </para>
 
         <programlisting language="sh"><![CDATA[
 % zf create project newproject
 ]]></programlisting>
 
-       <para>
-            O el comando <filename>zf.bat</filename> en Windows:
-       </para>
+        <para>
+            O el comando
+            <filename>zf.bat</filename>
+            en Windows:
+        </para>
 
         <programlisting language="dos"><![CDATA[
 C:> zf.bat create project newproject
 ]]></programlisting>
 
-       <para>
+        <para>
             Ambos crearán una estructura del proyecto que se parece a lo siguiente:
        </para>
 
@@ -76,22 +93,24 @@ newproject
     `-- phpunit.xml
 ]]></programlisting>
 
-       <para>
+        <para>
             En el diagrama anterior, su bootstrap se encuentra en
-             <filename>newproject/application/Bootstrap.php</filename>, y al principio
+            <filename>newproject/application/Bootstrap.php</filename>
+            , y al principio
             se vería así:
-       </para>
+        </para>
 
         <programlisting language="php"><![CDATA[
 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 {}
 ]]></programlisting>
 
-       <para>
+        <para>
             También notará que se ha creado un archivo de configuración,
-            <filename>newproject/application/configs/application.ini</filename>.
+            <filename>newproject/application/configs/application.ini</filename>
+            .
             Con el siguiente contenido:
-       </para>
+        </para>
 
         <programlisting language="dosini"><![CDATA[
 [production]
@@ -113,17 +132,21 @@ phpSettings.display_startup_errors = 1
 phpSettings.display_errors = 1
 ]]></programlisting>
 
-       <para>
+        <para>
             Todos las opciones en este archivo de configuración son para
-            su uso con <classname>Zend_Application</classname>
+            su uso con
+            <classname>Zend_Application</classname>
             y su bootstrap.
-       </para>
+        </para>
 
-       <para>
-            Otro archivo de interés es <filename>newproject/public/index.php</filename>,
+        <para>
+            Otro archivo de interés es
+            <filename>newproject/public/index.php</filename>
+            ,
             el cual invoca a
-            <classname>Zend_Application</classname> y lo envía.
-       </para>
+            <classname>Zend_Application</classname>
+            y lo envía.
+        </para>
 
         <programlisting language="php"><![CDATA[
 <?php
@@ -150,43 +173,63 @@ $application->bootstrap()
              ->run();
 ]]></programlisting>
 
-       <para>
+        <para>
             Para continuar con el inicio rápido, por favor
             <link linkend="zend.application.quick-start.resources">
-           vaya a la sección de Recursos</link>.
-       </para>
+                vaya a la sección de Recursos</link>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.application.quick-start.manual">
         <title>Añadir Zend_Application a su aplicación</title>
 
-       <para>
-            Los fundamentos de <classname>Zend_Application</classname> son bastante simples:
-       </para>
+        <para>
+            Los fundamentos de
+            <classname>Zend_Application</classname>
+            son bastante simples:
+        </para>
 
         <itemizedlist>
-            <listitem><para>
-                Crear un archivo <filename>application/Bootstrap.php</filename>, con la
-                clase <classname>Bootstrap</classname>.
-           </para></listitem>
-
-            <listitem><para>
-                Crear un archivo de configuración
-                <filename>application/configs/application.ini</filename>
-                con la configuración básica necesaria para
-                <classname>Zend_Application</classname>.
-           </para></listitem>
-
-            <listitem><para>
-                Modificar su <filename>public/index.php</filename> para usar
-                <classname>Zend_Application</classname>.
-           </para></listitem>
+            <listitem>
+                <para>
+                    Crear un archivo
+                    <filename>application/Bootstrap.php</filename>
+                    , con la
+                    clase
+                    <classname>Bootstrap</classname>
+                    .
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    Crear un archivo de configuración
+                    <filename>application/configs/application.ini</filename>
+                    con la configuración básica necesaria para
+                    <classname>Zend_Application</classname>
+                    .
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    Modificar su
+                    <filename>public/index.php</filename>
+                    para usar
+                    <classname>Zend_Application</classname>
+                    .
+                </para>
+            </listitem>
         </itemizedlist>
 
-       <para>
-            Primero, genere su clase <classname>Bootstrap</classname>. Crear un archivo,
-            <filename>application/Bootstrap.php</filename>, con el siguiente contenido:
-       </para>
+        <para>
+            Primero, genere su clase
+            <classname>Bootstrap</classname>
+            . Crear un archivo,
+            <filename>application/Bootstrap.php</filename>
+            , con el siguiente contenido:
+        </para>
 
         <programlisting language="php"><![CDATA[
 <?php
@@ -195,13 +238,21 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 }
 ]]></programlisting>
 
-       <para>
+        <para>
             Ahora, debe crear su configuración. Para este tutorial, usaremos
-            una configuración de estilo <acronym>INI</acronym>; puede, por supuesto,
-            usar un archivo de configuración <acronym>XML</acronym> o <acronym>PHP</acronym>. Cree el archivo
-            <filename>application/configs/application.ini</filename>, proporcionando
+            una configuración de
+            estilo
+            <acronym>INI</acronym>
+            ; puede, por supuesto,
+            usar un archivo de configuración
+            <acronym>XML</acronym>
+            o
+            <acronym>PHP</acronym>
+            . Cree el archivo
+            <filename>application/configs/application.ini</filename>
+            , proporcionando
             el siguiente contenido.
-       </para>
+        </para>
 
         <programlisting language="dosini"><![CDATA[
 [production]
@@ -223,11 +274,13 @@ phpSettings.display_startup_errors = 1
 phpSettings.display_errors = 1
 ]]></programlisting>
 
-       <para>
+        <para>
             Ahora, modifiquemos su script de entrada (gateway),
-            <filename>public/index.php</filename>. Si el archivo no existe, cree uno;
-            de lo contrario, sustitúyalo por el siguiente contenido:
-       </para>
+            <filename>public/index.php</filename>
+            . Si el archivo no existe, cree uno;
+            de lo contrario, sustitúyalo por el siguiente
+            contenido:
+        </para>
 
         <programlisting language="php"><![CDATA[
 <?php
@@ -261,14 +314,19 @@ $application->bootstrap()
             ->run();
 ]]></programlisting>
 
-       <para>
+        <para>
             Se puede observar que el valor constante del entorno de la aplicación
-            busca una variable de entorno "APPLICATION_ENV".
+            busca una variable
+            de entorno "APPLICATION_ENV".
             Recomendamos este ajuste en el entorno de su servidor web.
             En Apache, puede también configurarlo en la definición de su vhost,
-            o en su archivo <filename>.htaccess</filename>. Recomendamos el siguiente
-            contenido para su archivo <filename>public/.htaccess</filename>:
-       </para>
+            o en su archivo
+            <filename>.htaccess</filename>
+            . Recomendamos el siguiente
+            contenido para su archivo
+            <filename>public/.htaccess</filename>
+            :
+        </para>
 
         <programlisting language="conf"><![CDATA[
 SetEnv APPLICATION_ENV development
@@ -284,49 +342,58 @@ RewriteRule ^.*$ index.php [NC,L]
         <note>
             <title>Más información sobre mod_rewrite</title>
 
-           <para>
-            Las reglas de reescritura le permitin reescribir el acceso a
-            cualquier archivo en la raíz de los documentos web de su host virtual.
-            Si hay archivos que no desea que esten expuestos y desea ocualtarlos, puedes
-            ser mas restrictivo en tus reglas
-            Ir a la página web de Apache <ulink
-                    url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">para obtener más información acerca de about mod_rewrite</ulink>.
-           </para>
+            <para>
+                Las reglas de reescritura le permitin reescribir el acceso a
+                cualquier archivo en la raíz de los documentos web de su host virtual.
+                Si hay archivos que no desea que esten expuestos y desea ocualtarlos, puedes
+                ser mas restrictivo en tus reglas
+                Ir a la página web de Apache
+                <ulink url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">para obtener más información acerca de about mod_rewrite</ulink>
+                .
+            </para>
 
         </note>
 
-       <para>
+        <para>
             En este punto, está listo para comenzar a usar las ventajas de
-            <classname>Zend_Application</classname>.
-       </para>
+            <classname>Zend_Application</classname>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.application.quick-start.resources">
         <title>Agregando y Creando Recursos</title>
 
-       <para>
+        <para>
             Si ha seguido las instrucciones anteriores, entonces su clase de
-            arranque estará utilizando un controlador frontal (front controller),
-            y cuando se ejecute, enviará el controlador frontal (front controller).
-            Sin embargo, con toda probabilidad, necesitará un poco más de
+            arranque estará
+            utilizando un controlador frontal (front controller),
+            y cuando se ejecute, enviará el
+            controlador frontal (front controller).
+            Sin embargo, con toda probabilidad, necesitará un
+            poco más de
             configuración que ésta.
        </para>
 
-       <para>
+        <para>
             En esta sección, veremos como añadir dos recursos a su aplicación.
-            En primer lugar, estableceremos los layouts,
-            y luego vamos a personalizar sus objetos de la  vista.
+            En primer lugar,
+            estableceremos los layouts,
+            y luego vamos a personalizar sus objetos de la vista.
        </para>
 
-       <para>
+        <para>
             Uno de los recursos estándar provistos con
-            <classname>Zend_Application</classname> es el recurso "layout".
+            <classname>Zend_Application</classname>
+            es el recurso "layout".
             Este recurso espera que definas valores de configuración, los
-            que entonces utilizará para configurar su instancia
-            <classname>Zend_Layout</classname>.
-       </para>
+            que
+            entonces utilizará para configurar su instancia
+            <classname>Zend_Layout</classname>
+            .
+        </para>
 
-       <para>
+        <para>
             Para usarlo, todo lo que tenemos que hacer es actualizar el
             archivo de configuración.
        </para>
@@ -353,13 +420,16 @@ phpSettings.display_startup_errors = 1
 phpSettings.display_errors = 1
 ]]></programlisting>
 
-       <para>
+        <para>
             Si hasta ahora no lo ha hecho, genere el directorio
-            <filename>application/layouts/scripts/</filename>, y el archivo
-            <filename>layout.phtml</filename> dentro de ese directorio. Un buen layout
+            <filename>application/layouts/scripts/</filename>
+            , y el archivo
+            <filename>layout.phtml</filename>
+            dentro de ese directorio. Un buen layout
             inicial es como sigue
-            (y vincularlo con los recursos de la vista que cubriremos a continuación):
-       </para>
+            (y vincularlo con los
+            recursos de la vista que cubriremos a continuación):
+        </para>
 
         <programlisting language="php"><![CDATA[
 <?php echo $this->doctype() ?>
@@ -376,17 +446,22 @@ phpSettings.display_errors = 1
 </html>
 ]]></programlisting>
 
-       <para>
+        <para>
             En este punto, usted tendrá un layout ya trabajando.
        </para>
 
-       <para>
+        <para>
             Ahora, vamos añadir una vista de recurso personalizada.
-            Cuando se inicializa la vista, queremos establecer el DocType <acronym>HTML</acronym>
+            Cuando se inicializa la vista,
+            queremos establecer el DocType
+            <acronym>HTML</acronym>
             y un valor predeterminado del título para utilizarlo en la cabecera
-            de <acronym>HTML</acronym>. Esto puede llevarse a cabo editando su clase
-            <classname>Bootstrap</classname> para agregar un método.
-       </para>
+            de
+            <acronym>HTML</acronym>
+            . Esto puede llevarse a cabo editando su clase
+            <classname>Bootstrap</classname>
+            para agregar un método.
+        </para>
 
         <programlisting language="php"><![CDATA[
 <?php
@@ -410,9 +485,10 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
     }
 }]]></programlisting>
 
-       <para>
+        <para>
             Este método se ejecuta automáticamente cuando arranca la aplicación,
-            y se asegurará que su vista sea inicializada según las necesidades
+            y se asegurará que
+            su vista sea inicializada según las necesidades
             de su aplicación.
        </para>
     </sect2>
@@ -420,11 +496,14 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
     <sect2 id="zend.application.quick-start.next-steps">
         <title>Próximos pasos con Zend_Application</title>
 
-       <para>
-            Con lo anterior debería poder comenzar con <classname>Zend_Application</classname>
-            y con la creación del bootstrap de su aplicación.  De aquí, usted debe comenzar a
-            crear sus métodos de recursos, o para la máxima re-usabilidad,
-            clases de recursos de plugin. Y seguir leyendo para aprender más!
-       </para>
+        <para>
+            Con lo anterior debería poder comenzar con
+            <classname>Zend_Application</classname>
+            y con la creación del bootstrap de su aplicación. De aquí, usted debe comenzar a
+            crear
+            sus métodos de recursos, o para la máxima re-usabilidad,
+            clases de recursos de plugin. Y
+            seguir leyendo para aprender más!
+        </para>
     </sect2>
 </sect1>

+ 336 - 214
documentation/manual/es/module_specs/Zend_Application-TheoryOfOperation.xml

@@ -1,154 +1,186 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17734 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17734 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.application.theory-of-operation">
     <title>Teoría de Operación</title>
 
-   <para>
-        Obtener una aplicación <acronym>MVC</acronym> configurada y lista para funcionar
-        requiere de un porcentaje cada vez mayor de código que disponga
+    <para>
+        Obtener una aplicación
+        <acronym>MVC</acronym>
+        configurada y lista para funcionar
+        requiere de un porcentaje cada vez mayor de código que
+        disponga
         de más características, tales como: Establecer la base de datos,
-        configurar la vista y los ayudantes(helpers) de vistas, configurar los layouts,
-        registro de plugins, registro de ayudantes de acción (action helpers), y mucho más.
-   </para>
+        configurar la vista
+        y los ayudantes(helpers) de vistas, configurar los layouts,
+        registro de plugins, registro de
+        ayudantes de acción (action helpers), y mucho más.
+    </para>
 
-   <para>
+    <para>
         Además, a menudo deseará reutilizar el mismo código para arrancar sus
-        pruebas, un cronjob, o un servicio en linea de comandos.
+        pruebas, un cronjob, o
+        un servicio en linea de comandos.
         Si bien es posible incluir simplemente su script bootstrap,
         a menudo hay inicializaciones que son específicas del entorno,
-        puede que  no necesite el <acronym>MVC</acronym> para un cronjob, o simplemente
+        puede que no necesite el
+        <acronym>MVC</acronym>
+        para un cronjob, o simplemente
         la capa de DB para un servicio script.
-   </para>
+    </para>
 
-   <para>
-        <classname>Zend_Application</classname> pretende hacer esto más fácil
+    <para>
+        <classname>Zend_Application</classname>
+        pretende hacer esto más fácil
         y promover la reutilización mediante el encapsulamiento del
-        bootstraping en paradigmas de <acronym>OOP</acronym>.
-   </para>
+        bootstraping en paradigmas de
+        <acronym>OOP</acronym>
+        .
+    </para>
 
-   <para>
+    <para>
         Zend_Application está dividida en tres áreas:
    </para>
 
     <itemizedlist>
         <listitem>
-           <para>
-                <classname>Zend_Application</classname>: carga el entono
-                de <acronym>PHP</acronym>, incluyendo include_paths y autocarga,
+            <para>
+                <classname>Zend_Application</classname>
+                : carga el entono
+                de
+                <acronym>PHP</acronym>
+                , incluyendo include_paths y autocarga,
                 e instancia la clase requerida de bootstrap.
-           </para>
+            </para>
         </listitem>
         <listitem>
-           <para>
-                <classname>Zend_Application_Bootstrap</classname>: suministra
+            <para>
+                <classname>Zend_Application_Bootstrap</classname>
+                : suministra
                 interfaces para las clases bootstrap.
                 <classname>Zend_Application_Bootstrap_Bootstrap</classname>
                 ofrece funcionalidad común para la mayoría de las necesidades
-                de bootstrap, incluyendo algoritmos de comprobación de
-                dependencias y la capacidad de cargar recursos de bootstrap
+                de bootstrap,
+                incluyendo algoritmos de comprobación de
+                dependencias y la capacidad de cargar
+                recursos de bootstrap
                 por demanda.
-           </para>
+            </para>
         </listitem>
         <listitem>
-           <para>
-                <classname>Zend_Application_Resource</classname> provee una
+            <para>
+                <classname>Zend_Application_Resource</classname>
+                provee una
                 interfaz para recursos estandar de bootstrap que pueden ser
-                cargados por demanda mediante una instancia bootstrap,
-                así como implementaciones de varios recursos por defecto.
-           </para>
+                cargados por
+                demanda mediante una instancia bootstrap,
+                así como implementaciones de varios
+                recursos por defecto.
+            </para>
         </listitem>
     </itemizedlist>
 
-   <para>
+    <para>
         Los desarrolladores crean una clase de arranque(bootstrap) para sus
         aplicaciones, extendiendo
-        <classname>Zend_Application_Bootstrap_Bootstrap</classname> o
+        <classname>Zend_Application_Bootstrap_Bootstrap</classname>
+        o
         implementando (mínimamente)
-        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>. El punto de entrada
-        (por ejemplo, public/index.php) cargará <classname>Zend_Application</classname>,
+        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+        . El punto de entrada
+        (por ejemplo, public/index.php) cargará
+        <classname>Zend_Application</classname>
+        ,
         y la instanciará pasando por:
-   </para>
+    </para>
 
     <itemizedlist>
         <listitem>
-           <para>
+            <para>
                 El entorno actual
            </para>
         </listitem>
         <listitem>
-           <para>
+            <para>
                 Opciones para bootstrapping
            </para>
         </listitem>
     </itemizedlist>
 
-   <para>
+    <para>
         Las opciones de bootstrap incluyen la ruta hacia el archivo que
-        contiene la clase bootstrap y opcionalmente:
+        contiene la clase bootstrap
+        y opcionalmente:
    </para>
 
     <itemizedlist>
         <listitem>
-           <para>
+            <para>
                 Cualquier include_paths extras a establecer
            </para>
         </listitem>
         <listitem>
-           <para>
+            <para>
                 Cualquier otro namespace de autocarga adicional a registrar
            </para>
         </listitem>
         <listitem>
-           <para>
-                Cualquier configuración de <filename>php.ini</filename> a inicializar
-           </para>
+            <para>
+                Cualquier configuración de
+                <filename>php.ini</filename>
+                a inicializar
+            </para>
         </listitem>
         <listitem>
-           <para>
+            <para>
                 El nombre de clase para la clase bootstrap (si no es "Bootstrap")
            </para>
         </listitem>
         <listitem>
-           <para>
+            <para>
                 Pares de recursos prefijo de ruta a usar
            </para>
         </listitem>
         <listitem>
-           <para>
+            <para>
                 Cualquier recurso a usar (por nombre de clase o nombre corto)
            </para>
         </listitem>
         <listitem>
-           <para>
+            <para>
                 Ruta adicional al archivo de configuración a cargar
            </para>
         </listitem>
         <listitem>
-           <para>
+            <para>
                 Opciones adicionales de configuración
            </para>
         </listitem>
     </itemizedlist>
 
-   <para>
+    <para>
         Las opciones puden ser una array, un objeto
-        <classname>Zend_Config</classname>, o la ruta a un archivo de
+        <classname>Zend_Config</classname>
+        , o la ruta a un archivo de
         configuración.
-   </para>
+    </para>
 
     <sect2 id="zend.application.theory-of-operation.bootstrap">
         <title>Bootstrapping</title>
 
-       <para>
+        <para>
             La segunda área de responsabilidad de
-            <classname>Zend_Application</classname> es ejecutar la solicitud
+            <classname>Zend_Application</classname>
+            es ejecutar la solicitud
             del bootstrap. Los bootstraps necesitan mínimamente implementar
-            <classname>Zend_Application_Bootstrap_Bootstrapper</classname>,
-            la que define la siguiente <acronym>API</acronym>:
-       </para>
-
-         <programlisting language="php"><![CDATA[
+            <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+            ,
+            la que define la siguiente
+            <acronym>API</acronym>
+            :
+        </para>
+
+        <programlisting language="php"><![CDATA[
 interface Zend_Application_Bootstrap_Bootstrapper
 {
     public function __construct($application);
@@ -162,55 +194,68 @@ interface Zend_Application_Bootstrap_Bootstrapper
 }
 ]]></programlisting>
 
-       <para>
-            Esta <acronym>API</acronym> permite aceptar al bootstrap en el entorno y  la
-            configuración desde el objeto de la aplicación, informa la
+        <para>
+            Esta
+            <acronym>API</acronym>
+            permite aceptar al bootstrap en el entorno y la
+            configuración desde el objeto de la
+            aplicación, informa la
             responsabilidad de los recursos para los recursos bootstraping,
             luego hace el bootstrap y ejecuta la aplicación.
-       </para>
+        </para>
 
-       <para>
+        <para>
             Puede implementar esta interfaz usted mismo, extendiendo
-            <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>,
+            <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
+            ,
             o usar
-            <classname>Zend_Application_Bootstrap_Bootstrap</classname>.
-       </para>
+            <classname>Zend_Application_Bootstrap_Bootstrap</classname>
+            .
+        </para>
 
-       <para>
+        <para>
             Además de esta funcionalidad, hay muchas otras áreas de
-            incumbencia con las cuales debe familiarizarse.
+            incumbencia con las cuales debe
+            familiarizarse.
        </para>
 
         <sect3 id="zend.application.theory-of-operation.bootstrap.resource-methods">
             <title>Métodos Recursos</title>
 
-           <para>
+            <para>
                 La implementación de
                 <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
                 proporciona una simple convención para definir métodos de
-                recursos de clase. Cualquier método protegido cuyo nombre
-                comience con un prefijo <methodname>_init</methodname> será considerado
+                recursos de clase.
+                Cualquier método protegido cuyo nombre
+                comience con un prefijo
+                <methodname>_init</methodname>
+                será considerado
                 un método de recurso.
-           </para>
+            </para>
 
-           <para>
+            <para>
                 Para arrancar un único método de recurso, utilizar el método
-                <methodname>bootstrap()</methodname>, y pasarle el nombre del recurso.
-                El nombre será el nombre de método menos el prefijo
-                <emphasis>_init</emphasis>.
-           </para>
-
-           <para>
+                <methodname>bootstrap()</methodname>
+                , y pasarle el nombre del recurso.
+                El nombre será el nombre de método menos el
+                prefijo
+                <emphasis>_init</emphasis>
+                .
+            </para>
+
+            <para>
                 Para arrancar varios métodos de recursos, pasar un array de
-                nombres. Para bootstrap de todos los métodos de recursos,
+                nombres. Para bootstrap
+                de todos los métodos de recursos,
                 no pasar nada.
            </para>
 
-           <para>
+            <para>
                 Tome las siguientes clases bootstrap:
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 {
     protected function _initFoo()
@@ -230,30 +275,36 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 }
 ]]></programlisting>
 
-           <para>
-                Para arrancar solo el método <methodname>_initFoo()</methodname>, haga lo
+            <para>
+                Para arrancar solo el método
+                <methodname>_initFoo()</methodname>
+                , haga lo
                 siguiente:
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $bootstrap->bootstrap('foo');
 ]]></programlisting>
 
-           <para>
-                Para arrancar los métodos <methodname>_initFoo()</methodname> y
-                <methodname>_initBar()</methodname> , haga lo siguiente:
-           </para>
+            <para>
+                Para arrancar los métodos
+                <methodname>_initFoo()</methodname>
+                y
+                <methodname>_initBar()</methodname>
+                , haga lo siguiente:
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $bootstrap->bootstrap(array('foo', 'bar));
 ]]></programlisting>
 
-           <para>
+            <para>
                 Para arrancar todos los métodos de recursos, llame a
-                <methodname>bootstrap()</methodname> sin argumentos:
-           </para>
+                <methodname>bootstrap()</methodname>
+                sin argumentos:
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $bootstrap->bootstrap();
 ]]></programlisting>
         </sect3>
@@ -261,26 +312,32 @@ $bootstrap->bootstrap();
         <sect3 id="zend.application.theory-of-operation.bootstrap.resource-plugins">
             <title>Bootstraps que usan plugins de recursos</title>
 
-           <para>
+            <para>
                 Para hacer más re-utilizables sus bootstraps, hemos
-                proporcionado la capacidad de impulsar sus recursos dentro de
-                las clases de recursos de plugin. Esto le permite combinar
+                proporcionado la capacidad de
+                impulsar sus recursos dentro de
+                las clases de recursos de plugin. Esto le permite
+                combinar
                 recursos simplemente via configuración. Cubriremos el tema
-                <link
-                linkend="zend.application.theory-of-operation.resources">cómo
-                crear recursos</link> más adelante; en esta sección le
+                <link linkend="zend.application.theory-of-operation.resources">cómo
+                    crear recursos</link>
+                más adelante; en esta sección le
                 mostraremos sólo cómo utilizarlos.
-           </para>
+            </para>
 
-           <para>
+            <para>
                 Si su bootstrap debe ser capaz de utilizar recursos de plugins,
-                necesitará implementar una interfaz adicional,
-                <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>.
-                Esta interfaz define una <acronym>API</acronym> para localizar, registrar,
+                necesitará
+                implementar una interfaz adicional,
+                <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>
+                .
+                Esta interfaz define una
+                <acronym>API</acronym>
+                para localizar, registrar,
                 y cargar recursos de plugins:
-           </para>
+            </para>
 
-         <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 interface Zend_Application_Bootstrap_ResourceBootstrapper
 {
     public function registerPluginResource($resource, $options = null);
@@ -294,36 +351,47 @@ interface Zend_Application_Bootstrap_ResourceBootstrapper
 }
 ]]></programlisting>
 
-           <para>
+            <para>
                 Básicamente los recursos de plugins ofrecen la posibilidad de
-                crear recursos incializadores que puede ser re-utilizados entre
-                aplicaciones. Esto le permite mantener su actual bootstrap
+                crear recursos
+                incializadores que puede ser re-utilizados entre
+                aplicaciones. Esto le permite
+                mantener su actual bootstrap
                 relativamente limpio, e introducir nuevos recursos
-                sin necesidad de tocar su propio arranque (bootstrap).
+                sin
+                necesidad de tocar su propio arranque (bootstrap).
            </para>
 
-           <para>
-                <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname> (y
-                <classname>Zend_Application_Bootstrap_Bootstrap</classname> por extensión)
+            <para>
+                <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
+                (y
+                <classname>Zend_Application_Bootstrap_Bootstrap</classname>
+                por extensión)
                 implementan esta interfaz, que le permite utilizar recursos de
                 plugins.
-           </para>
+            </para>
 
-           <para>
+            <para>
                 Para utilizar recursos de plugins, debe especificarlos en las
-                opciones que pasó al objeto aplicación y/o bootstrap.
-                Estas opciones pueden provenir de un archivo de configuración,
+                opciones que pasó al
+                objeto aplicación y/o bootstrap.
+                Estas opciones pueden provenir de un archivo de
+                configuración,
                 o ser pasadas manualmente.
-                Las opciones deberán ser pares de clave/opción, representando
-                con la clave el nombre del recurso. El nombre de recurso será
+                Las opciones deberán ser pares de
+                clave/opción, representando
+                con la clave el nombre del recurso. El nombre de recurso
+                será
                 el segmento siguiente al prefijo de clase.
-                Por ejemplo, los recursos que vienen con Zend Framework
+                Por ejemplo, los recursos que vienen
+                con Zend Framework
                 tienen el prefijo de clase "Zend_Application_Resource_";
-                cualquier cosa que le siga después debe ser el nombre del recurso.
+                cualquier
+                cosa que le siga después debe ser el nombre del recurso.
                 Como por ejemplo,
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $application = new Zend_Application(APPLICATION_ENV, array(
     'resources' => array(
         'FrontController' => array(
@@ -333,30 +401,38 @@ $application = new Zend_Application(APPLICATION_ENV, array(
 ));
 ]]></programlisting>
 
-           <para>
+            <para>
                 Esto indica que el recurso "Front Controller", debería ser
-                utilizado, con las opciones especificadas.
+                utilizado, con las
+                opciones especificadas.
            </para>
 
-           <para>
+            <para>
                 Si usted comienza a escribir su propio recurso de plugin,
-                o utilizar recursos de plugin de terceras partes,
+                o utilizar recursos de
+                plugin de terceras partes,
                 necesitará decirle a su bootstrap donde encontrarlos.
                 Internamente, el bootstrap utiliza
-                <classname>Zend_Loader_PluginLoader</classname>, de manera tal
+                <classname>Zend_Loader_PluginLoader</classname>
+                , de manera tal
                 que sólo necesitará indicar el prefijo de la clase común como
-                pares de path.
-           </para>
+                pares de
+                path.
+            </para>
 
-           <para>
+            <para>
                 Supongamos por ejemplo, que usted tiene recursos de plugins
-                personalizados en <filename>APPLICATION_PATH/resources/</filename> y que
-                ellos comparten el prefijo de clase común <classname>My_Resource</classname>.
+                personalizados en
+                <filename>APPLICATION_PATH/resources/</filename>
+                y que
+                ellos comparten el prefijo de clase común
+                <classname>My_Resource</classname>
+                .
                 Entonces, debería pasar esa información al objeto aplicación
                 de la siguiente manera:
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $application = new Zend_Application(APPLICATION_ENV, array(
     'pluginPaths' => array(
         'My_Resource' => APPLICATION_PATH . '/resources/',
@@ -369,20 +445,23 @@ $application = new Zend_Application(APPLICATION_ENV, array(
 ));
 ]]></programlisting>
 
-           <para>
+            <para>
                 Ahora usted está habilitado para utilizar los recursos de
                 ese directorio.
            </para>
 
-           <para>
+            <para>
                 Tal como los métodos de recursos, utilice el método bootstrap()
-                para ejecutar recursos de plugins. También tal como con los
-                métodos de recursos, puede especificar bien un único recurso de
-                plugin, múltiples plugins (vía un array), o todos los plugins.
+                para ejecutar
+                recursos de plugins. También tal como con los
+                métodos de recursos, puede especificar
+                bien un único recurso de
+                plugin, múltiples plugins (vía un array), o todos los
+                plugins.
                 Además, los puede combinar para ejecutar métodos de recursos.
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 // Ejecute uno:
 $bootstrap->bootstrap('FrontController');
 
@@ -397,40 +476,53 @@ $bootstrap->bootstrap();
         <sect3 id="zend.application.theory-of-operation.bootstrap.registry">
             <title>Registro de Recursos</title>
 
-           <para>
+            <para>
                 Muchos, si no todos, sus métodos de recursos o plugins
-                inicializarán objetos y, en muchos casos, estos objetos serán
+                inicializarán objetos y, en
+                muchos casos, estos objetos serán
                 necesarios en otros lugares de su aplicación.
-                ¿Cómo se puede acceder a ellos?
+                ¿Cómo
+                se puede acceder a ellos?
            </para>
 
-           <para>
+            <para>
                 <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
                 ofrece un registro local para estos objetos. Para almacenar sus
-                objetos en ellos, simplemente debe devolverlos desde sus recursos.
-           </para>
+                objetos en ellos,
+                simplemente debe devolverlos desde sus recursos.
+            </para>
 
-           <para>
+            <para>
                 Para máxima flexibilidad, este registro es mencionado
-                internamente como un "contenedor"; el único requisito es que
-                sea un objeto. Los recursos son luego registrados como
+                internamente como un
+                "contenedor"; el único requisito es que
+                sea un objeto. Los recursos son luego
+                registrados como
                 propiedades nombrados después del nombre del recurso.
-                Por defecto, una instancia de
-                <classname>Zend_Registry</classname> es utilizada, pero
+                Por defecto,
+                una instancia de
+                <classname>Zend_Registry</classname>
+                es utilizada, pero
                 también puede especificar cualquier otro objeto que desee.
-                Los métodos <methodname>setContainer()</methodname> y <methodname>getContainer()</methodname>
+                Los
+                métodos
+                <methodname>setContainer()</methodname>
+                y
+                <methodname>getContainer()</methodname>
                 pueden ser utilizados para manipular el contenedor en si mismo.
-                <methodname>getResource($resource)</methodname> puede ser utilizado para
+                <methodname>getResource($resource)</methodname>
+                puede ser utilizado para
                 recuperar un recurso determinado del contenedor, y
-                <methodname>hasResource($resource)</methodname> para verificar si el
+                <methodname>hasResource($resource)</methodname>
+                para verificar si el
                 recurso ha sido efectivamente registrado.
-           </para>
+            </para>
 
-           <para>
+            <para>
                 Como ejemplo, considere una visión básica del recurso:
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 {
     protected function _initView()
@@ -443,11 +535,11 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 }
 ]]></programlisting>
 
-           <para>
+            <para>
                 A continuación, puede comprobarlos y/o traerlos así:
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 // Usando el par has/getResource():
 if ($bootstrap->hasResource('view')) {
     $view = $bootstrap->getResource('view');
@@ -460,24 +552,30 @@ if (isset($container->view)) {
 }
 ]]></programlisting>
 
-           <para>
+            <para>
                 Tenga en cuenta que el registro y el contenedor no es global.
-                Esto significa que usted necesita acceso al bootstrap a fin de
-                recuperar recursos. <classname>Zend_Application_Bootstrap_Bootstrap</classname>
+                Esto significa que
+                usted necesita acceso al bootstrap a fin de
+                recuperar recursos.
+                <classname>Zend_Application_Bootstrap_Bootstrap</classname>
                 proporciona cierta comodidad para ello: durante las ejecución de
-                <methodname>run()</methodname> se registra a sí mismo como el "Front
-                Controller" en el parámetro del "bootstrap", que permite
+                <methodname>run()</methodname>
+                se registra a sí mismo como el "Front
+                Controller" en el parámetro del "bootstrap",
+                que permite
                 buscarlo desde el router, despachador, plugins, y los
-                contoladores de acción.
-           </para>
+                contoladores de
+                acción.
+            </para>
 
-           <para>
+            <para>
                 Como ejemplo, si quiere tener acceso a los recursos de la
-                vista desde dentro de su controlador de acción, podría
+                vista desde dentro de su
+                controlador de acción, podría
                 hacer lo siguiente:
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 class FooController extends Zend_Controller_Action
 {
     public function init()
@@ -493,42 +591,52 @@ class FooController extends Zend_Controller_Action
         <sect3 id="zend.application.theory-of-operation.bootstrap.dependency-tracking">
             <title>Localización de las Dependencias</title>
 
-           <para>
+            <para>
                 Además de ejecutar los métodos de recursos métodos y plugins,
-                es necesario garantizar que estos son ejecutados una vez y solo
-                una vez; esto es lo que se pretende con el bootstrap de una
-                aplicación, y ejecutarlo múltiples veces puede conducir a
+                es necesario
+                garantizar que estos son ejecutados una vez y solo
+                una vez; esto es lo que se
+                pretende con el bootstrap de una
+                aplicación, y ejecutarlo múltiples veces puede
+                conducir a
                 una sobrecarga de recursos.
            </para>
 
-           <para>
+            <para>
                 Al mismo tiempo, algunos recursos puede depender de otros
-                que están en ejecución. Para resolver estas dos cuestiones,
+                que están en ejecución.
+                Para resolver estas dos cuestiones,
                 <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
                 proporciona un mecanismo simple pero eficaz para la localización
                 de dependencias.
-           </para>
+            </para>
 
-           <para>
+            <para>
                 Como se señaló anteriormente, todos los recursos --
-                ya sean métodos o plugins -- son arrancados llamando a
-                <methodname>bootstrap($resource)</methodname>, dende  <varname>$resource</varname>
+                ya sean métodos o plugins -- son
+                arrancados llamando a
+                <methodname>bootstrap($resource)</methodname>
+                , dende
+                <varname>$resource</varname>
                 es el nombre de un recurso, un array de recursos,
-                o si se dejó vacío, indica que deberían ejecutarse todos los recursos.
-           </para>
+                o si se dejó vacío, indica que
+                deberían ejecutarse todos los recursos.
+            </para>
 
-           <para>
+            <para>
                 Si un recurso depende de otro recurso, debe llamar a
-                <methodname>bootstrap()</methodname> dentro de su código para garantizar
+                <methodname>bootstrap()</methodname>
+                dentro de su código para garantizar
                 que ese recurso ha sido ejecutado.
-                Las llamadas subsiguientes a él, serán ignoradas.
-           </para>
+                Las llamadas
+                subsiguientes a él, serán ignoradas.
+            </para>
 
-           <para>
+            <para>
                 En un método de recursos, esa llamada sería parecida a lo siguiente:
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 {
     protected function _initRequest()
@@ -555,25 +663,31 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
     <sect2 id="zend.application.theory-of-operation.resources">
         <title>Plugins de Recursos</title>
 
-       <para>
-            <link linkend="zend.application.theory-of-operation.bootstrap.resource-plugins">Como se señaló anteriormente</link>,
+        <para>
+            <link linkend="zend.application.theory-of-operation.bootstrap.resource-plugins">Como se señaló anteriormente</link>
+            ,
             una buena forma de crear recursos de bootstrap re-utilizables y a
-            traspasar mucha de su codificación a clases discretas es utilizar
-            plugins de recursos. Si bien Zend Framework se entrega con una
+            traspasar mucha de su
+            codificación a clases discretas es utilizar
+            plugins de recursos. Si bien Zend Framework
+            se entrega con una
             serie de plugins de recursos, la intención es que los
-            desarrolladores deberían escribir los suyos para encapsular
+            desarrolladores
+            deberían escribir los suyos para encapsular
             sus propias necesidades de inicialización.
-       </para>
+        </para>
 
-       <para>
+        <para>
             Los recursos plugins solo necesitan implemetar
-            <classname>Zend_Application_Resource_Resource</classname>, o
+            <classname>Zend_Application_Resource_Resource</classname>
+            , o
             más simple aún, extenderse
-            <classname>Zend_Application_Resource_ResourceAbstract</classname>.
+            <classname>Zend_Application_Resource_ResourceAbstract</classname>
+            .
             La interfaz básica es simplemente esto:
-       </para>
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 interface Zend_Application_Resource_Resource
 {
     public function __construct($options = null);
@@ -587,21 +701,26 @@ interface Zend_Application_Resource_Resource
 }
 ]]></programlisting>
 
-       <para>
+        <para>
             La interfaz define simplemente que un recurso plugin debe aceptar opciones
-            para el constructor, tiene mecanismos de establecer y recuperar
-            opciones, mecanismos de establecer y recuperar el objeto bootstrap,
+            para el
+            constructor, tiene mecanismos de establecer y recuperar
+            opciones, mecanismos de
+            establecer y recuperar el objeto bootstrap,
             y un método de inicialización.
        </para>
 
-       <para>
+        <para>
             Como ejemplo, supongamos que tiene una vista común de inicialización
-            que utiliza en sus aplicaciones. Usted tiene un doctype común, <acronym>CSS</acronym>
+            que utiliza en sus
+            aplicaciones. Usted tiene un doctype común,
+            <acronym>CSS</acronym>
             y JavaScript, y quiere se capaz de pasar desde un documento base el
-            título via configuración. Un recurso plugin tal podría ser como este:
-       </para>
+            título via
+            configuración. Un recurso plugin tal podría ser como este:
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
 {
     protected $_view;
@@ -641,12 +760,15 @@ class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
 }
 ]]></programlisting>
 
-       <para>
+        <para>
             Minetrtas usted haya registrado el path del prefijo para este
-            recurso de plugin, puede usarlo en su aplicación. Mejor aún,
-            ya que usa el cargador de plugin, usted está pasando por encima del
+            recurso de plugin, puede
+            usarlo en su aplicación. Mejor aún,
+            ya que usa el cargador de plugin, usted está pasando
+            por encima del
             recurso de plugin de la "View" que viene con Zend Framework,
-            se está asegurando así que usa el suyo en lugar del original.
+            se está
+            asegurando así que usa el suyo en lugar del original.
        </para>
     </sect2>
 </sect1>

+ 311 - 151
documentation/manual/es/module_specs/Zend_Auth.xml

@@ -1,64 +1,119 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16652 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16652 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.auth.introduction">
     <title>Introducción</title>
-   <para>
-        <classname>Zend_Auth</classname> provee una <acronym>API</acronym> para
+    <para>
+        <classname>Zend_Auth</classname>
+        provee una
+        <acronym>API</acronym>
+        para
         autenticación e incluye adaptadores concretos de autenticación para
-        escenarios de casos de uso común.</para>
-   <para>
-        <classname>Zend_Auth</classname> es concerniente sólo con
-        <emphasis>autenticación</emphasis> y no con
-        <emphasis>autorización</emphasis> . Autenticación es vagamente
-        definido como: determinar si una entidad realmente es lo que pretende
+        escenarios de casos
+        de uso común.
+    </para>
+    <para>
+        <classname>Zend_Auth</classname>
+        es concerniente sólo con
+        <emphasis>autenticación</emphasis>
+        y no con
+        <emphasis>autorización</emphasis>
+        . Autenticación es vagamente
+        definido como: determinar si una entidad realmente es lo que
+        pretende
         ser (o sea, identificación), basandose en un grupo de credenciales.
-        Autorización, el proceso de decidir si se permite a una entidad: acceso
-        a, o el realizar operaciones en, otras entidades esta fuera del alcance
-        de <classname>Zend_Auth</classname> . Para más información sobre
-        autorización y control de acceso con Zend Framework, por favor vea <link
-            linkend="zend.acl">Zend_Acl</link> .</para>
+        Autorización, el
+        proceso de decidir si se permite a una entidad: acceso
+        a, o el realizar operaciones en, otras
+        entidades esta fuera del alcance
+        de
+        <classname>Zend_Auth</classname>
+        . Para más información sobre
+        autorización y control de acceso con Zend Framework, por favor
+        vea
+        <link linkend="zend.acl">Zend_Acl</link>
+        .
+    </para>
     <note>
-       <para>La clase <classname>Zend_Auth</classname> implementa el patrón
+        <para>
+            La clase
+            <classname>Zend_Auth</classname>
+            implementa el patrón
             Singleton - sólo una instancia de la clase está disponible - a
-            través de su método estático <methodname>getInstance()</methodname>
-            . Esto significa que usar el operador <methodname>new</methodname> y
-            la keyword <methodname>clone</methodname> no va a funcionar con la
-            clase <classname>Zend_Auth</classname> : use
-            <methodname>Zend_Auth::getInstance()</methodname> en su lugar.
-       </para>
+            través de su método estático
+            <methodname>getInstance()</methodname>
+            . Esto significa que usar el operador
+            <methodname>new</methodname>
+            y
+            la keyword
+            <methodname>clone</methodname>
+            no va a funcionar con la
+            clase
+            <classname>Zend_Auth</classname>
+            : use
+            <methodname>Zend_Auth::getInstance()</methodname>
+            en su lugar.
+        </para>
     </note>
     <sect2 id="zend.auth.introduction.adapters">
 
         <title>Adaptadores</title>
 
-       <para>Un adaptador <classname>Zend_Auth</classname> es usado para
+        <para>
+            Un adaptador
+            <classname>Zend_Auth</classname>
+            es usado para
             autenticar en contra de un tipo particular de servicio de
-            autenticación, como <acronym>LDAP</acronym>, <acronym>RDBMS</acronym>, o almacenamiento basado en
+            autenticación,
+            como
+            <acronym>LDAP</acronym>
+            ,
+            <acronym>RDBMS</acronym>
+            , o almacenamiento basado en
             ficheros. Diferentes adaptadores pueden tener opciones y
             compotamientos muy diferentes, pero algunas cosas básicas son
-            comunes entre los adaptadores de autenticación. Por ejemplo, aceptar
-            credenciales de autenticación (incluyendo una identidad supuesta),
-            realizar consultas ante el servicio de autenticación, y regresar
+            comunes entre los
+            adaptadores de autenticación. Por ejemplo, aceptar
+            credenciales de autenticación
+            (incluyendo una identidad supuesta),
+            realizar consultas ante el servicio de
+            autenticación, y regresar
             resultados, son comunes para los adaptadores
-            <classname>Zend_Auth</classname> .</para>
-
-       <para>Cada clase adaptadora <classname>Zend_Auth</classname> implementa
-            <classname>Zend_Auth_Adapter_Interface</classname> . Esta
-            interface define un metodo, <methodname>authenticate()</methodname>
+            <classname>Zend_Auth</classname>
+            .
+        </para>
+
+        <para>
+            Cada clase adaptadora
+            <classname>Zend_Auth</classname>
+            implementa
+            <classname>Zend_Auth_Adapter_Interface</classname>
+            . Esta
+            interface define un metodo,
+            <methodname>authenticate()</methodname>
             , que la clase adaptadora debe implementar para realizar una
-            peticion de autenticación. Cada clase adaptadora debe ser preparada
-            antes de llamar a <methodname>authenticate()</methodname> . Esta
+            peticion de autenticación.
+            Cada clase adaptadora debe ser preparada
+            antes de llamar a
+            <methodname>authenticate()</methodname>
+            . Esta
             preparación del adaptador incluye la creación de credenciales (p.ej.
-            nombre de usuario y contraseña) y la definición de valores para
-            opciones de configuración especificos del adaptador, como valores de
-            coneccion a base de datos para un adaptador de tabla de base de
-            datos.</para>
-
-       <para>El siguente ejemplo es un adaptador de autenticación que requiere
-            que un nombre de usuario y contraseña sean especificados para la
-            autenticación. Otros detalles, como la forma de realizar peticiones
-            al servicio de autenticación, han sido omitídos por brevedad:
+            nombre de
+            usuario y contraseña) y la definición de valores para
+            opciones de configuración
+            especificos del adaptador, como valores de
+            coneccion a base de datos para un adaptador de
+            tabla de base de
+            datos.
+        </para>
+
+        <para>El siguente ejemplo es un adaptador de autenticación que requiere
+            que un nombre de
+            usuario y contraseña sean especificados para la
+            autenticación. Otros detalles, como la
+            forma de realizar peticiones
+            al servicio de autenticación, han sido omitídos por
+            brevedad:
        </para>
 
         <programlisting language="php"><![CDATA[
@@ -88,16 +143,23 @@ class MyAuthAdapter implements Zend_Auth_Adapter_Interface
 }
 ]]></programlisting>
 
-       <para>
+        <para>
             Como se ha indicado en su docblock,
-            <methodname>authenticate()</methodname> debe regresar una
-            instancia de <classname>Zend_Auth_Result</classname> (o de una clase
-            derivada de <classname>Zend_Auth_Result</classname> ). Si por alguna
+            <methodname>authenticate()</methodname>
+            debe regresar una
+            instancia de
+            <classname>Zend_Auth_Result</classname>
+            (o de una clase
+            derivada de
+            <classname>Zend_Auth_Result</classname>
+            ). Si por alguna
             razón es imposible realizar una petición de autenticación,
-            <methodname>authenticate()</methodname> debería arrojar una
+            <methodname>authenticate()</methodname>
+            debería arrojar una
             excepción que se derive de
-            <classname>Zend_Auth_Adapter_Exception</classname> .
-       </para>
+            <classname>Zend_Auth_Adapter_Exception</classname>
+            .
+        </para>
 
     </sect2>
 
@@ -105,60 +167,90 @@ class MyAuthAdapter implements Zend_Auth_Adapter_Interface
 
         <title>Resultados</title>
 
-       <para>Los adaptadores <classname>Zend_Auth</classname> regresan una instancia de
-            <classname>Zend_Auth_Result</classname> con
-            <methodname>authenticate()</methodname> para representar el
+        <para>
+            Los adaptadores
+            <classname>Zend_Auth</classname>
+            regresan una instancia de
+            <classname>Zend_Auth_Result</classname>
+            con
+            <methodname>authenticate()</methodname>
+            para representar el
             resultado de un intento de autenticación. Los adaptadores llenan el
-            objeto <classname>Zend_Auth_Result</classname> en cuanto se
+            objeto
+            <classname>Zend_Auth_Result</classname>
+            en cuanto se
             construye, así que los siguientes cuatro métodos proveen un grupo
-            básico de operaciones "frente al usuario" que son comunes a los
-            resultados de adaptadores Zend_Auth: <itemizedlist>
+            básico de
+            operaciones "frente al usuario" que son comunes a los
+            resultados de adaptadores
+            Zend_Auth:
+            <itemizedlist>
                 <listitem>
-                   <para>
-                        <methodname>isValid()</methodname> - regresa true si y
+                    <para>
+                        <methodname>isValid()</methodname>
+                        - regresa true si y
                         solo si el resultado representa un intento de
-                        autenticación exitoso</para>
+                        autenticación exitoso
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <methodname>getCode()</methodname> - regresa una
+                    <para>
+                        <methodname>getCode()</methodname>
+                        - regresa una
                         constante identificadora
-                        <classname>Zend_Auth_Result</classname> para
+                        <classname>Zend_Auth_Result</classname>
+                        para
                         determinar el tipo de fallo en la autenticación o si ha
-                        sido exitosa. Este puede ser usado en situaciones cuando
-                        el desarrollador desea distinguir entre varios tipos de
+                        sido exitosa.
+                        Este puede ser usado en situaciones cuando
+                        el desarrollador desea distinguir
+                        entre varios tipos de
                         resultados de autenticación. Esto permite a los
                         desarrolladores, por ejemplo, mantener estadísticas
-                        detalladas de los resultados de autenticación. Otro uso
-                        de esta característica es: proporcionar al usuario
+                        detalladas de los
+                        resultados de autenticación. Otro uso
+                        de esta característica es: proporcionar
+                        al usuario
                         mensajes específicos detallados por razones de
-                        usabilidad, aunque los desarrolladores son exhortados a
-                        considerar el riesgo de proporcionar tales detalles a
+                        usabilidad, aunque
+                        los desarrolladores son exhortados a
+                        considerar el riesgo de proporcionar
+                        tales detalles a
                         los usuarios, en vez de un mensaje general de fallo en
-                        la autenticación. Para más información, vea las
-                        siguientes notas:</para>
+                        la
+                        autenticación. Para más información, vea las
+                        siguientes notas:
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <methodname>getIdentity()</methodname> - regresa la
-                        identidad del intento de autenticación</para>
+                    <para>
+                        <methodname>getIdentity()</methodname>
+                        - regresa la
+                        identidad del intento de autenticación
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <methodname>getMessages()</methodname> - regresa un
+                    <para>
+                        <methodname>getMessages()</methodname>
+                        - regresa un
                         arreglo de mensajes pertinentes a un fallido intento de
-                        autenticación</para>
+                        autenticación
+                    </para>
                 </listitem>
             </itemizedlist>
-       </para>
+        </para>
 
-       <para>El desarrollador podría desear ramificar basado en el tipo de
-            resultado de la autenticación a fin de realizar operaciones mas
-            específicas. Algunas operaciones que los desarrolladores podrían
+        <para>El desarrollador podría desear ramificar basado en el tipo de
+            resultado de la
+            autenticación a fin de realizar operaciones mas
+            específicas. Algunas operaciones que los
+            desarrolladores podrían
             encontrar útiles son: bloquear cuentas despues de varios intentos
             fallidos de ingresar una contraseña, marcar una dirección IP despues
-            de que ha intentado muchas identidades no existentes, y porporcionar
-            al usuario mensajes especificos resultados de la autenticación. Los
+            de que ha intentado
+            muchas identidades no existentes, y porporcionar
+            al usuario mensajes especificos
+            resultados de la autenticación. Los
             siguientes codigos de resultado están disponibles:
        </para>
 
@@ -171,8 +263,9 @@ Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID
 Zend_Auth_Result::FAILURE_UNCATEGORIZED
 ]]></programlisting>
 
-       <para>El siguiente ejemplo ilustra como un desarrollador podría
-            ramificar basado en el código resultado:
+        <para>El siguiente ejemplo ilustra como un desarrollador podría
+            ramificar basado en el código
+            resultado:
        </para>
         <programlisting language="php"><![CDATA[
 // debtri de AuthController / loginAction
@@ -204,65 +297,93 @@ switch ($result->getCode()) {
 
         <title>Persistencia de Identidad</title>
 
-       <para>Autenticar una petición que incluye credenciales de autenticación
-            es util por sí mismo, pero también es importante el soportar
-            mantener la identidad autenticada sin tener que presentar las
+        <para>Autenticar una petición que incluye credenciales de autenticación
+            es util por sí mismo,
+            pero también es importante el soportar
+            mantener la identidad autenticada sin tener que
+            presentar las
             credenciales de autenticación con cada petición.</para>
 
-       <para>
-            <acronym>HTTP</acronym> es un protocolo sin estado, sin embargo, se han desarrollado
-            técnicas como las cookies y sesiones a fin de facilitar mantener el
-            estado a través de multiples peticiones en aplicaciones web del lado
+        <para>
+            <acronym>HTTP</acronym>
+            es un protocolo sin estado, sin embargo, se han desarrollado
+            técnicas como las cookies y
+            sesiones a fin de facilitar mantener el
+            estado a través de multiples peticiones en
+            aplicaciones web del lado
             del servidor.
-       </para>
+        </para>
 
         <sect3 id="zend.auth.introduction.persistence.default">
 
             <title>Persistencia por Defecto en la Sesión PHP</title>
 
-           <para>Por defecto, <classname>Zend_Auth</classname> provee
+            <para>
+                Por defecto,
+                <classname>Zend_Auth</classname>
+                provee
                 almacenamiento persistente de la identidad desde un intento de
-                autenticación exitoso usando la sesión <acronym>PHP</acronym>. En un intento de
+                autenticación
+                exitoso usando la sesión
+                <acronym>PHP</acronym>
+                . En un intento de
                 autenticación exitoso,
-                <methodname>end_Auth::authenticate()</methodname> almacena la
+                <methodname>end_Auth::authenticate()</methodname>
+                almacena la
                 identidad del resultado de autenticación en almacenamiento
-                persistente. A menos que se configure diferente,
-                <classname>Zend_Auth</classname> usa una clase de
+                persistente. A
+                menos que se configure diferente,
+                <classname>Zend_Auth</classname>
+                usa una clase de
                 almacenamiento llamada
-                <classname>Zend_Auth_Storage_Session</classname> , la cual,
-                a su vez usa <link linkend="zend.session">
+                <classname>Zend_Auth_Storage_Session</classname>
+                , la cual,
+                a su vez usa
+                <link linkend="zend.session">
                     <classname>Zend_Session</classname>
-                </link> . Una clase diferente podría ser utilizada mediante
+                </link>
+                . Una clase diferente podría ser utilizada mediante
                 proveer un objeto que implemente
-                <classname>Zend_Auth_Storage_Interface</classname> a
+                <classname>Zend_Auth_Storage_Interface</classname>
+                a
                 <methodname>Zend_Auth::setStorage()</methodname>
-           </para>
+            </para>
 
             <note>
-               <para>Si el automático almacenamiento persistente de la
-                    identidad no es apropiado para un caso en particular,
-                    entonces los desarrolladores podrían dejar de usar la clase
-                    <classname>Zend_Auth</classname> al mismo tiempo,
+                <para>
+                    Si el automático almacenamiento persistente de la
+                    identidad no es apropiado para
+                    un caso en particular,
+                    entonces los desarrolladores podrían dejar de usar la
+                    clase
+                    <classname>Zend_Auth</classname>
+                    al mismo tiempo,
                     utilizando en su lugar una clase adaptadora directamente.
-               </para>
+                </para>
             </note>
 
             <example id="zend.auth.introduction.persistence.default.example">
 
                 <title>Modifying the Session Namespace</title>
 
-               <para>
-                    <classname>Zend_Auth_Storage_Session</classname> usa un
+                <para>
+                    <classname>Zend_Auth_Storage_Session</classname>
+                    usa un
                     espacionombre (namespace) de sesión 'Zend_Auth'. Este
-                    espacio-nombre podría ser OVERRIDDEN al pasar un valor
+                    espacio-nombre podría
+                    ser OVERRIDDEN al pasar un valor
                     diferente al contructor de
-                    <classname>Zend_Auth_Storage_Session</classname> , y
+                    <classname>Zend_Auth_Storage_Session</classname>
+                    , y
                     este valor es pasado internamente al constructor de
-                    <classname>Zend_Session_Namespace</classname> . Esto
+                    <classname>Zend_Session_Namespace</classname>
+                    . Esto
                     debería ocurrir antes de que se intente la autenticación, ya
-                    que <methodname>Zend_Auth::authenticate()</methodname> realiza
+                    que
+                    <methodname>Zend_Auth::authenticate()</methodname>
+                    realiza
                     el almacenamiento automático de la identidad.
-               </para>
+                </para>
 
                 <programlisting language="php"><![CDATA[
 // Almacena una referencia a la instancia Singleton de Zend_Auth
@@ -288,23 +409,36 @@ $result = $auth->authenticate($authAdapter);
 
             <title>Implementando Almacenamiento Personalizado</title>
 
-           <para>En ocaciones los desarrolladores podrían necesitar usar un
-                diferente comportamiento de persistencia de identidad que el
-                provisto por <classname>Zend_Auth_Storage_Session</classname> .
+            <para>
+                En ocaciones los desarrolladores podrían necesitar usar un
+                diferente comportamiento
+                de persistencia de identidad que el
+                provisto por
+                <classname>Zend_Auth_Storage_Session</classname>
+                .
                 Para esos casos los desarrolladores podrían simplemente
-                implementar <classname>Zend_Auth_Storage_Interface</classname> y
+                implementar
+                <classname>Zend_Auth_Storage_Interface</classname>
+                y
                 suplir una instancia de la clase a
-                <methodname>Zend_Auth::setStorage()</methodname> .</para>
+                <methodname>Zend_Auth::setStorage()</methodname>
+                .
+            </para>
 
             <example id="zend.auth.introduction.persistence.custom.example">
 
                 <title>Usando una Clase de Almacenamiento Personalizada</title>
 
-               <para>Para poder utilizar una clase de almacenamiento
-                    persistente de identidad diferente a
-                    <classname>Zend_Auth_Storage_Session</classname> , el
+                <para>
+                    Para poder utilizar una clase de almacenamiento
+                    persistente de identidad
+                    diferente a
+                    <classname>Zend_Auth_Storage_Session</classname>
+                    , el
                     desarrollador implementa
-                    <classname>Zend_Auth_Storage_Interface</classname> : <programlisting language="php"><![CDATA[
+                    <classname>Zend_Auth_Storage_Interface</classname>
+                    :
+                    <programlisting language="php"><![CDATA[
 class MyStorage implements Zend_Auth_Storage_Interface
 {
     /**
@@ -368,13 +502,15 @@ class MyStorage implements Zend_Auth_Storage_Interface
     }
 }
 ]]></programlisting>
-               </para>
+                </para>
 
-               <para>A fin de poder usar esta clase de almacenamiento
+                <para>
+                    A fin de poder usar esta clase de almacenamiento
                     personalizada,
-                    <methodname>Zend_Auth::setStorage()</methodname> es
+                    <methodname>Zend_Auth::setStorage()</methodname>
+                    es
                     invocada antes de intentar una petición de autenticación:
-               </para>
+                </para>
                 <programlisting language="php"><![CDATA[
 // Instruye Zend_Auth para usar la clase de almacenamiento personalizada
 Zend_Auth::getInstance()->setStorage(new MyStorage());
@@ -398,25 +534,37 @@ $result = Zend_Auth::getInstance()->authenticate($authAdapter);
 
         <title>Uso</title>
 
-       <para>Hay dos formas provistas de usar adaptadores <classname>Zend_Auth</classname>:
+        <para>
+            Hay dos formas provistas de usar adaptadores
+            <classname>Zend_Auth</classname>
+            :
 
-       </para>
+        </para>
         <orderedlist>
             <listitem>
-               <para>indirectamente, a través de
+                <para>
+                    indirectamente, a través de
                     <methodname>Zend_Auth::authenticate()</methodname>
-               </para>
+                </para>
             </listitem>
             <listitem>
-               <para>directamente, a través del metodo
-                    <methodname>authenticate()</methodname> del
-                    adaptador</para>
+                <para>
+                    directamente, a través del metodo
+                    <methodname>authenticate()</methodname>
+                    del
+                    adaptador
+                </para>
             </listitem>
         </orderedlist>
 
-       <para>El siguiente ejemplo ilustra como usar el adaptador
-            <classname>:Zend_Auth</classname> : indirectamente, a través del
-            uso de la clase <classname>Zend_Auth</classname> : <programlisting language="php"><![CDATA[
+        <para>
+            El siguiente ejemplo ilustra como usar el adaptador
+            <classname>:Zend_Auth</classname>
+            : indirectamente, a través del
+            uso de la clase
+            <classname>Zend_Auth</classname>
+            :
+            <programlisting language="php"><![CDATA[
 // Recibe una referencia a la instancia singleton de Zend_Auth
 $auth = Zend_Auth::getInstance();
 
@@ -438,10 +586,11 @@ if (!$result->isValid()) {
     // $result->getIdentity() === $username
 }
 ]]></programlisting>
-       </para>
+        </para>
 
-       <para>Una vez que la autenticación ha sido intentada en una petición,
-            como en el ejemplo anterior, es fácil verificar si existe una
+        <para>Una vez que la autenticación ha sido intentada en una petición,
+            como en el ejemplo
+            anterior, es fácil verificar si existe una
             identidad autenticada exitosamente:
        </para>
         <programlisting language="php"><![CDATA[
@@ -452,25 +601,36 @@ if ($auth->hasIdentity()) {
 }
 ]]></programlisting>
 
-       <para>Para remover una identidad del almacenamiento persistente,
-            simplemente usa el metodo <methodname>clearIdentity()</methodname>
+        <para>
+            Para remover una identidad del almacenamiento persistente,
+            simplemente usa el metodo
+            <methodname>clearIdentity()</methodname>
             method. Comunmente esto sería usado para implementar una operación
-            "cerrar sesión" en la aplicación: <programlisting language="php"><![CDATA[
+            "cerrar sesión" en la
+            aplicación:
+            <programlisting language="php"><![CDATA[
 Zend_Auth::getInstance()->clearIdentity();
 ]]></programlisting>
-       </para>
+        </para>
 
-       <para>Cuando el uso automático de almacenamiento persistente es
-            inapropiado para un caso en particular, el desarrollador podría
+        <para>
+            Cuando el uso automático de almacenamiento persistente es
+            inapropiado para un caso en
+            particular, el desarrollador podría
             simplemente omitir el uso de la clase
-            <classname>Zend_Auth</classname> , usando una clase adaptadora
-            directamente. El uso directo de una clase adaptadora implica
+            <classname>Zend_Auth</classname>
+            , usando una clase adaptadora
+            directamente. El uso directo de una clase adaptadora
+            implica
             configurar y preparar un objeto adaptador y despues llamar a su
-            metodo <methodname>authenticate()</methodname> . Los detalles
+            metodo
+            <methodname>authenticate()</methodname>
+            . Los detalles
             específicos del adaptador son discutidos en la documentación de cada
             adaptador. El siguiente ejemplo utiliza directamente
-            <methodname>MyAuthAdapter</methodname> :
-       </para>
+            <methodname>MyAuthAdapter</methodname>
+            :
+        </para>
 
         <programlisting language="php"><![CDATA[
 // Configura el adaptador de autenticación

+ 227 - 113
documentation/manual/es/module_specs/Zend_Auth_Adapter_DbTable.xml

@@ -1,82 +1,129 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17175 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17175 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.auth.adapter.dbtable">
     <title>Tabla de base de datos de autenticación</title>
     <sect2 id="zend.auth.adapter.dbtable.introduction">
         <title>Introducción</title>
-       <para>
-            <classname>Zend_Auth_Adapter_DbTable</classname> proporciona la
+        <para>
+            <classname>Zend_Auth_Adapter_DbTable</classname>
+            proporciona la
             capacidad de autenticar contra credenciales almacenadas en una tabla
-            de la base de datos. Como
-            <classname>Zend_Auth_Adapter_DbTable</classname> requiere una
-            instancia de <classname>Zend_Db_Adapter_Abstract</classname> que
+            de la
+            base de datos. Como
+            <classname>Zend_Auth_Adapter_DbTable</classname>
+            requiere una
+            instancia de
+            <classname>Zend_Db_Adapter_Abstract</classname>
+            que
             será pasada a su constructor, cada instancia está vinculada a una
-            conexión concreta de la base de datos. Se pueden establecer otras
-            opciones de configuración a través del constructor y de métodos de
-            instancia:</para>
-       <para>Las opciones de configuración disponibles incluyen:
+            conexión concreta de
+            la base de datos. Se pueden establecer otras
+            opciones de configuración a través del
+            constructor y de métodos de
+            instancia:
+        </para>
+        <para>Las opciones de configuración disponibles incluyen:
        </para>
 
         <itemizedlist>
             <listitem>
-               <para>
-                    <emphasis><property>tableName</property></emphasis>: Nombre de tabla de
+                <para>
+                    <emphasis>
+                        <property>tableName</property>
+                    </emphasis>
+                    : Nombre de tabla de
                     la base de datos que contiene las credenciales de
                     autenticación, y contra la cual se realiza la búsqueda
-                    de autenticación en la base de datos.</para>
+                    de autenticación en la
+                    base de datos.
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <emphasis><property>identityColumn</property></emphasis>: Nombre de la
+                <para>
+                    <emphasis>
+                        <property>identityColumn</property>
+                    </emphasis>
+                    : Nombre de la
                     columna de la tabla de la base de datos utilizada para
-                    representar la identidad. La columna identidad debe
-                    contar con valores únicos, tales como un apellido ó una
-                    dirección de e-mail.</para>
+                    representar
+                    la identidad. La columna identidad debe
+                    contar con valores únicos, tales como un
+                    apellido ó una
+                    dirección de e-mail.
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <emphasis><property>credentialColumn</property></emphasis>: Nombre de la
+                <para>
+                    <emphasis>
+                        <property>credentialColumn</property>
+                    </emphasis>
+                    : Nombre de la
                     columna de la tabla de la base de datos utilizada para
-                    representar la credencial. Conforme a un sistema de
-                    identidad simple y autenticación de contraseña, el valor
+                    representar
+                    la credencial. Conforme a un sistema de
+                    identidad simple y autenticación de
+                    contraseña, el valor
                     de la credencial corresponde con la contraseña. Véase
-                    también la opción <property>credentialTreatment
-                    </property>.</para>
+                    también la opción
+                    <property>credentialTreatment
+                    </property>
+                    .
+                </para>
             </listitem>
             <listitem>
-             <para>
-                  <emphasis><property>credentialTreatment</property></emphasis>: En muchos
-                  casos, contraseñas y otros datos son encriptados,
-                  mezclados, codificados, ocultados, desplazados o
-                  tratados de otra manera a través de alguna función o
-                  algoritmo. Al especificar una cadena de tratamiento
-                  parametrizada con este método, tal como
-                  <methodname>'MD5(?)'</methodname> o
-                  <methodname>'PASSWORD(?)'</methodname>, un
-                  desarrollador podría aplicar sentencias arbitrarias <acronym>SQL</acronym>
-                  sobre los datos credenciales de entrada. Ya que estas
-                  funciones son específicas de los <acronym>RDBMS</acronym>, debemos
-                  consultar el manual de la base de datos para comprobar
-                  la disponibilidad de tales funciones para su sistema de
-                  base de datos.
-             </para>
+                <para>
+                    <emphasis>
+                        <property>credentialTreatment</property>
+                    </emphasis>
+                    : En muchos
+                    casos, contraseñas y otros datos son encriptados,
+                    mezclados, codificados, ocultados, desplazados o
+                    tratados de otra manera a través de alguna función o
+                    algoritmo. Al especificar una cadena de tratamiento
+                    parametrizada con este método, tal como
+                    <methodname>'MD5(?)'</methodname>
+                    o
+                    <methodname>'PASSWORD(?)'</methodname>
+                    , un
+                    desarrollador podría aplicar sentencias arbitrarias
+                    <acronym>SQL</acronym>
+                    sobre los datos credenciales de entrada. Ya que estas
+                    funciones son específicas de los
+                    <acronym>RDBMS</acronym>
+                    , debemos
+                    consultar el manual de la base de datos para comprobar
+                    la disponibilidad de tales funciones para su sistema de
+                    base de datos.
+                </para>
             </listitem>
         </itemizedlist>
 
         <example id="zend.auth.adapter.dbtable.introduction.example.basic_usage">
             <title>Uso Básico</title>
-           <para>Como se explicó en la introducción, el constructor
-                <classname>Zend_Auth_Adapter_DbTable</classname> requiere
-                una instancia de <classname>Zend_Db_Adapter_Abstract</classname>
+            <para>
+                Como se explicó en la introducción, el constructor
+                <classname>Zend_Auth_Adapter_DbTable</classname>
+                requiere
+                una instancia de
+                <classname>Zend_Db_Adapter_Abstract</classname>
                 que sirve como conexión a la base de datos a la cual la
-                instancia de autenticación está obligada a adaptarse. En primer
-                lugar, la conexión de la base de datos debe ser creada.</para>
-           <para>El siguiente código crea un adaptador para una base de datos
-                en memoria , un esquema simple de la tabla, e inserta una fila
-                contra la que se pueda realizar una consulta de autenticación
-                posterior. Este ejemplo requiere que la extensión <acronym>PDO</acronym> SQLite
-                esté disponible.</para>
+                instancia de autenticación
+                está obligada a adaptarse. En primer
+                lugar, la conexión de la base de datos debe ser
+                creada.
+            </para>
+            <para>
+                El siguiente código crea un adaptador para una base de datos
+                en memoria , un esquema
+                simple de la tabla, e inserta una fila
+                contra la que se pueda realizar una consulta
+                de autenticación
+                posterior. Este ejemplo requiere que la extensión
+                <acronym>PDO</acronym>
+                SQLite
+                esté disponible.
+            </para>
             <programlisting language="php"><![CDATA[
 // Crear una conexión en memoria de la bade de datos SQLite
 $dbAdapter = new Zend_Db_Adapter_Pdo_Sqlite(array('dbname' =>
@@ -99,12 +146,17 @@ $sqlInsert = "INSERT INTO users (username, password, real_name) "
 // Insertar los datos
 $dbAdapter->query($sqlInsert);
 ]]></programlisting>
-           <para>Con la conexión de la base de datos y los datos de la tabla
-                disponibles, podemos crear un instancia de
-                <classname>Zend_Auth_Adapter_DbTable</classname>. Los
+            <para>
+                Con la conexión de la base de datos y los datos de la tabla
+                disponibles, podemos
+                crear un instancia de
+                <classname>Zend_Auth_Adapter_DbTable</classname>
+                . Los
                 valores de las opciones de configuración pueden ser pasados al
-                constructor o pasados como parámetros a los métodos setter
-                después de ser instanciados.</para>
+                constructor o
+                pasados como parámetros a los métodos setter
+                después de ser instanciados.
+            </para>
             <programlisting language="php"><![CDATA[
 // Configurar la instancia con los parámetros del constructor...
 $authAdapter = new Zend_Auth_Adapter_DbTable(
@@ -123,11 +175,18 @@ $authAdapter
     ->setCredentialColumn('password')
 ;
 ]]></programlisting>
-           <para>En este punto, el adaptador de la instancia de autenticación
-                está listo para aceptar consultas de autenticación. Con el fin
-                de elaborar una consulta de autenticación, los valores de
+            <para>
+                En este punto, el adaptador de la instancia de autenticación
+                está listo para aceptar
+                consultas de autenticación. Con el fin
+                de elaborar una consulta de autenticación, los
+                valores de
                 entrada de la credencial son pasados por el adaptador ates de
-                llamar al método <methodname>authenticate()</methodname>:</para>
+                llamar al
+                método
+                <methodname>authenticate()</methodname>
+                :
+            </para>
             <programlisting language="php"><![CDATA[
 // Seleccionamos los valores de entrada de la credencial (e.g., de un formulario de acceso)
 $authAdapter
@@ -137,12 +196,16 @@ $authAdapter
 
 // Ejecutamos la consulta de autenticación, salvando los resultados
 ]]></programlisting>
-           <para>Además de la disponibilidad del método
-                <methodname>getIdentity()</methodname> sobre el objeto
+            <para>
+                Además de la disponibilidad del método
+                <methodname>getIdentity()</methodname>
+                sobre el objeto
                 resultante de la autenticación,
-                <classname>Zend_Auth_Adapter_DbTable</classname> también
+                <classname>Zend_Auth_Adapter_DbTable</classname>
+                también
                 ayuda a recuperar la fila de al tabla sobre la autenticación
-                realizada.</para>
+                realizada.
+            </para>
             <programlisting language="php"><![CDATA[
 // Imprimir la identidad
 echo $result->getIdentity() . "\n\n";
@@ -161,24 +224,33 @@ Array
     [real_name] => My Real Name
 )
 ]]></programlisting>
-           <para>Ya que la fila de la tabla contiene el valor de la
-                credencial, es importante proteger los valores contra accesos no
+            <para>Ya que la fila de la tabla contiene el valor de la
+                credencial, es importante
+                proteger los valores contra accesos no
                 deseados.</para>
         </example>
     </sect2>
     <sect2 id="zend.auth.adapter.dbtable.advanced.storing_result_row">
         <title>Advanced Usage: Manteniendo el resultado del Objeto
             DbTable</title>
-       <para>Por defecto, <classname>Zend_Auth_Adapter_DbTable</classname>
+        <para>
+            Por defecto,
+            <classname>Zend_Auth_Adapter_DbTable</classname>
             devuelve la identidad proporcionada al objeto Auth en la
-            autenticación realizada. Otro de los casos de uso, donde los
+            autenticación realizada. Otro de
+            los casos de uso, donde los
             desarrolladores desean guardar para mantener el mecanismo de
             almacenamiento de un objeto identidad
-            <classname>Zend_Auth</classname> que contiene información útil,
+            <classname>Zend_Auth</classname>
+            que contiene información útil,
             se resuelve usando el método
-            <methodname>getResultRowObject()</methodname> para devolver un
-            objeto <emphasis>stdClass</emphasis>. El siguiente fragmento de
-            código muestra su uso:</para>
+            <methodname>getResultRowObject()</methodname>
+            para devolver un
+            objeto
+            <emphasis>stdClass</emphasis>
+            . El siguiente fragmento de
+            código muestra su uso:
+        </para>
         <programlisting language="php"><![CDATA[
 // Autenticar con Zend_Auth_Adapter_DbTable
 $result = $this->_auth->authenticate($adapter);
@@ -211,21 +283,35 @@ if ($result->isValid()) {
 
     <sect2 id="zend.auth.adapter.dbtable.advanced.advanced_usage">
         <title>Ejemplo de Uso Avanzado</title>
-       <para>Si bien el objetivo primordial de
-            <classname>Zend_Auth</classname> (y, por consiguiente,
-            <classname>Zend_Auth_Adapter_DbTable</classname>) es
-            principalmente la <emphasis>autenticación</emphasis> y no la
-            <emphasis>autorización</emphasis>, hay unos pocos casos y
-            problemas que se encuentran al límite entre cuales encajan dentro
+        <para>
+            Si bien el objetivo primordial de
+            <classname>Zend_Auth</classname>
+            (y, por consiguiente,
+            <classname>Zend_Auth_Adapter_DbTable</classname>
+            ) es
+            principalmente la
+            <emphasis>autenticación</emphasis>
+            y no la
+            <emphasis>autorización</emphasis>
+            , hay unos pocos casos y
+            problemas que se encuentran al límite entre cuales encajan
+            dentro
             del dominio. Dependiendo de cómo haya decidido explicar su problema,
-            a veces tiene sentido resolver lo que podría parecer un problema de
-            autorización dentro de un adaptador de autenticación.</para>
-
-       <para>Con esa excepción fuera de lo común,
-            <classname>Zend_Auth_Adapter_DbTable</classname> ha construido
+            a veces tiene
+            sentido resolver lo que podría parecer un problema de
+            autorización dentro de un adaptador
+            de autenticación.
+        </para>
+
+        <para>
+            Con esa excepción fuera de lo común,
+            <classname>Zend_Auth_Adapter_DbTable</classname>
+            ha construido
             mecanismos que pueden ser aprovechados para realizar controles
-            adicionales en la autenticación a la vez que se resuelven algunos
-            problemas comunes de los usuarios.</para>
+            adicionales
+            en la autenticación a la vez que se resuelven algunos
+            problemas comunes de los usuarios.
+        </para>
 
         <programlisting language="php"><![CDATA[
 // El valor del campo status de una cuenta no es igual a "compromised"
@@ -246,15 +332,19 @@ $adapter = new Zend_Auth_Adapter_DbTable(
     'MD5(?) AND active = "TRUE"'
     ]]></programlisting>
 
-       <para>Otra idea puede ser la aplicación de un mecanismo de "salting".
-            "Salting" es un término que se refiere a una técnica que puede
-            mejorar altamente la seguridad de su aplicación. Se basa en la idea
+        <para>Otra idea puede ser la aplicación de un mecanismo de "salting".
+            "Salting" es un término
+            que se refiere a una técnica que puede
+            mejorar altamente la seguridad de su aplicación.
+            Se basa en la idea
             de concatenar una cadena aleatoria a cada contraseña para evitar un
             ataque de fuerza bruta sobre la base de datos usando los valores
-            hash de un diccionario pre-calculado.</para>
+            hash de un diccionario
+            pre-calculado.</para>
 
-       <para>Por lo tanto, tenemos que modificar nuestra tabla para almacenar
-            nuestra cadena mezclada:</para>
+        <para>Por lo tanto, tenemos que modificar nuestra tabla para almacenar
+            nuestra cadena
+            mezclada:</para>
 
         <programlisting language="php"><![CDATA[
 $sqlAlter = "ALTER TABLE [users] "
@@ -262,15 +352,16 @@ $sqlAlter = "ALTER TABLE [users] "
           . "AFTER [password]";
 ]]></programlisting>
 
-       <para>Aquí hay una forma sencilla de generar una cadena mezclada por
-            cada usuario en el momento del registro:</para>
+        <para>Aquí hay una forma sencilla de generar una cadena mezclada por
+            cada usuario en el
+            momento del registro:</para>
 
         <programlisting language="php"><![CDATA[
 for ($i = 0; $i < 50; $i++) {
     $dynamicSalt .= chr(rand(33, 126));
 ]]></programlisting>
 
-       <para>Y ahora vamos a construir el adaptador:</para>
+        <para>Y ahora vamos a construir el adaptador:</para>
 
         <programlisting language="php"><![CDATA[
 $adapter = new Zend_Auth_Adapter_DbTable(
@@ -285,28 +376,51 @@ $adapter = new Zend_Auth_Adapter_DbTable(
 ]]></programlisting>
 
         <note>
-           <para>Puede mejorar aún más la seguridad mediante el uso de un
-                valor 'salt' estático fuertemente codificado en su aplicación.
-                En el caso de que su base de datos se vea comprometida (por
-                ejemplo, por un ataque de inyección <acronym>SQL</acronym>), su servidor web está
-                intacto y sus datos son inutilizable para el atacante.</para>
+            <para>
+                Puede mejorar aún más la seguridad mediante el uso de un
+                valor 'salt' estático
+                fuertemente codificado en su aplicación.
+                En el caso de que su base de datos se vea
+                comprometida (por
+                ejemplo, por un ataque de inyección
+                <acronym>SQL</acronym>
+                ), su servidor web está
+                intacto y sus datos son inutilizable para el atacante.
+            </para>
         </note>
 
-       <para>Otra alternativa es utilizar el método
-            <methodname>getDbSelect()</methodname> de
-            <classname>Zend_Auth_Adapter_DbTable</classname> después de que el adaptador se ha
-            construido. Este método devolverá la instancia del objeto
-            <classname>Zend_Db_Select</classname> que se va a utilizar para completar la rutina de
-            authenticate(). Es importante señalar que este método siempre
-            devuelve el mismo objeto, independientemente de si <methodname>authenticate()</methodname> ha
-            sido llamado o no. Este objeto <emphasis>no tendrá</emphasis>
+        <para>
+            Otra alternativa es utilizar el método
+            <methodname>getDbSelect()</methodname>
+            de
+            <classname>Zend_Auth_Adapter_DbTable</classname>
+            después de que el adaptador se ha
+            construido. Este método devolverá la instancia del
+            objeto
+            <classname>Zend_Db_Select</classname>
+            que se va a utilizar para completar la rutina de
+            authenticate(). Es importante señalar
+            que este método siempre
+            devuelve el mismo objeto, independientemente de si
+            <methodname>authenticate()</methodname>
+            ha
+            sido llamado o no. Este objeto
+            <emphasis>no tendrá</emphasis>
             ninguna de las credenciales de identidad o información de como estos
-            valores son colocados dentro del objeto seleccionado en
-            <methodname>authenticate()</methodname>.</para>
-
-       <para>Un ejemplo de una situación en la que uno podría querer utilizar
-            el método <methodname>getDbSelect()</methodname> sería comprobar el estado de un usuario, en
-            otras palabras, ver si la cuenta del usuario está habilitada.</para>
+            valores son
+            colocados dentro del objeto seleccionado en
+            <methodname>authenticate()</methodname>
+            .
+        </para>
+
+        <para>
+            Un ejemplo de una situación en la que uno podría querer utilizar
+            el método
+            <methodname>getDbSelect()</methodname>
+            sería comprobar el estado de un usuario, en
+            otras palabras, ver si la cuenta del usuario
+            está habilitada.
+        </para>
 
         <programlisting language="php"><![CDATA[
 // Continuando con el ejemplo de arriba

+ 97 - 59
documentation/manual/es/module_specs/Zend_Auth_Adapter_Digest.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15860 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15860 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.auth.adapter.digest">
 
     <title>Autenticación "Digest"</title>
@@ -9,38 +9,63 @@
 
         <title>Introducción</title>
 
-       <para>La <ulink
-                url="http://en.wikipedia.org/wiki/Digest_access_authentication"
-                >Autenticación "Digest"</ulink> es un método de la autenticación
-            <acronym>HTTP</acronym> que mejora la <ulink
-                url="http://en.wikipedia.org/wiki/Basic_authentication_scheme"
-                >Autenticación Básica</ulink> proporcionando una manera de
-            autenticar sin tener que transmitir la contraseña de manera clara a
-            través de la red.</para>
-
-       <para>Este adaptador permite la autentificación contra archivos de
-            texto que contengan líneas que tengan los elementos básicos de la
+        <para>
+            La
+            <ulink url="http://en.wikipedia.org/wiki/Digest_access_authentication">Autenticación
+                "Digest"</ulink>
+            es un método de la autenticación
+            <acronym>HTTP</acronym>
+            que mejora la
+            <ulink url="http://en.wikipedia.org/wiki/Basic_authentication_scheme">Autenticación
+                Básica</ulink>
+            proporcionando una manera de
+            autenticar sin tener que transmitir la contraseña de manera
+            clara a
+            través de la red.
+        </para>
+
+        <para>Este adaptador permite la autentificación contra archivos de
+            texto que contengan líneas
+            que tengan los elementos básicos de la
             autenticación "Digest":
        </para>
 
-            <itemizedlist>
-                <listitem>
-                   <para>username, tal como
-                        "<emphasis><filename>joe.user</filename></emphasis>"</para>
-                </listitem>
-                <listitem>
-                   <para>realm, tal como "<emphasis>Administrative Area</emphasis>"</para>
-                </listitem>
-                <listitem>
-                   <para>Hash  <acronym>MD5</acronym> del username, realm y password,
-                        separados por dos puntos</para>
-                </listitem>
-            </itemizedlist>
-
-       <para>
-        Los elementos anteriores están separados por dos
-            puntos, como en el ejemplo siguiente (en el que la contraseña es
-            "<emphasis>somePassword</emphasis>"):</para>
+        <itemizedlist>
+            <listitem>
+                <para>
+                    username, tal como
+                    "
+                    <emphasis>
+                        <filename>joe.user</filename>
+                    </emphasis>
+                    "
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    realm, tal como "
+                    <emphasis>Administrative Area</emphasis>
+                    "
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Hash
+                    <acronym>MD5</acronym>
+                    del username, realm y password,
+                    separados por dos puntos
+                </para>
+            </listitem>
+        </itemizedlist>
+
+        <para>
+            Los elementos anteriores están separados por dos
+            puntos, como en el ejemplo siguiente (en
+            el que la contraseña es
+            "
+            <emphasis>somePassword</emphasis>
+            "):
+        </para>
 
         <programlisting language="txt"><![CDATA[
 someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8
@@ -52,31 +77,36 @@ someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8
 
         <title>Detalles Específicos</title>
 
-       <para>El adaptador de autenticación "Digest",
-                <classname>Zend_Auth_Adapter_Digest</classname>, requiere varios
+        <para>
+            El adaptador de autenticación "Digest",
+            <classname>Zend_Auth_Adapter_Digest</classname>
+            , requiere varios
             parámetros de entrada:
-       </para>
-
-            <itemizedlist>
-                <listitem>
-                   <para>filename - Nombre del archivo contra el que se
-                        realiza la autenticación de las consultas</para>
-                </listitem>
-                <listitem>
-                   <para>realm - Domino de la autenticación "Digest"</para>
-                </listitem>
-                <listitem>
-                   <para>username - Usuario de la autenticación "Digest"
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>filename - Nombre del archivo contra el que se
+                    realiza la autenticación de las consultas</para>
+            </listitem>
+            <listitem>
+                <para>realm - Domino de la autenticación "Digest"</para>
+            </listitem>
+            <listitem>
+                <para>username - Usuario de la autenticación "Digest"
                    </para>
-                </listitem>
-                <listitem>
-                   <para>password - Contraseña para el usuario del dominio
+            </listitem>
+            <listitem>
+                <para>password - Contraseña para el usuario del dominio
                    </para>
-                </listitem>
-            </itemizedlist>
-       <para>
-        Estos parámetros deben ser establecidos antes de
-            llamar a <methodname>authenticate()</methodname>.</para>
+            </listitem>
+        </itemizedlist>
+        <para>
+            Estos parámetros deben ser establecidos antes de
+            llamar a
+            <methodname>authenticate()</methodname>
+            .
+        </para>
 
     </sect2>
 
@@ -84,13 +114,21 @@ someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8
 
         <title>Identidad</title>
 
-       <para>El adaptador de autenticación "Digest" devuelve un objeto
-                <classname>Zend_Auth_Result</classname>, que ha sido rellenado
+        <para>
+            El adaptador de autenticación "Digest" devuelve un objeto
+            <classname>Zend_Auth_Result</classname>
+            , que ha sido rellenado
             con la identidad como un array que tenga claves
-            <emphasis>realm</emphasis> y
-            <emphasis>username</emphasis>. Los respectivos valores del
-            array asociados con esas claves correspondes con los valores fijados
-            andes de llamar a <methodname>authenticate()</methodname>.</para>
+            <emphasis>realm</emphasis>
+            y
+            <emphasis>username</emphasis>
+            . Los respectivos valores del
+            array asociados con esas claves correspondes con los
+            valores fijados
+            andes de llamar a
+            <methodname>authenticate()</methodname>
+            .
+        </para>
 
         <programlisting language="php"><![CDATA[
 $adapter = new Zend_Auth_Adapter_Digest($filename,

+ 196 - 104
documentation/manual/es/module_specs/Zend_Auth_Adapter_Http.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 19483 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 19483 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.auth.adapter.http">
 
     <title>Adaptador de Autenticación HTTP</title>
@@ -9,57 +9,72 @@
 
         <title>Introducción</title>
 
-       <para>
-            <classname>Zend_Auth_Adapter_Http</classname> proporciona una
-            implementación compatible con <ulink
-                url="http://tools.ietf.org/html/rfc2617">RFC-2617</ulink>,
-                <ulink
-                url="http://en.wikipedia.org/wiki/Basic_authentication_scheme"
-                >Basic</ulink> y <ulink
-                url="http://en.wikipedia.org/wiki/Digest_access_authentication"
-                >Digest</ulink> Autenticación <acronym>HTTP</acronym>. La
+        <para>
+            <classname>Zend_Auth_Adapter_Http</classname>
+            proporciona una
+            implementación compatible con
+            <ulink url="http://tools.ietf.org/html/rfc2617">RFC-2617</ulink>
+            ,
+            <ulink url="http://en.wikipedia.org/wiki/Basic_authentication_scheme">Basic</ulink>
+            y
+            <ulink url="http://en.wikipedia.org/wiki/Digest_access_authentication">Digest</ulink>
+            Autenticación
+            <acronym>HTTP</acronym>
+            . La
             autenticación "Digest" es un método de autenticación
-                <acronym>HTTP</acronym> que mejora la autenticación básica
-            proporcionando una manera de autenticar sin tener que transmitir la
-            contraseña de manera clara en un texto a través de la red.</para>
-
-       <para>
+            <acronym>HTTP</acronym>
+            que mejora la autenticación básica
+            proporcionando una manera de autenticar sin tener que
+            transmitir la
+            contraseña de manera clara en un texto a través de la red.
+        </para>
+
+        <para>
             <emphasis role="strong">Características Principales:</emphasis>
-       </para>
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>Soporta tanto Autenticación "Digest" como Básica.</para>
+                <para>Soporta tanto Autenticación "Digest" como Básica.</para>
             </listitem>
             <listitem>
-               <para>Establece retos en todos los proyectos soportados, por lo
-                    que el cliente puede responder con cualquier proyecto que
+                <para>Establece retos en todos los proyectos soportados, por lo
+                    que el cliente puede
+                    responder con cualquier proyecto que
                     soporte.</para>
             </listitem>
             <listitem>
-               <para>Soporta autenticación proxy.</para>
+                <para>Soporta autenticación proxy.</para>
             </listitem>
             <listitem>
-               <para>Incluye soporte para la autenticación contra archivos de
-                    texto y proporciona una interfaz para autenticar contra
+                <para>Incluye soporte para la autenticación contra archivos de
+                    texto y proporciona
+                    una interfaz para autenticar contra
                     otras fuentes, tales como bases de datos.</para>
             </listitem>
         </itemizedlist>
 
-       <para>Hay algunas características notables del
-                <acronym>RFC-2617</acronym> no implementadas todavía:</para>
+        <para>
+            Hay algunas características notables del
+            <acronym>RFC-2617</acronym>
+            no implementadas todavía:
+        </para>
         <itemizedlist>
             <listitem>
-               <para>Seguimiento "nonce", que permitiría un gran apoyo, y un
-                    aumento de la protección de repetidos ataques.</para>
+                <para>Seguimiento "nonce", que permitiría un gran apoyo, y un
+                    aumento de la
+                    protección de repetidos ataques.</para>
             </listitem>
             <listitem>
-               <para>Autenticación con comprobación de integridad, o
+                <para>Autenticación con comprobación de integridad, o
                     "auth-int".</para>
             </listitem>
             <listitem>
-               <para>Cabecera de información de la autenticación
-                        <acronym>HTTP</acronym>.</para>
+                <para>
+                    Cabecera de información de la autenticación
+                    <acronym>HTTP</acronym>
+                    .
+                </para>
             </listitem>
         </itemizedlist>
 
@@ -69,15 +84,25 @@
 
         <title>Descripción del diseño</title>
 
-       <para>Este adaptador consiste en dos sub-componentes, la propia clase
-            autenticación <acronym>HTTP</acronym>, y el llamado "Resolvers". La
-            clase autenticación <acronym>HTTP</acronym> encapsula la lógica para
-            llevar a cabo tanto la autenticación basica y la "Digest". Utiliza
+        <para>
+            Este adaptador consiste en dos sub-componentes, la propia clase
+            autenticación
+            <acronym>HTTP</acronym>
+            , y el llamado "Resolvers". La
+            clase autenticación
+            <acronym>HTTP</acronym>
+            encapsula la lógica para
+            llevar a cabo tanto la autenticación basica y la "Digest".
+            Utiliza
             un Resolver para buscar la identidad de un cliente en los datos
-            almacenados (por defecto, archivos de texto), y recuperar las
-            credenciales de los datos almacenados. Las credenciales del
+            almacenados (por
+            defecto, archivos de texto), y recuperar las
+            credenciales de los datos almacenados. Las
+            credenciales del
             "Resolved" se comparan con los valores presentados por el cliente
-            para determinar si la autenticación es satisfactoria.</para>
+            para
+            determinar si la autenticación es satisfactoria.
+        </para>
 
     </sect2>
 
@@ -85,9 +110,14 @@
 
         <title>Opciones de Configuración</title>
 
-       <para>La clase <classname>Zend_Auth_Adapter_Http</classname> requiere
+        <para>
+            La clase
+            <classname>Zend_Auth_Adapter_Http</classname>
+            requiere
             un array configurado que pasará a su constructor. Hay varias
-            opciones de configuración disponibles, y algunas son obligatorias:</para>
+            opciones de
+            configuración disponibles, y algunas son obligatorias:
+        </para>
         <table id="zend.auth.adapter.configuration_options.table">
             <title>Opciones de Configuración</title>
             <tgroup cols="3">
@@ -106,11 +136,16 @@
                             </emphasis>
                         </entry>
                         <entry>Si</entry>
-                        <entry> Determina que tareas de autenticación acepta el
-                            adaptador del cliente. Debe ser una lista separada
+                        <entry>
+                            Determina que tareas de autenticación acepta el
+                            adaptador del cliente.
+                            Debe ser una lista separada
                             por espacios que contengo
-                                <emphasis>'basic'</emphasis> y/o
-                                <emphasis>'digest'</emphasis>. </entry>
+                            <emphasis>'basic'</emphasis>
+                            y/o
+                            <emphasis>'digest'</emphasis>
+                            .
+                        </entry>
                     </row>
                     <row>
                         <entry>
@@ -120,7 +155,8 @@
                         </entry>
                         <entry>Si</entry>
                         <entry> Establece el realm de autenticación; usernames
-                            debe ser único dentro de un determinado realm.
+                            debe ser único dentro
+                            de un determinado realm.
                         </entry>
                     </row>
                     <row>
@@ -129,14 +165,23 @@
                                 <property>digest_domains</property>
                             </emphasis>
                         </entry>
-                        <entry>Si, cuando
-                                <methodname>accept_schemes</methodname>
-                            contiene <emphasis>'digest'</emphasis></entry>
-                        <entry> Lista de <acronym>URI</acronym>s separadas por
+                        <entry>
+                            Si, cuando
+                            <methodname>accept_schemes</methodname>
+                            contiene
+                            <emphasis>'digest'</emphasis>
+                        </entry>
+                        <entry>
+                            Lista de
+                            <acronym>URI</acronym>
+                            s separadas por
                             espacios para las cuales la misma información de
                             autenticación es válida. No es necesario que todas
-                            las <acronym>URI</acronym>s apunten al mismo
-                            oservidor. </entry>
+                            las
+                            <acronym>URI</acronym>
+                            s apunten al mismo
+                            oservidor.
+                        </entry>
                     </row>
                     <row>
                         <entry>
@@ -144,11 +189,15 @@
                                 <property>nonce_timeout</property>
                             </emphasis>
                         </entry>
-                        <entry>Si, cuando
-                                <methodname>accept_schemes</methodname>
-                            contiene <emphasis>'digest'</emphasis></entry>
+                        <entry>
+                            Si, cuando
+                            <methodname>accept_schemes</methodname>
+                            contiene
+                            <emphasis>'digest'</emphasis>
+                        </entry>
                         <entry> Establece el número de segundos para los cuales
-                            el "nonce" es válido. Ver notas de abajo. </entry>
+                            el "nonce" es válido.
+                            Ver notas de abajo. </entry>
                     </row>
                     <row>
                         <entry>
@@ -158,7 +207,8 @@
                         </entry>
                         <entry>No</entry>
                         <entry> Deshabilitado por defecto. Permite llevar a cabo
-                            la autenticación del Proxy, en lugar de la
+                            la autenticación del
+                            Proxy, en lugar de la
                             autenticación normal del servidor. </entry>
                     </row>
                 </tbody>
@@ -166,14 +216,19 @@
         </table>
 
         <note>
-           <para>La implementación actual del
-                    <property>nonce_timeout</property> tiene algunos efectos
+            <para>
+                La implementación actual del
+                <property>nonce_timeout</property>
+                tiene algunos efectos
                 colaterales interesantes. Este ajuste es supuesto para
                 determinar la vida util válida para un determinado "nonce", o de
-                manera efectiva el tiempo que una información de autenticación
-                del cliente es aceptada. Actualmente, si se establece en 3600
+                manera efectiva el
+                tiempo que una información de autenticación
+                del cliente es aceptada. Actualmente, si
+                se establece en 3600
                 (por ejemplo), hará que el adaptador indique al cliente las
-                nuevas credenciales cada hora, a la hora en punto.</para>
+                nuevas credenciales cada hora, a la hora en punto.
+            </para>
         </note>
 
     </sect2>
@@ -182,57 +237,83 @@
 
         <title>Resolvers</title>
 
-       <para>El trabajo del "Resolver" es tener un username y un realm, y
-            devolver algún valor de tipo credencial. La autenticación básica
-            espera recibir la versión codificada en Base64 de la contraseña del
+        <para>
+            El trabajo del "Resolver" es tener un username y un realm, y
+            devolver algún valor de tipo
+            credencial. La autenticación básica
+            espera recibir la versión codificada en Base64 de la
+            contraseña del
             usuario. La autenticación "Digest" espera recibir un hash del
-            username del usuario, un realm, y su contraseña (separados por
-            coma). Actualmente, sólo se admite el algoritmo de hash
-                <acronym>MD5</acronym>.</para>
-
-       <para>
-            <classname>Zend_Auth_Adapter_Http</classname> se basa en la
+            username del
+            usuario, un realm, y su contraseña (separados por
+            coma). Actualmente, sólo se admite el
+            algoritmo de hash
+            <acronym>MD5</acronym>
+            .
+        </para>
+
+        <para>
+            <classname>Zend_Auth_Adapter_Http</classname>
+            se basa en la
             implementación de objetos
-                <classname>Zend_Auth_Adapter_Http_Resolver_Interface</classname>.
+            <classname>Zend_Auth_Adapter_Http_Resolver_Interface</classname>
+            .
             Un archivo de texto de la clase "Resolve" se incluye con este
-            adaptador, pero cualquier otro tipo de "resolver" puede ser creado
-            simplemente implementando la interfaz del "resolver".</para>
+            adaptador, pero cualquier
+            otro tipo de "resolver" puede ser creado
+            simplemente implementando la interfaz del
+            "resolver".
+        </para>
 
         <sect3 id="zend.auth.adapter.http.resolvers.file">
             <title>Archivo Resolver</title>
-           <para>El archivo "resolver" es una clase muy simple. Tiene una
-                única propiedad que especifique un nombre de archivo, que
-                también puede ser pasado al constructor. Su método
-                    <methodname>resolve()</methodname> recorre el archivo de
+            <para>
+                El archivo "resolver" es una clase muy simple. Tiene una
+                única propiedad que
+                especifique un nombre de archivo, que
+                también puede ser pasado al constructor. Su
+                método
+                <methodname>resolve()</methodname>
+                recorre el archivo de
                 texto, buscando una linea con el correspondiente username y
                 realm. El formato del archivo de texto es similar a los archivos
-                htpasswd de Apache:</para>
+                htpasswd de Apache:
+            </para>
             <programlisting><![CDATA[
 <username>:<realm>:<credentials>\n
 ]]></programlisting>
-           <para>Cada linea consta de tres campos -username, realm, y
-                credenciales - cada uno separados por dos puntos. El campo
-                credenciales es opaco al archivo "resolver"; simplemente
+            <para>
+                Cada linea consta de tres campos -username, realm, y
+                credenciales - cada uno
+                separados por dos puntos. El campo
+                credenciales es opaco al archivo "resolver";
+                simplemente
                 devuelve el valor tal como és al llamador. Por lo tanto, este
-                formato de archivo sirve tanto de autenticación básica como
-                "Digest". En la autenticación básica, el campo credenciales debe
-                ser escrito en texto claro. En la autenticación "Digest",
-                debería ser en hash <acronym>MD5</acronym> descrito
-                anteriormente.</para>
-
-           <para>Hay dos formas igualmente fácil de crear un archivo de
+                formato de
+                archivo sirve tanto de autenticación básica como
+                "Digest". En la autenticación
+                básica, el campo credenciales debe
+                ser escrito en texto claro. En la autenticación
+                "Digest",
+                debería ser en hash
+                <acronym>MD5</acronym>
+                descrito
+                anteriormente.
+            </para>
+
+            <para>Hay dos formas igualmente fácil de crear un archivo de
                 "resolver":</para>
             <programlisting language="php"><![CDATA[
 $path     = 'files/passwd.txt';
 $resolver = new Zend_Auth_Adapter_Http_Resolver_File($path);
 ]]></programlisting>
-           <para>o</para>
+            <para>o</para>
             <programlisting language="php"><![CDATA[
 $path     = 'files/passwd.txt';
 $resolver = new Zend_Auth_Adapter_Http_Resolver_File();
 $resolver->setFile($path);
 ]]></programlisting>
-           <para>Si la ruta está vacía o no se puede leer, se lanza una
+            <para>Si la ruta está vacía o no se puede leer, se lanza una
                 excepción.</para>
         </sect3>
 
@@ -242,7 +323,7 @@ $resolver->setFile($path);
 
         <title>Uso Básico</title>
 
-       <para>En primer lugar, establecemos un array con los valores de
+        <para>En primer lugar, establecemos un array con los valores de
             configuración obligatorios:</para>
         <programlisting language="php"><![CDATA[
 $config = array(
@@ -252,22 +333,32 @@ $config = array(
     'nonce_timeout'  => 3600,
 );
 ]]></programlisting>
-       <para>Este array hará que el adaptador acepte la autenticación básica o
-            "Digest", y requerirá un acceso autenticado a todas las áreas del
-            sitio en <filename>/members_only</filename> y
-                <filename>/my_account</filename>. El valor realm es normalmente
-            mostrado por el navegador en el cuadro de dialogo contraseña. El
-                <property>nonce_timeout</property>, por supuesto, se comporta
-            como se ha descrito anteriormente.</para>
-
-       <para>A continuación, creamos el objeto Zend_Auth_Adapter_Http:</para>
+        <para>
+            Este array hará que el adaptador acepte la autenticación básica o
+            "Digest", y requerirá
+            un acceso autenticado a todas las áreas del
+            sitio en
+            <filename>/members_only</filename>
+            y
+            <filename>/my_account</filename>
+            . El valor realm es normalmente
+            mostrado por el navegador en el cuadro de dialogo
+            contraseña. El
+            <property>nonce_timeout</property>
+            , por supuesto, se comporta
+            como se ha descrito anteriormente.
+        </para>
+
+        <para>A continuación, creamos el objeto Zend_Auth_Adapter_Http:</para>
         <programlisting language="php"><![CDATA[
 $adapter = new Zend_Auth_Adapter_Http($config);
 ]]></programlisting>
 
-       <para>Ya que estamos soportando tanto la autenticación básica como la
-            "Digest", necesitamos dos objetos diferentes resolver. Tenga en
-            cuenta que esto podría ser facilmente dos clases diferentes:</para>
+        <para>Ya que estamos soportando tanto la autenticación básica como la
+            "Digest", necesitamos
+            dos objetos diferentes resolver. Tenga en
+            cuenta que esto podría ser facilmente dos
+            clases diferentes:</para>
         <programlisting language="php"><![CDATA[
 $basicResolver = new Zend_Auth_Adapter_Http_Resolver_File();
 $basicResolver->setFile('files/basicPasswd.txt');
@@ -279,8 +370,9 @@ $adapter->setBasicResolver($basicResolver);
 $adapter->setDigestResolver($digestResolver);
 ]]></programlisting>
 
-       <para>Por último, realizamos la autenticación. El adaptador necesita
-            una referencia a ambos objetos solicitud y respuesta para hacer su
+        <para>Por último, realizamos la autenticación. El adaptador necesita
+            una referencia a ambos
+            objetos solicitud y respuesta para hacer su
             trabajo:</para>
         <programlisting language="php"><![CDATA[
 assert($request instanceof Zend_Controller_Request_Http);

+ 121 - 55
documentation/manual/es/module_specs/Zend_Auth_Adapter_OpenId.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15960 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15960 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.auth.adapter.openid">
 
     <title>Autenticación con Open ID </title>
@@ -8,74 +8,131 @@
     <sect2 id="zend.auth.adapter.openid.introduction">
 
         <title>Introducción</title>
-        <para>El adaptador <classname>Zend_Auth_Adapter_OpenId</classname> se
+        <para>
+            El adaptador
+            <classname>Zend_Auth_Adapter_OpenId</classname>
+            se
             puede usar para autentificar usuarios usando un servidor remoto de
-            OpenID. Este método de autenticación supone que el usuario sólo
-            envia su OpenID a la aplicacion web, luego se redirecciona (envia) a
-            su proveedor de OpenID para su verificacion mediante su contraseña o
+            OpenID. Este método
+            de autenticación supone que el usuario sólo
+            envia su OpenID a la aplicacion web, luego se
+            redirecciona (envia) a
+            su proveedor de OpenID para su verificacion mediante su contraseña
+            o
             algún otro metodo. Esta contraseña no se le proporciona a la
-            aplicacion web.</para>
-        <para>El OpenID solo es un <acronym>URI</acronym> que apunta a un sitio
+            aplicacion web.
+        </para>
+        <para>
+            El OpenID solo es un
+            <acronym>URI</acronym>
+            que apunta a un sitio
             con información del usuari, así como información especiales que
             describe que servidor usar y que información (identidad) se debe
-            enviar. Puedes leer más información acerca de OpenID en el <ulink
-                url="http://www.openid.net/">sitio oficial de
-            OpenId</ulink>.</para>
-        <para>La clase <classname>Zend_Auth_Adapter_OpenId</classname>encapsula
-            al componente <classname>Zend_OpenId_Consumer</classname>, el cual
-            implementa el protocolo de autentificación OpenID.</para>
+            enviar. Puedes leer más
+            información acerca de OpenID en el
+            <ulink url="http://www.openid.net/">sitio oficial de
+                OpenId</ulink>
+            .
+        </para>
+        <para>
+            La clase
+            <classname>Zend_Auth_Adapter_OpenId</classname>
+            encapsula
+            al componente
+            <classname>Zend_OpenId_Consumer</classname>
+            , el cual
+            implementa el protocolo de autentificación OpenID.
+        </para>
 
         <note>
             <para>
-                <classname>Zend_OpenId</classname> aprovecha las <ulink
-                    url="http://php.net/gmp">GMP extension</ulink>, cuando estén
+                <classname>Zend_OpenId</classname>
+                aprovecha las
+                <ulink url="http://php.net/gmp">GMP extension</ulink>
+                , cuando estén
                 disponibles. Considere la posibilidad de usar
-                    <acronym>GMP</acronym> extension para un mejor rendimiento
+                <acronym>GMP</acronym>
+                extension para un mejor rendimiento
                 cuando use
-                <classname>Zend_Auth_Adapter_OpenId</classname>.</para>
+                <classname>Zend_Auth_Adapter_OpenId</classname>
+                .
+            </para>
         </note>
     </sect2>
 
     <sect2 id="zend.auth.adapter.openid.specifics">
         <title>Características</title>
-        <para>Como es el caso de todos los adaptadores
-                <classname>Zend_Auth</classname>, la clase
-                <classname>Zend_Auth_Adapter_OpenId</classname> implementa
-                <classname>Zend_Auth_Adapter_Interface</classname>, el cual
-            define un metodo <methodname>authenticate()</methodname>. Este
+        <para>
+            Como es el caso de todos los adaptadores
+            <classname>Zend_Auth</classname>
+            , la clase
+            <classname>Zend_Auth_Adapter_OpenId</classname>
+            implementa
+            <classname>Zend_Auth_Adapter_Interface</classname>
+            , el cual
+            define un metodo
+            <methodname>authenticate()</methodname>
+            . Este
             método realiza la autenticación en sí, pero el objeto debe estar
-            configurado antes de ser llamado. La configuracion del adaptador
-            requiere la creacion de un OpenID y otras opciones de
-                <classname>Zend_OpenId</classname> específicos.</para>
-        <para>Sin embargo, a diferencia de otros adaptadores de
-                <classname>Zend_Auth</classname>,
-                <classname>Zend_Auth_Adapter_OpenId</classname> realiza la
+            configurado antes
+            de ser llamado. La configuracion del adaptador
+            requiere la creacion de un OpenID y otras
+            opciones de
+            <classname>Zend_OpenId</classname>
+            específicos.
+        </para>
+        <para>
+            Sin embargo, a diferencia de otros adaptadores de
+            <classname>Zend_Auth</classname>
+            ,
+            <classname>Zend_Auth_Adapter_OpenId</classname>
+            realiza la
             autenticación en un servidor externo en dos peticiones
-                <acronym>HTTP</acronym> separadas. Así que el método
-                <methodname>Zend_Auth_Adapter_OpenId::authenticate()</methodname>
+            <acronym>HTTP</acronym>
+            separadas. Así que el método
+            <methodname>Zend_Auth_Adapter_OpenId::authenticate()</methodname>
             debe ser llamado dos veces. En la primera invocación del método no
-            regresará nada, sino que redirige al usuario a su servidor de
-            OpenID. Luego, después de que el usuario se autentica en el servidor
-            remoto, este te regresará desde donde lo invocaste (a tu código) y
+            regresará nada, sino
+            que redirige al usuario a su servidor de
+            OpenID. Luego, después de que el usuario se
+            autentica en el servidor
+            remoto, este te regresará desde donde lo invocaste (a tu código)
+            y
             deberás invocar a
-                <methodname>Zend_Auth_Adapter_OpenId::authenticate()</methodname>
+            <methodname>Zend_Auth_Adapter_OpenId::authenticate()</methodname>
             de nuevo para verificar la firma que acompaña a la petición de
-            re-direccionamiento del servidor para completar el proceso de
-            autenticación . En esta segunda invocación, el método devolverá el
-            objeto <classname>Zend_Auth_Result</classname> como se
-            esperaba.</para>
+            re-direccionamiento del
+            servidor para completar el proceso de
+            autenticación . En esta segunda invocación, el
+            método devolverá el
+            objeto
+            <classname>Zend_Auth_Result</classname>
+            como se
+            esperaba.
+        </para>
 
-        <para>El siguiente ejemplo muestra el uso de
-                <classname>Zend_Auth_Adapter_OpenId</classname>. Como se
+        <para>
+            El siguiente ejemplo muestra el uso de
+            <classname>Zend_Auth_Adapter_OpenId</classname>
+            . Como se
             mencionó anteriormente,
-                <methodname>Zend_Auth_Adapter_OpenId::autenticar()</methodname>
+            <methodname>Zend_Auth_Adapter_OpenId::autenticar()</methodname>
             debe ser llamada dos veces. La primera vez es cuando el usuario
-            envía el formulario <acronym>HTML</acronym> con el
-                <varname>$_POST['openid_action']</varname> en <emphasis>"Login"
-            </emphasis>, y la segunda es posterior a la redirección
-                <acronym>HTTP</acronym> del servidor OpenID con
-                <varname>$_GET['openid_mode']</varname> o
-                <varname>$_POST['openid_mode'] </varname>.</para>
+            envía el formulario
+            <acronym>HTML</acronym>
+            con el
+            <varname>$_POST['openid_action']</varname>
+            en
+            <emphasis>"Login"
+            </emphasis>
+            , y la segunda es posterior a la redirección
+            <acronym>HTTP</acronym>
+            del servidor OpenID con
+            <varname>$_GET['openid_mode']</varname>
+            o
+            <varname>$_POST['openid_mode'] </varname>
+            .
+        </para>
 
         <programlisting language="php"><![CDATA[
 <?php
@@ -119,15 +176,24 @@ if ((isset($_POST['openid_action']) &&
 </fieldset></form></body></html>
 
 ]]></programlisting>
-        <para>Puede personalizar el proceso de autenticación OpenID de varias
-            formas. Por ejemplo, recibir la redirección del servidor de OpenID
-            en una página aparte, especificando la "raíz" del sitio web y
-            utilizar un <classname>Zend_OpenId_Consumer_Storage</classname> o un
-                <classname>Zend_Controller_Response</classname>. Usted también
+        <para>
+            Puede personalizar el proceso de autenticación OpenID de varias
+            formas. Por ejemplo,
+            recibir la redirección del servidor de OpenID
+            en una página aparte, especificando la
+            "raíz" del sitio web y
+            utilizar un
+            <classname>Zend_OpenId_Consumer_Storage</classname>
+            o un
+            <classname>Zend_Controller_Response</classname>
+            . Usted también
             puede utilizar el simple registro de extensiones para recuperar
             información sobre el usuario desde el servidor de OpenID. Todas
-            estas posibilidades se describen con más detalle en el capítulo
-                <classname>Zend_OpenId_Consume</classname>.</para>
+            estas posibilidades se
+            describen con más detalle en el capítulo
+            <classname>Zend_OpenId_Consume</classname>
+            .
+        </para>
 
     </sect2>
 </sect1>

+ 66 - 44
documentation/manual/es/module_specs/Zend_Cache-Introduction.xml

@@ -1,15 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15962 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15962 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.cache.introduction">
     <title>Introducción</title>
-   <para>
+    <para>
         <classname>Zend_Cache</classname>
         provee una forma genérica para cualquier caché de datos.
-   </para>
-   <para>
+    </para>
+    <para>
         El almacenamiento en caché en Zend Framework se opera por
-        interfaces, mientras que los registros de caché son almacenados
+        interfaces, mientras que los
+        registros de caché son almacenados
         a través de adapatadores del backend (
         <emphasis>Archivo</emphasis>
         ,
@@ -17,14 +18,18 @@
         ,
         <emphasis>Memcache</emphasis>
         ...) mediante un sistema flexible de documentos de identidad y
-        etiquetas. Utilizando éstas, es fácil en el futuro eliminar
+        etiquetas. Utilizando éstas,
+        es fácil en el futuro eliminar
         determinados tipos de registro.(Ejemplo: "eliminar todos los
         registros caché de determinada etiqueta").
-   </para>
-   <para>
-        El módulo principal (<classname>Zend_Cache_Core</classname>)
+    </para>
+    <para>
+        El módulo principal (
+        <classname>Zend_Cache_Core</classname>
+        )
         es genérico, flexible y configurable. Aun para sus necesidades
-        específicas existen frontends de caché que extienden
+        específicas existen frontends
+        de caché que extienden
         <classname>Zend_Cache_Core</classname>
         a conveniencia:
         <emphasis>Output</emphasis>
@@ -36,13 +41,13 @@
         <emphasis>Class</emphasis>
         .
 
-   </para>
+    </para>
     <example id="zend.cache.introduction.example-1">
         <title>
             Obtener un frontend con
             Zend_Cache::factory()
         </title>
-       <para>
+        <para>
             <methodname>Zend_Cache::factory()</methodname>
             ejemplifica objetos correctos y los une. En este primer
             ejemplo, usaremos el frontend
@@ -50,9 +55,9 @@
             junto con el backend
             <emphasis>File</emphasis>
             .
-       </para>
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $frontendOptions = array(
    'lifetime' => 7200, // tiempo de vida de caché de 2 horas
    'automatic_serialization' => true
@@ -74,28 +79,32 @@ $cache = Zend_Cache::factory('Core',
         <title>
             Frontends y Backends Compuestos de Múltiples Palabras
         </title>
-       <para>
+        <para>
             Algunos frontends y backends se nombran usando varias
-            palabras, tal como 'ZenPlatform'. Al fabricarlas las
+            palabras, tal como 'ZenPlatform'.
+            Al fabricarlas las
             especificamos, las separamos usando un separador de
-            palabras, como un espacio (' '), guión ('-'), o punto ('.').
+            palabras, como un
+            espacio (' '), guión ('-'), o punto ('.').
        </para>
     </note>
 
     <example id="zend.cache.introduction.example-2">
         <title>Almacenando en caché un resultado de consulta a una base de datos</title>
 
-       <para>
+        <para>
             Ahora que tenemos un frontend, podemos almacenar en caché
-            cualquier tipo de dato (hemos activado la serialización). Por
+            cualquier tipo de dato (hemos
+            activado la serialización). Por
             ejemplo, podemos almacenar en caché un resultado de una
             consulta de base de datos muy costosa. Después de ser
-            almacenada en caché, no es necesario ni conectar la base
+            almacenada en caché, no es
+            necesario ni conectar la base
             de datos; los registros se obtienen del caché de forma no
             serializada.
        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 // $cache initializada en el ejemplo anterior
 
 // Verificar si la cahce existe:
@@ -126,26 +135,30 @@ print_r($result);
             salida
             Zend_Cache
         </title>
-       <para>
+        <para>
             ‘Resaltamos’ las secciones en las que deseamos almacenar en
-            caché la salida, mediante la adición de algunas condiciones lógicas,
+            caché la salida, mediante la
+            adición de algunas condiciones lógicas,
             encapsulamos la sección dentro de los métodos
             <methodname>start()</methodname>
             y
             <methodname>end()</methodname>
             (esto se parece al primer ejemplo y es la estrategia
-            fundamental para el almacenamiento en caché).
-       </para>
-       <para>
+            fundamental para el almacenamiento
+            en caché).
+        </para>
+        <para>
             Dentro, los datos de salida, como siempre – todas las salidas
-            serán almacenadas en caché cuando se ordene la ejecución del
+            serán almacenadas en caché
+            cuando se ordene la ejecución del
             método
             <methodname>end()</methodname>
             . En la siguiente ejecución, toda la sección se saltará a
-            favor de la búsqueda de datos del caché (tanto tiempo como
+            favor de la búsqueda de datos
+            del caché (tanto tiempo como
             el registro del caché sea válido).
-       </para>
-         <programlisting language="php"><![CDATA[
+        </para>
+        <programlisting language="php"><![CDATA[
 $frontendOptions = array(
    'lifetime' => 30,                   // tiempo de vida de caché de 30 segundos
    'automatic_serialization' => false  // éste es el valor por defecto
@@ -170,36 +183,45 @@ if(!$cache->start('mypage')) {
 
 echo 'Esto no estará en caché nunca ('.time().').';
 ]]></programlisting>
-       <para>
+        <para>
             Note que delineamos el resultado de
             <methodname>time()</methodname>
             dos veces; esto es algo dinámico para los propósitos de la
-            demostración. Trate de ejecutarlo y entonces regenérelo
-            muchas veces; notará que el primer número no cambia mientras
+            demostración. Trate de
+            ejecutarlo y entonces regenérelo
+            muchas veces; notará que el primer número no cambia
+            mientras
             que el segundo cambia a medida que pasa el tiempo. Esto
-            es porque el primer número esta delineado en la sección
-            caché y esta guardado en medio de otras salidas. Después de
+            es porque el primer
+            número esta delineado en la sección
+            caché y esta guardado en medio de otras salidas.
+            Después de
             medio minuto (habremos establecido el tiempo de vida de 30
-            segundos) los números deben acoplarse nuevamente porque el
-            registro caché ha expirado -- sólo para ser almacenado en
+            segundos) los
+            números deben acoplarse nuevamente porque el
+            registro caché ha expirado -- sólo para ser
+            almacenado en
             caché nuevamente. Deberá probarlo en su visualizador o
             consola.
-       </para>
+        </para>
     </example>
     <note>
-       <para>
-            Cuando usamos <classname>Zend_Cache</classname>, ponemos atención a la importación
+        <para>
+            Cuando usamos
+            <classname>Zend_Cache</classname>
+            , ponemos atención a la importación
             del identificador caché (pasado a
             <methodname>save()</methodname>
             y
             <methodname>start()</methodname>
             ). Éste deberá ser único para cada recurso que se almacene
-            en caché, de otra manera los registros almacenados en caché
+            en caché, de otra manera los
+            registros almacenados en caché
             que no se vinculan podrían borrarse unos a otros, o peor
             aún, mostrarse uno en lugar del otro.
-       </para>
+        </para>
     </note>
 </sect1>
-<!--
+    <!--
     vim:se ts=4 sw=4 et:
 -->

+ 22 - 15
documentation/manual/es/module_specs/Zend_Captcha.xml

@@ -1,31 +1,38 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15681 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15681 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.captcha.introduction">
     <title>Introducción</title>
 
-   <para>
+    <para>
         <ulink url="http://en.wikipedia.org/wiki/Captcha">
             CAPTCHA
         </ulink>
         es el acrónimo de "Completely Automated Public Turing test to
-        tell Computers and Humans Apart" (Prueba de Turing pública y
-        automática para diferenciar a máquinas y humanos). Es usado como un
+        tell Computers and Humans
+        Apart" (Prueba de Turing pública y
+        automática para diferenciar a máquinas y humanos). Es
+        usado como un
         desafío-respuesta para asegurar que la información individual suministrada
-    viene de un humano y no de un proceso automatizado. Típicamente,
-        un captcha es usado con envío de formularios donde no es necesario que el
-    usuario se haya autenticado, pero se desea prevenir el envío de spam.
-   </para>
+        viene de un humano y no de un proceso automatizado. Típicamente,
+        un captcha es usado con
+        envío de formularios donde no es necesario que el
+        usuario se haya autenticado, pero se desea prevenir el envío de spam.
+    </para>
 
-   <para>
+    <para>
         Los Captchas pueden presentarse en multitud de formas, incluyendo
-        preguntas lógicas, caracteres trastocados o presentar múltiples imágenes y preguntar
-        cómo se relacionan. <classname>Zend_Form</classname> intenta proveer una amalgama de backends
-        que pueden ser utilizados por separado o en conjunción con
+        preguntas lógicas,
+        caracteres trastocados o presentar múltiples imágenes y preguntar
+        cómo se relacionan.
+        <classname>Zend_Form</classname>
+        intenta proveer una amalgama de backends
+        que pueden ser utilizados por separado o en
+        conjunción con
         <methodname>Zend_Form</methodname>
         .
-   </para>
+    </para>
 </sect1>
-<!--
+    <!--
     vim:se ts=4 sw=4 et:
 -->

+ 68 - 36
documentation/manual/es/module_specs/Zend_CodeGenerator-Examples.xml

@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15976 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15976 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.codegenerator.examples">
     <title>Ejemplos de Zend_CodeGenerator</title>
 
     <example id="zend.codegenerator.examples.class">
         <title>Generando clases PHP</title>
 
-       <para>El siguiente ejemplo genera una clase vacía con una clase de
+        <para>El siguiente ejemplo genera una clase vacía con una clase de
             nivel DocBlock.</para>
 
         <programlisting language="php"><![CDATA[
@@ -31,7 +31,7 @@ $foo->setName('Foo')
 echo $foo->generate();
 ]]></programlisting>
 
-       <para>El código anterior resultará en lo siguiente:</para>
+        <para>El código anterior resultará en lo siguiente:</para>
 
         <programlisting language="php"><![CDATA[
 /**
@@ -53,8 +53,9 @@ class Foo
     <example id="zend.codegenerator.examples.class-properties">
         <title>Generando clases PHP con propiedades de clase</title>
 
-       <para>Basándonos en el ejemplo anterior, ahora agreguemos propiedades a
-            nuestra clase generada.</para>
+        <para>Basándonos en el ejemplo anterior, ahora agreguemos propiedades a
+            nuestra clase
+            generada.</para>
 
         <programlisting language="php"><![CDATA[
 $foo      = new Zend_CodeGenerator_Php_Class();
@@ -94,7 +95,7 @@ $foo->setName('Foo')
 echo $foo->generate();
 ]]></programlisting>
 
-       <para>Lo anterior resulta en la siguiente definición de clase:</para>
+        <para>Lo anterior resulta en la siguiente definición de clase:</para>
 
         <programlisting language="php"><![CDATA[
 /**
@@ -122,11 +123,15 @@ class Foo
     <example id="zend.codegenerator.examples.class-methods">
         <title>Generando clases PHP con métodos de clase</title>
 
-       <para>
-            <classname>Zend_CodeGenerator_Php_Class</classname> le permite
+        <para>
+            <classname>Zend_CodeGenerator_Php_Class</classname>
+            le permite
             adjuntar métodos con contenido opcional a sus clases. Los métodos
-            pueden adjuntarse tanto como arrys o como instancias concretas de
-                <classname>Zend_CodeGenerator_Php_Method</classname>.</para>
+            pueden
+            adjuntarse tanto como arrys o como instancias concretas de
+            <classname>Zend_CodeGenerator_Php_Method</classname>
+            .
+        </para>
 
         <programlisting language="php"><![CDATA[
 $foo      = new Zend_CodeGenerator_Php_Class();
@@ -202,7 +207,7 @@ $foo->setName('Foo')
 echo $foo->generate();
 ]]></programlisting>
 
-       <para>Lo anterior genera la siguiente salida:</para>
+        <para>Lo anterior genera la siguiente salida:</para>
 
         <programlisting language="php"><![CDATA[
 /**
@@ -251,18 +256,26 @@ class Foo
     <example id="zend.codegenerator.examples.file">
         <title>Generando archivos PHP</title>
 
-       <para>
-            <classname>Zend_CodeGenerator_Php_File</classname> puede ser
+        <para>
+            <classname>Zend_CodeGenerator_Php_File</classname>
+            puede ser
             utilizada para generar el contenido de un archivo
-                <acronym>PHP</acronym>. Usted puede incluir clases, así como el
-            contenido arbitrario del cuerpo. Cuando acople clases, debe adjuntar
+            <acronym>PHP</acronym>
+            . Usted puede incluir clases, así como el
+            contenido arbitrario del cuerpo. Cuando acople
+            clases, debe adjuntar
             instancias concretas de
-                <classname>Zend_CodeGenerator_Php_Class</classname> o un array
-            definiendo la clase.</para>
-
-       <para>En el ejemplo siguiente, asumiremos que ha definido
-                <varname>$foo</varname> como una de las definiciones de clase
-            del ejemplo anterior.</para>
+            <classname>Zend_CodeGenerator_Php_Class</classname>
+            o un array
+            definiendo la clase.
+        </para>
+
+        <para>
+            En el ejemplo siguiente, asumiremos que ha definido
+            <varname>$foo</varname>
+            como una de las definiciones de clase
+            del ejemplo anterior.
+        </para>
 
         <programlisting language="php"><![CDATA[
 $file = new Zend_CodeGenerator_Php_File(array(
@@ -280,16 +293,20 @@ $file = new Zend_CodeGenerator_Php_File(array(
 ));
 ]]></programlisting>
 
-       <para>Llamando a <methodname>generate()</methodname> generará el código
+        <para>
+            Llamando a
+            <methodname>generate()</methodname>
+            generará el código
             -- pero no lo grabará en un archivo. Usted mismo deberá capturar y
-            grabar los contenidos en un archivo. Por ejemplo:</para>
+            grabar los contenidos en un archivo. Por ejemplo:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $code = $file->generate();
 file_put_contents('Foo.php', $code);
 ]]></programlisting>
 
-       <para>Lo anterior generará el siguiente archivo:</para>
+        <para>Lo anterior generará el siguiente archivo:</para>
 
         <programlisting language="php"><![CDATA[
 <?php
@@ -347,11 +364,18 @@ define('APPLICATION_ENV', 'testing');
     <example id="zend.codegenerator.examples.reflection-file">
         <title>Sembrando la generación de código para un archivo PHP via
             reflection</title>
-       <para>You can add <acronym>PHP</acronym> code to an existing
-                <acronym>PHP</acronym> file using the code generator. To do so,
-            you need to first do reflection on it. The static method
-                <methodname>fromReflectedFileName()</methodname> allows you to
-            do this.</para>
+        <para>
+            You can add
+            <acronym>PHP</acronym>
+            code to an existing
+            <acronym>PHP</acronym>
+            file using the code generator. To do so,
+            you need to first do reflection on it. The
+            static method
+            <methodname>fromReflectedFileName()</methodname>
+            allows you to
+            do this.
+        </para>
 
         <programlisting language="php"><![CDATA[
 $generator = Zend_CodeGenerator_Php_File::fromReflectedFileName($path);
@@ -363,10 +387,14 @@ file_put_contents($path, $generator->generate());
 
     <example id="zend.codegenerator.examples.reflection-class">
         <title>Sembrando la generación de clases PHP via reflection</title>
-       <para>You may add code to an existing class. To do so, first use the
-            static <methodname>fromReflection()</methodname> method to map the
+        <para>
+            You may add code to an existing class. To do so, first use the
+            static
+            <methodname>fromReflection()</methodname>
+            method to map the
             class into a generator object. From there, you may add additional
-            properties or methods, and then regenerate the class.</para>
+            properties or methods, and then regenerate the class.
+        </para>
 
         <programlisting language="php"><![CDATA[
 $generator = Zend_CodeGenerator_Php_Class::fromReflection(
@@ -397,9 +425,13 @@ $code = $generator->generate();
 
     <example id="zend.codegenerator.examples.reflection-method">
         <title>Sembrando la generación de métodos PHP via reflection</title>
-       <para>You may add code to an existing class. To do so, first use the
-            static <methodname>fromReflection()</methodname> method to map the
+        <para>
+            You may add code to an existing class. To do so, first use the
+            static
+            <methodname>fromReflection()</methodname>
+            method to map the
             class into a generator object. From there, you may add additional
-            properties or methods, and then regenerate the class.</para>
+            properties or methods, and then regenerate the class.
+        </para>
     </example>
 </sect1>

+ 45 - 29
documentation/manual/es/module_specs/Zend_CodeGenerator-Introduction.xml

@@ -1,31 +1,40 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15998 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15998 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.codegenerator.introduction">
     <title>Introducción</title>
 
-   <para>
-        <classname>Zend_CodeGenerator</classname> ofrece facilidades para
-        generar código arbitrario usando una interfaz orientada a objetos, tanto
+    <para>
+        <classname>Zend_CodeGenerator</classname>
+        ofrece facilidades para
+        generar código arbitrario usando una interfaz orientada a objetos,
+        tanto
         para crear código nuevo como para actualizar código existente.
-        Mientras que la implementación actual se limita a generar código <acronym>PHP</acronym>,
+        Mientras que la
+        implementación actual se limita a generar código
+        <acronym>PHP</acronym>
+        ,
         usted fácilmente puede extender la clase base a fin de proveer
-        generación de código para otras tareas como: JavaScript, archivos de
+        generación de código para
+        otras tareas como: JavaScript, archivos de
         configuración, apache vhost, etc.
-   </para>
+    </para>
 
     <sect2 id="zend.codegenerator.introduction.theory">
         <title>Teoría de Operación</title>
 
-       <para>
+        <para>
             En el caso de uso más típico, simplemente instanciará una clase de
-            generación de código y podrá pasarle tanto la configuración adecuada
-            o configurarla después de la instanciación. Para generar el código,
+            generación de código y
+            podrá pasarle tanto la configuración adecuada
+            o configurarla después de la instanciación.
+            Para generar el código,
             simplemente haga "echo" del objeto o llame a su método
-            <methodname>generate()</methodname>.
-       </para>
+            <methodname>generate()</methodname>
+            .
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 // Pasando la configuración al constructor:
 $file = new Zend_CodeGenerator_Php_File(array(
     'classes' => array(
@@ -60,11 +69,11 @@ echo $file;
 file_put_contents('World.php', $file->generate());
 ]]></programlisting>
 
-       <para>
+        <para>
             Ambos ejemplos anteriores mostrarán el mismo resultado:
        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 <?php
 
 class World
@@ -78,22 +87,29 @@ class World
 }
 ]]></programlisting>
 
-       <para>
+        <para>
             Otro caso de uso común es actualizar el código actual -- por ejemplo,
-            para añadir un método a una clase. En ese caso, primero debe
-            inspeccionar el código actual utilizando reflexión, y entonces
+            para añadir un
+            método a una clase. En ese caso, primero debe
+            inspeccionar el código actual utilizando
+            reflexión, y entonces
             añadir su nuevo método.
-            <classname>Zend_CodeGenerator</classname> lo hace trivialmente simple,
-            aprovechando <link linkend="zend.reflection">Zend_Reflection</link>.
-       </para>
-
-       <para>
+            <classname>Zend_CodeGenerator</classname>
+            lo hace trivialmente simple,
+            aprovechando
+            <link linkend="zend.reflection">Zend_Reflection</link>
+            .
+        </para>
+
+        <para>
             Como ejemplo, digamos que hemos grabado lo anterior al archivo
-            "<filename>World.php</filename>", y que ya está incluído. Podríamos entonces hacer lo
+            "
+            <filename>World.php</filename>
+            ", y que ya está incluído. Podríamos entonces hacer lo
             siguiente:
-       </para>
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $class = Zend_CodeGenerator_Php_Class::fromReflection(
     new Zend_Reflection_Class('World')
 );
@@ -113,11 +129,11 @@ echo $file;
 file_put_contents('World.php', $file->generate());
 ]]></programlisting>
 
-       <para>
+        <para>
             El archivo de la clase resultante se vería así:
        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 <?php
 
 class World

+ 325 - 153
documentation/manual/es/module_specs/Zend_CodeGenerator-Reference.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 18423 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 18423 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.codegenerator.reference">
     <title>Referencias de Zend_CodeGenerator</title>
 
@@ -10,9 +10,13 @@
         <sect3 id="zend.codegenerator.reference.abstracts.abstract">
             <title>Zend_CodeGenerator_Abstract</title>
 
-           <para>La clase base desde la cual heredan todos las clases
-                CodeGenerator proporciona la funcionalidad mínima necesaria. Su
-                    <acronym>API</acronym> es la siguiente:</para>
+            <para>
+                La clase base desde la cual heredan todos las clases
+                CodeGenerator proporciona la
+                funcionalidad mínima necesaria. Su
+                <acronym>API</acronym>
+                es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 abstract class Zend_CodeGenerator_Abstract
@@ -28,41 +32,68 @@ abstract class Zend_CodeGenerator_Abstract
 }
 ]]></programlisting>
 
-           <para>El constructor primero llama a
-                    <methodname>_init()</methodname> (que se deja vacía para
-                implementar extenciones a clases concretas), se pasa entonces el
-                parámetro <varname>$options</varname> a
-                    <methodname>setOptions()</methodname>, y finalmente se llama
-                a <methodname>_prepare()</methodname> (nuevamente, a ser
-                implementada por extensión de una clase)</para>
-
-           <para>Al igual que la mayoría de las clases en Zend Framework,
-                    <methodname>setOptions()</methodname> compara una opción
+            <para>
+                El constructor primero llama a
+                <methodname>_init()</methodname>
+                (que se deja vacía para
+                implementar extenciones a clases concretas), se pasa entonces
+                el
+                parámetro
+                <varname>$options</varname>
+                a
+                <methodname>setOptions()</methodname>
+                , y finalmente se llama
+                a
+                <methodname>_prepare()</methodname>
+                (nuevamente, a ser
+                implementada por extensión de una clase)
+            </para>
+
+            <para>
+                Al igual que la mayoría de las clases en Zend Framework,
+                <methodname>setOptions()</methodname>
+                compara una opción
                 clave con setters existentes en la clase, y pasa el valor de ese
-                método si lo encuentra.</para>
-
-           <para>
-                <methodname>__toString()</methodname> es marcado como final, y
-                proxies a <methodname>generate()</methodname>.</para>
-
-           <para>
-                <methodname>setSourceContent()</methodname> y
-                    <methodname>getSourceContent()</methodname> están destinados
+                método si lo encuentra.
+            </para>
+
+            <para>
+                <methodname>__toString()</methodname>
+                es marcado como final, y
+                proxies a
+                <methodname>generate()</methodname>
+                .
+            </para>
+
+            <para>
+                <methodname>setSourceContent()</methodname>
+                y
+                <methodname>getSourceContent()</methodname>
+                están destinados
                 ya sea para fijar el valor por defecto del contenido para el
-                código a ser generado, o para sustituir dicho contenido una vez
-                que se completen todas las tareas de generación.</para>
+                código a
+                ser generado, o para sustituir dicho contenido una vez
+                que se completen todas las
+                tareas de generación.
+            </para>
         </sect3>
 
         <sect3 id="zend.codegenerator.reference.abstracts.php-abstract">
             <title>Zend_CodeGenerator_Php_Abstract</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_Abstract</classname> extiende
-                    <classname>Zend_CodeGenerator_Abstract</classname>, y añade
+            <para>
+                <classname>Zend_CodeGenerator_Php_Abstract</classname>
+                extiende
+                <classname>Zend_CodeGenerator_Abstract</classname>
+                , y añade
                 algunas propiedades para localizar su contenido si es que ha
-                cambiado, así como el nivel de identación que debe aparecer
-                antes del contenido generado. Su <acronym>API</acronym> es la
-                siguiente:</para>
+                cambiado, así
+                como el nivel de identación que debe aparecer
+                antes del contenido generado. Su
+                <acronym>API</acronym>
+                es la
+                siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 abstract class Zend_CodeGenerator_Php_Abstract
@@ -79,13 +110,18 @@ abstract class Zend_CodeGenerator_Php_Abstract
         <sect3 id="zend.codegenerator.reference.abstracts.php-member-abstract">
             <title>Zend_CodeGenerator_Php_Member_Abstract</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_Member_Abstract</classname> es
+            <para>
+                <classname>Zend_CodeGenerator_Php_Member_Abstract</classname>
+                es
                 una clase base para generar los miembros de clase -- propiedades
-                y métodos -- y brinda accesos y mutadores para establecer
-                visibilidad; ya sea el miembro abstracto o no, estático o
-                definitivo; y el nombre del miembro. Su <acronym>API</acronym>
-                es la siguiente:</para>
+                y métodos -- y
+                brinda accesos y mutadores para establecer
+                visibilidad; ya sea el miembro abstracto o
+                no, estático o
+                definitivo; y el nombre del miembro. Su
+                <acronym>API</acronym>
+                es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 abstract class Zend_CodeGenerator_Php_Member_Abstract
@@ -110,14 +146,24 @@ abstract class Zend_CodeGenerator_Php_Member_Abstract
         <sect3 id="zend.codegenerator.reference.concrete.php-body">
             <title>Zend_CodeGenerator_Php_Body</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_Body</classname> se destina
+            <para>
+                <classname>Zend_CodeGenerator_Php_Body</classname>
+                se destina
                 para generar código procedural arbitrario para incluir dentro de
-                un archivo. Como tal, usted simplemente establece contenidos
-                para el objeto, y éste devolverá el contenido cuando usted
-                invoque a <methodname>generate()</methodname>.</para>
-
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+                un
+                archivo. Como tal, usted simplemente establece contenidos
+                para el objeto, y éste
+                devolverá el contenido cuando usted
+                invoque a
+                <methodname>generate()</methodname>
+                .
+            </para>
+
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Body extends Zend_CodeGenerator_Php_Abstract
@@ -132,17 +178,29 @@ class Zend_CodeGenerator_Php_Body extends Zend_CodeGenerator_Php_Abstract
         <sect3 id="zend.codegenerator.reference.concrete.php-class">
             <title>Zend_CodeGenerator_Php_Class</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_Class</classname> Está
-                destinado a generar clases <acronym>PHP</acronym>. La
-                funcionalidad básica sólo genera la clase <acronym>PHP</acronym>
-                en si misma, así como opcionalmente el <acronym>PHP</acronym>
+            <para>
+                <classname>Zend_CodeGenerator_Php_Class</classname>
+                Está
+                destinado a generar clases
+                <acronym>PHP</acronym>
+                . La
+                funcionalidad básica sólo genera la clase
+                <acronym>PHP</acronym>
+                en si misma, así como opcionalmente el
+                <acronym>PHP</acronym>
                 DocBlock. Las clases pueden implementarse o heredarse de otras
-                clases, y pueden ser marcadas como abstractas. Utilizando otras
-                clases generadoras de código, también puede agregar constantes
-                de clase, propiedades y métodos.</para>
-
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+                clases, y pueden ser
+                marcadas como abstractas. Utilizando otras
+                clases generadoras de código, también
+                puede agregar constantes
+                de clase, propiedades y métodos.
+            </para>
+
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Class extends Zend_CodeGenerator_Php_Abstract
@@ -174,41 +232,68 @@ class Zend_CodeGenerator_Php_Class extends Zend_CodeGenerator_Php_Abstract
 }
 ]]></programlisting>
 
-           <para>El método <methodname>setProperty()</methodname> acepta un
+            <para>
+                El método
+                <methodname>setProperty()</methodname>
+                acepta un
                 array de información que puede ser utilizada para generar una
-                instancia <classname>Zend_CodeGenerator_Php_Property</classname>
+                instancia
+                <classname>Zend_CodeGenerator_Php_Property</classname>
                 -- o simplemente una instancia de
-                    <classname>Zend_CodeGenerator_Php_Property</classname>.
-                Análogamente, <methodname>setMethod()</methodname> acepta o un
+                <classname>Zend_CodeGenerator_Php_Property</classname>
+                .
+                Análogamente,
+                <methodname>setMethod()</methodname>
+                acepta o un
                 array de información para generar una instancia de
-                    <classname>Zend_CodeGenerator_Php_Method</classname> o una
-                instancia concreta de esa clase.</para>
-
-           <para>Se debe observar que <methodname>setDocBlock()</methodname>
+                <classname>Zend_CodeGenerator_Php_Method</classname>
+                o una
+                instancia concreta de esa clase.
+            </para>
+
+            <para>
+                Se debe observar que
+                <methodname>setDocBlock()</methodname>
                 espera una instancia de
-                    <classname>Zend_CodeGenerator_Php_DocBlock</classname>.
-           </para>
+                <classname>Zend_CodeGenerator_Php_DocBlock</classname>
+                .
+            </para>
         </sect3>
 
         <sect3 id="zend.codegenerator.reference.concrete.php-docblock">
             <title>Zend_CodeGenerator_Php_Docblock</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_Docblock</classname> puede ser
-                utilizada para generar <acronym>PHP</acronym> docblocks
+            <para>
+                <classname>Zend_CodeGenerator_Php_Docblock</classname>
+                puede ser
+                utilizada para generar
+                <acronym>PHP</acronym>
+                docblocks
                 arbitrarios, incluidas todas las características estándar de
-                docblock: descripciones cortas y largas y además los tags de
-                anotaciones.</para>
-
-           <para>Los tags de anotación pueden establecerse utilizando los
-                métodos <methodname>setTag()</methodname> y
-                    <methodname>setTags()</methodname>; cada una de estas toman
+                docblock:
+                descripciones cortas y largas y además los tags de
+                anotaciones.
+            </para>
+
+            <para>
+                Los tags de anotación pueden establecerse utilizando los
+                métodos
+                <methodname>setTag()</methodname>
+                y
+                <methodname>setTags()</methodname>
+                ; cada una de estas toman
                 o un array describiendo el tag que puede ser pasado al
                 constructor
-                    <classname>Zend_CodeGenerator_Php_Docblock_Tag</classname>,
-                o una instancia de esa clase.</para>
+                <classname>Zend_CodeGenerator_Php_Docblock_Tag</classname>
+                ,
+                o una instancia de esa clase.
+            </para>
 
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Docblock extends Zend_CodeGenerator_Php_Abstract
@@ -231,15 +316,25 @@ class Zend_CodeGenerator_Php_Docblock extends Zend_CodeGenerator_Php_Abstract
         <sect3 id="zend.codegenerator.reference.concrete.php-docblock-tag">
             <title>Zend_CodeGenerator_Php_Docblock_Tag</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_Docblock_Tag</classname> está
+            <para>
+                <classname>Zend_CodeGenerator_Php_Docblock_Tag</classname>
+                está
                 destinado a crear tags de anotaciones arbitrarias para su
-                inclusión en <acronym>PHP</acronym> docblocks. Se espera que los
-                tags (etiquetas) contengan un nombre (la porción que sigue
+                inclusión en
+                <acronym>PHP</acronym>
+                docblocks. Se espera que los
+                tags (etiquetas) contengan un nombre (la porción que
+                sigue
                 inmediatamente después del símbolo '@') y una descripción (todo
-                lo que sigue después del nombre del tag).</para>
+                lo que sigue
+                después del nombre del tag).
+            </para>
 
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Docblock_Tag
@@ -260,17 +355,25 @@ class Zend_CodeGenerator_Php_Docblock_Tag
         <sect3 id="zend.codegenerator.reference.concrete.php-docblock-tag-param">
             <title>Zend_CodeGenerator_Php_DocBlock_Tag_Param</title>
 
-           <para>
+            <para>
                 <classname>Zend_CodeGenerator_Php_DocBlock_Tag_Param</classname>
                 es una versión especializada de
-                    <classname>Zend_CodeGenerator_Php_DocBlock_Tag</classname>,
+                <classname>Zend_CodeGenerator_Php_DocBlock_Tag</classname>
+                ,
                 y representa un parámetro del método. El nombre del tag es por
-                lo tanto ("param"), pero debido al formato de este tag de
-                anotación, es necesaria información adicional a fin de
+                lo tanto ("param"),
+                pero debido al formato de este tag de
+                anotación, es necesaria información adicional a
+                fin de
                 generarla: el nombre del parámetro y el tipo de datos que
-                representa.</para>
+                representa.
+            </para>
 
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Docblock_Tag_Param
@@ -288,18 +391,25 @@ class Zend_CodeGenerator_Php_Docblock_Tag_Param
 ]]></programlisting>
         </sect3>
 
-        <sect3
-            id="zend.codegenerator.reference.concrete.php-docblock-tag-return">
+        <sect3 id="zend.codegenerator.reference.concrete.php-docblock-tag-return">
             <title>Zend_CodeGenerator_Php_DocBlock_Tag_Return</title>
 
-           <para>Al igual la variante del tag docblock,
-                    <classname>Zend_CodeGenerator_Php_Docblock_Tab_Return</classname>
+            <para>
+                Al igual la variante del tag docblock,
+                <classname>Zend_CodeGenerator_Php_Docblock_Tab_Return</classname>
                 es una variante de un tag de anotación para representar el valor
-                de retorno del método. En este caso, el nombre del tag de
-                anotación es conocido ("return"), pero requiere un tipo de
-                retorno.</para>
-
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+                de retorno del
+                método. En este caso, el nombre del tag de
+                anotación es conocido ("return"), pero
+                requiere un tipo de
+                retorno.
+            </para>
+
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Docblock_Tag_Param
@@ -318,22 +428,38 @@ class Zend_CodeGenerator_Php_Docblock_Tag_Param
         <sect3 id="zend.codegenerator.reference.concrete.php-file">
             <title>Zend_CodeGenerator_Php_File</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_File</classname> se utiliza
+            <para>
+                <classname>Zend_CodeGenerator_Php_File</classname>
+                se utiliza
                 para generar el contenido íntegro de un archivo que contiene
-                código <acronym>PHP</acronym>. El archivo puede contener clases
-                o código <acronym>PHP</acronym> arbitrario, así como un archivo
-                de nivel docblock si así lo desea.</para>
-
-           <para>Cuando se agregan clases al archivo, necesitará pasar o un
-                array de información para pasar al constructor
-                    <classname>Zend_CodeGenerator_Php_Class</classname>, o una
+                código
+                <acronym>PHP</acronym>
+                . El archivo puede contener clases
+                o código
+                <acronym>PHP</acronym>
+                arbitrario, así como un archivo
+                de nivel docblock si así lo desea.
+            </para>
+
+            <para>
+                Cuando se agregan clases al archivo, necesitará pasar o un
+                array de información para
+                pasar al constructor
+                <classname>Zend_CodeGenerator_Php_Class</classname>
+                , o una
                 instancia de esa clase. De manera similar, con docblocks, usted
-                tendrá que pasar información para que lo consuma el constructor
-                    <classname>Zend_CodeGenerator_Php_Docblock</classname> o una
-                instancia de la clase.</para>
-
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+                tendrá que
+                pasar información para que lo consuma el constructor
+                <classname>Zend_CodeGenerator_Php_Docblock</classname>
+                o una
+                instancia de la clase.
+            </para>
+
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_File extends Zend_CodeGenerator_Php_Abstract
@@ -364,16 +490,24 @@ class Zend_CodeGenerator_Php_File extends Zend_CodeGenerator_Php_Abstract
         <sect3 id="zend.codegenerator.reference.concrete.php-member-container">
             <title>Zend_CodeGenerator_Php_Member_Container</title>
 
-           <para>
+            <para>
                 <classname>Zend_CodeGenerator_Php_Member_Container</classname>
                 es usado internamente por
-                    <classname>Zend_CodeGenerator_Php_Class</classname> para
+                <classname>Zend_CodeGenerator_Php_Class</classname>
+                para
                 seguir la pista de los los miembros de la clase -- a propiedades
-                y métodos por igual. Estos están indexados por nombre,
-                utilizando las instancias concretas de los miembros como
-                valores.</para>
-
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+                y métodos por
+                igual. Estos están indexados por nombre,
+                utilizando las instancias concretas de los
+                miembros como
+                valores.
+            </para>
+
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Member_Container extends ArrayObject
@@ -386,24 +520,38 @@ class Zend_CodeGenerator_Php_Member_Container extends ArrayObject
         <sect3 id="zend.codegenerator.reference.concrete.php-method">
             <title>Zend_CodeGenerator_Php_Method</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_Method</classname> describe un
+            <para>
+                <classname>Zend_CodeGenerator_Php_Method</classname>
+                describe un
                 método de clase, y puede generar tanto el código y el docblock
-                para el método. La visibilidad y condición estática, abstracta,
-                o se puede indicar como final, por su clase padre,
-                    <classname>Zend_CodeGenerator_Php_Member_Abstract</classname>.
+                para el
+                método. La visibilidad y condición estática, abstracta,
+                o se puede indicar como
+                final, por su clase padre,
+                <classname>Zend_CodeGenerator_Php_Member_Abstract</classname>
+                .
                 Finalmente, pueden especificarse los parámetros y valor de
-                retorno para el método.</para>
-
-           <para>Pueden establecerse los parámetros usando
-                    <methodname>setParameter()</methodname> o
-                    <methodname>setParameters()</methodname>. En cada caso, un
+                retorno para el método.
+            </para>
+
+            <para>
+                Pueden establecerse los parámetros usando
+                <methodname>setParameter()</methodname>
+                o
+                <methodname>setParameters()</methodname>
+                . En cada caso, un
                 parámetro debe ser un array de información para pasar al
                 constructor
-                    <classname>Zend_CodeGenerator_Php_Parameter</classname> o
-                una instancia de esa clase.</para>
+                <classname>Zend_CodeGenerator_Php_Parameter</classname>
+                o
+                una instancia de esa clase.
+            </para>
 
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Method
@@ -428,15 +576,24 @@ class Zend_CodeGenerator_Php_Method
         <sect3 id="zend.codegenerator.reference.concrete.php-parameter">
             <title>Zend_CodeGenerator_Php_Parameter</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_Parameter</classname> puede
+            <para>
+                <classname>Zend_CodeGenerator_Php_Parameter</classname>
+                puede
                 ser utilizada para especificar parámetros del método. Cada
-                parámetro puede tener una posición (si no están especificados,
-                se usarán en el orden que estén registrados en el método), son
+                parámetro puede tener
+                una posición (si no están especificados,
+                se usarán en el orden que estén registrados
+                en el método), son
                 oblogatorios un valor por defecto, un tipo de datos y un nombre
-                de parámetro.</para>
+                de
+                parámetro.
+            </para>
 
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Parameter extends Zend_CodeGenerator_Php_Abstract
@@ -458,12 +615,13 @@ class Zend_CodeGenerator_Php_Parameter extends Zend_CodeGenerator_Php_Abstract
 }
 ]]></programlisting>
 
-           <para>
+            <para>
                 There are several problems that might occur when trying to set null, booleans or
                 arrays as default values. For this the value holder object
-                <classname>Zend_CodeGenerator_Php_ParameterDefaultValue</classname> can be used,
+                <classname>Zend_CodeGenerator_Php_ParameterDefaultValue</classname>
+                can be used,
                 for example:
-           </para>
+            </para>
 
             <programlisting language="php"><![CDATA[
 $parameter = new Zend_CodeGenerator_Php_Parameter();
@@ -475,26 +633,40 @@ $parameter->setDefaultValue(
 );
 ]]></programlisting>
 
-           <para>
-                Internally <methodname>setDefaultValue()</methodname> also converts the values
-                which can't be expressed in <acronym>PHP</acronym> into the value holder.
-           </para>
+            <para>
+                Internally
+                <methodname>setDefaultValue()</methodname>
+                also converts the values
+                which can't be expressed in
+                <acronym>PHP</acronym>
+                into the value holder.
+            </para>
 
         </sect3>
 
         <sect3 id="zend.codegenerator.reference.concrete.php-property">
             <title>Zend_CodeGenerator_Php_Property</title>
 
-           <para>
-                <classname>Zend_CodeGenerator_Php_Property</classname> describe
+            <para>
+                <classname>Zend_CodeGenerator_Php_Property</classname>
+                describe
                 una propiedad de clase, que puede ser tanto una constante o una
-                variable. En cada caso, la propiedad puede tener un valor
-                predeterminado asociado con ella. Además, la visibilidad de las
-                propiedades de la variable puede ser establecida por la clase
+                variable. En
+                cada caso, la propiedad puede tener un valor
+                predeterminado asociado con ella.
+                Además, la visibilidad de las
+                propiedades de la variable puede ser establecida por la
+                clase
                 padre,
-                    <classname>Zend_CodeGenerator_Php_Member_Abstract</classname>.</para>
-
-           <para>La <acronym>API</acronym> de la clase es la siguiente:</para>
+                <classname>Zend_CodeGenerator_Php_Member_Abstract</classname>
+                .
+            </para>
+
+            <para>
+                La
+                <acronym>API</acronym>
+                de la clase es la siguiente:
+            </para>
 
             <programlisting language="php"><![CDATA[
 class Zend_CodeGenerator_Php_Property

+ 59 - 29
documentation/manual/es/module_specs/Zend_Config-Introduction.xml

@@ -1,33 +1,52 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15978 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15978 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.config.introduction">
     <title>Introducción</title>
-   <para>
-        <classname>Zend_Config</classname> está diseñado para simplificar el
-        acceso y el uso de datos de configuración dentro de aplicaciones. Provee
+    <para>
+        <classname>Zend_Config</classname>
+        está diseñado para simplificar el
+        acceso y el uso de datos de configuración dentro de
+        aplicaciones. Provee
         una interfaz de usuario basada en propiedades de objetos anidadas para
         acceder a datos de configuración dentro del código de la aplicación. Los
-        datos de configuración pueden venir de multitud de medios que soporten
-        almacenamiento de datos de forma jerárquica. Actualmente
-            <classname>Zend_Config</classname> provee adaptadores para datos de
-        configuración que están almacenados en archivos de texto con <link
-            linkend="zend.config.adapters.ini">
+        datos de
+        configuración pueden venir de multitud de medios que soporten
+        almacenamiento de datos de
+        forma jerárquica. Actualmente
+        <classname>Zend_Config</classname>
+        provee adaptadores para datos de
+        configuración que están almacenados en archivos de texto con
+        <link linkend="zend.config.adapters.ini">
             <classname>Zend_Config_Ini</classname>
-        </link> y <link linkend="zend.config.adapters.xml">
+        </link>
+        y
+        <link linkend="zend.config.adapters.xml">
             <classname>Zend_Config_Xml</classname>
-        </link> .</para>
+        </link>
+        .
+    </para>
     <example id="zend.config.introduction.example.using">
         <title>Usando Zend_Config Per Se</title>
-       <para>Normalmente, se espera que los usuarios usen una de las clases
-            adaptadoras como <link linkend="zend.config.adapters.ini">
+        <para>
+            Normalmente, se espera que los usuarios usen una de las clases
+            adaptadoras como
+            <link linkend="zend.config.adapters.ini">
                 <classname>Zend_Config_Ini</classname>
-            </link> o <link linkend="zend.config.adapters.xml">
+            </link>
+            o
+            <link linkend="zend.config.adapters.xml">
                 <classname>Zend_Config_Xml</classname>
-            </link> , pero si los datos de configuración están disponibles en un
-            array <acronym>PHP</acronym>, se puede simplemente pasar los datos
-            al constructor <classname>Zend_Config</classname> para utilizar una
-            interfaz simple orientada a objetos:</para>
+            </link>
+            , pero si los datos de configuración están disponibles en un
+            array
+            <acronym>PHP</acronym>
+            , se puede simplemente pasar los datos
+            al constructor
+            <classname>Zend_Config</classname>
+            para utilizar una
+            interfaz simple orientada a objetos:
+        </para>
         <programlisting language="php"><![CDATA[
 // Dado un array de datos de configuración
 $configArray = array(
@@ -58,22 +77,33 @@ $db = Zend_Db::factory($config->database->adapter,
 $db = Zend_Db::factory($config->database);
 ]]></programlisting>
     </example>
-   <para>Como se ilustra en el ejemplo de arriba,
-            <classname>Zend_Config</classname> provee una sintáxis de
+    <para>
+        Como se ilustra en el ejemplo de arriba,
+        <classname>Zend_Config</classname>
+        provee una sintáxis de
         propiedades de objetos anidados para acceder a datos de configuración
-        pasados a su constructor.</para>
-   <para>Junto al acceso a valores de datos orientado a objetos,
-            <classname>Zend_Config</classname> también tiene el método
-            <methodname>get()</methodname> que devolverá el valor por defecto
-        suministrado si el elemento de datos no existe. Por ejemplo:</para>
+        pasados a su constructor.
+    </para>
+    <para>
+        Junto al acceso a valores de datos orientado a objetos,
+        <classname>Zend_Config</classname>
+        también tiene el método
+        <methodname>get()</methodname>
+        que devolverá el valor por defecto
+        suministrado si el elemento de datos no existe. Por
+        ejemplo:
+    </para>
     <programlisting language="php"><![CDATA[
 $host = $config->database->get('host', 'localhost');
 ]]></programlisting>
     <example id="zend.config.introduction.example.file.php">
         <title>Usando Zend_Config con un Archivo de Configuración PHP</title>
-       <para>A veces, es deseable usar un archivo de configuración puramente
-                <acronym>PHP</acronym>. El código siguiente ilustra cómo podemos
-            conseguir esto fácilmente:</para>
+        <para>
+            A veces, es deseable usar un archivo de configuración puramente
+            <acronym>PHP</acronym>
+            . El código siguiente ilustra cómo podemos
+            conseguir esto fácilmente:
+        </para>
         <programlisting language="php"><![CDATA[
 // config.php
 return array(

+ 159 - 58
documentation/manual/es/module_specs/Zend_Config-TheoryOfOperation.xml

@@ -1,67 +1,168 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16674 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16674 -->
+    <!-- Reviewed: no -->
 
 <sect1 id="zend.config.theory_of_operation">
     <title>Aspectos Teóricos</title>
-   <para>Los datos de configuración se hacen accesibles al constructor <classname>Zend_Config</classname> a través de
-        un array asociativo, que puede ser multidimensional, para permitir organizar los datos desde lo general a lo
-        específico. Las clases de adaptador concretas permiten construir una tabla asociativa para el constructor de
-            <classname>Zend_Config</classname> a partir de un sistema de almacenamiento de datos de configuración.
-        Algunos scripts de usuario pueden proveer esos arrays directamente al constructor Zend_Config, sin usar una
-        clase adaptador, lo cual puede ser apropiado en ciertas ocasiones.</para>
-   <para>Cada valor del array de datos de configuración se convierte en una propiedad del objeto
-            <classname>Zend_Config</classname>. La clave es usada como el nombre de la propiedad. Si un valor es un
-        array por sí solo, entonces la propiedad de objeto resultante es creada como un nuevo objeto
-            <classname>Zend_Config</classname>, cargado con los datos del array. Esto ocurre recursivamente, de forma
-        que una jerarquía de datos de configuración puede ser creada con cualquier número de niveles.</para>
-   <para>
-        <classname>Zend_Config</classname> implementa las interfaces <emphasis>Countable</emphasis> e
-            <methodname>Iterator</methodname> para facilitar el aceso sencillo a los datos de configuración. Así, uno
-        puede usar la función <ulink url="http://php.net/count">
+    <para>
+        Los datos de configuración se hacen accesibles al constructor
+        <classname>Zend_Config</classname>
+        a través de
+        un array asociativo, que puede ser multidimensional, para permitir organizar los
+        datos desde lo general a lo
+        específico. Las clases de adaptador concretas permiten construir
+        una tabla asociativa para el constructor de
+        <classname>Zend_Config</classname>
+        a partir de un sistema de almacenamiento de datos de configuración.
+        Algunos scripts de
+        usuario pueden proveer esos arrays directamente al constructor Zend_Config, sin usar una
+        clase adaptador, lo cual puede ser apropiado en ciertas ocasiones.
+    </para>
+    <para>
+        Cada valor del array de datos de configuración se convierte en una propiedad del objeto
+        <classname>Zend_Config</classname>
+        . La clave es usada como el nombre de la propiedad. Si un valor es un
+        array por sí solo,
+        entonces la propiedad de objeto resultante es creada como un nuevo objeto
+        <classname>Zend_Config</classname>
+        , cargado con los datos del array. Esto ocurre recursivamente, de forma
+        que una jerarquía de
+        datos de configuración puede ser creada con cualquier número de niveles.
+    </para>
+    <para>
+        <classname>Zend_Config</classname>
+        implementa las interfaces
+        <emphasis>Countable</emphasis>
+        e
+        <methodname>Iterator</methodname>
+        para facilitar el aceso sencillo a los datos de configuración. Así, uno
+        puede usar la función
+        <ulink url="http://php.net/count">
             <methodname>count()</methodname>
-        </ulink> y constructores <acronym>PHP</acronym> como <ulink url="http://php.net/foreach">
+        </ulink>
+        y constructores
+        <acronym>PHP</acronym>
+        como
+        <ulink url="http://php.net/foreach">
             <emphasis>foreach</emphasis>
-        </ulink> sobre objetos <classname>Zend_Config</classname>.</para>
-   <para>Por defecto, los datos de configuración permitidos a través de <classname>Zend_Config</classname> son de sólo
-        lectura, y una asignación (e.g., <methodname>$config-&gt;database-&gt;host = 'example.com'</methodname>)
-        provoca que se lance una excepción. Este comportamiento por defecto puede ser sobrescrito a través del
-        constructor, sin embargo, para permitir la modificación de valores de datos. Además, cuando las modificaciones
-        están permitidas, <classname>Zend_Config</classname> soporta el borrado de elementos (unset) (i.e.
-            <methodname>unset($config-&gt;database-&gt;host);</methodname>). El método
-            <methodname>readOnly()</methodname> puede ser usado para determinar si las modificaciones a un objeto
-            <classname>Zend_Config</classname> están permitidas y el método <methodname>setReadOnly()</methodname> puede
-        ser usado para evitar cualquier modificación posterior a un objeto <classname>Zend_Config</classname> que fue
-        creado con permiso de modificaciones. <note>
-           <para>Es importante no confundir tales modificaciones en memoria con guardar los datos de configuración a
-                un medio de almacenamiento específico. Las herramientas para crear y modificar datos de configuración
-                para distintos medios de almacenamiento están fuera del alcance de <classname>Zend_Config</classname>.
-                Existen soluciones third-party de código abierto con el propósito de crear y modificar datos de
-                configuración de distintos medios de almacenamiento.</para>
+        </ulink>
+        sobre objetos
+        <classname>Zend_Config</classname>
+        .
+    </para>
+    <para>
+        Por defecto, los datos de configuración permitidos a través de
+        <classname>Zend_Config</classname>
+        son de sólo
+        lectura, y una asignación (e.g.,
+        <methodname>$config-&gt;database-&gt;host = 'example.com'</methodname>
+        )
+        provoca que se lance una excepción. Este comportamiento por defecto puede ser sobrescrito a
+        través del
+        constructor, sin embargo, para permitir la modificación de valores de datos.
+        Además, cuando las modificaciones
+        están permitidas,
+        <classname>Zend_Config</classname>
+        soporta el borrado de elementos (unset) (i.e.
+        <methodname>unset($config-&gt;database-&gt;host);</methodname>
+        ). El método
+        <methodname>readOnly()</methodname>
+        puede ser usado para determinar si las modificaciones a un objeto
+        <classname>Zend_Config</classname>
+        están permitidas y el método
+        <methodname>setReadOnly()</methodname>
+        puede
+        ser usado para evitar cualquier modificación posterior a un objeto
+        <classname>Zend_Config</classname>
+        que fue
+        creado con permiso de modificaciones.
+        <note>
+            <para>
+                Es importante no confundir tales modificaciones en memoria con guardar los datos de
+                configuración a
+                un medio de almacenamiento específico. Las herramientas para crear y
+                modificar datos de configuración
+                para distintos medios de almacenamiento están fuera
+                del alcance de
+                <classname>Zend_Config</classname>
+                .
+                Existen soluciones third-party de código abierto con el propósito de crear y
+                modificar datos de
+                configuración de distintos medios de almacenamiento.
+            </para>
         </note>
-   </para>
-   <para>Las clases del adaptador heredan de la clase <classname>Zend_Config</classname> debido a que utilizan su
-        funcionalidad.</para>
-   <para>La familia de clases <classname>Zend_Config</classname> permite organizar en secciones los datos de
-        configuración. Los objetos de adaptador <classname>Zend_Config</classname> pueden ser cargados con una sola
-        sección especificada, múltiples secciones especificadas, o todas las secciones (si no se especifica ninguna).</para>
-   <para>Las clases del adaptador <classname>Zend_Config</classname> soportan un modelo de herencia única que permite
-        que los datos de configuración hereden de una sección de datos de configuración a otra. Esto es provisto con el
-        fin de reducir o eliminar la necesidad de duplicar datos de configuración por distintos motivos. Una sección
-        heredada puede también sobrescribir los valores que hereda de su sección padre. Al igual que la herencia de
-        clases <acronym>PHP</acronym>, una sección puede heredar de una sección padre, la cual puede heredar de una
-        sección abuela, etc..., pero la herencia múltiple (i.e., la sección C heredando directamente de las secciones
-        padre A y B) no está permitida.</para>
-   <para>Si tiene dos objetos <classname>Zend_Config</classname>, puede combinarlos en un único objeto usando la
-        función <methodname>merge()</methodname>. Por ejemplo, dados <varname>$config</varname> y
-            <varname>$localConfig</varname>, puede fusionar datos de <varname>$localConfig</varname> a
-            <varname>$config</varname> usando <methodname>$config-&gt;merge($localConfig);</methodname>. Los
-        ítemes en <varname>$localConfig</varname> sobrescribirán cualquier item con el mismo nombre en
-            <varname>$config</varname>. <note>
-           <para>El objeto <classname>Zend_Config</classname> que está ejecutando el merge debe haber sido construido
-                para permitir modificaciones, pasando <constant>TRUE</constant> como el segundo parámetro del
-                constructor. El método <methodname>setReadOnly()</methodname> puede entonces ser usado para evitar
-                cualquier modificación posterior después de que el merge se haya completado.</para>
+    </para>
+    <para>
+        Las clases del adaptador heredan de la clase
+        <classname>Zend_Config</classname>
+        debido a que utilizan su
+        funcionalidad.
+    </para>
+    <para>
+        La familia de clases
+        <classname>Zend_Config</classname>
+        permite organizar en secciones los datos de
+        configuración. Los objetos de adaptador
+        <classname>Zend_Config</classname>
+        pueden ser cargados con una sola
+        sección especificada, múltiples secciones especificadas, o
+        todas las secciones (si no se especifica ninguna).
+    </para>
+    <para>
+        Las clases del adaptador
+        <classname>Zend_Config</classname>
+        soportan un modelo de herencia única que permite
+        que los datos de configuración hereden de
+        una sección de datos de configuración a otra. Esto es provisto con el
+        fin de reducir o
+        eliminar la necesidad de duplicar datos de configuración por distintos motivos. Una sección
+        heredada puede también sobrescribir los valores que hereda de su sección padre. Al igual que
+        la herencia de
+        clases
+        <acronym>PHP</acronym>
+        , una sección puede heredar de una sección padre, la cual puede heredar de una
+        sección
+        abuela, etc..., pero la herencia múltiple (i.e., la sección C heredando directamente de las
+        secciones
+        padre A y B) no está permitida.
+    </para>
+    <para>
+        Si tiene dos objetos
+        <classname>Zend_Config</classname>
+        , puede combinarlos en un único objeto usando la
+        función
+        <methodname>merge()</methodname>
+        . Por ejemplo, dados
+        <varname>$config</varname>
+        y
+        <varname>$localConfig</varname>
+        , puede fusionar datos de
+        <varname>$localConfig</varname>
+        a
+        <varname>$config</varname>
+        usando
+        <methodname>$config-&gt;merge($localConfig);</methodname>
+        . Los
+        ítemes en
+        <varname>$localConfig</varname>
+        sobrescribirán cualquier item con el mismo nombre en
+        <varname>$config</varname>
+        .
+        <note>
+            <para>
+                El objeto
+                <classname>Zend_Config</classname>
+                que está ejecutando el merge debe haber sido construido
+                para permitir modificaciones,
+                pasando
+                <constant>TRUE</constant>
+                como el segundo parámetro del
+                constructor. El método
+                <methodname>setReadOnly()</methodname>
+                puede entonces ser usado para evitar
+                cualquier modificación posterior después de que
+                el merge se haya completado.
+            </para>
         </note>
-   </para>
+    </para>
 </sect1>

+ 99 - 49
documentation/manual/es/module_specs/Zend_Config_Ini.xml

@@ -1,41 +1,60 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17564 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17564 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.config.adapters.ini">
     <title>Zend_Config_Ini</title>
-   <para>
+    <para>
         <classname>Zend_Config_Ini</classname>
         permite a los desarrolladores almacenar datos de configuración
-        en un formato de datos <acronym>INI</acronym> familiar, y leer de ellos en la
+        en un formato de datos
+        <acronym>INI</acronym>
+        familiar, y leer de ellos en la
         aplicación usando una sintáxis de propiedades de objetos
-        anidados. El formato <acronym>INI</acronym> se especializa en proveer tanto la
-        habilidad de mantener una jerarquía de claves de datos (data
+        anidados. El formato
+        <acronym>INI</acronym>
+        se especializa en proveer tanto la
+        habilidad de mantener una jerarquía de claves de datos
+        (data
         keys) de configuración como la de mantener una jerarquía entre
-        secciones de datos de configuración. Las jerarquías de datos de
-        configuración son provistas separando las claves mediante el
+        secciones de datos de
+        configuración. Las jerarquías de datos de
+        configuración son provistas separando las claves
+        mediante el
         carácter punto (
-        "<emphasis>.</emphasis>"
+        "
+        <emphasis>.</emphasis>
+        "
         ). Una sección puede extender o heredar de otra sección
-        indicando el nombre de la sección seguido de dos puntos (
-        "<emphasis>:</emphasis>"
+        indicando el nombre de la sección
+        seguido de dos puntos (
+        "
+        <emphasis>:</emphasis>
+        "
         ) y el nombre de la sección desde la cual se quieren heredar los
         datos.
-   </para>
+    </para>
     <note>
         <title>parse_ini_file</title>
-       <para>
+        <para>
             <classname>Zend_Config_Ini</classname>
             utiliza la función
             <ulink url="http://php.net/parse_ini_file">
                 <methodname>parse_ini_file()</methodname>
             </ulink>
-            de <acronym>PHP</acronym>. Por favor, revise esta documentación para observar
-            sus comportamientos específicos, que se propagan a
+            de
+            <acronym>PHP</acronym>
+            . Por favor, revise esta documentación para observar
+            sus comportamientos específicos, que
+            se propagan a
             <classname>Zend_Config_Ini</classname>
             , tales como la forma en que los valores especiales:
-            "<constant>TRUE</constant>"
+            "
+            <constant>TRUE</constant>
+            "
             ,
-            "<constant>FALSE</constant>"
+            "
+            <constant>FALSE</constant>
+            "
             ,
             "yes"
             ,
@@ -43,13 +62,15 @@
             , y
             <constant>NULL</constant>
             son manejados.
-       </para>
+        </para>
     </note>
     <note>
         <title>Separador de clave</title>
-       <para>
+        <para>
             Por defecto, el carácter separador de clave es el punto (
-            "<emphasis>.</emphasis>"
+            "
+            <emphasis>.</emphasis>
+            "
             ). Puede ser reemplazado, no obstante,cambiando la clave de
             <varname>$options</varname>
             llamada
@@ -57,33 +78,42 @@
             al construir el objeto
             <classname>Zend_Config_Ini</classname>
             . Por ejemplo:
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $options['nestSeparator'] = ':';
 $config = new Zend_Config_Ini('/path/to/config.ini',
                               'pruebas',
                               $options);
 ]]></programlisting>
-       </para>
+        </para>
     </note>
     <example id="zend.config.adapters.ini.example.using">
         <title>Utilizando Zend_Config_Ini</title>
-       <para>
+        <para>
             Este ejemplo muestra una forma de uso básica de
             <classname>Zend_Config_Ini</classname>
-            para cargar datos de configuración de un archivo <acronym>INI</acronym>. En
+            para cargar datos de configuración de un archivo
+            <acronym>INI</acronym>
+            . En
             este ejemplo hay datos de configuración tanto para un
-            sistema de producción como para un sistema en fase de
+            sistema de producción como para
+            un sistema en fase de
             pruebas. Debido a que los datos de la fase de pruebas son
-            muy parecidos a los de producción, la sección de pruebas
-            hereda de la sección de producción. En este caso, la
+            muy
+            parecidos a los de producción, la sección de pruebas
+            hereda de la sección de producción.
+            En este caso, la
             decisión es arbitraria y podría haberse escrito a la
-            inversa, con la sección de producción heredando de la
-            sección de pruebas, a pesar de que éste no sería el caso
+            inversa, con la
+            sección de producción heredando de la
+            sección de pruebas, a pesar de que éste no sería el
+            caso
             para situaciones más complejas. Supongamos, entonces, que
-            los siguientes datos de configuración están contenidos en
-            <filename>/path/to/config.ini</filename>:
+            los siguientes datos de
+            configuración están contenidos en
+            <filename>/path/to/config.ini</filename>
             :
-       </para>
+            :
+        </para>
         <programlisting language="ini"><![CDATA[
 ; Datos de configuración de la web de producción
 [produccion]
@@ -101,13 +131,18 @@ database.params.host     = dev.example.com
 database.params.username = devuser
 database.params.password = devsecret
 ]]></programlisting>
-       <para>
+        <para>
             Ahora, asuma que el desarrollador de aplicaciones necesita
-            los datos de configuración de la etapa de pruebas del
-            archivo <acronym>INI</acronym>. Resulta fácil cargar estos datos especificando
-            el archivo <acronym>INI</acronym> en la sección de la etapa de pruebas:
-       </para>
-         <programlisting language="php"><![CDATA[
+            los datos de configuración de
+            la etapa de pruebas del
+            archivo
+            <acronym>INI</acronym>
+            . Resulta fácil cargar estos datos especificando
+            el archivo
+            <acronym>INI</acronym>
+            en la sección de la etapa de pruebas:
+        </para>
+        <programlisting language="php"><![CDATA[
 $config = new Zend_Config_Ini('/path/to/config.ini', 'pruebas');
 
 echo $config->database->params->host;   // muestra "dev.example.com"
@@ -130,7 +165,9 @@ echo $config->database->params->dbname; // muestra "dbname"
                             <varname>$filename</varname>
                         </entry>
                         <entry>
-                            El archivo <acronym>INI</acronym> que se va a cargar.
+                            El archivo
+                            <acronym>INI</acronym>
+                            que se va a cargar.
                         </entry>
                     </row>
                     <row>
@@ -138,8 +175,11 @@ echo $config->database->params->dbname; // muestra "dbname"
                             <methodname>$section</methodname>
                         </entry>
                         <entry>
-                            La [sección] contenida en el archivo <acronym>INI</acronym> que
-                            se va a cargar. Fijar este parámetro a <constant>NULL</constant>
+                            La [sección] contenida en el archivo
+                            <acronym>INI</acronym>
+                            que
+                            se va a cargar. Fijar este parámetro a
+                            <constant>NULL</constant>
                             cargará todas las secciones.
                             Alternativamente, se puede introducir un
                             array de nombres de sección para cargar
@@ -148,30 +188,40 @@ echo $config->database->params->dbname; // muestra "dbname"
                     </row>
                     <row>
 
-                            <entry><varname>$options</varname> (default <constant>FALSE</constant>)</entry>
+                        <entry>
+                            <varname>$options</varname>
+                            (default
+                            <constant>FALSE</constant>
+                            )
+                        </entry>
 
                         <entry>
                             Array de opciones. Las siguientes claves
                             están aceptadas:
                             <itemizedlist>
                                 <listitem>
-                                   <para>
-<emphasis><property>allowModifications</property></emphasis>:
+                                    <para>
+                                        <emphasis>
+                                            <property>allowModifications</property>
+                                        </emphasis>
+                                        :
                                         : Fijar a
                                         <constant>TRUE</constant>
                                         para permitir modificaciones
                                         subsiguientes del archivo
                                         cargado. Por defecto es
                                         <constant>NULL</constant>
-                                   </para>
+                                    </para>
                                 </listitem>
                                 <listitem>
-                                   <para>
-<emphasis><property>nestSeparator</property></emphasis>
+                                    <para>
+                                        <emphasis>
+                                            <property>nestSeparator</property>
+                                        </emphasis>
                                         : Carácter que utilizar como
                                         separador de anidamiento. Por
                                         defecto es "."
-                                   </para>
+                                    </para>
                                 </listitem>
                             </itemizedlist>
                         </entry>
@@ -181,6 +231,6 @@ echo $config->database->params->dbname; // muestra "dbname"
         </table>
     </note>
 </sect1>
-<!--
+    <!--
     vim:se ts=4 sw=4 et:
 -->

+ 119 - 67
documentation/manual/es/module_specs/Zend_Config_Xml.xml

@@ -1,46 +1,70 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16945 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16945 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.config.adapters.xml">
     <title>Zend_Config_Xml</title>
-   <para>
-        <classname>Zend_Config_Xml</classname> permite a los desarrolladores almacenar
-        datos de configuración en un formato sencillo <acronym>XML</acronym> y leerlos a través de
+    <para>
+        <classname>Zend_Config_Xml</classname>
+        permite a los desarrolladores almacenar
+        datos de configuración en un formato sencillo
+        <acronym>XML</acronym>
+        y leerlos a través de
         una sintáxis de propiedades de objetos anidados. El elemento raíz del
-        archivo <acronym>XML</acronym> es irrelevante y puede ser nombrado arbitrariamente.
-        El primer nivel de elementos <acronym>XML</acronym> corresponde con las secciones de datos
-        de configuración. El formato <acronym>XML</acronym> admite organización jerárquica a
-        través del anidamiento de elementos <acronym>XML</acronym> bajo los elementos a nivel de
-        sección. El contenido de un elemento <acronym>XML</acronym> a nivel de hoja corresponde al
-        valor de un dato de configuración. La herencia de sección está permitida
-        por un atributo <acronym>XML</acronym> especial llamado <emphasis>extends</emphasis>, y el valor de
+        archivo
+        <acronym>XML</acronym>
+        es irrelevante y puede ser nombrado arbitrariamente.
+        El primer nivel de elementos
+        <acronym>XML</acronym>
+        corresponde con las secciones de datos
+        de configuración. El formato
+        <acronym>XML</acronym>
+        admite organización jerárquica a
+        través del anidamiento de elementos
+        <acronym>XML</acronym>
+        bajo los elementos a nivel de
+        sección. El contenido de un elemento
+        <acronym>XML</acronym>
+        a nivel de hoja corresponde al
+        valor de un dato de configuración. La herencia de sección está
+        permitida
+        por un atributo
+        <acronym>XML</acronym>
+        especial llamado
+        <emphasis>extends</emphasis>
+        , y el valor de
         este atributo se corresponde con la sección de la cual los datos son
         heredados por la sección extendida..
-   </para>
+    </para>
     <note>
         <title>Tipo devuelto</title>
-       <para>
-        Los datos de configuración que se leen en <classname>Zend_Config_Xml</classname>
-        son siempre devueltos como strings.
-              La conversión de datos de string a otros tipos se deja en manos de los
-        desarrolladores para que se ajuste a sus necesidades particulares.
-       </para>
+        <para>
+            Los datos de configuración que se leen en
+            <classname>Zend_Config_Xml</classname>
+            son siempre devueltos como strings.
+            La conversión de datos de string a otros tipos se deja en manos de los
+            desarrolladores para que se ajuste a sus necesidades particulares.
+        </para>
     </note>
     <example id="zend.config.adapters.xml.example.using">
         <title>Usando Zend_Config_Xml</title>
-       <para>
-         Este ejemplo ilustra un uso básico de <classname>Zend_Config_Xml</classname>
-         para cargar datos de configuración de un archivo <acronym>XML</acronym> . En este ejemplo
-         hay datos de configuración tanto para un sistema de producción como
-         para un sistema de pruebas. Debido a que los datos de configuración del
-         sistema de pruebas son muy similares a los de producción, la sección de
-         pruebas hereda de la sección de producción. En este caso, la decisión
-         es arbitraria y podría haberse escrito a la inversa, con la sección de
-         producción heredando de la sección de pruebas, a pesar de que éste no
-         sería el caso para situaciones más complejas. Suponga, pues, que los
-         datos de configuración siguientes están contenidos
-            en <filename>/path/to/config.xml</filename>::
-       </para>
+        <para>
+            Este ejemplo ilustra un uso básico de
+            <classname>Zend_Config_Xml</classname>
+            para cargar datos de configuración de un archivo
+            <acronym>XML</acronym>
+            . En este ejemplo
+            hay datos de configuración tanto para un sistema de producción como
+            para un sistema de pruebas. Debido a que los datos de configuración del
+            sistema de pruebas son muy similares a los de producción, la sección de
+            pruebas hereda de la sección de producción. En este caso, la decisión
+            es arbitraria y podría haberse escrito a la inversa, con la sección de
+            producción heredando de la sección de pruebas, a pesar de que éste no
+            sería el caso para situaciones más complejas. Suponga, pues, que los
+            datos de configuración siguientes están contenidos
+            en
+            <filename>/path/to/config.xml</filename>
+            ::
+        </para>
         <programlisting language="xml"><![CDATA[
 <?xml version="1.0"?>
 <configdata>
@@ -67,13 +91,18 @@
     </staging>
 </configdata>
 ]]></programlisting>
-       <para>
+        <para>
             Ahora, asuma que el desarrollador de aplicaciones necesita los datos
-            de configuración de la fase de pruebas del archivo <acronym>XML</acronym> . Es una tarea
-            sencilla cargar estos datos, especificando el archivo <acronym>XML</acronym> y la
+            de configuración de
+            la fase de pruebas del archivo
+            <acronym>XML</acronym>
+            . Es una tarea
+            sencilla cargar estos datos, especificando el archivo
+            <acronym>XML</acronym>
+            y la
             sección de pruebas:
-       </para>
-         <programlisting language="php"><![CDATA[
+        </para>
+        <programlisting language="php"><![CDATA[
 $config = new Zend_Config_Xml('/ruta/de/config.xml', 'pruebas');
 
 echo $config->database->params->host;   // muestra "dev.example.com"
@@ -82,15 +111,22 @@ echo $config->database->params->dbname; // muestra "dbname"
     </example>
     <example id="zend.config.adapters.xml.example.attributes">
         <title>Usando atributos de etiqueta en Zend_Config_Xml</title>
-       <para>
+        <para>
             Zend_Config_Xml también soporta dos formas adicionales de definir
-            nodos en la configuración.  Ambas hacen uso de atributos. Dado que
-            los atributos <emphasis>extends</emphasis> y <emphasis>value</emphasis>  son palabras
+            nodos en la
+            configuración. Ambas hacen uso de atributos. Dado que
+            los atributos
+            <emphasis>extends</emphasis>
+            y
+            <emphasis>value</emphasis>
+            son palabras
             reservadas (la última por la segunda manera de usar atributos),
-            pueden no ser utilizadas.
-                  La primera manera de utilizar atributos es añadir atributos en un
-            nodo padre, el cual será interpretado como hijo de ese nodo:
-       </para>
+            pueden no ser
+            utilizadas.
+            La primera manera de utilizar atributos es añadir atributos en un
+            nodo padre, el cual será
+            interpretado como hijo de ese nodo:
+        </para>
         <programlisting language="xml"><![CDATA[
 <?xml version="1.0"?>
 <configdata>
@@ -106,12 +142,14 @@ echo $config->database->params->dbname; // muestra "dbname"
     </staging>
 </configdata>
 ]]></programlisting>
-       <para>
-        La otra forma no reduce la configuración, sino que permite mantenerla de
-        forma más fácil dado que no es necesario escribir el nombre de la
-        etiqueta dos veces. Simplemente, cree una etiqueta vacía con el valor en
-        el atributo <emphasis>value</emphasis>:
-       </para>
+        <para>
+            La otra forma no reduce la configuración, sino que permite mantenerla de
+            forma más fácil dado que no es necesario escribir el nombre de la
+            etiqueta dos veces. Simplemente, cree una etiqueta vacía con el valor en
+            el atributo
+            <emphasis>value</emphasis>
+            :
+        </para>
         <programlisting language="xml"><![CDATA[
 <?xml version="1.0"?>
 <configdata>
@@ -141,12 +179,18 @@ echo $config->database->params->dbname; // muestra "dbname"
     </example>
     <note>
         <title>XML strings</title>
-       <para>
-            <classname>Zend_Config_Xml</classname> is able to load an <acronym>XML</acronym> string directly,
+        <para>
+            <classname>Zend_Config_Xml</classname>
+            is able to load an
+            <acronym>XML</acronym>
+            string directly,
             such as that retrieved from a database. The string is passed
-            as the first parameter to the constructor and must start with the
-            characters <emphasis>'&lt;?xml'</emphasis>:
-       </para>
+            as the first
+            parameter to the constructor and must start with the
+            characters
+            <emphasis>'&lt;?xml'</emphasis>
+            :
+        </para>
         <programlisting language="xml"><![CDATA[
 $string = <<<EOT
 <?xml version="1.0"?>
@@ -175,21 +219,29 @@ $config = new Zend_Config_Xml($string, 'staging');
 
     <note>
         <title>Zend_Config XML namespace</title>
-       <para>
-            <classname>Zend_Config</classname> comes with it's own <acronym>XML</acronym>
+        <para>
+            <classname>Zend_Config</classname>
+            comes with it's own
+            <acronym>XML</acronym>
             namespace, which adds additional functionality to the parsing process. To take advantage
-            of it, you have to define a namespace with the namespace <acronym>URI</acronym>
-            <filename>http://framework.zend.com/xml/zend-config-xml/1.0/</filename> in
+            of it, you have to define a namespace with the namespace
+            <acronym>URI</acronym>
+            <filename>http://framework.zend.com/xml/zend-config-xml/1.0/</filename>
+            in
             your config root node.
-       </para>
+        </para>
 
-       <para>
-            With the namespace enabled, you can now use <acronym>PHP</acronym> constants within
-            your configuration files. Additionally, the <emphasis>extends</emphasis>
+        <para>
+            With the namespace enabled, you can now use
+            <acronym>PHP</acronym>
+            constants within
+            your configuration files. Additionally, the
+            <emphasis>extends</emphasis>
             attribute was moved to the new namespace and is deprecated in the
-            <constant>NULL</constant> namespace. It will be completly removed there in
+            <constant>NULL</constant>
+            namespace. It will be completly removed there in
             Zend Framework 2.0.
-       </para>
+        </para>
         <programlisting language="xml"><![CDATA[
 $string = <<<EOT
 <?xml version="1.0"?>
@@ -220,8 +272,8 @@ $config = new Zend_Config_Xml($string, 'staging');
 echo $config->includePath; // Prints "/var/www/something/library"
 ]]></programlisting>
     </note>
- </sect1>
+</sect1>
 
-<!--
+    <!--
 vim:se ts=4 sw=4 et:
 -->

Dosya farkı çok büyük olduğundan ihmal edildi
+ 489 - 264
documentation/manual/es/module_specs/Zend_Controller-ActionController.xml


+ 37 - 17
documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-ActionStack.xml

@@ -1,38 +1,52 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16003 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16003 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.actionstack">
     <title>ActionStack</title>
 
-   <para>El helper <emphasis>ActionStack</emphasis> le permite empujar
-        requerimientos al <link
-            linkend="zend.controller.plugins.standard.actionstack"
-            >ActionStack</link> plugin del front controller, el cual le ayuda
-        efectivamente a crear una cola de acciones a ejecutar durante la
+    <para>
+        El helper
+        <emphasis>ActionStack</emphasis>
+        le permite empujar
+        requerimientos al
+        <link linkend="zend.controller.plugins.standard.actionstack">ActionStack</link>
+        plugin del front controller, el cual le ayuda
+        efectivamente a crear una cola de acciones a
+        ejecutar durante la
         solicitud. El helper le permite añadir actions ya sea mediante la
         especificación de los objetos o una
-        nueva solicitud action - controller - module.</para>
+        nueva solicitud action - controller - module.
+    </para>
 
     <note>
         <title>Invocando al Ayudante ActionStack Inicializa el Plugin de
             ActionStack</title>
 
-       <para>Invocando al helper <emphasis>ActionStack</emphasis>
+        <para>
+            Invocando al helper
+            <emphasis>ActionStack</emphasis>
             implicitamente registra el plugin de
-                <emphasis>ActionStack</emphasis> -- lo que significa que no
+            <emphasis>ActionStack</emphasis>
+            -- lo que significa que no
             necesita registrar explícitamente el plugin de
-                <emphasis>ActionStack</emphasis> para utilizar esta
-            funcionalidad.</para>
+            <emphasis>ActionStack</emphasis>
+            para utilizar esta
+            funcionalidad.
+        </para>
     </note>
 
     <example id="zend.controller.actionhelpers.actionstack.simple">
         <title>Agregando una Tarea Usando Nombres de Acción, Controllador y
             Módulo</title>
 
-       <para>A menudo, es más sencillo simplemente especificar la acción, el
-            controlador y el módulo (y parámetros opcionales de requerimientos),
+        <para>
+            A menudo, es más sencillo simplemente especificar la acción, el
+            controlador y el módulo
+            (y parámetros opcionales de requerimientos),
             tal como cuando llama a
-                <methodname>Zend_Controller_Action::_forward()</methodname>:</para>
+            <methodname>Zend_Controller_Action::_forward()</methodname>
+            :
+        </para>
 
         <programlisting language="php"><![CDATA[
 class FooController extends Zend_Controller_Action
@@ -59,9 +73,15 @@ class FooController extends Zend_Controller_Action
     <example id="zend.controller.actionhelpers.actionstack.simple2">
         <title>Agregando una Tarea al Objeto Solicitud (Request)</title>
 
-       <para>A veces la naturaleza <acronym>OOP</acronym> de un objeto
+        <para>
+            A veces la naturaleza
+            <acronym>OOP</acronym>
+            de un objeto
             solicitud tiene más sentido; puede pasar también tal objeto al
-            ayudante <emphasis>ActionStack</emphasis>.</para>
+            ayudante
+            <emphasis>ActionStack</emphasis>
+            .
+        </para>
 
         <programlisting language="php"><![CDATA[
 class FooController extends Zend_Controller_Action

+ 235 - 126
documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-AutoComplete.xml

@@ -1,32 +1,48 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16509 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16509 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.autocomplete">
     <title>AutoComplete</title>
 
-   <para>
-        Muchas bibliotecas de Javascript con <acronym>AJAX</acronym> ofrecen funcionalidad para
-        proporcionar autocompletado según la cual un selectlist de resultados
+    <para>
+        Muchas bibliotecas de Javascript con
+        <acronym>AJAX</acronym>
+        ofrecen funcionalidad para
+        proporcionar autocompletado según la cual un selectlist de
+        resultados
         potencialmente concordantes se visualiza a medida que el usuario tipea.
-        El ayudante <emphasis>AutoComplete</emphasis> pretende simplificar el retorno
+        El ayudante
+        <emphasis>AutoComplete</emphasis>
+        pretende simplificar el retorno
         de respuestas aceptables a esos métodos.
-   </para>
+    </para>
 
-   <para>
+    <para>
         Dado que no todas la bibliotecas JS implementan el autocompletado de
-        la misma manera, el ayudante <emphasis>AutoComplete</emphasis> ofrece algunas
+        la misma manera, el
+        ayudante
+        <emphasis>AutoComplete</emphasis>
+        ofrece algunas
         funcionalidades abstractas de base necesarias para muchas bibliotecas,
-        e implementaciones concretas para distintas bibliotecas.
-        Los tipos de datos de retorno son generalmente o bien arrays de strings
-        <acronym>JSON</acronym>, array de arrays <acronym>JSON</acronym> (donde cada miembro del array está en un array
-        asociativo de metadatos utilizado para crear la selectlist), o <acronym>HTML</acronym>.
-   </para>
-
-   <para>
+        e
+        implementaciones concretas para distintas bibliotecas.
+        Los tipos de datos de retorno son
+        generalmente o bien arrays de strings
+        <acronym>JSON</acronym>
+        , array de arrays
+        <acronym>JSON</acronym>
+        (donde cada miembro del array está en un array
+        asociativo de metadatos utilizado para crear
+        la selectlist), o
+        <acronym>HTML</acronym>
+        .
+    </para>
+
+    <para>
         El uso básico para cada aplicación es el mismo:
    </para>
 
-         <programlisting language="php"><![CDATA[
+    <programlisting language="php"><![CDATA[
 class FooController extends Zend_Controller_Action
 {
     public function barAction()
@@ -47,97 +63,142 @@ class FooController extends Zend_Controller_Action
 }
 ]]></programlisting>
 
-   <para>
+    <para>
         Por defecto, el autocompletado hace lo siguiente:
    </para>
 
     <itemizedlist>
-        <listitem><para>
+        <listitem>
+            <para>
                 Desactiva esquemas y a ViewRenderer.
-       </para></listitem>
+       </para>
+        </listitem>
 
-        <listitem><para>
+        <listitem>
+            <para>
                 Establece las cabeceras apropiadas para la respuesta.
-       </para></listitem>
+       </para>
+        </listitem>
 
-        <listitem><para>
+        <listitem>
+            <para>
                 Establece el cuerpo de la respuesta con datos
-                codificados o formateados para autocompletar.
-       </para></listitem>
+                codificados o formateados para
+                autocompletar.
+       </para>
+        </listitem>
 
-        <listitem><para>
+        <listitem>
+            <para>
                 Envía la respuesta.
-       </para></listitem>
+       </para>
+        </listitem>
     </itemizedlist>
 
-   <para>
+    <para>
         Los métodos disponibles para el ayudante incluyen:
    </para>
 
     <itemizedlist>
-        <listitem><para>
-                <methodname>disableLayouts()</methodname> puede ser utilizada para
+        <listitem>
+            <para>
+                <methodname>disableLayouts()</methodname>
+                puede ser utilizada para
                 desactivar esquemas y a ViewRenderer. Típicamente, esto se
-                llama dentro de <methodname>prepareAutoCompletion()</methodname>.
-       </para></listitem>
-
-        <listitem><para>
+                llama dentro de
+                <methodname>prepareAutoCompletion()</methodname>
+                .
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
                 <methodname>encodeJson($data, $keepLayouts = false)</methodname>
-                codificará datos a <acronym>JSON</acronym>, y opcionalmente habilitando o
-                deshabilitando esquemas. Típicamente, esto se llama dentro de
-                <methodname>prepareAutoCompletion()</methodname>.
-       </para></listitem>
-
-        <listitem><para>
+                codificará datos a
+                <acronym>JSON</acronym>
+                , y opcionalmente habilitando o
+                deshabilitando esquemas. Típicamente, esto se llama
+                dentro de
+                <methodname>prepareAutoCompletion()</methodname>
+                .
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
                 <methodname>prepareAutoCompletion($data, $keepLayouts = false)</methodname>
                 se utiliza para preparar datos en el formato necesario de la
-                respuesta para la aplicación concreta, opcionalmente los
+                respuesta para la
+                aplicación concreta, opcionalmente los
                 esquemas pueden habilitarse o deshabilitarse.
                 El valor de retorno variará dependiendo de la implementación.
-       </para></listitem>
+            </para>
+        </listitem>
 
-        <listitem><para>
+        <listitem>
+            <para>
                 <methodname>sendAutoCompletion($data, $keepLayouts = false)</methodname>
                 se utiliza para preparar datos en el formato necesario de la
-                respuesta para la aplicación concreta. Esta llama a
-                <methodname>prepareAutoCompletion()</methodname>, y entonces envía la
+                respuesta para la
+                aplicación concreta. Esta llama a
+                <methodname>prepareAutoCompletion()</methodname>
+                , y entonces envía la
                 respuesta.
-       </para></listitem>
+            </para>
+        </listitem>
 
-        <listitem><para>
+        <listitem>
+            <para>
                 <methodname>direct($data, $sendNow = true, $keepLayouts =
-                    false)</methodname> se utiliza cuando se llama al ayudante como
-                    un método del ayudante intermediario. El flag
-                     <varname>$sendNow</varname> se utiliza para determinar si se debe
-                    llamar a <methodname>sendAutoCompletion()</methodname> o a
-                    <methodname>prepareAutoCompletion()</methodname>, respectivamente.
-       </para></listitem>
+                    false)</methodname>
+                se utiliza cuando se llama al ayudante como
+                un método del ayudante intermediario. El flag
+                <varname>$sendNow</varname>
+                se utiliza para determinar si se debe
+                llamar a
+                <methodname>sendAutoCompletion()</methodname>
+                o a
+                <methodname>prepareAutoCompletion()</methodname>
+                , respectivamente.
+            </para>
+        </listitem>
     </itemizedlist>
 
-   <para>
-        Actualmente, <methodname>AutoComplete</methodname> soporta las bibliotecas  <acronym>AJAX</acronym> de
+    <para>
+        Actualmente,
+        <methodname>AutoComplete</methodname>
+        soporta las bibliotecas
+        <acronym>AJAX</acronym>
+        de
         Dojo y Scriptaculous.
-   </para>
+    </para>
 
     <sect4 id="zend.controller.actionhelpers.autocomplete.dojo">
         <title>AutoCompletado con Dojo</title>
 
-       <para>
+        <para>
             Dojo no tiene un widget de autocompletado per se, pero tiene dos
-            widgets que pueden ejecutar AutoCompletado: ComboBox y
-            FilteringSelect. En ambos casos, necesitan de un almacén de datos
+            widgets que pueden
+            ejecutar AutoCompletado: ComboBox y
+            FilteringSelect. En ambos casos, necesitan de un
+            almacén de datos
             que implemente QueryReadStore; para obtener más información sobre
-            estos temas, ver la documentación en
-            <ulink url="http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/data-retrieval-dojo-data-0">dojo.data</ulink>
-       </para>
-
-       <para>
+            estos
+            temas, ver la documentación en
+            <ulink
+                url="http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/data-retrieval-dojo-data-0"
+            >dojo.data</ulink>
+        </para>
+
+        <para>
             En Zend Framework, puede pasar un simple array indexado al ayudante
-            AutoCompleteDojo, y este regresará una adecuada respuesta <acronym>JSON</acronym>
+            AutoCompleteDojo, y
+            este regresará una adecuada respuesta
+            <acronym>JSON</acronym>
             para su uso como almacenamiento:
-       </para>
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 // dentro del controlador de acción:
 $this->_helper->autoCompleteDojo($data);
 ]]></programlisting>
@@ -145,26 +206,40 @@ $this->_helper->autoCompleteDojo($data);
         <example id="zend.controller.actionhelpers.autocomplete.dojo.example1">
             <title>AutoCompletion con Dojo Usando Zend MVC</title>
 
-           <para>
-                AutoCompletion con Dojo via Zend <acronym>MVC</acronym> requiere varias cosas:
+            <para>
+                AutoCompletion con Dojo via Zend
+                <acronym>MVC</acronym>
+                requiere varias cosas:
                 generar un objeto form para el ComboBox en el que usted quiere
                 AutoCompletado, un controlador de acción para prestar servicio
-                a los resultados de AutoCompletion, creando un QueryReadStore
-                personalizado para conectar a la acción AutoCompletion,
+                a los resultados de
+                AutoCompletion, creando un QueryReadStore
+                personalizado para conectar a la acción
+                AutoCompletion,
                 y la generación del Javascript a utilizar en la inicializción
-                de AutoCompletion del lado del servidor.
-           </para>
+                de
+                AutoCompletion del lado del servidor.
+            </para>
 
-           <para>
+            <para>
                 En primer lugar, veamos el Javascript necesario. Dojo ofrece
-                un marco completo para crear Javascript <acronym>OOP</acronym>, tal como lo hace
-                Zend Framework para <acronym>PHP</acronym>. Parte de eso es la capacidad de
-                crear pseudo-namespaces utilizando la jerarquía de directorios.
+                un marco completo para
+                crear Javascript
+                <acronym>OOP</acronym>
+                , tal como lo hace
+                Zend Framework para
+                <acronym>PHP</acronym>
+                . Parte de eso es la capacidad de
+                crear pseudo-namespaces utilizando la jerarquía de
+                directorios.
                 Crearemos un directorio 'custom' en el mismo nivel en el cual
-                el directorio de Dojo forma parte de la distribución Dojo.
-                Dentro del directorio, crearemos un archivo Javascript,
-                <filename>TestNameReadStore.js</filename>, con el siguiente contenido:
-           </para>
+                el
+                directorio de Dojo forma parte de la distribución Dojo.
+                Dentro del directorio,
+                crearemos un archivo Javascript,
+                <filename>TestNameReadStore.js</filename>
+                , con el siguiente contenido:
+            </para>
 
             <programlisting language="javascript"><![CDATA[
 dojo.provide("custom.TestNameReadStore");
@@ -176,19 +251,20 @@ dojo.declare("custom.TestNameReadStore", dojox.data.QueryReadStore, {
 });
 ]]></programlisting>
 
-           <para>
+            <para>
                 Esta clase es simplemente una extensión del propio
-                QueryReadStore de Dojo, que es de por sí misma una clase
+                QueryReadStore de Dojo, que es
+                de por sí misma una clase
                 abstracta. Simplemente definimos un método por el cual
                 realizamos la solicitud, y se le asigna al elemento 'test'.
            </para>
 
-           <para>
+            <para>
                 A continuación, vamos a crear el elemento form para el que
                 queremos AutoCompletion:
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 class TestController extends Zend_Controller_Action
 {
     protected $_form;
@@ -219,27 +295,38 @@ class TestController extends Zend_Controller_Action
 }
 ]]></programlisting>
 
-           <para>
+            <para>
                 Aquí, estamos simplemente creando un formulario con los métodos
-                'test' y 'go'. El método 'test' agrega varios atributos
-                especiales específicos de Dojo: dojoType, store, <emphasis>AutoComplete</emphasis>
+                'test' y 'go'. El
+                método 'test' agrega varios atributos
+                especiales específicos de Dojo: dojoType,
+                store,
+                <emphasis>AutoComplete</emphasis>
                 y hasDownArrow. El dojoType es utilizado para indicar que
-                estamos creando un ComboBox, y que vamos a vincularlo
-                a un almacén de datos (clave 'store') de 'testStore'
+                estamos creando un
+                ComboBox, y que vamos a vincularlo
+                a un almacén de datos (clave 'store') de
+                'testStore'
                 -- veremos más de esto más adelante.
-                Especificando '<emphasis>AutoComplete</emphasis>' como <constant>FALSE</constant> se le dice a Dojo que
+                Especificando '
+                <emphasis>AutoComplete</emphasis>
+                ' como
+                <constant>FALSE</constant>
+                se le dice a Dojo que
                 no seleccione automáticamente el primer acierto, sino mostrar
                 una lista de aciertos. Por último, 'hasDownArrow' crea una
-                flecha abajo similar a un select box para que podamos
+                flecha abajo similar a un
+                select box para que podamos
                 mostrar y ocultar los aciertos o concordancias.
-           </para>
+            </para>
 
-           <para>
+            <para>
                 Vamos a añadir un método para mostrar la forma, así como un
-                punto final para el procesamiento de AutoCompletion:
+                punto final para el
+                procesamiento de AutoCompletion:
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 class TestController extends Zend_Controller_Action
 {
     // ...
@@ -274,31 +361,45 @@ class TestController extends Zend_Controller_Action
 }
 ]]></programlisting>
 
-           <para>
-                En nuestro <methodname>autocompleteAction()</methodname> hacemos una serie
+            <para>
+                En nuestro
+                <methodname>autocompleteAction()</methodname>
+                hacemos una serie
                 de cosas. En primer lugar, esperamos a asegurarnos de que
-                tengamos una petición post, y que existe un parámetro 'form'
-                establecido al valor 'ajax'; esto es simplemente para ayudar a
+                tengamos
+                una petición post, y que existe un parámetro 'form'
+                establecido al valor 'ajax'; esto
+                es simplemente para ayudar a
                 reducir preguntas espúreas a la acción.
-                A continuación, vamos a comprobar el parámetro 'test', y
-                compararlo contra nuestros datos. (Yo deliberadamente dejé de
-                lado la implementación de <methodname>getData()</methodname> aquí --
+                A continuación,
+                vamos a comprobar el parámetro 'test', y
+                compararlo contra nuestros datos. (Yo
+                deliberadamente dejé de
+                lado la implementación de
+                <methodname>getData()</methodname>
+                aquí --
                 podría ser cualquier tipo de fuente de datos). Por último,
-                enviamos nuestros aciertos a nuestro ayudante AutoCompletion.
-           </para>
+                enviamos nuestros
+                aciertos a nuestro ayudante AutoCompletion.
+            </para>
 
-           <para>
+            <para>
                 Ahora que tenemos todas las piezas en el backend, veamos lo que
-                necesitamos para entregar en nuestro script de vista para la
+                necesitamos para
+                entregar en nuestro script de vista para la
                 página final.
-                En primer lugar, necesitamos configurar nuestro data store,
-                luego hacer nuestro formulario, y finalmente garantizar que
+                En primer lugar, necesitamos
+                configurar nuestro data store,
+                luego hacer nuestro formulario, y finalmente
+                garantizar que
                 las biblotecas Dojo apropiadas -- incluyendo que nuestro data
-                store personalizado -- estén cargadas.
-                Veamos el script de vista, el cual comenta los pasos:
+                store
+                personalizado -- estén cargadas.
+                Veamos el script de vista, el cual comenta los
+                pasos:
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 <?php // establecemos nuestro data store: ?>
 <div dojoType="custom.TestNameReadStore" jsId="testStore"
     url="<?php echo $this->baseUrl() ?>/unit-test/autocomplete/format/ajax"
@@ -331,13 +432,16 @@ dojo.require("custom.TestNameReadStore");
 <?php $this->headScript()->captureEnd()
 ]]></programlisting>
 
-           <para>
+            <para>
                 Note que las llamadas a los ayudantes de vista como headStyle
-                y headScript; son ubicadores, que podemos suministrar a la
-                sección 'head' del <acronym>HTML</acronym> de nuestro script de vista.
-           </para>
-
-           <para>
+                y headScript; son
+                ubicadores, que podemos suministrar a la
+                sección 'head' del
+                <acronym>HTML</acronym>
+                de nuestro script de vista.
+            </para>
+
+            <para>
                 Ahora tenemos todas las piezas para que el AutoCompletion
                 de Dojo pueda trabajar.
            </para>
@@ -346,19 +450,24 @@ dojo.require("custom.TestNameReadStore");
 
     <sect4 id="zend.controller.actionhelpers.autocomplete.scriptaculous">
         <title>AutoCompletion con Scriptaculous</title>
-       <para>
+        <para>
             <ulink url="http://wiki.script.aculo.us/scriptaculous/show/Ajax.Autocompleter">Scriptaculous</ulink>
-            espera una respuesta <acronym>HTML</acronym> en un formato específico.
-       </para>
+            espera una respuesta
+            <acronym>HTML</acronym>
+            en un formato específico.
+        </para>
 
-       <para>
+        <para>
             El ayudante para utilizar con esta biblioteca es
-            'AutoCompleteScriptaculous'. Simplemente proporcionarle un array de
-            datos, y el ayudante creará una respuesta <acronym>HTML</acronym> compatible con
+            'AutoCompleteScriptaculous'. Simplemente
+            proporcionarle un array de
+            datos, y el ayudante creará una respuesta
+            <acronym>HTML</acronym>
+            compatible con
             Ajax.Autocompleter.
-       </para>
+        </para>
     </sect4>
 </sect3>
-<!--
+    <!--
 vim:se ts=4 sw=4 et:
 -->

Dosya farkı çok büyük olduğundan ihmal edildi
+ 589 - 291
documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-ContextSwitch.xml


+ 32 - 18
documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-FlashMessenger.xml

@@ -1,39 +1,53 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16015 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16015 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.flashmessenger">
     <title>FlashMessenger</title>
 
     <sect4 id="zend.controller.actionhelper.flashmessenger.introduction">
         <title>Introducción</title>
-       <para>
-            El ayudante <emphasis>FlashMessenger</emphasis> le permite pasar mensajes
+        <para>
+            El ayudante
+            <emphasis>FlashMessenger</emphasis>
+            le permite pasar mensajes
             que el usuario puede querer ver en la próxima solicitud.
-            Para lograrlo, <emphasis>FlashMessenger</emphasis> usa
-            <classname>Zend_Session_Namespace</classname> para almacenar los
+            Para
+            lograrlo,
+            <emphasis>FlashMessenger</emphasis>
+            usa
+            <classname>Zend_Session_Namespace</classname>
+            para almacenar los
             mensajes para las futuras o próxima solicitud de recuperación.
-            Es una buena idea si planea utilizar
-            <classname>Zend_Session</classname> o
-            <classname>Zend_Session_Namespace</classname>, que inicializa con
-            <methodname>Zend_Session::start()</methodname> en su archivo
+            Es una
+            buena idea si planea utilizar
+            <classname>Zend_Session</classname>
+            o
+            <classname>Zend_Session_Namespace</classname>
+            , que inicializa con
+            <methodname>Zend_Session::start()</methodname>
+            en su archivo
             bootstrap. (Para más detalles de su uso vea la documentación en
-            <link linkend="zend.session.advanced_usage.starting_a_session">Zend_Session</link>).
-       </para>
+            <link linkend="zend.session.advanced_usage.starting_a_session">Zend_Session</link>
+            ).
+        </para>
 
     </sect4>
 
     <sect4 id="zend.controller.actionhelper.flashmessenger.basicusage">
         <title>Ejemplo Básico de Uso</title>
-       <para>
+        <para>
             El ejemplo de uso de abajo muestra el uso del flash messenger en
-            su forma más elemental. Cuando se llama la acción
-            <filename>/some/my</filename>, añade el mensaje de flash "Record Saved!".
+            su forma más elemental.
+            Cuando se llama la acción
+            <filename>/some/my</filename>
+            , añade el mensaje de flash "Record Saved!".
             Una solicitud posterior a la acción
-            <filename>/some/my-next-request</filename> lo recuperará (y entonces
+            <filename>/some/my-next-request</filename>
+            lo recuperará (y entonces
             también lo suprimirá).
-       </para>
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 class SomeController extends Zend_Controller_Action
 {
     /**

+ 113 - 60
documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-Json.xml

@@ -1,59 +1,85 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16503 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16503 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.json">
     <title>JSON</title>
 
-   <para>
-        Las respuestas  <acronym>JSON</acronym> se están convirtiendo en la respuesta de elección
-        cuando se trata de requerimientos <acronym>AJAX</acronym> que esperan recibir
-        respuestas datasets; en el lado del cliente,  <acronym>JSON</acronym> puede ser inmediatamente parseado y
+    <para>
+        Las respuestas
+        <acronym>JSON</acronym>
+        se están convirtiendo en la respuesta de elección
+        cuando se trata de requerimientos
+        <acronym>AJAX</acronym>
+        que esperan recibir
+        respuestas datasets; en el lado del cliente,
+        <acronym>JSON</acronym>
+        puede ser inmediatamente parseado y
         ejecutado rápidamente.
-   </para>
+    </para>
 
-   <para>
-        El ayudante de acción de  <acronym>JSON</acronym> hace varias cosas:
-   </para>
+    <para>
+        El ayudante de acción de
+        <acronym>JSON</acronym>
+        hace varias cosas:
+    </para>
 
     <itemizedlist>
-        <listitem><para>
+        <listitem>
+            <para>
                 Deshabilita los layouts si estuvieran habilitados.
-       </para></listitem>
+       </para>
+        </listitem>
 
         <listitem>
-           <para>
+            <para>
                 Opcionalmente, un array de opciones que pasar como segundo
-                argumento a <methodname>Zend_Json::encode()</methodname>.
+                argumento a
+                <methodname>Zend_Json::encode()</methodname>
+                .
                 Este array de opciones permite habilitar layouts y
-                codificación utilizando <classname>Zend_Json_Expr</classname>.
+                codificación utilizando
+                <classname>Zend_Json_Expr</classname>
+                .
             </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $this->_helper->json($data, array('enableJsonExprFinder' => true));
 ]]></programlisting>
         </listitem>
 
-        <listitem><para>
+        <listitem>
+            <para>
                 Desactiva la ViewRenderer si está actualmente habilitada.
-        </para></listitem>
+        </para>
+        </listitem>
 
-        <listitem><para>
-                Establece la cabecera de respuesta 'Content-Type' a '<filename>application/json</filename>'.
-        </para></listitem>
+        <listitem>
+            <para>
+                Establece la cabecera de respuesta 'Content-Type' a '
+                <filename>application/json</filename>
+                '.
+            </para>
+        </listitem>
 
-        <listitem><para>
+        <listitem>
+            <para>
                 Por defecto, devuelve inmediatamente la respuesta, sin esperar
-                a la acción para finalizar la ejecución.
-       </para></listitem>
+                a la acción para
+                finalizar la ejecución.
+       </para>
+        </listitem>
     </itemizedlist>
 
-   <para>
+    <para>
         El uso es simple: o bien llamarlo como un método del ayudante,
-        o llamar a uno de los métodos <methodname>encodeJson()</methodname> o
-        <methodname>sendJson()</methodname>:
-   </para>
-
-     <programlisting language="php"><![CDATA[
+        o llamar a uno de los métodos
+        <methodname>encodeJson()</methodname>
+        o
+        <methodname>sendJson()</methodname>
+        :
+    </para>
+
+    <programlisting language="php"><![CDATA[
 class FooController extends Zend_Controller_Action
 {
     public function barAction()
@@ -74,26 +100,38 @@ class FooController extends Zend_Controller_Action
     <note>
         <title>Conservando los Esquemas(Layouts)</title>
 
-       <para>
-            Si se tiene un esquema separado para respuestas de <acronym>JSON</acronym> --
-            quizás para envolver la respuesta de <acronym>JSON</acronym> en algún tipo de
-            contexto -- cada método en el ayudante <acronym>JSON</acronym> acepta un segundo
+        <para>
+            Si se tiene un esquema separado para respuestas de
+            <acronym>JSON</acronym>
+            --
+            quizás para envolver la respuesta de
+            <acronym>JSON</acronym>
+            en algún tipo de
+            contexto -- cada método en el ayudante
+            <acronym>JSON</acronym>
+            acepta un segundo
             argumento opcional: un flag para activar o desactivar layouts.
-            Pasando un valor booleano <constant>TRUE</constant> conservará los layouts
+            Pasando
+            un valor booleano
+            <constant>TRUE</constant>
+            conservará los layouts
             habilitados:
-       </para>
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $this->_helper->json($data, true);
 ]]></programlisting>
 
-       <para>
+        <para>
             Opcionalmente, puede pasar un array como el segundo parámetro.
-            Este array puede contener una variedad de opciones, incluida la
-            opción <methodname>keepLayouts</methodname>:
-       </para>
-
-         <programlisting language="php"><![CDATA[
+            Este array puede contener
+            una variedad de opciones, incluida la
+            opción
+            <methodname>keepLayouts</methodname>
+            :
+        </para>
+
+        <programlisting language="php"><![CDATA[
 $this->_helper->json($data, array('keepLayouts' => true);
 ]]></programlisting>
     </note>
@@ -101,26 +139,41 @@ $this->_helper->json($data, array('keepLayouts' => true);
     <note>
         <title>Habilitando la Codificación usando Zend_Json_Expr</title>
 
-       <para>
-            <methodname>Zend_Json::encode()</methodname> permite la codificación
-            de expresiones nativas de <acronym>JSON</acronym> utilizando objetos
-            <methodname>Zend_Json_Expr</methodname>. Esta opción está desactivada por
-            defecto. Para activar esta opción, pase un valor booleano
-            <constant>TRUE</constant> a la opción <methodname>enableJsonExprFinder</methodname>:
-       </para>
-
-         <programlisting language="php"><![CDATA[
+        <para>
+            <methodname>Zend_Json::encode()</methodname>
+            permite la codificación
+            de expresiones nativas de
+            <acronym>JSON</acronym>
+            utilizando objetos
+            <methodname>Zend_Json_Expr</methodname>
+            . Esta opción está desactivada por
+            defecto. Para activar esta opción, pase un valor
+            booleano
+            <constant>TRUE</constant>
+            a la opción
+            <methodname>enableJsonExprFinder</methodname>
+            :
+        </para>
+
+        <programlisting language="php"><![CDATA[
 $this->_helper->json($data, array('enableJsonExprFinder' => true);
 ]]></programlisting>
 
-       <para>
-            Si desea hacer esto, <emphasis>debe</emphasis> pasar un array
+        <para>
+            Si desea hacer esto,
+            <emphasis>debe</emphasis>
+            pasar un array
             como segundo argumento. Esto también le permite combinar otras
-            opciones, como la opción <emphasis>keepLayouts</emphasis>. Todas esas
-            opciones se pasan luego a <methodname>Zend_Json::encode()</methodname>.
-       </para>
-
-         <programlisting language="php"><![CDATA[
+            opciones,
+            como la opción
+            <emphasis>keepLayouts</emphasis>
+            . Todas esas
+            opciones se pasan luego a
+            <methodname>Zend_Json::encode()</methodname>
+            .
+        </para>
+
+        <programlisting language="php"><![CDATA[
 $this->_helper->json($data, array(
     'enableJsonExprFinder' => true,
     'keepLayouts'          => true,
@@ -128,6 +181,6 @@ $this->_helper->json($data, array(
 ]]></programlisting>
     </note>
 </sect3>
-<!--
+    <!--
 vim:se ts=4 sw=4 et:
 -->

+ 223 - 106
documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-Redirector.xml

@@ -1,146 +1,244 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17171 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17171 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.actionhelpers.redirector">
     <title>Redirector</title>
 
     <sect4 id="zend.controller.actionhelper.redirector.introduction">
         <title>Introducción</title>
 
-       <para>El ayudante <emphasis>Redirector</emphasis> le permite
+        <para>
+            El ayudante
+            <emphasis>Redirector</emphasis>
+            le permite
             utilizar un objeto de redireccionamiento para cumplir con
-            necesidades de su aplicación para redireccionar a una nueva
-            <acronym>URL</acronym>.
+            necesidades de su
+            aplicación para redireccionar a una nueva
+            <acronym>URL</acronym>
+            .
             Ofrece numerosas ventajas sobre el método
-                <methodname>_redirect()</methodname>, tales como poder
+            <methodname>_redirect()</methodname>
+            , tales como poder
             preconfigurar un comportamiento para todo el sitio en el objeto
-            redirector o usando el construido en <methodname>gotoSimple($action,
-                $controller, $module, $params)</methodname>, interfaz similar a
-            la de <methodname>Zend_Controller_Action::_forward()</methodname>.</para>
-
-       <para>El <emphasis>Redirector</emphasis> tiene un número de métodos
+            redirector o usando el construido en
+            <methodname>gotoSimple($action,
+                $controller, $module, $params)</methodname>
+            , interfaz similar a
+            la de
+            <methodname>Zend_Controller_Action::_forward()</methodname>
+            .
+        </para>
+
+        <para>
+            El
+            <emphasis>Redirector</emphasis>
+            tiene un número de métodos
             que pueden utilizarse para afectar el comportamiento al
-            redireccionar:</para>
+            redireccionar:
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>
-                    <methodname>setCode()</methodname> puede ser utilizado para
-                    establecer el código de respuesta <acronym>HTTP</acronym> que utilizar durante
-                    la redirección.</para>
+                <para>
+                    <methodname>setCode()</methodname>
+                    puede ser utilizado para
+                    establecer el código de respuesta
+                    <acronym>HTTP</acronym>
+                    que utilizar durante
+                    la redirección.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setExit()</methodname> puede usarse para forzar
-                    un <methodname>exit()</methodname> tras una redirección. Por
-                    defecto es verdadero ( <constant>TRUE</constant>).</para>
+                <para>
+                    <methodname>setExit()</methodname>
+                    puede usarse para forzar
+                    un
+                    <methodname>exit()</methodname>
+                    tras una redirección. Por
+                    defecto es verdadero (
+                    <constant>TRUE</constant>
+                    ).
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setGotoSimple()</methodname> puede ser utilizada
-                    para establecer la <acronym>URL</acronym> que usar por
+                <para>
+                    <methodname>setGotoSimple()</methodname>
+                    puede ser utilizada
+                    para establecer la
+                    <acronym>URL</acronym>
+                    que usar por
                     defecto si no se ha pasado ninguna a
-                        <methodname>gotoSimple()</methodname>. Utiliza la
-                        <acronym>API</acronym> de
-                        <methodname>Zend_Controller_Action::_forward()</methodname>:
+                    <methodname>gotoSimple()</methodname>
+                    . Utiliza la
+                    <acronym>API</acronym>
+                    de
+                    <methodname>Zend_Controller_Action::_forward()</methodname>
+                    :
                     setGotoSimple($action, $controller = null, $module = null,
-                    array $params = array());</para>
+                    array $params =
+                    array());
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setGotoRoute()</methodname> puede ser utilizada
-                    para establecer una <acronym>URL</acronym> basada en una
+                <para>
+                    <methodname>setGotoRoute()</methodname>
+                    puede ser utilizada
+                    para establecer una
+                    <acronym>URL</acronym>
+                    basada en una
                     ruta. Pasarla en un array de pares clave/valor y un nombre
-                    de ruta, y que ensamblarán la <acronym>URL</acronym> según
-                    la definición y el tipo de ruta.</para>
+                    de ruta,
+                    y que ensamblarán la
+                    <acronym>URL</acronym>
+                    según
+                    la definición y el tipo de ruta.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setGotoUrl()</methodname> puede ser utilizada
-                    para establecer una <acronym>URL</acronym> por defecto si no
-                    se pasa ninguna a <methodname>gotoUrl()</methodname>. Acepta
-                    un solo string <acronym>URL</acronym>.</para>
+                <para>
+                    <methodname>setGotoUrl()</methodname>
+                    puede ser utilizada
+                    para establecer una
+                    <acronym>URL</acronym>
+                    por defecto si no
+                    se pasa ninguna a
+                    <methodname>gotoUrl()</methodname>
+                    . Acepta
+                    un solo string
+                    <acronym>URL</acronym>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setPrependBase()</methodname> puede ser
-                    utilizada para anteponer la <acronym>URL</acronym> base del
-                    objeto solicitud a una <acronym>URL</acronym> especificada
-                    con <methodname>setGotoUrl()</methodname>,
-                        <methodname>gotoUrl()</methodname>, o
-                        <methodname>gotoUrlAndExit()</methodname>.</para>
+                <para>
+                    <methodname>setPrependBase()</methodname>
+                    puede ser
+                    utilizada para anteponer la
+                    <acronym>URL</acronym>
+                    base del
+                    objeto solicitud a una
+                    <acronym>URL</acronym>
+                    especificada
+                    con
+                    <methodname>setGotoUrl()</methodname>
+                    ,
+                    <methodname>gotoUrl()</methodname>
+                    , o
+                    <methodname>gotoUrlAndExit()</methodname>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setUseAbsoluteUri()</methodname> puede ser
-                    utilizada para forzar al <emphasis>Redirector</emphasis>
-                    a usar <acronym>URI</acronym>s absolutas cuando está redireccionando. Cuando se
-                    establece esta opción, se utiliza el valor de
-                    <varname>$_SERVER['HTTP_HOST']</varname>,
-                    <varname>$_SERVER['SERVER_PORT']</varname>, y
-                    <varname>$_SERVER['HTTPS']</varname> para formar
-                    una <acronym>URI</acronym> completa a la <acronym>URL</acronym> especificada
+                <para>
+                    <methodname>setUseAbsoluteUri()</methodname>
+                    puede ser
+                    utilizada para forzar al
+                    <emphasis>Redirector</emphasis>
+                    a usar
+                    <acronym>URI</acronym>
+                    s absolutas cuando está redireccionando. Cuando se
+                    establece esta opción, se
+                    utiliza el valor de
+                    <varname>$_SERVER['HTTP_HOST']</varname>
+                    ,
+                    <varname>$_SERVER['SERVER_PORT']</varname>
+                    , y
+                    <varname>$_SERVER['HTTPS']</varname>
+                    para formar
+                    una
+                    <acronym>URI</acronym>
+                    completa a la
+                    <acronym>URL</acronym>
+                    especificada
                     por uno de los métodos de redirección. Esta opción está
-                    desactivada por defecto, pero podrá ser activada por defecto
-                    en versiones posteriores.</para>
+                    desactivada
+                    por defecto, pero podrá ser activada por defecto
+                    en versiones posteriores.
+                </para>
             </listitem>
         </itemizedlist>
 
-       <para>Además, hay una variedad de métodos en el redireccionamiento para
-            realizar las redirecciones actuales:</para>
+        <para>Además, hay una variedad de métodos en el redireccionamiento para
+            realizar las
+            redirecciones actuales:</para>
 
         <itemizedlist>
             <listitem>
-               <para>
-                    <methodname>gotoSimple()</methodname> usa
-                        <methodname>setGotoSimple()</methodname>
-                        (<methodname>_forward()-tipo API</methodname>) para
-                    construir una <acronym>URL</acronym> y realizar un
-                    redireccionamiento.</para>
+                <para>
+                    <methodname>gotoSimple()</methodname>
+                    usa
+                    <methodname>setGotoSimple()</methodname>
+                    (
+                    <methodname>_forward()-tipo API</methodname>
+                    ) para
+                    construir una
+                    <acronym>URL</acronym>
+                    y realizar un
+                    redireccionamiento.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>gotoRoute()</methodname> usa
-                        <methodname>setGotoRoute()</methodname>
-                        (<methodname>route-assembly</methodname>) para construir
-                    una <acronym>URL</acronym> y realizar un redireccionamiento.
-               </para>
+                <para>
+                    <methodname>gotoRoute()</methodname>
+                    usa
+                    <methodname>setGotoRoute()</methodname>
+                    (
+                    <methodname>route-assembly</methodname>
+                    ) para construir
+                    una
+                    <acronym>URL</acronym>
+                    y realizar un redireccionamiento.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>gotoUrl()</methodname> usa
-                        <methodname>setGotoUrl()</methodname> (<methodname>URL
-                        string</methodname>) para construir una
-                        <acronym>URL</acronym> y realizar un redireccionamiento.
-               </para>
+                <para>
+                    <methodname>gotoUrl()</methodname>
+                    usa
+                    <methodname>setGotoUrl()</methodname>
+                    (
+                    <methodname>URL
+                        string</methodname>
+                    ) para construir una
+                    <acronym>URL</acronym>
+                    y realizar un redireccionamiento.
+                </para>
             </listitem>
         </itemizedlist>
 
-       <para>Por último, usted puede determinar la redirección actual de la
-                <acronym>URL</acronym> en cualquier momento usando
-                <methodname>getRedirectUrl()</methodname>.</para>
+        <para>
+            Por último, usted puede determinar la redirección actual de la
+            <acronym>URL</acronym>
+            en cualquier momento usando
+            <methodname>getRedirectUrl()</methodname>
+            .
+        </para>
     </sect4>
 
     <sect4 id="zend.controller.actionhelper.redirector.basicusage">
         <title>Ejemplos Básicos de Uso</title>
 
-        <example
-            id="zend.controller.actionhelper.redirector.basicusage.example-1">
+        <example id="zend.controller.actionhelper.redirector.basicusage.example-1">
             <title>Estableciendo Opciones</title>
 
-           <para>Este ejemplo anula varias opciones, incluido el
-                establecimiento del código de estado <acronym>HTTP</acronym>
+            <para>
+                Este ejemplo anula varias opciones, incluido el
+                establecimiento del código de estado
+                <acronym>HTTP</acronym>
                 para usar en la redirección ('303'), no saliendo por defecto en
-                la redirección, y definir una <acronym>URL</acronym> a usar por
-                defecto cuando se redireccione.</para>
+                la redirección, y
+                definir una
+                <acronym>URL</acronym>
+                a usar por
+                defecto cuando se redireccione.
+            </para>
 
             <programlisting language="php"><![CDATA[
 class SomeController extends Zend_Controller_Action
@@ -179,13 +277,16 @@ class SomeController extends Zend_Controller_Action
 ]]></programlisting>
         </example>
 
-        <example
-            id="zend.controller.actionhelper.redirector.basicusage.example-2">
+        <example id="zend.controller.actionhelper.redirector.basicusage.example-2">
             <title>Usando Defaults</title>
 
-           <para>Este ejemplo asume que se usan los valores predeterminados,
-                lo que significa que cualquier redirección resultará en un
-                    <methodname>exit()</methodname> inmediato.</para>
+            <para>
+                Este ejemplo asume que se usan los valores predeterminados,
+                lo que significa que
+                cualquier redirección resultará en un
+                <methodname>exit()</methodname>
+                inmediato.
+            </para>
 
             <programlisting language="php"><![CDATA[
 // EJEMPLO ALTERNATIVO
@@ -215,19 +316,26 @@ class AlternativeController extends Zend_Controller_Action
 ]]></programlisting>
         </example>
 
-        <example
-            id="zend.controller.actionhelper.redirector.basicusage.example-3">
+        <example id="zend.controller.actionhelper.redirector.basicusage.example-3">
             <title>Usando la API _forward() de goto()</title>
 
-           <para>La <acronym>API</acronym>
-                <methodname>gotoSimple()</methodname> imita a la de
-                    <methodname>Zend_Controller_Action::_forward()</methodname>.
+            <para>
+                La
+                <acronym>API</acronym>
+                <methodname>gotoSimple()</methodname>
+                imita a la de
+                <methodname>Zend_Controller_Action::_forward()</methodname>
+                .
                 La diferencia principal es que construye una
-                    <acronym>URL</acronym> desde los parámetros pasados, y
+                <acronym>URL</acronym>
+                desde los parámetros pasados, y
                 utiliza el formato por defecto
-                    <methodname>:module/:controller/:action/*</methodname> del
+                <methodname>:module/:controller/:action/*</methodname>
+                del
                 enrutador predeterminado. A continuación se redirecciona en
-                lugar de encadenar la acción.</para>
+                lugar de encadenar la
+                acción.
+            </para>
 
             <programlisting language="php"><![CDATA[
 class ForwardController extends Zend_Controller_Action
@@ -262,15 +370,19 @@ class ForwardController extends Zend_Controller_Action
 ]]></programlisting>
         </example>
 
-        <example
-            id="zend.controller.actionhelper.redirector.basicusage.example-4">
+        <example id="zend.controller.actionhelper.redirector.basicusage.example-4">
             <title>Usando Ruta de Ensamblaje con gotoRoute()</title>
 
-           <para>El siguiente ejemplo usa el método
-                    <methodname>assemble()</methodname> del <link
-                    linkend="zend.controller.router">enrutador</link> para crear
+            <para>
+                El siguiente ejemplo usa el método
+                <methodname>assemble()</methodname>
+                del
+                <link linkend="zend.controller.router">enrutador</link>
+                para crear
                 una URL basada en un array asociativo de parámetros pasados. Se
-                supone que la siguiente ruta ha sido registrada:</para>
+                supone que
+                la siguiente ruta ha sido registrada:
+            </para>
 
             <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
@@ -282,9 +394,14 @@ $route = new Zend_Controller_Router_Route(
 $router->addRoute('blogArchive', $route);
 ]]></programlisting>
 
-           <para>Dado un array con el año fijado a 2006, mes a 4, día a 24, e
-                id a 42, entonces construye la siguiente <acronym>URL</acronym>
-                <filename>/blog/2006/4/24/42</filename>.</para>
+            <para>
+                Dado un array con el año fijado a 2006, mes a 4, día a 24, e
+                id a 42, entonces
+                construye la siguiente
+                <acronym>URL</acronym>
+                <filename>/blog/2006/4/24/42</filename>
+                .
+            </para>
 
             <programlisting language="php"><![CDATA[
 class BlogAdminController extends Zend_Controller_Action

Dosya farkı çok büyük olduğundan ihmal edildi
+ 556 - 271
documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-ViewRenderer.xml


+ 261 - 195
documentation/manual/es/module_specs/Zend_Controller-Basics.xml

@@ -1,227 +1,293 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17136 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17136 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.controller.basics">
     <title>Conceptos Básicos de Zend_Controller</title>
 
-   <para>
-        El sistema <classname>Zend_Controller</classname> está diseñado para
+    <para>
+        El sistema
+        <classname>Zend_Controller</classname>
+        está diseñado para
         ser liviano, modular y extensible. Se trata de un diseño minimalista
-        para permitir flexibilidad y cierta libertad para los usuarios
-        proporcionando al mismo tiempo una estructura suficiente para que sistemas
-        construidos alrededor de <classname>Zend_Controller</classname>
+        para
+        permitir flexibilidad y cierta libertad para los usuarios
+        proporcionando al mismo tiempo una
+        estructura suficiente para que sistemas
+        construidos alrededor de
+        <classname>Zend_Controller</classname>
         compartan algunas convenciones y layouts de código similares.
-   </para>
+    </para>
 
-   <para>
+    <para>
         El siguiente diagrama muestra el flujo de trabajo, y la narrativa
-        que le sigue describe en detalle las interacciones:
+        que le sigue describe en
+        detalle las interacciones:
    </para>
 
-   <para>
+    <para>
         <inlinegraphic width="483" scale="100" align="center" valign="middle"
-            fileref="figures/zend.controller.basics.png" format="PNG" />
-   </para>
+            fileref="figures/zend.controller.basics.png" format="PNG"/>
+    </para>
 
-   <para>
-        El flujo de procesos de <classname>Zend_Controller</classname> está implementado
+    <para>
+        El flujo de procesos de
+        <classname>Zend_Controller</classname>
+        está implementado
         por varios componentes. Si bien no es necesario entender los cimientos
-        de todos estos componentes para utilizar el sistema, tener un
-        conocimiento práctico del proceso es de mucha utilidad.
-   </para>
+        de
+        todos estos componentes para utilizar el sistema, tener un
+        conocimiento práctico del proceso
+        es de mucha utilidad.
+    </para>
 
-        <itemizedlist>
-            <listitem>
-               <para>
-                    <classname>Zend_Controller_Front</classname> organiza todo
-                    el flujo de trabajo del sistema <classname>Zend_Controller</classname>.
-                    Es una interpretación del patrón FrontController.
-                    <classname>Zend_Controller_Front</classname> procesa todas
-                    las solicitudes recibidas por el servidor y es responsable
-                    en última instancia de la delegación de las solicitudes  a los
-                    ActionControllers
-                    (<classname>Zend_Controller_Action</classname>).
-               </para>
-            </listitem>
-
-            <listitem>
-               <para>
-                    <classname>Zend_Controller_Request_Abstract</classname> (a
-                    menudo denominado <emphasis>Request Object</emphasis>) representa
-                    el entorno de la solicitud y ofrece métodos para
-                    establecer y recuperar el controlador, los nombres de las
-                    acciones y cualquier parámetro de solicitud. Además realiza un seguimiento
-                    de si la acción que contiene ha sido enviada o no
-                    por <classname>Zend_Controller_Dispatcher</classname>.
-                    Se pueden usar extensiones del objeto abstracto para
-                    encapsular toda el entorno de la solicitud,
-                    permitiendo a los routers traer información del ámbito
-                    de la solicitud a fin de establecer el controlador
-                    y los nombres de acción.
-               </para>
-
-               <para>
-                    Por defecto, se usa
-                    <classname>Zend_Controller_Request_Http</classname>, el cual
-                    proporciona acceso a todo el ámbito de la petición
-                    <acronym>HTTP</acronym>.
-               </para>
-            </listitem>
-
-            <listitem>
-               <para>
-                    <classname>Zend_Controller_Router_Interface</classname>
-                    se usa para definir routers. El ruteo es el proceso de
-                    examinar el ámbito de la solicitud para determinar
-                    qué controlador, y qué acción del controlador debe recibir
-                    la solicitud. Este controlador, la acción, y los parámetros
-                    opcionales son luego establecidos en el objeto de la  solicitud
-                    para ser procesados por
-                    <classname>Zend_Controller_Dispatcher_Standard</classname>.
-                    El ruteo (routing) ocurre sólo una vez: cuando la solicitud
-                    se recibe inicialmente y antes de enviar el primer
-                    controlador.
-               </para>
-
-               <para>
-                    El router por defecto,
-                    <classname>Zend_Controller_Router_Rewrite</classname>,
-                    toma el punto final de una <acronym>URI</acronym> como se especificó en
-                    <classname>Zend_Controller_Request_Http</classname>
-                    y la descompone en un controlador, una acción y parámetros,
-                    basándose en la información de la ruta del url.
-                    Como ejemplo, la <acronym>URL</acronym>
-                    <filename>http://localhost/foo/bar/key/value</filename> se
-                    decodificará para usar el controlador <emphasis>foo</emphasis>,
-                    la acción <emphasis>bar</emphasis> y especificar un parámetro
-                    <emphasis>key</emphasis> con el valor de <emphasis>value</emphasis>.
-               </para>
-
-               <para>
-                    <classname>Zend_Controller_Router_Rewrite</classname>
-                    también puede ser utilizado para igualar las rutas arbitrarios;
-                    para más información, ver <link
-                        linkend="zend.controller.router">documentación
-                        del router</link>.
-               </para>
-            </listitem>
-
-            <listitem>
-               <para>
-                    <classname>Zend_Controller_Dispatcher_Interface</classname>
-                    se usa para definir dispatchers. Dispatching (Despachar) es el proceso
-                    de sacar el controlador y la acción del objeto que solicita y
-                    mapearlo a un controlador archivo (o clase) y al método acción
-                    en la clase del controlador. Si el controlador o acción no
-                    existen, hará un manejo para determinar los controladores
-                    por defecto y las acciones a enviar.
-               </para>
-
-               <para>
-                    El proceso actual de dispatching(despacho) consta de instanciar la
-                    clase del controlador y llamar al método acción en esa
-                    clase. A diferencia del routing, que ocurre sólo una vez,
-                    el dispatching(despacho) ocurre en un bucle. Si el estado del objeto que
-                    que envía la solicita es reseteado en cualquier punto,
-                    el bucle se repetirá, llamando a cualquier acción que esté
-                    actualmente establecida en la solicitud del objeto.
-                    La primera vez el bucle termina con la solicitud del objeto,
-                    el estado de lo enviado se establece a (<type>Boolean</type> <constant>TRUE</constant>),
-                    que terminará el procesamiento.
-               </para>
-
-               <para>
-                    El dispatcher por defecto es
-                    <classname>Zend_Controller_Dispatcher_Standard</classname>.
-                    Se definen como controladores MixedCasedClasses cuando
-                    terminan en la palabra Controller, y los métodos de acción
-                    como camelCasedMethods cuando terminan en la palabra Action:
-                    <methodname>FooController::barAction()</methodname>. En este caso,
-                    el controlador será referido como <emphasis>foo</emphasis> y a la
-                    acción como <emphasis>bar</emphasis>.
-               </para>
-
-                <note>
-                    <title>Convenciones para Case Naming (Casos de Nombre)</title>
-
-                   <para>
-                        Dado que los humanos somos notablemente inconsistentes
-                        en mantener cierta sensibilidad respecto a las
-                        minúsculas y mayúsculas al escribir enlaces,
-                        Zend Framework realmente normaliza la información de la
-                       ruta a minúsculas. Esto, por supuesto, afectará cómo
-                        nombre a su controlador y a sus acciones... o referirse
-                        a ellos en los enlaces.
-                   </para>
+    <itemizedlist>
+        <listitem>
+            <para>
+                <classname>Zend_Controller_Front</classname>
+                organiza todo
+                el flujo de trabajo del sistema
+                <classname>Zend_Controller</classname>
+                .
+                Es una interpretación del patrón FrontController.
+                <classname>Zend_Controller_Front</classname>
+                procesa todas
+                las solicitudes recibidas por el servidor y es responsable
+                en última instancia de la delegación de las solicitudes a los
+                ActionControllers
+                (
+                <classname>Zend_Controller_Action</classname>
+                ).
+            </para>
+        </listitem>
 
-                   <para>
-                        Si desea que su clase controlador o el nombre del
-                        método de la acción tenga múltiples MixedCasedWords o
-                        camelCasedWords, para separar las palabras en la <acronym>URL</acronym>
-                        necesitará hacerlo con un '-' o '.' (aunque puede
-                        configurar el carácter utilizado).
-                   </para>
+        <listitem>
+            <para>
+                <classname>Zend_Controller_Request_Abstract</classname>
+                (a
+                menudo denominado
+                <emphasis>Request Object</emphasis>
+                ) representa
+                el entorno de la solicitud y ofrece métodos para
+                establecer y recuperar el controlador, los nombres de las
+                acciones y cualquier parámetro de solicitud. Además realiza un seguimiento
+                de si la acción que contiene ha sido enviada o no
+                por
+                <classname>Zend_Controller_Dispatcher</classname>
+                .
+                Se pueden usar extensiones del objeto abstracto para
+                encapsular toda el entorno de la solicitud,
+                permitiendo a los routers traer información del ámbito
+                de la solicitud a fin de establecer el controlador
+                y los nombres de acción.
+            </para>
+
+            <para>
+                Por defecto, se usa
+                <classname>Zend_Controller_Request_Http</classname>
+                , el cual
+                proporciona acceso a todo el ámbito de la petición
+                <acronym>HTTP</acronym>
+                .
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <classname>Zend_Controller_Router_Interface</classname>
+                se usa para definir routers. El ruteo es el proceso de
+                examinar el ámbito de la solicitud para determinar
+                qué controlador, y qué acción del controlador debe recibir
+                la solicitud. Este controlador, la acción, y los parámetros
+                opcionales son luego establecidos en el objeto de la solicitud
+                para ser procesados por
+                <classname>Zend_Controller_Dispatcher_Standard</classname>
+                .
+                El ruteo (routing) ocurre sólo una vez: cuando la solicitud
+                se recibe inicialmente y antes de enviar el primer
+                controlador.
+            </para>
+
+            <para>
+                El router por defecto,
+                <classname>Zend_Controller_Router_Rewrite</classname>
+                ,
+                toma el punto final de una
+                <acronym>URI</acronym>
+                como se especificó en
+                <classname>Zend_Controller_Request_Http</classname>
+                y la descompone en un controlador, una acción y parámetros,
+                basándose en la información de la ruta del url.
+                Como ejemplo, la
+                <acronym>URL</acronym>
+                <filename>http://localhost/foo/bar/key/value</filename>
+                se
+                decodificará para usar el controlador
+                <emphasis>foo</emphasis>
+                ,
+                la acción
+                <emphasis>bar</emphasis>
+                y especificar un parámetro
+                <emphasis>key</emphasis>
+                con el valor de
+                <emphasis>value</emphasis>
+                .
+            </para>
+
+            <para>
+                <classname>Zend_Controller_Router_Rewrite</classname>
+                también puede ser utilizado para igualar las rutas arbitrarios;
+                para más información, ver
+                <link linkend="zend.controller.router">documentación
+                    del router</link>
+                .
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <classname>Zend_Controller_Dispatcher_Interface</classname>
+                se usa para definir dispatchers. Dispatching (Despachar) es el proceso
+                de sacar el controlador y la acción del objeto que solicita y
+                mapearlo a un controlador archivo (o clase) y al método acción
+                en la clase del controlador. Si el controlador o acción no
+                existen, hará un manejo para determinar los controladores
+                por defecto y las acciones a enviar.
+            </para>
+
+            <para>
+                El proceso actual de dispatching(despacho) consta de instanciar la
+                clase del controlador y llamar al método acción en esa
+                clase. A diferencia del routing, que ocurre sólo una vez,
+                el dispatching(despacho) ocurre en un bucle. Si el estado del objeto que
+                que envía la solicita es reseteado en cualquier punto,
+                el bucle se repetirá, llamando a cualquier acción que esté
+                actualmente establecida en la solicitud del objeto.
+                La primera vez el bucle termina con la solicitud del objeto,
+                el estado de lo enviado se establece a (
+                <type>Boolean</type>
+                <constant>TRUE</constant>
+                ),
+                que terminará el procesamiento.
+            </para>
 
-                   <para>
-                        Como ejemplo, si se va a la acción en
-                        <methodname>FooBarController::bazBatAction()</methodname>,
-                        se referirá a ella en la <acronym>URL</acronym> como
-                        <filename>/foo-bar/baz-bat</filename>
-                        o <filename>/foo.bar/baz.bat</filename>.
+            <para>
+                El dispatcher por defecto es
+                <classname>Zend_Controller_Dispatcher_Standard</classname>
+                .
+                Se definen como controladores MixedCasedClasses cuando
+                terminan en la palabra Controller, y los métodos de acción
+                como camelCasedMethods cuando terminan en la palabra Action:
+                <methodname>FooController::barAction()</methodname>
+                . En este caso,
+                el controlador será referido como
+                <emphasis>foo</emphasis>
+                y a la
+                acción como
+                <emphasis>bar</emphasis>
+                .
+            </para>
+
+            <note>
+                <title>Convenciones para Case Naming (Casos de Nombre)</title>
+
+                <para>
+                    Dado que los humanos somos notablemente inconsistentes
+                    en mantener cierta sensibilidad respecto a las
+                    minúsculas y mayúsculas al escribir enlaces,
+                    Zend Framework realmente normaliza la información de la
+                    ruta a minúsculas. Esto, por supuesto, afectará cómo
+                    nombre a su controlador y a sus acciones... o referirse
+                    a ellos en los enlaces.
                    </para>
-                </note>
-            </listitem>
-
-            <listitem>
-               <para>
-                    <classname>Zend_Controller_Action</classname>
-                    es el componente base del controlador de acción.
-                    Cada controlador es una sola clase que extiende la
-                    <classname>clase Zend_Controller_Action </classname>
-                    y debe contener uno o más métodos de acción.
-               </para>
-            </listitem>
-
-            <listitem>
-               <para>
-                    <classname>Zend_Controller_Response_Abstract</classname>
-                    define una clase base de respuesta utilizada para recoger y
-                    retornar respuestas de los controladores de acción.
-                    Recoge tanto a las cabeceras como al contenido del cuerpo.
-               </para>
-
-               <para>
-                    La clase de respuesta (response) por defecto es
-                    <classname>Zend_Controller_Response_Http</classname>,
-                    la cual es adecuada para usarla en un entorno <acronym>HTTP</acronym>.
-               </para>
-            </listitem>
-        </itemizedlist>
-
-   <para>
-        El flujo de procesos de <classname>Zend_Controller</classname> es relativamente
+
+                <para>
+                    Si desea que su clase controlador o el nombre del
+                    método de la acción tenga múltiples MixedCasedWords o
+                    camelCasedWords, para separar las palabras en la
+                    <acronym>URL</acronym>
+                    necesitará hacerlo con un '-' o '.' (aunque puede
+                    configurar el carácter utilizado).
+                </para>
+
+                <para>
+                    Como ejemplo, si se va a la acción en
+                    <methodname>FooBarController::bazBatAction()</methodname>
+                    ,
+                    se referirá a ella en la
+                    <acronym>URL</acronym>
+                    como
+                    <filename>/foo-bar/baz-bat</filename>
+                    o
+                    <filename>/foo.bar/baz.bat</filename>
+                    .
+                </para>
+            </note>
+        </listitem>
+
+        <listitem>
+            <para>
+                <classname>Zend_Controller_Action</classname>
+                es el componente base del controlador de acción.
+                Cada controlador es una sola clase que extiende la
+                <classname>clase Zend_Controller_Action </classname>
+                y debe contener uno o más métodos de acción.
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <classname>Zend_Controller_Response_Abstract</classname>
+                define una clase base de respuesta utilizada para recoger y
+                retornar respuestas de los controladores de acción.
+                Recoge tanto a las cabeceras como al contenido del cuerpo.
+            </para>
+
+            <para>
+                La clase de respuesta (response) por defecto es
+                <classname>Zend_Controller_Response_Http</classname>
+                ,
+                la cual es adecuada para usarla en un entorno
+                <acronym>HTTP</acronym>
+                .
+            </para>
+        </listitem>
+    </itemizedlist>
+
+    <para>
+        El flujo de procesos de
+        <classname>Zend_Controller</classname>
+        es relativamente
         sencillo. Una solicitud es recibida por
-        <classname>Zend_Controller_Front</classname>, la que a su vez llama a
+        <classname>Zend_Controller_Front</classname>
+        , la que a su vez llama a
         <classname>Zend_Controller_Router_Rewrite</classname>
         para determinar qué controlador (y la acción en ese controlador)
         despachar.
         <classname>Zend_Controller_Router_Rewrite</classname>
-        descompone la <acronym>URI</acronym> a fin de establecer el controlador y el nombre de
+        descompone la
+        <acronym>URI</acronym>
+        a fin de establecer el controlador y el nombre de
         acción en la solicitud.
         <classname>Zend_Controller_Front</classname>
         entonces entra al bucle del dispatch. Llama a
-        <classname>Zend_Controller_Dispatcher_Standard</classname>,
+        <classname>Zend_Controller_Dispatcher_Standard</classname>
+        ,
         el que pasa la solicitud para enviar al controlador y a la acción
-        especificada en la solicitud (o el usado por defecto).
-        Después de que el controlador ha terminado, el control vuelve a
-        <classname>Zend_Controller_Front</classname>.
+        especificada en la
+        solicitud (o el usado por defecto).
+        Después de que el controlador ha terminado, el control
+        vuelve a
+        <classname>Zend_Controller_Front</classname>
+        .
         Si el controlador ha indicado que debe enviarse otro controlador
-        mediante el reinicio del estado de la condición  de la solicitud,
+        mediante el reinicio del
+        estado de la condición de la solicitud,
         el bucle continúa y se ejecuta otro envio.
-        En caso contrario el proceso termina.
-   </para>
+        En caso
+        contrario el proceso termina.
+    </para>
 </sect1>
 
-<!--
+    <!--
 vim:se ts=4 sw=4 et:
 -->

+ 100 - 59
documentation/manual/es/module_specs/Zend_Controller-Dispatcher.xml

@@ -1,44 +1,62 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16658 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16658 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.controller.dispatcher">
     <title>El Despachador</title>
 
     <sect2 id="zend.controller.dispatcher.overview">
         <title>Introducción</title>
 
-       <para>
+        <para>
             Despachar es el proceso de tomar el objeto solicitud,
-            <classname>Zend_Controller_Request_Abstract</classname>,
+            <classname>Zend_Controller_Request_Abstract</classname>
+            ,
             extraer el nombre del módulo, el nombre del controlador, el nombre
-            de la acción, y los parámetros opcionales contenido en él, y luego
-            instanciar un controlador y llamar una acción de ese controlador.
-            Si no se encuentra algún módulo, controlador o acción, se usarán
+            de la acción, y los
+            parámetros opcionales contenido en él, y luego
+            instanciar un controlador y llamar una
+            acción de ese controlador.
+            Si no se encuentra algún módulo, controlador o acción, se
+            usarán
             los valores por defecto para ellos.
             <classname>Zend_Controller_Dispatcher_Standard</classname>
-            especifica <emphasis>index</emphasis> para cada uno de los controladores y
-            acciones por defecto y <emphasis>default</emphasis> para el valor por
+            especifica
+            <emphasis>index</emphasis>
+            para cada uno de los controladores y
+            acciones por defecto y
+            <emphasis>default</emphasis>
+            para el valor por
             defecto del módulo, pero permite al desarrollador cambiar los
-            valores por defecto para cada uno usando los métodos
-            <methodname>setDefaultController()</methodname>,
-            <methodname>setDefaultAction()</methodname>, y <methodname>setDefaultModule()</methodname>
+            valores
+            por defecto para cada uno usando los métodos
+            <methodname>setDefaultController()</methodname>
+            ,
+            <methodname>setDefaultAction()</methodname>
+            , y
+            <methodname>setDefaultModule()</methodname>
             respectivamente.
-       </para>
+        </para>
 
         <note>
             <title>Módulo por Defecto</title>
 
-           <para>
+            <para>
                 Cuando se crean aplicaciones modulares, puede encontrarse
-                queriendo también el namespace por defecto del módulo (la
-                configuración por defecto es que el módulo por defecto es
-                <emphasis>no</emphasis> namespaced).
+                queriendo también el
+                namespace por defecto del módulo (la
+                configuración por defecto es que el módulo por
+                defecto es
+                <emphasis>no</emphasis>
+                namespaced).
                 Como de 1.5.0, ahora puede hacerlo especificando el
-                <methodname>prefixDefaultModule</methodname> como <constant>TRUE</constant> tanto en el
+                <methodname>prefixDefaultModule</methodname>
+                como
+                <constant>TRUE</constant>
+                tanto en el
                 front controller como es su despachador:
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 // En su front controller:
 $front->setParam('prefixDefaultModule', true);
 
@@ -46,40 +64,50 @@ $front->setParam('prefixDefaultModule', true);
 $dispatcher->setParam('prefixDefaultModule', true);
 ]]></programlisting>
 
-           <para>
+            <para>
                 Esto le permite re-determinar un módulo existente para ser el
-                módulo por defecto para una solicitud.
+                módulo por defecto
+                para una solicitud.
            </para>
         </note>
 
-       <para>
+        <para>
             El proceso de despachar tiene lugar en un bucle en el front controller.
-            Antes de llevarse a cabo el despacho, el front controller rutea la
-            solicitud para encontrar valores especificados por el usuario para
-            el módulo, controlador, acción, y los parámetros opcionales.
+            Antes de
+            llevarse a cabo el despacho, el front controller rutea la
+            solicitud para encontrar
+            valores especificados por el usuario para
+            el módulo, controlador, acción, y los
+            parámetros opcionales.
             A continuación entra en un loop de despacho, despachando la
             solicitud.
        </para>
 
-       <para>
+        <para>
             Al comienzo de cada iteración, establece un flag en el objeto
-            solicitud indicando que la acción se ha despachado.
-            Si una acción o un plugin pre o postDispatch resetea ese flag,
+            solicitud indicando que
+            la acción se ha despachado.
+            Si una acción o un plugin pre o postDispatch resetea ese
+            flag,
             el loop de despacho continuará e intentará despachar la nueva
-            solicitud. Cambiando el controlador y/o la acción en la solicitud y
-            reseteando el flag despachado, el desarrollador puede definir
+            solicitud. Cambiando
+            el controlador y/o la acción en la solicitud y
+            reseteando el flag despachado, el
+            desarrollador puede definir
             una cadena de peticiones a realizar.
        </para>
 
-       <para>
+        <para>
             El método del controlador de acción que controla ese despacho es
-            <methodname>_forward()</methodname>; llamar a este método para cualquiera de los
-            pre/postDispatch() o métodos de acción, proporcionando un
+            <methodname>_forward()</methodname>
+            ; llamar a este método para cualquiera de los
+            pre/postDispatch() o métodos de acción,
+            proporcionando un
             controlador de acciónes, módulo y, opcionalmente cualquier parámetro
             adicional que desee enviar a la nueva acción:
-       </para>
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 public function fooAction()
 {
     // adelantar a otra acción en el controlador y módulo actuales:
@@ -106,29 +134,38 @@ public function bazAction()
     <sect2 id="zend.controller.dispatcher.subclassing">
         <title>Subclaseando el Despachador</title>
 
-       <para>
-            <classname>Zend_Controller_Front</classname> llamará en primer lugar
+        <para>
+            <classname>Zend_Controller_Front</classname>
+            llamará en primer lugar
             al router para determinar la primera acción en la solicitud.
-            A continuación se entra en un loop de despacho, el cual llama al
-            despachador para despachar la acción.
-       </para>
+            A
+            continuación se entra en un loop de despacho, el cual llama al
+            despachador para despachar
+            la acción.
+        </para>
 
-       <para>
+        <para>
             El despachador necesita de una variedad de datos a fin de hacer su
-            trabajo - necesita saber cómo formatear los nombres del controlador
-            y de la acción, dónde mirar para los archivos de clase del
+            trabajo - necesita
+            saber cómo formatear los nombres del controlador
+            y de la acción, dónde mirar para los
+            archivos de clase del
             controlador, cuándo el nombre de un controlador provisto es válido
-            o no, y una <acronym>API</acronym> para determinar si una determinada solicitud es
-            incluso despachable basado en la otra información disponible.
-       </para>
-
-       <para>
+            o no, y una
+            <acronym>API</acronym>
+            para determinar si una determinada solicitud es
+            incluso despachable basado en la otra
+            información disponible.
+        </para>
+
+        <para>
             <classname>Zend_Controller_Dispatcher_Interface</classname>
             define los siguientes métodos como necesarios para cualquier
-            implementación de un despachador:
-       </para>
+            implementación de un
+            despachador:
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 interface Zend_Controller_Dispatcher_Interface
 {
     /**
@@ -284,24 +321,28 @@ interface Zend_Controller_Dispatcher_Interface
 }
 ]]></programlisting>
 
-       <para>
+        <para>
             En muchos casos, sin embargo, simplemente debe extender la clase
-            abstracta <classname>Zend_Controller_Dispatcher_Abstract</classname>,
+            abstracta
+            <classname>Zend_Controller_Dispatcher_Abstract</classname>
+            ,
             en el que cada uno de estas ya han sido definidas, o
             <classname>Zend_Controller_Dispatcher_Standard</classname>
             para modificar la funcionalidad del despachador estándar.
-       </para>
+        </para>
 
-       <para>
+        <para>
             Las posibles razones para subclasear al despachador incluye un
-            deseo de utilizar un esquema diferente para nombrar las clases o
-            métodos en sus controladores de acción, o el deseo de utilizar otro
+            deseo de utilizar un
+            esquema diferente para nombrar las clases o
+            métodos en sus controladores de acción, o el
+            deseo de utilizar otro
             paradigma de despacho como ser despachar los archivos de acción
             bajo directorios de controladores (en lugar de despacharlos a los
             métodos de clase).
        </para>
     </sect2>
 </sect1>
-<!--
+    <!--
 vim:se ts=4 sw=4 et:
 -->

+ 230 - 124
documentation/manual/es/module_specs/Zend_Controller-Exceptions.xml

@@ -1,75 +1,103 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17593 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17593 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.controller.exceptions">
     <title>Excepciones MVC</title>
 
     <sect2 id="zend.controller.exceptions.introduction">
         <title>Introducción</title>
 
-       <para>Los componentes <acronym>MVC</acronym> en Zend Framework utilizan
-            un Front Controller, lo que significa que todas las solicitudes de
+        <para>
+            Los componentes
+            <acronym>MVC</acronym>
+            en Zend Framework utilizan
+            un Front Controller, lo que significa que todas las
+            solicitudes de
             un determinado sitio pasarán por un solo punto de entrada. Como
-            resultado, todas las excepciones burbujearán eventualmente hacia
-            arriba hasta el Front Controller, permitiendo al desarrollador
-            manejarlos en un solo lugar.</para>
-
-       <para>Sin embargo, los mensajes de excepción y la información de
-            backtrace contienen a menudo información sensible del sistema, como
-            declaraciones <acronym>SQL</acronym>, ubicaciones de archivos y
+            resultado,
+            todas las excepciones burbujearán eventualmente hacia
+            arriba hasta el Front Controller,
+            permitiendo al desarrollador
+            manejarlos en un solo lugar.
+        </para>
+
+        <para>
+            Sin embargo, los mensajes de excepción y la información de
+            backtrace contienen a menudo
+            información sensible del sistema, como
+            declaraciones
+            <acronym>SQL</acronym>
+            , ubicaciones de archivos y
             otras cosas más. Para ayudar a proteger su sitio, por defecto
-                <classname>Zend_Controller_Front</classname> captura todas las
+            <classname>Zend_Controller_Front</classname>
+            captura todas las
             excepciones y las registra con el objeto respuesta; a su vez, y por
             defecto, el objeto respuesta no muestra mensajes de excepción.
-       </para>
+        </para>
     </sect2>
 
     <sect2 id="zend.controller.exceptions.handling">
         <title>Manejando las Excepciones</title>
 
-       <para>Ya hay varios mecanismos construidos en los componentes de
-                <acronym>MVC</acronym>, que le permiten manejar excepciones.</para>
+        <para>
+            Ya hay varios mecanismos construidos en los componentes de
+            <acronym>MVC</acronym>
+            , que le permiten manejar excepciones.
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>Por defecto, el <link
-                        linkend="zend.controller.plugins.standard.errorhandler"
-                        >error handler plugin</link> está registrado y activo.
-                    Este plugin fue diseñado para manejar:</para>
+                <para>
+                    Por defecto, el
+                    <link linkend="zend.controller.plugins.standard.errorhandler">error handler
+                        plugin</link>
+                    está registrado y activo.
+                    Este plugin fue diseñado para manejar:
+                </para>
 
                 <itemizedlist>
                     <listitem>
-                       <para>Errores debido a controladores o acciones
+                        <para>Errores debido a controladores o acciones
                             perdidas</para>
                     </listitem>
 
                     <listitem>
-                       <para>Errores ocurriendo dentro de controladores de
+                        <para>Errores ocurriendo dentro de controladores de
                             acción</para>
                     </listitem>
                 </itemizedlist>
 
-               <para>Operan como un plugin de
-                        <methodname>postDispatch()</methodname>, y comprueban
+                <para>
+                    Operan como un plugin de
+                    <methodname>postDispatch()</methodname>
+                    , y comprueban
                     para ver si un despachador, controlador de acción, o de otra
                     excepción ha ocurrido. Si así fuera, lo remite a un
-                    controlador de manejo de errores.</para>
+                    controlador de manejo de
+                    errores.
+                </para>
 
-               <para>Este manejador abarcará la mayoría de las situaciones
-                    excepcionales, y maneja airosamente controladores y acciones
+                <para>Este manejador abarcará la mayoría de las situaciones
+                    excepcionales, y maneja
+                    airosamente controladores y acciones
                     perdidos.</para>
             </listitem>
 
             <listitem>
-               <para>
+                <para>
                     <methodname>Zend_Controller_Front::throwExceptions()</methodname>
-               </para>
-
-               <para>Pasando a este método un valor booleano
-                        <constant>TRUE</constant>, puede decirle al front
-                    controller que, en lugar de sumar excepciones en el objeto
+                </para>
+
+                <para>
+                    Pasando a este método un valor booleano
+                    <constant>TRUE</constant>
+                    , puede decirle al front
+                    controller que, en lugar de sumar excepciones en el
+                    objeto
                     respuesta o utilizando el plugin de manejo de errores,
-                    prefiere manejarlos usted mismo. Como ejemplo:</para>
+                    prefiere manejarlos
+                    usted mismo. Como ejemplo:
+                </para>
 
                 <programlisting language="php"><![CDATA[
 $front->throwExceptions(true);
@@ -80,41 +108,59 @@ try {
 }
 ]]></programlisting>
 
-               <para>Este método es probablemente la forma más fácil de añadir
-                    un manejo de excepciones personalizado que abarque toda la
-                    gama de posibles excepciones a su aplicación de front
+                <para>Este método es probablemente la forma más fácil de añadir
+                    un manejo de
+                    excepciones personalizado que abarque toda la
+                    gama de posibles excepciones a su
+                    aplicación de front
                     controller.</para>
             </listitem>
 
             <listitem>
-               <para>
+                <para>
                     <methodname>Zend_Controller_Response_Abstract::renderExceptions()</methodname>
-               </para>
+                </para>
 
-               <para>Al pasar a este método un valor booleano
-                        <constant>TRUE</constant>, le esta diciendo al objeto
+                <para>
+                    Al pasar a este método un valor booleano
+                    <constant>TRUE</constant>
+                    , le esta diciendo al objeto
                     respuesta que debe emitir un mensaje de excepción y
                     backtrace cuando se renderiza a sí mismo. En este escenario,
-                    se mostrará cualquier excepción planteada por su aplicación.
-                    Esto no es recomendable para entornos de producción, pero sí
-                    en desarrollo.</para>
+                    se mostrará
+                    cualquier excepción planteada por su aplicación.
+                    Esto no es recomendable para
+                    entornos de producción, pero sí
+                    en desarrollo.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
+                <para>
                     <methodname>Zend_Controller_Front::returnResponse()</methodname>
                     y
-                        <methodname>Zend_Controller_Response_Abstract::isException()</methodname>.</para>
-
-               <para>Pasando un valor booleano <constant>TRUE</constant> a
-                        <methodname>Zend_Controller_Front::returnResponse()</methodname>,
-                        <methodname>Zend_Controller_Front::dispatch()</methodname>
+                    <methodname>Zend_Controller_Response_Abstract::isException()</methodname>
+                    .
+                </para>
+
+                <para>
+                    Pasando un valor booleano
+                    <constant>TRUE</constant>
+                    a
+                    <methodname>Zend_Controller_Front::returnResponse()</methodname>
+                    ,
+                    <methodname>Zend_Controller_Front::dispatch()</methodname>
                     no renderizará la respuesta, sino que la devolverá. Una vez
-                    que tiene la respuesta, entonces puede probar ver si todas
-                    las excepciones fueron atrapadas usando su método
-                        <methodname>isException()</methodname>, y recuperando
+                    que tiene la
+                    respuesta, entonces puede probar ver si todas
+                    las excepciones fueron atrapadas
+                    usando su método
+                    <methodname>isException()</methodname>
+                    , y recuperando
                     las excepciones a través del método
-                        <methodname>getException()</methodname>. Como ejemplo:</para>
+                    <methodname>getException()</methodname>
+                    . Como ejemplo:
+                </para>
 
                 <programlisting language="php"><![CDATA[
 $front->returnResponse(true);
@@ -128,12 +174,16 @@ if ($response->isException()) {
 }
 ]]></programlisting>
 
-               <para>La principal ventaja que este método ofrece por sobre
-                        <methodname>Zend_Controller_Front::throwExceptions()</methodname>
+                <para>
+                    La principal ventaja que este método ofrece por sobre
+                    <methodname>Zend_Controller_Front::throwExceptions()</methodname>
                     es que le permite renderizar condicionalmente la respuesta
-                    después de manejar la excepción. Esta capturará cualquier
-                    excepción en la cadena de controladores, a diferencia del
-                    plugin de manejo de errores.</para>
+                    después de manejar la
+                    excepción. Esta capturará cualquier
+                    excepción en la cadena de controladores, a
+                    diferencia del
+                    plugin de manejo de errores.
+                </para>
             </listitem>
         </itemizedlist>
     </sect2>
@@ -141,30 +191,43 @@ if ($response->isException()) {
     <sect2 id="zend.controller.exceptions.internal">
         <title>Excepciones MVC que Usted Pueda Encontrar</title>
 
-       <para>Los diversos componentes de <acronym>MVC</acronym> -- solicitud,
+        <para>
+            Los diversos componentes de
+            <acronym>MVC</acronym>
+            -- solicitud,
             router, despachador, controlador de acción, y los objetos respuesta
-            -- pueden arrojar excepciones en ocasiones. Algunas excepciones
-            puede ser condicionalmente anuladas, y otras se usan para indicar al
-            desarrollador que puede necesitar re-considerar la estructura de su
-            aplicación.</para>
+            --
+            pueden arrojar excepciones en ocasiones. Algunas excepciones
+            puede ser condicionalmente
+            anuladas, y otras se usan para indicar al
+            desarrollador que puede necesitar re-considerar
+            la estructura de su
+            aplicación.
+        </para>
 
-       <para>Como algunos ejemplos:</para>
+        <para>Como algunos ejemplos:</para>
 
         <itemizedlist>
             <listitem>
-               <para>
+                <para>
                     <methodname>Zend_Controller_Dispatcher::dispatch()</methodname>
                     hará, por defecto, arrojar una excepción si se hace un
-                    requerimiento a un controlador no válido. Hay dos maneras
-                    recomendadas para lidiar con esto.</para>
+                    requerimiento a un
+                    controlador no válido. Hay dos maneras
+                    recomendadas para lidiar con esto.
+                </para>
 
                 <itemizedlist>
                     <listitem>
-                       <para>Establecer el parámetro
-                                <methodname>useDefaultControllerAlways</methodname>.</para>
+                        <para>
+                            Establecer el parámetro
+                            <methodname>useDefaultControllerAlways</methodname>
+                            .
+                        </para>
 
-                       <para>En su front controller, o en su despachador,
-                            añada la siguiente directiva:</para>
+                        <para>En su front controller, o en su despachador,
+                            añada la siguiente
+                            directiva:</para>
 
                         <programlisting language="php"><![CDATA[
 $front->setParam('useDefaultControllerAlways', true);
@@ -174,46 +237,64 @@ $front->setParam('useDefaultControllerAlways', true);
 $dispatcher->setParam('useDefaultControllerAlways', true);
 ]]></programlisting>
 
-                       <para>Cuando este flag está establecido, el despachador
-                            utilizará el controlador y la acción por defecto en
-                            lugar de lanzar una excepción. La desventaja de este
+                        <para>Cuando este flag está establecido, el despachador
+                            utilizará el
+                            controlador y la acción por defecto en
+                            lugar de lanzar una excepción. La
+                            desventaja de este
                             método es que cualquier error ortográfico que un
                             usuario haga cuando acceda a su sitio lo resolverá y
-                            mostrará su página de inicio, y que puede causar
-                            estragos con la optimización para los motores de
+                            mostrará su página
+                            de inicio, y que puede causar
+                            estragos con la optimización para los
+                            motores de
                             búsqueda.</para>
                     </listitem>
 
                     <listitem>
-                       <para>La excepción arrojada por
-                                <methodname>dispatch()</methodname> es una
-                                <classname>Zend_Controller_Dispatcher_Exception</classname>
+                        <para>
+                            La excepción arrojada por
+                            <methodname>dispatch()</methodname>
+                            es una
+                            <classname>Zend_Controller_Dispatcher_Exception</classname>
                             conteniendo el texto 'Invalid controller specified'.
-                            Use uno de los métodos descriptos de <link
-                                linkend="zend.controller.exceptions.handling">la
-                                sección anterior</link> para atrapar la
+                            Use uno de los
+                            métodos descriptos de
+                            <link linkend="zend.controller.exceptions.handling">la
+                                sección anterior</link>
+                            para atrapar la
                             excepción, y luego redireccionar a una página
-                            genérica de error o a la página de inicio.</para>
+                            genérica de
+                            error o a la página de inicio.
+                        </para>
                     </listitem>
                 </itemizedlist>
             </listitem>
 
             <listitem>
-               <para>
+                <para>
                     <methodname>Zend_Controller_Action::__call()</methodname>
                     arrojará una
-                        <classname>Zend_Controller_Action_Exception</classname>
+                    <classname>Zend_Controller_Action_Exception</classname>
                     si no puede despachar una acción inexistente a un método. Es
-                    probable que desee utilizar alguna acción por defecto en el
-                    controlador en casos como este. Formas de lograr esto
-                    incluyen:</para>
+                    probable que desee
+                    utilizar alguna acción por defecto en el
+                    controlador en casos como este. Formas
+                    de lograr esto
+                    incluyen:
+                </para>
 
                 <itemizedlist>
                     <listitem>
-                       <para>Subclasear
-                                <classname>Zend_Controller_Action</classname> y
-                            anular el método <methodname>__call()</methodname>.
-                            Como ejemplo:</para>
+                        <para>
+                            Subclasear
+                            <classname>Zend_Controller_Action</classname>
+                            y
+                            anular el método
+                            <methodname>__call()</methodname>
+                            .
+                            Como ejemplo:
+                        </para>
 
                         <programlisting language="php"><![CDATA[
 class My_Controller_Action extends Zend_Controller_Action
@@ -230,17 +311,21 @@ class My_Controller_Action extends Zend_Controller_Action
     }
 }
 ]]></programlisting>
-                       <para>El ejemplo anterior intercepta cualquier llamada
-                            a un método de acción indefinido y redirecciona a la
+                        <para>El ejemplo anterior intercepta cualquier llamada
+                            a un método de acción
+                            indefinido y redirecciona a la
                             acción predeterminada en el controlador.</para>
                     </listitem>
 
                     <listitem>
-                       <para>Subclasea a
-                                <classname>Zend_Controller_Dispatcher</classname>
+                        <para>
+                            Subclasea a
+                            <classname>Zend_Controller_Dispatcher</classname>
                             y anula el método
-                                <methodname>getAction()</methodname> para
-                            verificar si la acción existe. Como ejemplo:</para>
+                            <methodname>getAction()</methodname>
+                            para
+                            verificar si la acción existe. Como ejemplo:
+                        </para>
 
                         <programlisting language="php"><![CDATA[
 class My_Controller_Dispatcher extends Zend_Controller_Dispatcher
@@ -267,45 +352,64 @@ class My_Controller_Dispatcher extends Zend_Controller_Dispatcher
 }
 ]]></programlisting>
 
-                       <para>El código anterior comprueba para ver que las
-                            acciones solicitadas existan en la clase del
+                        <para>El código anterior comprueba para ver que las
+                            acciones solicitadas
+                            existan en la clase del
                             controlador; si no, se restablece la acción a la
                             acción por defecto.</para>
 
-                       <para>Este método es agradable porque puede alterar
-                            transparentemente la acción antes del último
+                        <para>
+                            Este método es agradable porque puede alterar
+                            transparentemente la acción
+                            antes del último
                             despacho. Sin embargo, también significa que errores
-                            ortográficos en la <acronym>URL</acronym> todavía
+                            ortográficos en la
+                            <acronym>URL</acronym>
+                            todavía
                             pueden despacharse correctamente, lo que no es muy
-                            bueno para la optimización en un motor de búsqueda.
-                       </para>
+                            bueno para la
+                            optimización en un motor de búsqueda.
+                        </para>
                     </listitem>
 
                     <listitem>
-                       <para>Use
-                                <methodname>Zend_Controller_Action::preDispatch()</methodname>
+                        <para>
+                            Use
+                            <methodname>Zend_Controller_Action::preDispatch()</methodname>
                             o
-                                <methodname>Zend_Controller_Plugin_Abstract::preDispatch()</methodname>
-                            para identificar acciones inválidas.</para>
-
-                       <para>Subclaseando
-                                <classname>Zend_Controller_Action</classname> y
-                            modificando <methodname>preDispatch()</methodname>,
+                            <methodname>Zend_Controller_Plugin_Abstract::preDispatch()</methodname>
+                            para identificar acciones inválidas.
+                        </para>
+
+                        <para>
+                            Subclaseando
+                            <classname>Zend_Controller_Action</classname>
+                            y
+                            modificando
+                            <methodname>preDispatch()</methodname>
+                            ,
                             puede modificar todos sus controladores que
-                            transmitan a otra acción o redireccionar antes de
+                            transmitan a otra acción o
+                            redireccionar antes de
                             despachar la acción. El código para hacer esto se
                             verá parecido al código de sustitución de arriba
-                                <methodname>__call()</methodname>.</para>
+                            <methodname>__call()</methodname>
+                            .
+                        </para>
 
-                       <para>Alternativamente, puede verificar esta
-                            información en un plugin global. Esto tiene la
+                        <para>Alternativamente, puede verificar esta
+                            información en un plugin global.
+                            Esto tiene la
                             ventaja de ser independiente del controlador de
-                            acción; si su aplicación consiste en una variedad de
-                            controladores de acción, y no todos ellos heredan de
-                            la misma clase, este método puede añadir coherencia
+                            acción; si
+                            su aplicación consiste en una variedad de
+                            controladores de acción, y no
+                            todos ellos heredan de
+                            la misma clase, este método puede añadir
+                            coherencia
                             a su manejo de clases diferentes.</para>
 
-                       <para>Como ejemplo:</para>
+                        <para>Como ejemplo:</para>
 
                         <programlisting language="php"><![CDATA[
 class My_Controller_PreDispatchPlugin extends Zend_Controller_Plugin_Abstract
@@ -335,9 +439,11 @@ class My_Controller_PreDispatchPlugin extends Zend_Controller_Plugin_Abstract
 }
 ]]></programlisting>
 
-                       <para>En este ejemplo, vamos a consultar para ver si la
-                            acción solicitada está disponible en el controlador.
-                            Si no, redireccionamos a la acción predeterminada en
+                        <para>En este ejemplo, vamos a consultar para ver si la
+                            acción solicitada
+                            está disponible en el controlador.
+                            Si no, redireccionamos a la acción
+                            predeterminada en
                             el controlador, y salimos inmediatamente de la
                             ejecución del script.</para>
                     </listitem>

+ 474 - 249
documentation/manual/es/module_specs/Zend_Controller-FrontController.xml

@@ -1,58 +1,93 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17175 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17175 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.controller.front">
     <title>El Front Controller</title>
 
     <sect2 id="zend.controller.front.overview">
         <title>Introducción</title>
 
-       <para>
-            <classname>Zend_Controller_Front</classname> implementa un <ulink
-                url="http://www.martinfowler.com/eaaCatalog/frontController.html">Front Controller
-                pattern</ulink> usado en aplicaciones <ulink
-                url="http://en.wikipedia.org/wiki/Model-view-controller">Model-View-Controller
-                (MVC)</ulink>. Su propósito es inicializar el entorno de la solicitud, rutear la
-            solicitud entrante, y luego hacer un envío de cualquier de las acciones descubiertas; le
-            agrega las respuestas y las regresa cuando se completa el proceso.</para>
-
-       <para>
-            <classname>Zend_Controller_Front</classname> también implementa el <ulink
-                url="http://en.wikipedia.org/wiki/Singleton_pattern">Singleton pattern</ulink>,
+        <para>
+            <classname>Zend_Controller_Front</classname>
+            implementa un
+            <ulink url="http://www.martinfowler.com/eaaCatalog/frontController.html">Front Controller
+                pattern</ulink>
+            usado en aplicaciones
+            <ulink url="http://en.wikipedia.org/wiki/Model-view-controller">Model-View-Controller
+                (MVC)</ulink>
+            . Su propósito es inicializar el entorno de la solicitud, rutear la
+            solicitud entrante, y
+            luego hacer un envío de cualquier de las acciones descubiertas; le
+            agrega las respuestas
+            y las regresa cuando se completa el proceso.
+        </para>
+
+        <para>
+            <classname>Zend_Controller_Front</classname>
+            también implementa el
+            <ulink url="http://en.wikipedia.org/wiki/Singleton_pattern">Singleton pattern</ulink>
+            ,
             significando que solo una única instancia de él puede estar disponible en cualquier
             momento dado. Esto le permite actuar también como un registro en el que los demás
-            objetos pueden extraer del proceso dispatch.</para>
-
-       <para>
-            <classname>Zend_Controller_Front</classname> registra un <link
-                linkend="zend.controller.plugins">plugin broker</link> consigo mismo, permitiendo
-            que diversos eventos que dispara sean observados por plugins. En muchos casos, esto da
-            el desarrollador la oportunidad de adaptar el proceso de dispatch al sitio sin la
-            necesidad de ampliar el Front Controller para añadir funcionalidad.</para>
-
-       <para>Como mínimo, el front controller necesita una o más paths a directorios que contengan
-                <link linkend="zend.controller.action"> action controllers</link> a fin de hacer su
-            trabajo. Una variedad de métodos también pueden ser invocados para seguir adaptando el
-            medio ambiente del front controller y ese a sus helper classes.</para>
+            objetos pueden extraer del proceso dispatch.
+        </para>
+
+        <para>
+            <classname>Zend_Controller_Front</classname>
+            registra un
+            <link linkend="zend.controller.plugins">plugin broker</link>
+            consigo mismo, permitiendo
+            que diversos eventos que dispara sean observados por plugins.
+            En muchos casos, esto da
+            el desarrollador la oportunidad de adaptar el proceso de
+            dispatch al sitio sin la
+            necesidad de ampliar el Front Controller para añadir
+            funcionalidad.
+        </para>
+
+        <para>
+            Como mínimo, el front controller necesita una o más paths a directorios que contengan
+            <link linkend="zend.controller.action"> action controllers</link>
+            a fin de hacer su
+            trabajo. Una variedad de métodos también pueden ser invocados para
+            seguir adaptando el
+            medio ambiente del front controller y ese a sus helper classes.
+        </para>
 
         <note>
             <title>Comportamiento por Defecto</title>
-           <para>Por defecto, el front controller carga el <link
-                    linkend="zend.controller.plugins.standard.errorhandler">ErrorHandler</link>
-                plugin, así como al <link linkend="zend.controller.actionhelpers.viewrenderer"
-                    >ViewRenderer</link> action helper plugin. Estos son para simplificar el manejo
-                de errores y el view renderering en sus controladores, respectivamente.</para>
-
-           <para>Para deshabilitar el <emphasis>ErrorHandler</emphasis>, ejecutar lo siguiente en
-                cualquier momento antes de llamar a <methodname>dispatch()</methodname>:</para>
+            <para>
+                Por defecto, el front controller carga el
+                <link linkend="zend.controller.plugins.standard.errorhandler">ErrorHandler</link>
+                plugin, así como al
+                <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>
+                action helper plugin. Estos son para simplificar el manejo
+                de errores y el view
+                renderering en sus controladores, respectivamente.
+            </para>
+
+            <para>
+                Para deshabilitar el
+                <emphasis>ErrorHandler</emphasis>
+                , ejecutar lo siguiente en
+                cualquier momento antes de llamar a
+                <methodname>dispatch()</methodname>
+                :
+            </para>
 
             <programlisting language="php"><![CDATA[
 // Deshabilitar el ErrorHandler plugin:
 $front->setParam('noErrorHandler', true);
 ]]></programlisting>
 
-           <para>Para deshabilitar el <emphasis>ViewRenderer</emphasis>, haga lo siguiente antes
-                de llamar a <methodname>dispatch()</methodname>:</para>
+            <para>
+                Para deshabilitar el
+                <emphasis>ViewRenderer</emphasis>
+                , haga lo siguiente antes
+                de llamar a
+                <methodname>dispatch()</methodname>
+                :
+            </para>
 
             <programlisting language="php"><![CDATA[
 // Deshabilitar el ViewRenderer helper:
@@ -64,16 +99,20 @@ $front->setParam('noViewRenderer', true);
     <sect2 id="zend.controller.front.methods.primary">
         <title>Métodos Básicos</title>
 
-       <para>El front controller tiene varios accessors para establecer su medio ambiente. Sin
+        <para>El front controller tiene varios accessors para establecer su medio ambiente. Sin
             embargo, hay tres métodos básicos clave para la funcionalidad del front controller:</para>
 
         <sect3 id="zend.controller.front.methods.primary.getinstance">
             <title>getInstance()</title>
 
-           <para>
-                <methodname>getInstance()</methodname> se utiliza para recuperar una instancia del
-                front controller. Como el front controller implementa un patrón Singleton, este
-                también es el único medio posible para instanciar un objeto front controller.</para>
+            <para>
+                <methodname>getInstance()</methodname>
+                se utiliza para recuperar una instancia del
+                front controller. Como el front
+                controller implementa un patrón Singleton, este
+                también es el único medio posible
+                para instanciar un objeto front controller.
+            </para>
 
             <programlisting language="php"><![CDATA[
 $front = Zend_Controller_Front::getInstance();
@@ -83,13 +122,18 @@ $front = Zend_Controller_Front::getInstance();
         <sect3 id="zend.controller.front.methods.primary.setcontrollerdirectory">
             <title>setControllerDirectory() y addControllerDirectory</title>
 
-           <para>
-                <methodname>setControllerDirectory()</methodname> se usa para decirle a <link
-                    linkend="zend.controller.dispatcher">el dispatcher</link> dónde buscar para los
-                archivos de clase <link linkend="zend.controller.action">action controller</link>.
-                Acepta bien un único path o un array asociativo de pares módulo/path.</para>
+            <para>
+                <methodname>setControllerDirectory()</methodname>
+                se usa para decirle a
+                <link linkend="zend.controller.dispatcher">el dispatcher</link>
+                dónde buscar para los
+                archivos de clase
+                <link linkend="zend.controller.action">action controller</link>
+                .
+                Acepta bien un único path o un array asociativo de pares módulo/path.
+            </para>
 
-           <para>Como algunos ejemplos:</para>
+            <para>Como algunos ejemplos:</para>
 
             <programlisting language="php"><![CDATA[
 // Establer el directorio de controladores por defecto:
@@ -107,100 +151,162 @@ $front->addControllerDirectory('../modules/foo/controllers', 'foo');
 ]]></programlisting>
 
             <note>
-               <para>Si usa <methodname>addControllerDirectory()</methodname> sin un nombre de
-                    módulo, este establecerá el directorio <emphasis>default</emphasis> para el
-                    módulo -- sobreescribiéndolo si ya existe.</para>
+                <para>
+                    Si usa
+                    <methodname>addControllerDirectory()</methodname>
+                    sin un nombre de
+                    módulo, este establecerá el directorio
+                    <emphasis>default</emphasis>
+                    para el
+                    módulo -- sobreescribiéndolo si ya existe.
+                </para>
             </note>
 
-           <para>Puede conseguir la configuración actual para el directorio del controlador
-                utilizando <methodname>getControllerDirectory()</methodname>; este devolverá un
-                array de pares módulo y directorio.</para>
+            <para>
+                Puede conseguir la configuración actual para el directorio del controlador
+                utilizando
+                <methodname>getControllerDirectory()</methodname>
+                ; este devolverá un
+                array de pares módulo y directorio.
+            </para>
         </sect3>
 
         <sect3 id="zend.controller.front.methods.primary.addmoduledirectory">
             <title>addModuleDirectory() y getModuleDirectory()</title>
 
-           <para>Uno de los aspectos del front controller es que puede <link
-                    linkend="zend.controller.modular"> definir una estructura modular de
-                    directorio</link> para crear componentes standalone; estos son llamados
-                "módulos".</para>
-
-           <para>Cada módulo debe estar en su propio directorio y ser un espejo de la estructura
-                del directorio del módulo por defecto -- es decir, que debería tener como mínimo un
-                subdirectorio de <filename>/controllers/</filename>, y típicamente un subdirectorio
-                de <filename>/views/</filename> y otros subdirectorios de aplicaciones.</para>
-
-           <para>
-                <methodname>addModuleDirectory()</methodname> permite pasar el nombre de un
-                directorio que contiene uno o más directorios de módulos. A continuación lo analiza
-                y los añade como directorios de controladores al front controller.</para>
-
-           <para>Después, si quiere determinar el path a un determinado módulo o al módulo actual,
-                puede llamar a <methodname>getModuleDirectory()</methodname>, opcionalmente puede
-                pasar un nombre de módulo para conseguir el directorio de ese módulo específico.
-           </para>
+            <para>
+                Uno de los aspectos del front controller es que puede
+                <link linkend="zend.controller.modular"> definir una estructura modular de
+                    directorio</link>
+                para crear componentes standalone; estos son llamados
+                "módulos".
+            </para>
+
+            <para>
+                Cada módulo debe estar en su propio directorio y ser un espejo de la estructura
+                del
+                directorio del módulo por defecto -- es decir, que debería tener como mínimo un
+                subdirectorio de
+                <filename>/controllers/</filename>
+                , y típicamente un subdirectorio
+                de
+                <filename>/views/</filename>
+                y otros subdirectorios de aplicaciones.
+            </para>
+
+            <para>
+                <methodname>addModuleDirectory()</methodname>
+                permite pasar el nombre de un
+                directorio que contiene uno o más directorios de
+                módulos. A continuación lo analiza
+                y los añade como directorios de controladores al
+                front controller.
+            </para>
+
+            <para>
+                Después, si quiere determinar el path a un determinado módulo o al módulo actual,
+                puede llamar a
+                <methodname>getModuleDirectory()</methodname>
+                , opcionalmente puede
+                pasar un nombre de módulo para conseguir el directorio de ese
+                módulo específico.
+            </para>
         </sect3>
 
         <sect3 id="zend.controller.front.methods.primary.dispatch">
             <title>dispatch()</title>
 
-           <para>
+            <para>
                 <methodname>dispatch(Zend_Controller_Request_Abstract $request = null,
-                    Zend_Controller_Response_Abstract $response = null)</methodname> hace el trabajo
-                pesado del front controller. Puede opcionalmente tomar un <link
-                    linkend="zend.controller.request">request object</link> y/o un <link
-                    linkend="zend.controller.response">response object</link>, permitiendo al
-                desarrollador pasar objetos peronalizados para cada uno.</para>
-
-           <para>Si no se pasa ningun objeto solicitud o respuesta,
-                    <methodname>dispatch()</methodname> comprobará por objetos previamente
-                registrados y utilizará esos o instanciará versiones por defecto a utilizar en su
-                proceso (en ambos casos, el sabor de <acronym>HTTP</acronym> será utilizado por
-                defecto).</para>
-
-           <para>Similarmente, <methodname>dispatch()</methodname> comprueba los objetos
-                registrados <link linkend="zend.controller.router">router</link> y <link
-                    linkend="zend.controller.dispatcher">dispatcher</link> , instanciando las
-                versiones por defecto de cada uno si ninguno de ellos se encuentra.</para>
-
-           <para>El proceso de dispatch tiene tres eventos distintos:</para>
+                    Zend_Controller_Response_Abstract $response = null)</methodname>
+                hace el trabajo
+                pesado del front controller. Puede opcionalmente tomar un
+                <link linkend="zend.controller.request">request object</link>
+                y/o un
+                <link linkend="zend.controller.response">response object</link>
+                , permitiendo al
+                desarrollador pasar objetos peronalizados para cada uno.
+            </para>
+
+            <para>
+                Si no se pasa ningun objeto solicitud o respuesta,
+                <methodname>dispatch()</methodname>
+                comprobará por objetos previamente
+                registrados y utilizará esos o instanciará
+                versiones por defecto a utilizar en su
+                proceso (en ambos casos, el sabor de
+                <acronym>HTTP</acronym>
+                será utilizado por
+                defecto).
+            </para>
+
+            <para>
+                Similarmente,
+                <methodname>dispatch()</methodname>
+                comprueba los objetos
+                registrados
+                <link linkend="zend.controller.router">router</link>
+                y
+                <link linkend="zend.controller.dispatcher">dispatcher</link>
+                , instanciando las
+                versiones por defecto de cada uno si ninguno de ellos se
+                encuentra.
+            </para>
+
+            <para>El proceso de dispatch tiene tres eventos distintos:</para>
 
             <itemizedlist>
                 <listitem>
-                   <para>Routing</para>
+                    <para>Routing</para>
                 </listitem>
                 <listitem>
-                   <para>Dispatching</para>
+                    <para>Dispatching</para>
                 </listitem>
                 <listitem>
-                   <para>Response</para>
+                    <para>Response</para>
                 </listitem>
             </itemizedlist>
 
-           <para>El routing se lleva a cabo exactamente una vez, utilizando los valores del objeto
-                solicitud cuando se llama a <methodname>dispatch()</methodname>. El dispatching se
-                lleva a cabo en un bucle; una solicitud puede indicar, bien múltiples acciones de
-                dispatch, o el controlador o un plugin pueden restablecer el objeto solicitud para
-                forzar medidas adicionales para dispatch. Cuando todo está hecho, el front
-                controller devuelve una respuesta.</para>
+            <para>
+                El routing se lleva a cabo exactamente una vez, utilizando los valores del objeto
+                solicitud cuando se llama a
+                <methodname>dispatch()</methodname>
+                . El dispatching se
+                lleva a cabo en un bucle; una solicitud puede indicar, bien
+                múltiples acciones de
+                dispatch, o el controlador o un plugin pueden restablecer el
+                objeto solicitud para
+                forzar medidas adicionales para dispatch. Cuando todo está
+                hecho, el front
+                controller devuelve una respuesta.
+            </para>
         </sect3>
 
         <sect3 id="zend.controller.front.methods.primary.run">
             <title>run()</title>
 
-           <para>
-                <classname>Zend_Controller_Front::run($path)</classname> es un método estático que
-                toma simplemente un path a un directorio que contiene controladores. Obtiene una
-                instancia del front controller (via <link
-                    linkend="zend.controller.front.methods.primary.getinstance"
-                >getInstance()</link>, registra el path provisto via <link
-                    linkend="zend.controller.front.methods.primary.setcontrollerdirectory"
-                    >setControllerDirectory()</link>, y finalmente <link
-                    linkend="zend.controller.front.methods.primary.dispatch">dispatches</link>.</para>
-
-           <para>Básicamente, <methodname>run()</methodname> es un método conveniente que pueden
-                utilizarse para setups de sitios que no requieran la personalización del medio
-                ambiente del front controller.</para>
+            <para>
+                <classname>Zend_Controller_Front::run($path)</classname>
+                es un método estático que
+                toma simplemente un path a un directorio que contiene
+                controladores. Obtiene una
+                instancia del front controller (via
+                <link linkend="zend.controller.front.methods.primary.getinstance">getInstance()</link>
+                , registra el path provisto via
+                <link linkend="zend.controller.front.methods.primary.setcontrollerdirectory">setControllerDirectory()</link>
+                , y finalmente
+                <link linkend="zend.controller.front.methods.primary.dispatch">dispatches</link>
+                .
+            </para>
+
+            <para>
+                Básicamente,
+                <methodname>run()</methodname>
+                es un método conveniente que pueden
+                utilizarse para setups de sitios que no requieran
+                la personalización del medio
+                ambiente del front controller.
+            </para>
 
             <programlisting language="php"><![CDATA[
 // Instanciar el front controller, establecer el directorio de controladores,
@@ -213,133 +319,205 @@ Zend_Controller_Front::run('../application/controllers');
     <sect2 id="zend.controller.front.methods.environment">
         <title>Métodos Accessor Ambientales</title>
 
-       <para>Además de los métodos enumerados anteriormente, hay una serie de métodos accessor que
+        <para>Además de los métodos enumerados anteriormente, hay una serie de métodos accessor que
             pueden utilizarse para afectar el entorno del front controller -- y por lo tanto el
             ambiente de las clases a las cuales delega el front controller.</para>
 
         <itemizedlist>
             <listitem>
-               <para>
-                    <methodname>resetInstance()</methodname> puede ser utilizada para borrar todos
-                    los settings actuales. Su objetivo principal es para testing, pero también puede
-                    ser utilizada para instancias donde desee encadenar múltiples front controllers.
-               </para>
+                <para>
+                    <methodname>resetInstance()</methodname>
+                    puede ser utilizada para borrar todos
+                    los settings actuales. Su objetivo
+                    principal es para testing, pero también puede
+                    ser utilizada para instancias donde
+                    desee encadenar múltiples front controllers.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>(set|get)DefaultControllerName()</methodname> permite especificar un
-                    nombre diferente para usar en el controlador por defecto (en caso coontrario, se
-                    usa 'index') y recuperar el valor actual. Delegan a <link
-                        linkend="zend.controller.dispatcher">el dispatcher</link>.</para>
+                <para>
+                    <methodname>(set|get)DefaultControllerName()</methodname>
+                    permite especificar un
+                    nombre diferente para usar en el controlador por defecto
+                    (en caso coontrario, se
+                    usa 'index') y recuperar el valor actual. Delegan a
+                    <link linkend="zend.controller.dispatcher">el dispatcher</link>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setDefaultAction()</methodname> y
-                        <methodname>getDefaultAction()</methodname> le deja especificar un nombre
-                    diferente a utilizar para la acción predeterminada (en caso coontrario, se usa
-                    'index') y recuperar el valor actual. Delegan a <link
-                        linkend="zend.controller.dispatcher">el dispatcher</link>.</para>
+                <para>
+                    <methodname>setDefaultAction()</methodname>
+                    y
+                    <methodname>getDefaultAction()</methodname>
+                    le deja especificar un nombre
+                    diferente a utilizar para la acción predeterminada
+                    (en caso coontrario, se usa
+                    'index') y recuperar el valor actual. Delegan a
+                    <link linkend="zend.controller.dispatcher">el dispatcher</link>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setRequest()</methodname> y <methodname>getRequest()</methodname> le
-                    permite especificar la clase u objeto <link linkend="zend.controller.request">el
-                        request</link> a usar durante el proceso de dispatch y recuperar el objeto
-                    actual. Al setear el objeto solicitud, puede pasarlo en un nombre de clase de
-                    solicitud, en cuyo caso el método va a cargar el archivo clase y lo instanciará.
-               </para>
+                <para>
+                    <methodname>setRequest()</methodname>
+                    y
+                    <methodname>getRequest()</methodname>
+                    le
+                    permite especificar la clase u objeto
+                    <link linkend="zend.controller.request">el
+                        request</link>
+                    a usar durante el proceso de dispatch y recuperar el objeto
+                    actual. Al setear el
+                    objeto solicitud, puede pasarlo en un nombre de clase de
+                    solicitud, en cuyo caso
+                    el método va a cargar el archivo clase y lo instanciará.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
+                <para>
                     <methodname>setRouter()</methodname>
-                    <methodname>getRouter()</methodname> le permite especificar la clase u objeto
-                        <link linkend="zend.controller.router">el router</link> a usar durante el
-                    proceso de dispatch y recuperar el objeto actual. Al setear el objeto router,
-                    puede pasarlo en un nombre de clase de router, en cuyo caso el método va a
-                    cargar el archivo clase y lo instanciará.</para>
-
-               <para>Al recuperar el objeto router, en primer lugar comprueba para ver si hay
+                    <methodname>getRouter()</methodname>
+                    le permite especificar la clase u objeto
+                    <link linkend="zend.controller.router">el router</link>
+                    a usar durante el
+                    proceso de dispatch y recuperar el objeto actual. Al setear el
+                    objeto router,
+                    puede pasarlo en un nombre de clase de router, en cuyo caso el
+                    método va a
+                    cargar el archivo clase y lo instanciará.
+                </para>
+
+                <para>Al recuperar el objeto router, en primer lugar comprueba para ver si hay
                     alguno presente, y si no, instancia al router por defecto(reescribe el router).
                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setBaseUrl()</methodname> y <methodname>getBaseUrl()</methodname> le
-                    permite especificar <link linkend="zend.controller.request.http.baseurl">la URL
-                        base</link> de la cual tirar cuando se rutean peticiones y recuperar el
-                    valor actual. El valor se provee al objeto solicitud justo antes de rutear.
-               </para>
+                <para>
+                    <methodname>setBaseUrl()</methodname>
+                    y
+                    <methodname>getBaseUrl()</methodname>
+                    le
+                    permite especificar
+                    <link linkend="zend.controller.request.http.baseurl">la URL
+                        base</link>
+                    de la cual tirar cuando se rutean peticiones y recuperar el
+                    valor actual. El
+                    valor se provee al objeto solicitud justo antes de rutear.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setDispatcher()</methodname> y
-                        <methodname>getDispatcher()</methodname> le permite especificar la clase u
-                    objeto <link linkend="zend.controller.dispatcher">el dispatcher</link> a usar
-                    durante el proceso de dispatch y recuperar el objeto actual. Al setear el objeto
-                    dispatch, puede pasarlo en un nombre de clase de dispatcher, en cuyo caso el
-                    método va a cargar el archivo clase y lo instanciará.</para>
-
-               <para>Al recuperar el objeto dispatch, en primer lugar comprueba para ver si hay
+                <para>
+                    <methodname>setDispatcher()</methodname>
+                    y
+                    <methodname>getDispatcher()</methodname>
+                    le permite especificar la clase u
+                    objeto
+                    <link linkend="zend.controller.dispatcher">el dispatcher</link>
+                    a usar
+                    durante el proceso de dispatch y recuperar el objeto actual. Al setear el
+                    objeto
+                    dispatch, puede pasarlo en un nombre de clase de dispatcher, en cuyo caso
+                    el
+                    método va a cargar el archivo clase y lo instanciará.
+                </para>
+
+                <para>Al recuperar el objeto dispatch, en primer lugar comprueba para ver si hay
                     alguno presente, y si no, instancia al dispatcher por defecto.</para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setResponse()</methodname> y <methodname>getResponse()</methodname>
-                    le permite especificar la clase u objeto <link
-                        linkend="zend.controller.response">response</link> a usar durante el proceso
-                    de dispatch y recuperar el objeto actual. Al setear el objeto response, puede
-                    pasarlo en un nombre de clase de response, en cuyo caso el método va a cargar el
-                    archivo clase y lo instanciará.</para>
+                <para>
+                    <methodname>setResponse()</methodname>
+                    y
+                    <methodname>getResponse()</methodname>
+                    le permite especificar la clase u objeto
+                    <link linkend="zend.controller.response">response</link>
+                    a usar durante el proceso
+                    de dispatch y recuperar el objeto actual. Al setear el
+                    objeto response, puede
+                    pasarlo en un nombre de clase de response, en cuyo caso el
+                    método va a cargar el
+                    archivo clase y lo instanciará.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
+                <para>
                     <methodname>registerPlugin(Zend_Controller_Plugin_Abstract $plugin, $stackIndex
-                        = null)</methodname> le permite registrar <link
-                        linkend="zend.controller.plugins">plugin objects</link>. Opcionalmente,
-                    setting <varname>$stackIndex</varname>, puede controlar el orden en que se
-                    ejecutarán los plugins.</para>
+                        = null)</methodname>
+                    le permite registrar
+                    <link linkend="zend.controller.plugins">plugin objects</link>
+                    . Opcionalmente,
+                    setting
+                    <varname>$stackIndex</varname>
+                    , puede controlar el orden en que se
+                    ejecutarán los plugins.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>unregisterPlugin($plugin)</methodname> le permite desregistrar <link
-                        linkend="zend.controller.plugins">plugin objects</link>.
-                        <varname>$plugin</varname> puede ser tanto un objeto plugin o un string que
-                    denota la clase de plugin a desregistrar.</para>
+                <para>
+                    <methodname>unregisterPlugin($plugin)</methodname>
+                    le permite desregistrar
+                    <link linkend="zend.controller.plugins">plugin objects</link>
+                    .
+                    <varname>$plugin</varname>
+                    puede ser tanto un objeto plugin o un string que
+                    denota la clase de plugin a
+                    desregistrar.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>throwExceptions($flag)</methodname> se utiliza para activar o
-                    desactivar la capacidad de arrojar excepciones durante el proceso de dispatch.
-                    Por defecto, las excepciones son capturadas y colocadas en el <link
-                        linkend="zend.controller.response">objeto response </link>; activando
-                        <methodname>throwExceptions()</methodname> se anulará este comportamiento.</para>
-
-               <para>Para más información, lea <xref linkend="zend.controller.exceptions"/>.
-               </para>
+                <para>
+                    <methodname>throwExceptions($flag)</methodname>
+                    se utiliza para activar o
+                    desactivar la capacidad de arrojar excepciones durante
+                    el proceso de dispatch.
+                    Por defecto, las excepciones son capturadas y colocadas
+                    en el
+                    <link linkend="zend.controller.response">objeto response </link>
+                    ; activando
+                    <methodname>throwExceptions()</methodname>
+                    se anulará este comportamiento.
+                </para>
+
+                <para>
+                    Para más información, lea
+                    <xref linkend="zend.controller.exceptions"/>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>returnResponse($flag)</methodname> se usa para decirle al front
-                    controller cuando regresar la respuesta (<constant>TRUE</constant>) desde
-                        <methodname>dispatch()</methodname>, o si la respuesta debe ser emitida
-                    automáticamente (<constant>FALSE</constant>). Por defecto, la respuesta es
+                <para>
+                    <methodname>returnResponse($flag)</methodname>
+                    se usa para decirle al front
+                    controller cuando regresar la respuesta (
+                    <constant>TRUE</constant>
+                    ) desde
+                    <methodname>dispatch()</methodname>
+                    , o si la respuesta debe ser emitida
+                    automáticamente (
+                    <constant>FALSE</constant>
+                    ). Por defecto, la respuesta es
                     automáticamente emitida (llamando a
-                        <methodname>Zend_Controller_Response_Abstract::sendResponse()</methodname>);
-                    activando <methodname>returnResponse()</methodname>) se anulará este
-                    comportamiento.</para>
-
-               <para>Las razones para regresar la respuesta incluyen un deseo de comprobar las
+                    <methodname>Zend_Controller_Response_Abstract::sendResponse()</methodname>
+                    );
+                    activando
+                    <methodname>returnResponse()</methodname>
+                    ) se anulará este
+                    comportamiento.
+                </para>
+
+                <para>Las razones para regresar la respuesta incluyen un deseo de comprobar las
                     excepciones antes de emitir la respuesta, necesidad de hacer un log de diversos
                     aspectos de la respuesta (tales como cabeceras), etc.</para>
             </listitem>
@@ -349,7 +527,7 @@ Zend_Controller_Front::run('../application/controllers');
     <sect2 id="zend.controller.front.methods.params">
         <title>Parámetros de Front Controller</title>
 
-       <para>En la introducción, se indicó que el front controller también actúa como un registro
+        <para>En la introducción, se indicó que el front controller también actúa como un registro
             de los distintos componentes del controlador. Lo hace mediante una familia de métodos
             "param". Estos métodos le permiten registrar datos arbitrarios -- objetos y variables --
             con el front controller, a ser devueltos en cualquier momento en la cadena de dispatch.
@@ -358,77 +536,115 @@ Zend_Controller_Front::run('../application/controllers');
 
         <itemizedlist>
             <listitem>
-               <para>
-                    <methodname>setParam($name, $value)</methodname> permite establecer un único
-                    parámetro de <varname>$name</varname> con el valor <varname>$value</varname>.
-               </para>
+                <para>
+                    <methodname>setParam($name, $value)</methodname>
+                    permite establecer un único
+                    parámetro de
+                    <varname>$name</varname>
+                    con el valor
+                    <varname>$value</varname>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>setParams(array $params)</methodname> permite configurar varios
-                    parámetros a la vez usando un array asociativo.</para>
+                <para>
+                    <methodname>setParams(array $params)</methodname>
+                    permite configurar varios
+                    parámetros a la vez usando un array asociativo.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>getParam($name)</methodname> permite recuperar un único parámetro a
-                    la vez, utilizando como identificador a <varname>$name</varname>.</para>
+                <para>
+                    <methodname>getParam($name)</methodname>
+                    permite recuperar un único parámetro a
+                    la vez, utilizando como identificador a
+                    <varname>$name</varname>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>getParams()</methodname> permite recuperar toda la lista de
-                    parámetros a la vez.</para>
+                <para>
+                    <methodname>getParams()</methodname>
+                    permite recuperar toda la lista de
+                    parámetros a la vez.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>clearParams()</methodname> permite borrar un único parámetro
-                    (pasando un string identificador), parámetros con múltiples nombres (pasando un
-                    array de strings identificadores), o el stack de parámetros completo (pasando
-                    nada).</para>
+                <para>
+                    <methodname>clearParams()</methodname>
+                    permite borrar un único parámetro
+                    (pasando un string identificador), parámetros
+                    con múltiples nombres (pasando un
+                    array de strings identificadores), o el stack
+                    de parámetros completo (pasando
+                    nada).
+                </para>
             </listitem>
         </itemizedlist>
 
-       <para>Hay varios parámetros pre-definidos que puede ser seteados para tener usos
-            específicos en la cadena de dispatch:</para>
+        <para>Hay varios parámetros pre-definidos que puede ser seteados para tener usos
+            específicos
+            en la cadena de dispatch:</para>
 
         <itemizedlist>
             <listitem>
-               <para>
-                    <methodname>useDefaultControllerAlways</methodname> se usa para indicar a <link
-                        linkend="zend.controller.dispatcher">el dispatcher</link> que utilice el
-                    controlador por defecto en el módulo por defecto de cualquier solicitud que no
-                    sea dispatchable (es decir, el módulo, el controlador y/o la acción no existen).
-                    Por defecto, está en off.</para>
-
-               <para>Ver <link linkend="zend.controller.exceptions.internal">MVC Exceptions You
-                        May Encounter</link> para información más detallada sobre el uso de este
-                    setting.</para>
+                <para>
+                    <methodname>useDefaultControllerAlways</methodname>
+                    se usa para indicar a
+                    <link linkend="zend.controller.dispatcher">el dispatcher</link>
+                    que utilice el
+                    controlador por defecto en el módulo por defecto de cualquier
+                    solicitud que no
+                    sea dispatchable (es decir, el módulo, el controlador y/o la
+                    acción no existen).
+                    Por defecto, está en off.
+                </para>
+
+                <para>
+                    Ver
+                    <link linkend="zend.controller.exceptions.internal">MVC Exceptions You
+                        May Encounter</link>
+                    para información más detallada sobre el uso de este
+                    setting.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <methodname>disableOutputBuffering</methodname> se usa para indicarle a <link
-                        linkend="zend.controller.dispatcher">el dispatcher</link> que no debe
-                    utilizar output buffering para capturar la salida generada por los controladores
-                    de acción. Por defecto, el dispatcher captura cualquier salida y la añade al
-                    contenido del cuerpo del objeto respuesta.</para>
+                <para>
+                    <methodname>disableOutputBuffering</methodname>
+                    se usa para indicarle a
+                    <link linkend="zend.controller.dispatcher">el dispatcher</link>
+                    que no debe
+                    utilizar output buffering para capturar la salida generada por los
+                    controladores
+                    de acción. Por defecto, el dispatcher captura cualquier salida y la
+                    añade al
+                    contenido del cuerpo del objeto respuesta.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <emphasis>noViewRenderer</emphasis> se usa para deshabilitar el <link
-                        linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>.
-                    Poniendo este parámetro a true, lo deshabilita.</para>
+                <para>
+                    <emphasis>noViewRenderer</emphasis>
+                    se usa para deshabilitar el
+                    <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>
+                    .
+                    Poniendo este parámetro a true, lo deshabilita.
+                </para>
             </listitem>
 
             <listitem>
-               <para>
-                    <emphasis>noErrorHandler</emphasis> se usa para deshabilitar el <link
-                        linkend="zend.controller.plugins.standard.errorhandler">Error Handler
-                        plugin</link>. Poniendo este parámetro a true, lo deshabilita.</para>
+                <para>
+                    <emphasis>noErrorHandler</emphasis>
+                    se usa para deshabilitar el
+                    <link linkend="zend.controller.plugins.standard.errorhandler">Error Handler
+                        plugin</link>
+                    . Poniendo este parámetro a true, lo deshabilita.
+                </para>
             </listitem>
         </itemizedlist>
     </sect2>
@@ -436,8 +652,11 @@ Zend_Controller_Front::run('../application/controllers');
     <sect2 id="zend.controller.front.subclassing">
         <title>Extendiendo el Front Controller</title>
 
-       <para>Para extender el Front Controller, como mínimo que necesitará anular el método
-                <methodname>getInstance()</methodname>:</para>
+        <para>
+            Para extender el Front Controller, como mínimo que necesitará anular el método
+            <methodname>getInstance()</methodname>
+            :
+        </para>
 
         <programlisting language="php"><![CDATA[
 class My_Controller_Front extends Zend_Controller_Front
@@ -453,13 +672,19 @@ class My_Controller_Front extends Zend_Controller_Front
 }
 ]]></programlisting>
 
-       <para>Anulando el método <methodname>getInstance()</methodname> asegura que las
-            subsiguientes llamadas a <methodname>Zend_Controller_Front::getInstance()</methodname>
+        <para>
+            Anulando el método
+            <methodname>getInstance()</methodname>
+            asegura que las
+            subsiguientes llamadas a
+            <methodname>Zend_Controller_Front::getInstance()</methodname>
             devolverá una instancia de su nueva subclase en lugar de una instancia
-                <classname>Zend_Controller_Front</classname> -- esto es particularmente útil para
-            algunos de los routers alternativos y view helpers.</para>
+            <classname>Zend_Controller_Front</classname>
+            -- esto es particularmente útil para
+            algunos de los routers alternativos y view helpers.
+        </para>
 
-       <para>Típicamente, no necesitará una subclase del front controller a menos que necesite
+        <para>Típicamente, no necesitará una subclase del front controller a menos que necesite
             añadir nuevas funcionalidades (por ejemplo, un plugin autoloader, o una forma de
             especificar los paths de los action helpers). Algunos de los puntos donde puede querer
             modificar el comportamiento puede incluir modificar cómo son almacenados los directorios

Dosya farkı çok büyük olduğundan ihmal edildi
+ 477 - 282
documentation/manual/es/module_specs/Zend_Controller-Migration.xml


+ 134 - 91
documentation/manual/es/module_specs/Zend_Controller-QuickStart.xml

@@ -1,60 +1,75 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16705 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 16705 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.controller.quickstart">
     <title>Inicio rápido a Zend_Controller</title>
 
     <sect2 id="zend.controller.quickstart.introduction">
         <title>Introducción</title>
-       <para>
+        <para>
             <methodname>Zend_Controller</methodname>
-            es el corazón del sistema de <acronym>MVC</acronym> de Zend Framework <acronym>MVC</acronym>.<acronym>MVC</acronym>
+            es el corazón del sistema de
+            <acronym>MVC</acronym>
+            de Zend Framework
+            <acronym>MVC</acronym>
+            .
+            <acronym>MVC</acronym>
             son las siglas de
             <ulink url="http://en.wikipedia.org/wiki/Model-view-controller">
                 Modelo-Vista-Controlador
             </ulink>
             y es un patrón de diseño con el objetivo de separar la
-            lógica de la aplicación de la lógica de visualización.
+            lógica de la aplicación de la
+            lógica de visualización.
             <methodname>Zend_Controller_Front</methodname>
             implementa el patrón
             <ulink url="http://www.martinfowler.com/eaaCatalog/frontController.html">
                 Front Controller (Controlador Frontal)
             </ulink>
-            en el cual todas las transacciones <acronym>HTTP</acronym> (requests) son
+            en el cual todas las transacciones
+            <acronym>HTTP</acronym>
+            (requests) son
             interceptadas por el controlador frontal y enviado a una
-            Acción particular de un Controlador según la <acronym>URL</acronym> pedida.
+            Acción particular
+            de un Controlador según la
+            <acronym>URL</acronym>
+            pedida.
 
-       </para>
-       <para>
+        </para>
+        <para>
             El sistema
             <methodname>Zend_Controller</methodname>
             fue construido con la extensibilidad en mente, ya sea
-            heredando las clases existentes, escribiendo nuevas clases
+            heredando las clases existentes,
+            escribiendo nuevas clases
             que implementan varias interfaces o clases abstractas que
             forman la base de la familia de clases del controlador, o
-            escribiendo plugins o helpers de las acciones para aumentar
+            escribiendo plugins o helpers
+            de las acciones para aumentar
             o manipular la funcionalidad del sistema.
-       </para>
+        </para>
     </sect2>
 
     <sect2 id="zend.controller.quickstart.go">
         <title>Quick Start</title>
 
-       <para>
+        <para>
             Si necesita información más detallada, mire las secciones
-            siguientes. Si solamente quiere inicializar y ejecutar una
+            siguientes. Si solamente
+            quiere inicializar y ejecutar una
             aplicación rápidamente, siga leyendo.
        </para>
 
         <sect3 id="zend.controller.quickstart.go.directory">
             <title>Cree su estructura de archivos</title>
 
-           <para>
+            <para>
                 El primer paso es crear su estructura de archivos. La
-                estructura típica es la siguiente:
+                estructura típica es la
+                siguiente:
            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 application/
     controllers/
         IndexController.php
@@ -75,24 +90,24 @@ html/
         <sect3 id="zend.controller.quickstart.go.docroot">
             <title>Establezca el document root</title>
 
-           <para>
+            <para>
                 Apunte su document root en su servidor web hacia el
                 directorio
                 <filename>html/</filename>
                 de la estructura de archivos de arriba.
-           </para>
+            </para>
         </sect3>
 
         <sect3 id="zend.controller.quickstart.go.rewrite">
             <title>Cree sus reglas de reescritura</title>
 
-           <para>
+            <para>
                 Edite el archivo
                 <filename>html/.htaccess</filename>
                 que aparece arriba de la siguiente forma:
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} -s [OR]
 RewriteCond %{REQUEST_FILENAME} -l [OR]
@@ -104,21 +119,25 @@ RewriteRule ^.*$ index.php [NC,L]
             <note>
                 <title>Learn about mod_rewrite</title>
 
-               <para>
+                <para>
                     The above rewrite rules allow access to any file under your
-                    virtual host's document root. If there are files you do not
-                    want exposed in this way, you may want to be more
+                    virtual host's
+                    document root. If there are files you do not
+                    want exposed in this way, you may
+                    want to be more
                     restrictive in your rules. Go to the Apache website to
-                    <ulink
-                        url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">learn
-                        more about mod_rewrite</ulink>.
-               </para>
+                    <ulink url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">learn
+                        more about mod_rewrite</ulink>
+                    .
+                </para>
             </note>
 
-           <para>
-                If using <acronym>IIS</acronym> 7.0, use the following as your rewrite
+            <para>
+                If using
+                <acronym>IIS</acronym>
+                7.0, use the following as your rewrite
                 configuration:
-           </para>
+            </para>
 
             <programlisting language="xml"><![CDATA[
 <?xml version="1.0" encoding="UTF-8"?>
@@ -148,55 +167,63 @@ RewriteRule ^.*$ index.php [NC,L]
 </configuration>
 ]]></programlisting>
 
-           <para>
+            <para>
                 La regla de arriba redirigirá las peticiones a recuros existentes
-                (enlaces simbólicos existentes, archivos no vacíos, o directorios no vacíos)
-        en consecuencia, y todas las otras peticiones al front controller.
+                (enlaces
+                simbólicos existentes, archivos no vacíos, o directorios no vacíos)
+                en consecuencia, y todas las otras peticiones al front controller.
            </para>
 
             <note>
-               <para>
+                <para>
                     Las reglas de arriba pertenecen a Apache. Para ejemplos de reglas
-                    de rewrite para otros servidores web, mire la
+                    de rewrite para
+                    otros servidores web, mire la
                     <link linkend="zend.controller.router.introduction">
                         documentación de router
                     </link>
                     .
-               </para>
+                </para>
             </note>
         </sect3>
 
         <sect3 id="zend.controller.quickstart.go.bootstrap">
             <title>Crear el archivo bootstrap</title>
 
-           <para>
+            <para>
                 El archivo bootstrap es la página a la que todas las peticiones
-                son redirigidas a través de --
+                son redirigidas a
+                través de --
                 <filename>html/index.php</filename>
                 en este caso. Abra el archivo
                 <filename>html/index.php</filename>
                 en el editor de su elección y añada lo siguiente:
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 Zend_Controller_Front::run('/path/to/app/controllers');
 ]]></programlisting>
 
-           <para>
+            <para>
                 Esto instanciará y hará un dispatch del front controller, que
-                redigirá las peticiones a los action controllers.
+                redigirá las
+                peticiones a los action controllers.
            </para>
         </sect3>
 
         <sect3 id="zend.controller.quickstart.go.controller">
             <title>Crear el action controller por defecto</title>
 
-           <para>
+            <para>
                 Antes de tratar los action controllers, debe primero
-                entender cómo las peticiones son redirigidas en Zend Framework.
-                Por defecto, el primero segmento de una ruta <acronym>URL</acronym> apunta
+                entender cómo las peticiones son
+                redirigidas en Zend Framework.
+                Por defecto, el primero segmento de una ruta
+                <acronym>URL</acronym>
+                apunta
                 a un controlador, y el segundo a una acción. Por ejemplo,
-                dada la <acronym>URL</acronym>
+                dada la
+                <acronym>URL</acronym>
                 <filename>
                     http://framework.zend.com/roadmap/components
                 </filename>
@@ -213,12 +240,14 @@ Zend_Controller_Front::run('/path/to/app/controllers');
                 (siguiendo la convención de Apache de apuntar a
                 <emphasis>DirectoryIndex</emphasis>
                 automáticamente).
-           </para>
+            </para>
 
-           <para>
-                El dispatcher de <methodname>Zend_Controller</methodname>
+            <para>
+                El dispatcher de
+                <methodname>Zend_Controller</methodname>
                 toma entonces el valor del controlador y lo apunta
-                a una clase. Por defecto, pone en mayúsculas la primera letra
+                a una clase. Por defecto, pone en
+                mayúsculas la primera letra
                 del nombre de controlador y agrega la palabra
                 <emphasis>Controller</emphasis>
                 . De esta forma, en nuestro ejemplo de arriba, el controlador
@@ -226,11 +255,12 @@ Zend_Controller_Front::run('/path/to/app/controllers');
                 es dirigido a la clase
                 <methodname>RoadmapController</methodname>
                 .
-           </para>
+            </para>
 
-           <para>
+            <para>
                 De la misma forma, el valor de action es dirigido
-                a un método de la clase controladora. Por defecto, el valor se
+                a un método de la clase
+                controladora. Por defecto, el valor se
                 pasa a minúsculas, y la palabra
                 <emphasis>Action</emphasis>
                 es añadida. De esta forma, en nuestro ejemplo de arriba, la acción
@@ -240,19 +270,20 @@ Zend_Controller_Front::run('/path/to/app/controllers');
                 , y el método final llamado es
                 <methodname>RoadmapController::componentsAction()</methodname>
                 .
-           </para>
+            </para>
 
-           <para>
+            <para>
                 Continuando, creemos ahora un action controller
-                y un método de acción por defecto. Como se ha dicho antes,
+                y un método de acción por defecto.
+                Como se ha dicho antes,
                 el controlador por defecto y la acción llamada son ambos
                 <emphasis>index</emphasis>
                 . Abra el archivo
                 <filename>application/controllers/IndexController.php</filename>
                 , e introduzca lo siguiente:
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 /** Zend_Controller_Action */
 class IndexController extends Zend_Controller_Action
 {
@@ -262,24 +293,28 @@ class IndexController extends Zend_Controller_Action
 }
 ]]></programlisting>
 
-           <para>
+            <para>
                 Por defecto, el action helper
                 <link linkend="zend.controller.actionhelpers.viewrenderer">
                     ViewRenderer
                 </link>
                 está activado. Esto significa que simplemente
-                definiendo un action method y un view script correspondiente,
+                definiendo un action method y un view
+                script correspondiente,
                 tendrá su contenido generado inmediatamente.
                 Por defecto,
                 <methodname>Zend_View</methodname>
-                es usado como la capa Vista en el patrón <acronym>MVC</acronym>. El
+                es usado como la capa Vista en el patrón
+                <acronym>MVC</acronym>
+                . El
                 <emphasis>ViewRenderer</emphasis>
                 hace algo de magia, y usa el nombre de controlador (e.g.,
                 <methodname>index</methodname>
                 ) y el nombre de acción actual (e.g.,
                 <emphasis>index</emphasis>
                 ) para determinar qué plantilla traer. Por defecto,
-                las plantillas terminan con la extensión
+                las plantillas terminan con la
+                extensión
                 <methodname>.phtml</methodname>
                 , lo que significa que en el ejemplo de arriba, la
                 plantilla
@@ -289,19 +324,21 @@ class IndexController extends Zend_Controller_Action
                 asume automáticamente que la carpeta
                 <methodname>views</methodname>
                 al mismo nivel que la carpeta controller será
-                la carpeta raíz de la vista, y que el script de vista actual
+                la carpeta raíz de la vista, y que el
+                script de vista actual
                 estará en la subcarpeta
-                <filename>views/scripts/</filename>.
+                <filename>views/scripts/</filename>
+                .
                 De esta forma, la plantilla generada será encontrada en
                 <filename>application/views/scripts/index/index.phtml</filename>
                 .
-           </para>
+            </para>
         </sect3>
 
         <sect3 id="zend.controller.quickstart.go.view">
             <title>Cree su view script</title>
 
-           <para>
+            <para>
                 Como hemos mencionado
                 <link linkend="zend.controller.quickstart.go.controller">
                     en la sección anterior
@@ -312,9 +349,9 @@ class IndexController extends Zend_Controller_Action
                 está en
                 <filename>application/views/scripts/index/index.phtml</filename>
                 . Cree este archivo, y escriba un poco de HTML:
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 <!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
@@ -333,20 +370,22 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         <sect3 id="zend.controller.quickstart.go.errorhandler">
             <title>Cree su controlador de errores</title>
 
-           <para>
+            <para>
                 Por defecto, está registrado
                 <link linkend="zend.controller.plugins.standard.errorhandler">
                     el plugin 'error handler'
-                </link>. Este plugin espera que exista
+                </link>
+                . Este plugin espera que exista
                 un controlador para manejar los errores.
-                Por defecto, asume un
+                Por defecto,
+                asume un
                 <methodname>ErrorController</methodname>
                 en el módulo default con un método
                 <methodname>errorAction</methodname>
                 :
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 class ErrorController extends Zend_Controller_Action
 {
     public function errorAction()
@@ -355,16 +394,16 @@ class ErrorController extends Zend_Controller_Action
 }
 ]]></programlisting>
 
-           <para>
+            <para>
                 Asumiendo el sistema de carpetas discutido anteriormente,
                 este archivo irá en
                 <filename>application/controllers/ErrorController.php</filename>
                 . También necesitará crear un view script en
                 <filename>application/views/scripts/error/error.phtml</filename>
                 ; el contenido de ejemplo será parecido a:
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 <!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
@@ -384,38 +423,42 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         <sect3 id="zend.controller.quickstart.go.finish">
             <title>¡Vea el sitio!</title>
 
-           <para>
-                Con su primer controlador y vista, ya puede arrancar su navegador y acceder a su sitio.
+            <para>
+                Con su primer controlador y vista, ya puede arrancar su navegador y acceder a su
+                sitio.
                 Asumiendo que
                 <filename>example.com</filename>
-                es su dominio, cualquiera de las siguientes <acronym>URL</acronym>s le llevará a
+                es su dominio, cualquiera de las siguientes
+                <acronym>URL</acronym>
+                s le llevará a
                 la página que acaba de crear:
-           </para>
+            </para>
 
             <itemizedlist>
                 <listitem>
-                   <para>
+                    <para>
                         <filename>http://example.com/</filename>
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
+                    <para>
                         <filename>http://example.com/index</filename>
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
+                    <para>
                         <filename>http://example.com/index/index</filename>
-                   </para>
+                    </para>
                 </listitem>
             </itemizedlist>
 
-           <para>
-                Ya está listo para empezar a crear más métodos de controladores y acciones. ¡Felicidades!
+            <para>
+                Ya está listo para empezar a crear más métodos de controladores y acciones.
+                ¡Felicidades!
            </para>
         </sect3>
     </sect2>
 </sect1>
-<!--
+    <!--
     vim:se ts=4 sw=4 et:
 -->

+ 412 - 197
documentation/manual/es/module_specs/Zend_Controller-Request.xml

@@ -1,67 +1,119 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17597 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17597 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.controller.request">
     <title>La solicitud del Objeto</title>
     <sect2 id="zend.controller.request.introduction">
         <title>Introducción</title>
-       <para>El objeto request es un objeto de valor simple que es pasado
-            entre <classname>Zend_Controller_Front</classname> y el router,
+        <para>
+            El objeto request es un objeto de valor simple que es pasado
+            entre
+            <classname>Zend_Controller_Front</classname>
+            y el router,
             dispatcher, y clases de controlador. Empaqueta los nombres del
-            módulo solicitado, controlador, acción, y los parámetros opcionales,
-            así como el resto del entorno de la solicitud, ya sea
-                <acronym>HTTP</acronym>, el <acronym>CLI</acronym>, o
-                <acronym>PHP</acronym>-GTK.</para>
+            módulo
+            solicitado, controlador, acción, y los parámetros opcionales,
+            así como el resto del
+            entorno de la solicitud, ya sea
+            <acronym>HTTP</acronym>
+            , el
+            <acronym>CLI</acronym>
+            , o
+            <acronym>PHP</acronym>
+            -GTK.
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>El nombre del módulo es accedido por
-                        <methodname>getModuleName()</methodname> y
-                        <methodname>setModuleName()</methodname>.</para>
+                <para>
+                    El nombre del módulo es accedido por
+                    <methodname>getModuleName()</methodname>
+                    y
+                    <methodname>setModuleName()</methodname>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>El nombre del controlador es accedido por
-                        <methodname>getControllerName()</methodname> y
-                        <methodname>setControllerName()</methodname>.</para>
+                <para>
+                    El nombre del controlador es accedido por
+                    <methodname>getControllerName()</methodname>
+                    y
+                    <methodname>setControllerName()</methodname>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>El nombre de la acción que llamar dentro del controlador
-                    es accedido por <methodname>getActionName()</methodname> y
-                        <methodname>setActionName()</methodname>.</para>
+                <para>
+                    El nombre de la acción que llamar dentro del controlador
+                    es accedido por
+                    <methodname>getActionName()</methodname>
+                    y
+                    <methodname>setActionName()</methodname>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-               <para>Los parámetros accesibles por la acción son un array
-                    asociativo de pares clave/valor que son recuperados por
-                        <methodname>getParams()</methodname> y configurados con
-                        <methodname>setParams()</methodname>, o configurados
-                    individualmente por <methodname>getParam()</methodname> y
-                        <methodname>setParam()</methodname>.</para>
+                <para>
+                    Los parámetros accesibles por la acción son un array
+                    asociativo de pares
+                    clave/valor que son recuperados por
+                    <methodname>getParams()</methodname>
+                    y configurados con
+                    <methodname>setParams()</methodname>
+                    , o configurados
+                    individualmente por
+                    <methodname>getParam()</methodname>
+                    y
+                    <methodname>setParam()</methodname>
+                    .
+                </para>
             </listitem>
         </itemizedlist>
 
-       <para>Basado en el tipo de solicitud, puede haber más métodos
-            disponibles. La solicitud por defecto usada,
-                <classname>Zend_Controller_Request_Http</classname>, por
-            ejemplo, tiene métodos para recuperar la <acronym>URI</acronym> de
+        <para>
+            Basado en el tipo de solicitud, puede haber más métodos
+            disponibles. La solicitud por
+            defecto usada,
+            <classname>Zend_Controller_Request_Http</classname>
+            , por
+            ejemplo, tiene métodos para recuperar la
+            <acronym>URI</acronym>
+            de
             la solicitud, ruta de la información, parámetros
-                <varname>$_GET</varname> y <varname>$_POST</varname>, etc.</para>
-
-       <para>El objeto request es pasado al controlador front, o si no es
-            provisto, es instanciado al principio del proceso dispatcher, antes
-            de que ocurra el enrutamiento. Es pasado a través de todos los
+            <varname>$_GET</varname>
+            y
+            <varname>$_POST</varname>
+            , etc.
+        </para>
+
+        <para>El objeto request es pasado al controlador front, o si no es
+            provisto, es instanciado
+            al principio del proceso dispatcher, antes
+            de que ocurra el enrutamiento. Es pasado a
+            través de todos los
             objetos en la cadena del dispatcher.</para>
 
-       <para>Adicionalmente, la solicitud objeto es particularmente útil en
-            pruebas. El desarrolador puede cambiar el entorno de la solicitud,
-            incluyendo módulos, controladores, acciones, parámetros,
-                <acronym>URI</acronym>, etc, y pasar la solicitud objeto al
-            controlador front para probar el flujo de la aplicación. Cuando se
-            vincula con el <link linkend="zend.controller.response">objeto
-                respuesta </link>, es posible elaborar y precisar una unidad de
-            pruebas de aplicaciones <acronym>MVC</acronym>.</para>
+        <para>
+            Adicionalmente, la solicitud objeto es particularmente útil en
+            pruebas. El desarrolador
+            puede cambiar el entorno de la solicitud,
+            incluyendo módulos, controladores, acciones,
+            parámetros,
+            <acronym>URI</acronym>
+            , etc, y pasar la solicitud objeto al
+            controlador front para probar el flujo de la
+            aplicación. Cuando se
+            vincula con el
+            <link linkend="zend.controller.response">objeto
+                respuesta </link>
+            , es posible elaborar y precisar una unidad de
+            pruebas de aplicaciones
+            <acronym>MVC</acronym>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.controller.request.http">
@@ -70,49 +122,85 @@
         <sect3 id="zend.controller.request.http.dataacess">
             <title>Solicitud de acceso a datos</title>
 
-           <para>
-                <classname>Zend_Controller_Request_Http</classname> encapsula el
+            <para>
+                <classname>Zend_Controller_Request_Http</classname>
+                encapsula el
                 acceso a relevantes valores tal como el nombre de la llave y el
-                valor para el controlador y variables de aación enrutamiento y
-                todos los parámetros adicionales analizados desde el
-                    <acronym>URI</acronym>. Adiccionalmente permite el acceso a
-                valores contenidos en las superglobales como miembros públicos y
-                administra la actual base <acronym>URL</acronym> y la solicitud
-                    <acronym>URI</acronym>. los valores Superglobales no pueden
-                ser determinados en una solicitud objeto, en vez usar los
-                métodos <methodname>setParam()</methodname> y
-                    <methodname>getParam()</methodname> para determinar o
-                recuperar los parámetros del usuario.</para>
+                valor
+                para el controlador y variables de aación enrutamiento y
+                todos los parámetros
+                adicionales analizados desde el
+                <acronym>URI</acronym>
+                . Adiccionalmente permite el acceso a
+                valores contenidos en las superglobales como
+                miembros públicos y
+                administra la actual base
+                <acronym>URL</acronym>
+                y la solicitud
+                <acronym>URI</acronym>
+                . los valores Superglobales no pueden
+                ser determinados en una solicitud objeto, en
+                vez usar los
+                métodos
+                <methodname>setParam()</methodname>
+                y
+                <methodname>getParam()</methodname>
+                para determinar o
+                recuperar los parámetros del usuario.
+            </para>
 
             <note>
                 <title>Datos Superglobales</title>
-               <para>Cuando se accede a datos Superglobales a través
-                        <classname>Zend_Controller_Request_Http</classname> como
+                <para>
+                    Cuando se accede a datos Superglobales a través
+                    <classname>Zend_Controller_Request_Http</classname>
+                    como
                     propiedades de miembros públicos, es necesario mantener en
-                    mente que el nombre de la propiedad (supergloabl array key)
-                    corresponda a una supergloabl en un específico orden de
-                    precedencia:1. <constant>GET</constant>, 2.
-                        <constant>POST</constant>, 3.
-                        <constant>COOKIE</constant>, 4.
-                        <constant>SERVER</constant>, 5.
-                    <constant>ENV</constant>.</para>
+                    mente que el
+                    nombre de la propiedad (supergloabl array key)
+                    corresponda a una supergloabl en
+                    un específico orden de
+                    precedencia:1.
+                    <constant>GET</constant>
+                    , 2.
+                    <constant>POST</constant>
+                    , 3.
+                    <constant>COOKIE</constant>
+                    , 4.
+                    <constant>SERVER</constant>
+                    , 5.
+                    <constant>ENV</constant>
+                    .
+                </para>
             </note>
 
-           <para>Las supergloables específicas pueden ser accedidas usando un
-                método público como una alternativa. Por ejemplo, el valor
-                original de <varname>$_POST['user']</varname> puede ser accedido
-                llamando a <methodname>getPost('user')</methodname> en la
+            <para>
+                Las supergloables específicas pueden ser accedidas usando un
+                método público como una
+                alternativa. Por ejemplo, el valor
+                original de
+                <varname>$_POST['user']</varname>
+                puede ser accedido
+                llamando a
+                <methodname>getPost('user')</methodname>
+                en la
                 solicitud objeto. Esto incluye
-                    <methodname>getQuery()</methodname> para recuperar elementos
-                    <varname>$_GET</varname>, y
-                    <methodname>getHeader()</methodname> para recuperar la
-                solicitud de los encabezadores (headers).</para>
+                <methodname>getQuery()</methodname>
+                para recuperar elementos
+                <varname>$_GET</varname>
+                , y
+                <methodname>getHeader()</methodname>
+                para recuperar la
+                solicitud de los encabezadores (headers).
+            </para>
 
             <note>
                 <title>Datos GET y POST</title>
-               <para>Sea cauteloso cuando accede a los datos de la solicitud
-                    objeto como no es filtrado en ninguna manera. El router y
-                    dispatcher valida y filtra datos para usar con sus tareas,
+                <para>Sea cauteloso cuando accede a los datos de la solicitud
+                    objeto como no es
+                    filtrado en ninguna manera. El router y
+                    dispatcher valida y filtra datos para
+                    usar con sus tareas,
                     pero dejan los datos intactos en la solicitud objeto.
                </para>
             </note>
@@ -120,118 +208,201 @@
             <note>
                 <title>Recuperando los datos POST sin procesar</title>
 
-               <para>Como 1.5.0, se puede recuperar los datos sin procesar a
-                    través del método <methodname>getRawBody()</methodname>.
+                <para>
+                    Como 1.5.0, se puede recuperar los datos sin procesar a
+                    través del método
+                    <methodname>getRawBody()</methodname>
+                    .
                     Este método retorna falso si los datos han sido enviados de
-                    esa manera, pero si no retorna el cuerpo entero del post.</para>
-
-               <para>Esto es primordialmente útil para aceptar el contenido
-                    cuando se desarrolla una aplicación <acronym>MVC</acronym>
-                    simple.</para>
+                    esa manera, pero si
+                    no retorna el cuerpo entero del post.
+                </para>
+
+                <para>
+                    Esto es primordialmente útil para aceptar el contenido
+                    cuando se desarrolla una
+                    aplicación
+                    <acronym>MVC</acronym>
+                    simple.
+                </para>
             </note>
 
-           <para>Usted puede determinar parámetros de usuario en la solicitud
-                objeto usando <methodname>setParam()</methodname> y recuperar
-                los mismos despues usando <methodname>getParam()</methodname>.
+            <para>
+                Usted puede determinar parámetros de usuario en la solicitud
+                objeto usando
+                <methodname>setParam()</methodname>
+                y recuperar
+                los mismos despues usando
+                <methodname>getParam()</methodname>
+                .
                 El router hace uso de esta funcionalidad para determinar
-                parámetros correspondientes en la solicitud
-                    <acronym>URI</acronym> a la solicitud objeto.</para>
+                parámetros correspondientes
+                en la solicitud
+                <acronym>URI</acronym>
+                a la solicitud objeto.
+            </para>
 
             <note>
                 <title>getParam() Recupera mas que Parámetros de Usuario</title>
 
-               <para>En orden para hacer el mismo trabajo,
-                        <methodname>getParam()</methodname> recupera actualmente
+                <para>
+                    En orden para hacer el mismo trabajo,
+                    <methodname>getParam()</methodname>
+                    recupera actualmente
                     desde muchas fuentes. En orden de prioridad, estas incluyen:
                     parámetros de usuario determinados a través de
-                        <methodname>setParam()</methodname>, parámetros
-                        <constant>GET</constant>, y finalmente parámetros
-                        <constant>POST</constant>. Ser conciente de esto cuando
-                    se sacan datos a través de este método.</para>
-
-               <para>Si se desea sacar solo desde parámetros se configura a
-                    través de <methodname>setParam()</methodname>, use
-                        <methodname>getUserParam()</methodname>.</para>
-
-               <para>Además, a partir de 1.5.0, puede bloquear el parámetro
-                    que se buscará en las fuentes.
-                        <methodname>setParamSources()</methodname> le permite
+                    <methodname>setParam()</methodname>
+                    , parámetros
+                    <constant>GET</constant>
+                    , y finalmente parámetros
+                    <constant>POST</constant>
+                    . Ser conciente de esto cuando
+                    se sacan datos a través de este método.
+                </para>
+
+                <para>
+                    Si se desea sacar solo desde parámetros se configura a
+                    través de
+                    <methodname>setParam()</methodname>
+                    , use
+                    <methodname>getUserParam()</methodname>
+                    .
+                </para>
+
+                <para>
+                    Además, a partir de 1.5.0, puede bloquear el parámetro
+                    que se buscará en las
+                    fuentes.
+                    <methodname>setParamSources()</methodname>
+                    le permite
                     especificar un array vacío o un array con uno o más de los
-                    valores '_GET' o '_POST', indicando que fuente de parámetro
-                    se permite (por defecto, ambos son permitidos); si se desea
-                    restringir el acceso a solamente '_GET' especificar
-                        <methodname>setParamSources
-                    (array('_GET'))</methodname>.</para>
+                    valores
+                    '_GET' o '_POST', indicando que fuente de parámetro
+                    se permite (por defecto,
+                    ambos son permitidos); si se desea
+                    restringir el acceso a solamente '_GET'
+                    especificar
+                    <methodname>setParamSources
+                        (array('_GET'))</methodname>
+                    .
+                </para>
             </note>
 
             <note>
                 <title>Apache Quirks</title>
-               <para>Si está usando Apache 404 handler para pasar If you are
-                    using Apache's 404 handler to pass incoming requests to the
-                    front controller, or using a PT flag with rewrite rules,
-                        <varname>$_SERVER['REDIRECT_URL']</varname> contains the
-                        <acronym>URI</acronym> you need, not
-                        <varname>$_SERVER['REQUEST_URI']</varname>. If you are
+                <para>
+                    Si está usando Apache 404 handler para pasar If you are
+                    using Apache's 404
+                    handler to pass incoming requests to the
+                    front controller, or using a PT flag
+                    with rewrite rules,
+                    <varname>$_SERVER['REDIRECT_URL']</varname>
+                    contains the
+                    <acronym>URI</acronym>
+                    you need, not
+                    <varname>$_SERVER['REQUEST_URI']</varname>
+                    . If you are
                     using such a setup and getting invalid routing, you should
                     use the
-                        <classname>Zend_Controller_Request_Apache404</classname>
-                    class instead of the default <acronym>HTTP</acronym> class for your request
-                    object:</para>
+                    <classname>Zend_Controller_Request_Apache404</classname>
+                    class instead of the default
+                    <acronym>HTTP</acronym>
+                    class for your request
+                    object:
+                </para>
 
                 <programlisting language="php"><![CDATA[
 $request = new Zend_Controller_Request_Apache404();
 $front->setRequest($request);
 ]]></programlisting>
 
-               <para>This class extends the
-                        <classname>Zend_Controller_Request_Http</classname>
+                <para>
+                    This class extends the
+                    <classname>Zend_Controller_Request_Http</classname>
                     class and simply modifies the autodiscovery of the request
-                    URI. It can be used as a drop-in replacement.</para>
+                    URI. It can be used as
+                    a drop-in replacement.
+                </para>
             </note>
         </sect3>
 
         <sect3 id="zend.controller.request.http.baseurl">
             <title>Base Url and Subdirectories</title>
 
-           <para>
-                <classname>Zend_Controller_Request_Http</classname> allows
-                    <classname>Zend_Controller_Router_Rewrite</classname> to be
+            <para>
+                <classname>Zend_Controller_Request_Http</classname>
+                allows
+                <classname>Zend_Controller_Router_Rewrite</classname>
+                to be
                 used in subdirectories.
-                    <classname>Zend_Controller_Request_Http</classname> will
-                attempt to automatically detect your base <acronym>URL</acronym>
-                and set it accordingly.</para>
-
-           <para>For example, if you keep your <filename>index.php</filename>
+                <classname>Zend_Controller_Request_Http</classname>
+                will
+                attempt to automatically detect your base
+                <acronym>URL</acronym>
+                and set it accordingly.
+            </para>
+
+            <para>
+                For example, if you keep your
+                <filename>index.php</filename>
                 in a webserver subdirectory named
-                    <filename>/projects/myapp/index.php</filename>, base
-                    <acronym>URL</acronym> (rewrite base) should be set to
-                    <methodname>/projects/myapp</methodname>. This string will
+                <filename>/projects/myapp/index.php</filename>
+                , base
+                <acronym>URL</acronym>
+                (rewrite base) should be set to
+                <methodname>/projects/myapp</methodname>
+                . This string will
                 then be stripped from the beginning of the path before
-                calculating any route matches. This frees one from the necessity
-                of prepending it to any of your routes. A route of
-                    <command>'user/:username'</command> will match
-                    <acronym>URI</acronym>s like
-                    <filename>http://localhost/projects/myapp/user/martel</filename>
-                and <filename>http://example.com/user/martel</filename>.</para>
+                calculating
+                any route matches. This frees one from the necessity
+                of prepending it to any of your
+                routes. A route of
+                <command>'user/:username'</command>
+                will match
+                <acronym>URI</acronym>
+                s like
+                <filename>http://localhost/projects/myapp/user/martel</filename>
+                and
+                <filename>http://example.com/user/martel</filename>
+                .
+            </para>
 
             <note>
                 <title>URL Detection is Case Sensitive</title>
-               <para>Automatic base <acronym>URL</acronym> detection is case
-                    sensitive, so make sure your <acronym>URL</acronym> will
+                <para>
+                    Automatic base
+                    <acronym>URL</acronym>
+                    detection is case
+                    sensitive, so make sure your
+                    <acronym>URL</acronym>
+                    will
                     match a subdirectory name in a filesystem (even on Windows
-                    machines). If it doesn't, an exception will be raised.
-               </para>
+                    machines). If it
+                    doesn't, an exception will be raised.
+                </para>
             </note>
 
-           <para>Should base <acronym>URL</acronym> be detected incorrectly
-                you can override it with your own base path with the help of the
-                    <methodname>setBaseUrl()</methodname> method of either the
-                    <classname>Zend_Controller_Request_Http</classname> class,
-                or the <classname>Zend_Controller_Front</classname> class. The
+            <para>
+                Should base
+                <acronym>URL</acronym>
+                be detected incorrectly
+                you can override it with your own base path with the help of
+                the
+                <methodname>setBaseUrl()</methodname>
+                method of either the
+                <classname>Zend_Controller_Request_Http</classname>
+                class,
+                or the
+                <classname>Zend_Controller_Front</classname>
+                class. The
                 easiest method is to set it in
-                    <classname>Zend_Controller_Front</classname>, which will
+                <classname>Zend_Controller_Front</classname>
+                , which will
                 proxy it into the request object. Example usage to set a custom
-                base <acronym>URL</acronym>:</para>
+                base
+                <acronym>URL</acronym>
+                :
+            </para>
 
             <programlisting language="php"><![CDATA[
 /**
@@ -250,95 +421,125 @@ $response   = $controller->dispatch();
         <sect3 id="zend.controller.request.http.method">
             <title>Determining the Request Method</title>
 
-           <para>
-                <methodname>getMethod()</methodname> allows you to determine the
-                    <acronym>HTTP</acronym> request method used to request the
-                current resource. Additionally, a variety of methods exist that
+            <para>
+                <methodname>getMethod()</methodname>
+                allows you to determine the
+                <acronym>HTTP</acronym>
+                request method used to request the
+                current resource. Additionally, a variety of
+                methods exist that
                 allow you to get boolean responses when asking if a specific
-                type of request has been made:</para>
+                type
+                of request has been made:
+            </para>
 
             <itemizedlist>
                 <listitem>
-                   <para>
+                    <para>
                         <methodname>isGet()</methodname>
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
+                    <para>
                         <methodname>isPost()</methodname>
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
+                    <para>
                         <methodname>isPut()</methodname>
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
+                    <para>
                         <methodname>isDelete()</methodname>
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
+                    <para>
                         <methodname>isHead()</methodname>
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
+                    <para>
                         <methodname>isOptions()</methodname>
-                   </para>
+                    </para>
                 </listitem>
             </itemizedlist>
 
-           <para>The primary use case for these is for creating RESTful
-                    <acronym>MVC</acronym> architectures.</para>
+            <para>
+                The primary use case for these is for creating RESTful
+                <acronym>MVC</acronym>
+                architectures.
+            </para>
         </sect3>
 
         <sect3 id="zend.controller.request.http.ajax">
             <title>Detecting AJAX Requests</title>
 
-           <para>
-                <classname>Zend_Controller_Request_Http</classname> has a
-                rudimentary method for detecting <acronym>AJAX</acronym>
-                requests: <methodname>isXmlHttpRequest()</methodname>. This
-                method looks for an <acronym>HTTP</acronym> request header
-                <emphasis>X-Requested-With</emphasis> with the value
-                'XMLHttpRequest'; if found, it returns <constant>TRUE</constant>.</para>
-
-           <para>Currently, this header is known to be passed by default with
-                the following JS libraries:</para>
+            <para>
+                <classname>Zend_Controller_Request_Http</classname>
+                has a
+                rudimentary method for detecting
+                <acronym>AJAX</acronym>
+                requests:
+                <methodname>isXmlHttpRequest()</methodname>
+                . This
+                method looks for an
+                <acronym>HTTP</acronym>
+                request header
+                <emphasis>X-Requested-With</emphasis>
+                with the value
+                'XMLHttpRequest'; if found, it returns
+                <constant>TRUE</constant>
+                .
+            </para>
+
+            <para>Currently, this header is known to be passed by default with
+                the following JS
+                libraries:</para>
 
             <itemizedlist>
                 <listitem>
-                   <para>Prototype/Scriptaculous (and libraries derived from
+                    <para>Prototype/Scriptaculous (and libraries derived from
                         Prototype)</para>
                 </listitem>
                 <listitem>
-                   <para>Yahoo! UI Library</para>
+                    <para>Yahoo! UI Library</para>
                 </listitem>
                 <listitem>
-                   <para>jQuery</para>
+                    <para>jQuery</para>
                 </listitem>
                 <listitem>
-                   <para>MochiKit</para>
+                    <para>MochiKit</para>
                 </listitem>
             </itemizedlist>
 
-           <para>Most <acronym>AJAX</acronym> libraries allow you to send
-                custom <acronym>HTTP</acronym> request headers; if your library does not send this
-                header, simply add it as a request header to ensure the
-                    <methodname>isXmlHttpRequest()</methodname> method works for
-                you.</para>
+            <para>
+                Most
+                <acronym>AJAX</acronym>
+                libraries allow you to send
+                custom
+                <acronym>HTTP</acronym>
+                request headers; if your library does not send this
+                header, simply add it as a
+                request header to ensure the
+                <methodname>isXmlHttpRequest()</methodname>
+                method works for
+                you.
+            </para>
         </sect3>
     </sect2>
 
     <sect2 id="zend.controller.request.subclassing">
         <title>Subclassing the Request Object</title>
 
-       <para>The base request class used for all request objects is the
+        <para>
+            The base request class used for all request objects is the
             abstract class
-                <classname>Zend_Controller_Request_Abstract</classname>. At its
-            most basic, it defines the following methods:</para>
+            <classname>Zend_Controller_Request_Abstract</classname>
+            . At its
+            most basic, it defines the following methods:
+        </para>
 
         <programlisting language="php"><![CDATA[
 abstract class Zend_Controller_Request_Abstract
@@ -424,19 +625,33 @@ abstract class Zend_Controller_Request_Abstract
 }
 ]]></programlisting>
 
-       <para>La solicitud objeto es un contenedor para entorno de la
-            solicitud. La cadena del controlador sólo necesita saber cómo
-            establecer y recuperar el controlador, la acción, los parámetros
+        <para>La solicitud objeto es un contenedor para entorno de la
+            solicitud. La cadena del
+            controlador sólo necesita saber cómo
+            establecer y recuperar el controlador, la acción,
+            los parámetros
             opcionales, y el estado del despachador. Por defecto, la solicitud
-            buscará sus propios parámetros mediante el controlador o las llaves
-            de la acción con el fin de determinar el controlador y la acción.</para>
-
-       <para>Para ampliar esta clase, o uno de sus derivados, cuando se
-            necesita la clase solicitud que interactue con un entorno específico
-            con el fin de recuperar los datos para su uso en las tareas antes
-            descritas. Los ejemplos incluyen <link
-                linkend="zend.controller.request.http"> el entorno
-                    <acronym>HTTP</acronym>
-            </link>, un entorno <acronym>CLI</acronym>, o un entorno de <acronym>PHP</acronym>-GTK.</para>
+            buscará
+            sus propios parámetros mediante el controlador o las llaves
+            de la acción con el fin de
+            determinar el controlador y la acción.</para>
+
+        <para>
+            Para ampliar esta clase, o uno de sus derivados, cuando se
+            necesita la clase solicitud
+            que interactue con un entorno específico
+            con el fin de recuperar los datos para su uso en
+            las tareas antes
+            descritas. Los ejemplos incluyen
+            <link linkend="zend.controller.request.http">
+                el entorno
+                <acronym>HTTP</acronym>
+            </link>
+            , un entorno
+            <acronym>CLI</acronym>
+            , o un entorno de
+            <acronym>PHP</acronym>
+            -GTK.
+        </para>
     </sect2>
 </sect1>

+ 89 - 44
documentation/manual/es/module_specs/Zend_Controller-Router-Route-Chain.xml

@@ -1,36 +1,52 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 18083 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 18083 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.router.routes.chain">
     <title>Zend_Controller_Router_Route_Chain</title>
 
-   <para>
-        <classname>Zend_Controller_Router_Route_Chain</classname> es una ruta
+    <para>
+        <classname>Zend_Controller_Router_Route_Chain</classname>
+        es una ruta
         que permite encadenar juntas a múltiples rutas. Esto le permite
-        encadenar hostname/rutas y rutas de paths, o múltiples paths de rutas
-        por ejemplo. El encadenamiento puede hacerse programáticamente o dentro
-        de un archivo de configuración.</para>
+        encadenar
+        hostname/rutas y rutas de paths, o múltiples paths de rutas
+        por ejemplo. El encadenamiento
+        puede hacerse programáticamente o dentro
+        de un archivo de configuración.
+    </para>
 
     <note>
         <title>Prioridad de Parámetros</title>
-       <para>Cuando se encadenan en conjunto varias rutas, los parámetros de
-            la ruta exterior tienen mayor prioridad que los parámetros de la
-            ruta interior. Así, si define un controlador en el exterior y otro
+        <para>Cuando se encadenan en conjunto varias rutas, los parámetros de
+            la ruta exterior tienen
+            mayor prioridad que los parámetros de la
+            ruta interior. Así, si define un controlador en
+            el exterior y otro
             en la ruta interior, será seleccionado el controlador de la ruta
             exterior.</para>
     </note>
 
-   <para>Cuando el encadenamiento se realiza prográmaticamente, hay dos
-        maneras de archivarlo. La primera consiste en crear una nueva instancia
-            <classname>Zend_Controller_Router_Route_Chain</classname> y entones
-        llamar al método <methodname>chain()</methodname> varias veces con todas
+    <para>
+        Cuando el encadenamiento se realiza prográmaticamente, hay dos
+        maneras de archivarlo. La
+        primera consiste en crear una nueva instancia
+        <classname>Zend_Controller_Router_Route_Chain</classname>
+        y entones
+        llamar al método
+        <methodname>chain()</methodname>
+        varias veces con todas
         las rutas que deberían encadenarse juntas. La otra forma es tomar la
         primera ruta, por ejemplo, la ruta del nombre del host, y llamar al
-        método <methodname>chain()</methodname> con la ruta que debería ser
-        anexada a ella. Esto no modificará la ruta del nombre del host, pero
+        método
+        <methodname>chain()</methodname>
+        con la ruta que debería ser
+        anexada a ella. Esto no modificará la ruta del nombre del host,
+        pero
         devolverá una nueva instancia de
-            <classname>Zend_Controller_Router_Route_Chain</classname>, teniendo
-        entonces a ambas rutas encadenadas juntas:</para>
+        <classname>Zend_Controller_Router_Route_Chain</classname>
+        , teniendo
+        entonces a ambas rutas encadenadas juntas:
+    </para>
 
     <programlisting language="php"><![CDATA[
 // Crear dos rutas
@@ -46,8 +62,9 @@ $chainedRoute->chain($hostnameRoute)
 $chainedRoute = $hostnameRoute->chain($pathRoute);
 ]]></programlisting>
 
-   <para>Cuando las rutas se encadenan juntas, su separador es una
-        barra ('/'). Pueden haber casos cuando quiera tener un separador
+    <para>Cuando las rutas se encadenan juntas, su separador es una
+        barra ('/'). Pueden haber casos
+        cuando quiera tener un separador
         diferente:</para>
 
     <programlisting language="php"><![CDATA[
@@ -65,16 +82,27 @@ echo $chainedRoute->assemble();
     <sect4 id="zend.controller.router.routes.chain.config">
         <title>Encadenar Rutas via Zend_Config</title>
 
-       <para>Para encadenar juntas a las rutas en un archivo de configuración,
-            hay parámetros adicionales para la configuración de aquellos. El
-            enfoque más sencillo es utilizar los parámetros
-            <property>chains</property>. Este es simplemente una lista
-            de las rutas, que será encadenada con la ruta padre. Ni la ruta
+        <para>
+            Para encadenar juntas a las rutas en un archivo de configuración,
+            hay parámetros
+            adicionales para la configuración de aquellos. El
+            enfoque más sencillo es utilizar los
+            parámetros
+            <property>chains</property>
+            . Este es simplemente una lista
+            de las rutas, que será encadenada con la ruta padre. Ni
+            la ruta
             padre ni la ruta hijo serán añadidos directamente al router sino que
-            sólo lo hará la ruta del encadenamiento resultante. El nombre de la
-            ruta encadenada en el router será el nombre de la ruta padre
-            concatenada con un guión ('-') con el nombre de la ruta hijo. Un
-            simple config en <acronym>XML</acronym> se vería así:</para>
+            sólo lo hará
+            la ruta del encadenamiento resultante. El nombre de la
+            ruta encadenada en el router será
+            el nombre de la ruta padre
+            concatenada con un guión ('-') con el nombre de la ruta hijo.
+            Un
+            simple config en
+            <acronym>XML</acronym>
+            se vería así:
+        </para>
 
         <programlisting language="xml"><![CDATA[
 <routes>
@@ -114,18 +142,29 @@ echo $chainedRoute->assemble();
 </routes>
 ]]></programlisting>
 
-       <para>Esto se traducirá en las tres rutas
-            <command>www-language-index</command>,
-            <command>www-language-imprint</command> y
-            <command>users-language-profile</command> que sólo
+        <para>
+            Esto se traducirá en las tres rutas
+            <command>www-language-index</command>
+            ,
+            <command>www-language-imprint</command>
+            y
+            <command>users-language-profile</command>
+            que sólo
             concordarán basados en el nombre y la ruta
-            <command>misc</command>, que se comparará con cualquier
-            nombre de host.</para>
+            <command>misc</command>
+            , que se comparará con cualquier
+            nombre de host.
+        </para>
 
-       <para>La manera alternativa de crear una ruta encadenada es a través
-            del parámetro <property>chain</property>, que sólo puede
+        <para>
+            La manera alternativa de crear una ruta encadenada es a través
+            del parámetro
+            <property>chain</property>
+            , que sólo puede
             utilizarse directamente con el tipo cadena-ruta, y también trabaja
-            en el nivel raíz:</para>
+            en el
+            nivel raíz:
+        </para>
 
         <programlisting language="xml"><![CDATA[
 <routes>
@@ -154,8 +193,11 @@ echo $chainedRoute->assemble();
 </routes>
 ]]></programlisting>
 
-       <para>También puede darle el parámetro a <property>chain</property>
-            como un array en vez de separ las rutas con comas:</para>
+        <para>
+            También puede darle el parámetro a
+            <property>chain</property>
+            como un array en vez de separ las rutas con comas:
+        </para>
 
         <programlisting language="xml"><![CDATA[
 <routes>
@@ -172,11 +214,14 @@ echo $chainedRoute->assemble();
 </routes>
 ]]></programlisting>
 
-       <para>
-            When you configure chain routes with <classname>Zend_Config</classname> and
+        <para>
+            When you configure chain routes with
+            <classname>Zend_Config</classname>
+            and
             want the chain name separator to be different from a dash, you
-            need to specify this separator separately:
-       </para>
+            need to specify this
+            separator separately:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $config = new Zend_Config(array(

+ 54 - 26
documentation/manual/es/module_specs/Zend_Controller-Router-Route-Hostname.xml

@@ -1,20 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17592 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17592 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.router.routes.hostname">
     <title>Zend_Controller_Router_Route_Hostname</title>
 
-   <para>
-        <classname>Zend_Controller_Router_Route_Hostname</classname> es la ruta
+    <para>
+        <classname>Zend_Controller_Router_Route_Hostname</classname>
+        es la ruta
         del framework en el servidor. Funciona similarmente a la standard route,
-        pero funciona con el nombre del host de la <acronym>URL</acronym>
-        llamada, en lugar del path.</para>
+        pero
+        funciona con el nombre del host de la
+        <acronym>URL</acronym>
+        llamada, en lugar del path.
+    </para>
 
-   <para>Vamos a usar el ejemplo de la standard route y ver cómo se vería con
-        un nombre basado en host. En lugar de llamar al usuario mediante un
-        path, quisiéramos que un usuario pueda llamar a
-        <filename>http://martel.users.example.com</filename> para ver la
-        información acerca del usuario "martel".</para>
+    <para>
+        Vamos a usar el ejemplo de la standard route y ver cómo se vería con
+        un nombre basado en
+        host. En lugar de llamar al usuario mediante un
+        path, quisiéramos que un usuario pueda llamar
+        a
+        <filename>http://martel.users.example.com</filename>
+        para ver la
+        información acerca del usuario "martel".
+    </para>
 
     <programlisting language="php"><![CDATA[
 $hostnameRoute = new Zend_Controller_Router_Route_Hostname(
@@ -30,23 +39,42 @@ $plainPathRoute = new Zend_Controller_Router_Route_Static('');
 $router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
 ]]></programlisting>
 
-   <para>El primer parámetro del constructor en
-            <classname>Zend_Controller_Router_Route_Hostname</classname> es una
+    <para>
+        El primer parámetro del constructor en
+        <classname>Zend_Controller_Router_Route_Hostname</classname>
+        es una
         definición de ruta que será comparada con el nombre del host. Las
-        definiciones de ruta consisten en partes estáticas y dinámicas separadas
-        por el carácter punto ('.'). Las partes dinámicas, llamadas variables,
-        se marcan anteponiendo dos puntos (':') al nombre de la variable:
-        <command>:username</command>. Las partes estáticas son
-        simplemente texto: <command>user</command>.</para>
+        definiciones de ruta
+        consisten en partes estáticas y dinámicas separadas
+        por el carácter punto ('.'). Las partes
+        dinámicas, llamadas variables,
+        se marcan anteponiendo dos puntos (':') al nombre de la
+        variable:
+        <command>:username</command>
+        . Las partes estáticas son
+        simplemente texto:
+        <command>user</command>
+        .
+    </para>
 
-   <para>Las rutas del nombre del host pueden, pero nunca deben ser utilizadas
-        así. La razón detrás de esto es que la ruta del nombre del host
-        solamente, concordaría con cualquier path. Entonces, lo que tiene que
+    <para>
+        Las rutas del nombre del host pueden, pero nunca deben ser utilizadas
+        así. La razón detrás de
+        esto es que la ruta del nombre del host
+        solamente, concordaría con cualquier path. Entonces,
+        lo que tiene que
         hacer es encadenar una ruta del path a la ruta del nombre del host. Esto
-        se hace como en el ejemplo llamando a
-        <command>$hostnameRoute->chain($pathRoute);</command>.
-        Haciendo esto, <varname>$hostnameRoute</varname> no se modifica,
+        se
+        hace como en el ejemplo llamando a
+        <command>$hostnameRoute->chain($pathRoute);</command>
+        .
+        Haciendo esto,
+        <varname>$hostnameRoute</varname>
+        no se modifica,
         pero devuelve una nueva ruta
-            (<classname>Zend_Controller_Router_Route_Chain</classname>), que
-        luego puede ser entregada al router.</para>
+        (
+        <classname>Zend_Controller_Router_Route_Chain</classname>
+        ), que
+        luego puede ser entregada al router.
+    </para>
 </sect3>

+ 122 - 64
documentation/manual/es/module_specs/Zend_Controller-Router-Route-Regex.xml

@@ -1,18 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17592 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17592 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.router.routes.regex">
     <title>Zend_Controller_Router_Route_Regex</title>
 
-   <para>Además de los tipos de ruta estáticos y por defecto, también está
-        disponible el tipo de ruta Expresión Regular. Esta ruta ofrece más
-        potencia y flexibilidad que los otros, pero a costa de un ligero aumento
+    <para>Además de los tipos de ruta estáticos y por defecto, también está
+        disponible el tipo de
+        ruta Expresión Regular. Esta ruta ofrece más
+        potencia y flexibilidad que los otros, pero a
+        costa de un ligero aumento
         en la complejidad. Al mismo tiempo, debería ser más rápido que la
         standard Route.</para>
 
-   <para>Al igual que la standard Route, esta ruta tiene que ser inicializada
-        con una definición de ruta y algunos valores predeterminados. Vamos a
-        crear un archivo ruta como un ejemplo, similar al previamente definido,
+    <para>Al igual que la standard Route, esta ruta tiene que ser inicializada
+        con una definición de
+        ruta y algunos valores predeterminados. Vamos a
+        crear un archivo ruta como un ejemplo,
+        similar al previamente definido,
         sólo que esta vez usaremos la ruta Regex:</para>
 
     <programlisting language="php"><![CDATA[
@@ -26,10 +30,14 @@ $route = new Zend_Controller_Router_Route_Regex(
 $router->addRoute('archive', $route);
 ]]></programlisting>
 
-   <para>Cada sub-patrón regex definido será inyectado al objeto solicitud.
-        Con nuestro ejemplo anterior, después de un matching exitoso
-        <filename>http://domain.com/archive/2006</filename>, el valor
-        resultante del array puede verse como:</para>
+    <para>
+        Cada sub-patrón regex definido será inyectado al objeto solicitud.
+        Con nuestro ejemplo
+        anterior, después de un matching exitoso
+        <filename>http://domain.com/archive/2006</filename>
+        , el valor
+        resultante del array puede verse como:
+    </para>
 
     <programlisting language="php"><![CDATA[
 $values = array(
@@ -40,31 +48,47 @@ $values = array(
 ]]></programlisting>
 
     <note>
-       <para>Las barras de comienzo y final están recortadas de la
-                <acronym>URL</acronym> en el Router antes de una concordancia.
-            Como resultado, coincidendo con la <acronym>URL</acronym>
-            <filename>http://domain.com/foo/bar/</filename>, involucraría al
-            regex de <filename>foo/bar</filename>, y no a
-                <filename>/foo/bar</filename>.</para>
+        <para>
+            Las barras de comienzo y final están recortadas de la
+            <acronym>URL</acronym>
+            en el Router antes de una concordancia.
+            Como resultado, coincidendo con la
+            <acronym>URL</acronym>
+            <filename>http://domain.com/foo/bar/</filename>
+            , involucraría al
+            regex de
+            <filename>foo/bar</filename>
+            , y no a
+            <filename>/foo/bar</filename>
+            .
+        </para>
     </note>
 
     <note>
-       <para>Las anclas de comienzo y fin de línea ('^' y '$',
-            respectivamente) son automáticamente antepuestas y pospuestas a
-            todas las expresiones. Así, no debe usar éstas en sus expresiones
+        <para>Las anclas de comienzo y fin de línea ('^' y '$',
+            respectivamente) son automáticamente
+            antepuestas y pospuestas a
+            todas las expresiones. Así, no debe usar éstas en sus
+            expresiones
             regulares, y debe coincidir con el string completo.</para>
     </note>
 
     <note>
-       <para>Esta clase de ruta usa el carácter <emphasis>#</emphasis>
+        <para>
+            Esta clase de ruta usa el carácter
+            <emphasis>#</emphasis>
             como un delimitador. Esto significa que necesitará caracteres hash
-            ('#') para escapar pero no barras ('/') en sus definiciones de ruta.
-            Dado que el carácter '#' (llamado ancla) es raramente pasado al
-            webserver, será muy rara la necesidad de utilizar ese carácter en su
-            regex.</para>
+            ('#') para escapar
+            pero no barras ('/') en sus definiciones de ruta.
+            Dado que el carácter '#' (llamado
+            ancla) es raramente pasado al
+            webserver, será muy rara la necesidad de utilizar ese
+            carácter en su
+            regex.
+        </para>
     </note>
 
-   <para>Puede obtener el contenido de los sub-patrones definidos por la forma
+    <para>Puede obtener el contenido de los sub-patrones definidos por la forma
         habitual:</para>
 
     <programlisting language="php"><![CDATA[
@@ -76,16 +100,20 @@ public function showAction()
 ]]></programlisting>
 
     <note>
-       <para>Tenga en cuenta que la clave es un entero (1) en lugar de un
+        <para>Tenga en cuenta que la clave es un entero (1) en lugar de un
             string ('1').</para>
     </note>
 
-   <para>Sin embargo, esta ruta no funciona exactamente igual que su
-        contraparte standard route dado que el valor por defecto para 'year'
-        todavía no se ha establecido. Y lo que puede ser no tan evidente es que
+    <para>Sin embargo, esta ruta no funciona exactamente igual que su
+        contraparte standard route dado
+        que el valor por defecto para 'year'
+        todavía no se ha establecido. Y lo que puede ser no tan
+        evidente es que
         tendremos un problema con una barra final incluso si declaramos por
-        defecto el año y hacemos opcional al sub-patrón. La solución es hacer
-        que toda la parte del año sea opcional junto con la barra pero capturar
+        defecto el
+        año y hacemos opcional al sub-patrón. La solución es hacer
+        que toda la parte del año sea
+        opcional junto con la barra pero capturar
         solo la parte numérica:</para>
 
     <programlisting language="php"><![CDATA[
@@ -100,12 +128,16 @@ $route = new Zend_Controller_Router_Route_Regex(
 $router->addRoute('archive', $route);
 ]]></programlisting>
 
-   <para>Ahora, ocupemósnos del problema que probablemente haya notado.
-        Utilizar claves basadas en enteros para los parámetros no es una
-        solución fácilmente manejable y puede ser potencialmente problemática a
-        largo plazo. Y aquí es donde entra el tercer parámetro. Este parámetro
+    <para>Ahora, ocupemósnos del problema que probablemente haya notado.
+        Utilizar claves basadas en
+        enteros para los parámetros no es una
+        solución fácilmente manejable y puede ser
+        potencialmente problemática a
+        largo plazo. Y aquí es donde entra el tercer parámetro. Este
+        parámetro
         es un array asociativo que representa un mapa de sub-patrones regex a
-        nombres de clave de parámetros. Trabajemos en nuestro ejemplo más fácil:</para>
+        nombres de
+        clave de parámetros. Trabajemos en nuestro ejemplo más fácil:</para>
 
     <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
@@ -121,7 +153,7 @@ $route = new Zend_Controller_Router_Route_Regex(
 $router->addRoute('archive', $route);
 ]]></programlisting>
 
-   <para>Esto resultaraá en los siguientes valores inyectados a la solicitud:</para>
+    <para>Esto resultaraá en los siguientes valores inyectados a la solicitud:</para>
 
     <programlisting language="php"><![CDATA[
 $values = array(
@@ -131,8 +163,9 @@ $values = array(
 );
 ]]></programlisting>
 
-   <para>El mapa puede ser definido en cualquier dirección para hacer que
-        funcione en cualquier ambiente. Las claves pueden contener nombres de
+    <para>El mapa puede ser definido en cualquier dirección para hacer que
+        funcione en cualquier
+        ambiente. Las claves pueden contener nombres de
         variables o índices de sub-patrones:</para>
 
     <programlisting language="php"><![CDATA[
@@ -152,13 +185,15 @@ $route = new Zend_Controller_Router_Route_Regex(
 ]]></programlisting>
 
     <note>
-       <para>Las claves de los sub-patrones deben respresentarse por enteros.
+        <para>Las claves de los sub-patrones deben respresentarse por enteros.
        </para>
     </note>
 
-   <para>Observe que el índice numérico en los valores del Request ahora han
-        desaparecido y en su lugar se muestra una variable nombrada. Por
-        supuesto que puede mezclar variables nombradas y numéricas si lo desea:</para>
+    <para>Observe que el índice numérico en los valores del Request ahora han
+        desaparecido y en su
+        lugar se muestra una variable nombrada. Por
+        supuesto que puede mezclar variables nombradas y
+        numéricas si lo desea:</para>
 
     <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
@@ -168,10 +203,14 @@ $route = new Zend_Controller_Router_Route_Regex(
 );
 ]]></programlisting>
 
-   <para>Lo que resultará en una mezcla de valores disponibles en la
-        solicitud. Como ejemplo, la <acronym>URL</acronym>
-        <filename>http://domain.com/archive/2006/page/10</filename> resultará
-        con los siguientes valores:</para>
+    <para>
+        Lo que resultará en una mezcla de valores disponibles en la
+        solicitud. Como ejemplo, la
+        <acronym>URL</acronym>
+        <filename>http://domain.com/archive/2006/page/10</filename>
+        resultará
+        con los siguientes valores:
+    </para>
 
     <programlisting language="php"><![CDATA[
 $values = array(
@@ -182,11 +221,20 @@ $values = array(
 );
 ]]></programlisting>
 
-   <para>Dado que los patrones regex no pueden invertirse fácilmente, tendrá
-        que preparar una <acronym>URL</acronym> inversa si desea usar un
-        ayudante de <acronym>URL</acronym> o incluso un método de ensamble de
-        esta clase. Este path inverso está representado por un string parseable
-        por <methodname>sprintf()</methodname> y se define como el cuarto parámetro del constructor:</para>
+    <para>
+        Dado que los patrones regex no pueden invertirse fácilmente, tendrá
+        que preparar una
+        <acronym>URL</acronym>
+        inversa si desea usar un
+        ayudante de
+        <acronym>URL</acronym>
+        o incluso un método de ensamble de
+        esta clase. Este path inverso está representado por un
+        string parseable
+        por
+        <methodname>sprintf()</methodname>
+        y se define como el cuarto parámetro del constructor:
+    </para>
 
     <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
@@ -197,17 +245,26 @@ $route = new Zend_Controller_Router_Route_Regex(
 );
 ]]></programlisting>
 
-   <para>Todo esto es algo que ya fue posible de hacer por medio de un objeto
-        de ruta estandard, por lo tanto podría preguntarese: ¿cuál es la ventaja
-        de utilizar la ruta Regex?. Principalmente, le permite describir
-        cualquier tipo de <acronym>URL</acronym> sin restricción alguna.
+    <para>
+        Todo esto es algo que ya fue posible de hacer por medio de un objeto
+        de ruta estandard, por
+        lo tanto podría preguntarese: ¿cuál es la ventaja
+        de utilizar la ruta Regex?. Principalmente,
+        le permite describir
+        cualquier tipo de
+        <acronym>URL</acronym>
+        sin restricción alguna.
         Imagínese que tiene un blog y desea crear URLs como:
-            <filename>http://domain.com/blog/archive/01-Using_the_Regex_Router.html</filename>,
+        <filename>http://domain.com/blog/archive/01-Using_the_Regex_Router.html</filename>
+        ,
         y que tiene que descomponer el último elemento del path
-            <filename>01-Using_the_Regex_Router.html</filename>, en un ID de
+        <filename>01-Using_the_Regex_Router.html</filename>
+        , en un ID de
         artículo y en el título o descripción del artículo; esto no es posible con
-        el standard route. Con la ruta Regex, puede hacer algo como la siguiente
-        solución:</para>
+        el
+        standard route. Con la ruta Regex, puede hacer algo como la siguiente
+        solución:
+    </para>
 
     <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
@@ -225,6 +282,7 @@ $route = new Zend_Controller_Router_Route_Regex(
 $router->addRoute('blogArchive', $route);
 ]]></programlisting>
 
-   <para>Como puede ver, esto añade una enorme cantidad de flexibilidad por
-        encima del standard route.</para>
+    <para>Como puede ver, esto añade una enorme cantidad de flexibilidad por
+        encima del standard
+        route.</para>
 </sect3>

+ 41 - 23
documentation/manual/es/module_specs/Zend_Controller-Router-Route-Static.xml

@@ -1,13 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17592 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17592 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.router.routes.static">
     <title>Zend_Controller_Router_Route_Static</title>
 
-   <para>Los ejemplos sobre todo usan rutas dinámicas -- rutas que contienen
-        patrones contra los cuales comparar. A veces, sin embargo, una ruta en
-        particular pareciera estar seteada en piedra, y ejecutar el motor de
-        expresiones regulares sería excesivo. La respuesta a esta situación es
+    <para>Los ejemplos sobre todo usan rutas dinámicas -- rutas que contienen
+        patrones contra los
+        cuales comparar. A veces, sin embargo, una ruta en
+        particular pareciera estar seteada en
+        piedra, y ejecutar el motor de
+        expresiones regulares sería excesivo. La respuesta a esta
+        situación es
         utilizar rutas estáticas:</para>
 
     <programlisting language="php"><![CDATA[
@@ -18,47 +21,62 @@ $route = new Zend_Controller_Router_Route_Static(
 $router->addRoute('login', $route);
 ]]></programlisting>
 
-   <para>La ruta anterior se comparará con una <acronym>URL</acronym> de
-            <filename>http://domain.com/login</filename>, y hará un dispatch a
-            <methodname>AuthController::loginAction()</methodname>.</para>
+    <para>
+        La ruta anterior se comparará con una
+        <acronym>URL</acronym>
+        de
+        <filename>http://domain.com/login</filename>
+        , y hará un dispatch a
+        <methodname>AuthController::loginAction()</methodname>
+        .
+    </para>
 
     <note id="zend.controller.router.routes.static.warning">
         <title>Advertencia: Las Rutas Estáticas Deben Contener Defaults
             Sanos</title>
 
-       <para>Dado que una ruta estática no pasa ninguna parte de la
-                <acronym>URL</acronym> del objeto solicitud, como ser los
-            parámetros, usted <emphasis>debe</emphasis> pasar todos los
+        <para>
+            Dado que una ruta estática no pasa ninguna parte de la
+            <acronym>URL</acronym>
+            del objeto solicitud, como ser los
+            parámetros, usted
+            <emphasis>debe</emphasis>
+            pasar todos los
             parámetros necesarios para enviar una solicitud a la ruta como si
-            fuera por defecto. Omitiendo los valores por defecto de "controller"
-            o "action" tendrá resultados inesperados, y probablemente el
-            resultado de la solicitud no sea ejecutable.</para>
+            fuera
+            por defecto. Omitiendo los valores por defecto de "controller"
+            o "action" tendrá
+            resultados inesperados, y probablemente el
+            resultado de la solicitud no sea ejecutable.
+        </para>
 
-       <para>Como regla general, siempre proporcione cada uno de los
+        <para>Como regla general, siempre proporcione cada uno de los
             siguientes valores por defecto:</para>
 
         <itemizedlist>
             <listitem>
-               <para>controller</para>
+                <para>controller</para>
             </listitem>
             <listitem>
-               <para>action</para>
+                <para>action</para>
             </listitem>
             <listitem>
-               <para>module (si ya no está por defecto)</para>
+                <para>module (si ya no está por defecto)</para>
             </listitem>
         </itemizedlist>
 
-       <para>Opcionalmente, también puede pasar el parámetro
-            "useDefaultControllerAlways" al front controller durante el
+        <para>Opcionalmente, también puede pasar el parámetro
+            "useDefaultControllerAlways" al front
+            controller durante el
             bootstrapping:</para>
 
         <programlisting language="php"><![CDATA[
 $front->setParam('useDefaultControllerAlways', true);
 ]]></programlisting>
 
-       <para>Sin embargo, esto es considerado un rodeo; siempre es mejor
-            definir explícitamente valores correctos o sanos por defecto.
+        <para>Sin embargo, esto es considerado un rodeo; siempre es mejor
+            definir explícitamente
+            valores correctos o sanos por defecto.
        </para>
     </note>
 </sect3>

+ 229 - 106
documentation/manual/es/module_specs/Zend_Controller-Router-Route.xml

@@ -1,23 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17592 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17592 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.controller.router.routes.standard">
     <title>Zend_Controller_Router_Route</title>
 
-   <para>
-        <classname>Zend_Controller_Router_Route</classname> es la ruta standard
+    <para>
+        <classname>Zend_Controller_Router_Route</classname>
+        es la ruta standard
         del framework. Combina la facilidad de uso con la flexibilidad para la
         definición de rutas. Cada ruta consiste fundamentalmente en el mapeo de
-        la <acronym>URL</acronym> (de partes estáticas y dinámicas (variables))
-        y puede ser iniciada con valores predeterminados así como con requisitos
-        variables.</para>
-
-   <para>Imaginemos que nuestra aplicación ficticia necesitará algunas páginas
-        informativas sobre los autores del contenido. Queremos ser capaces de
+        la
+        <acronym>URL</acronym>
+        (de partes estáticas y dinámicas (variables))
+        y puede ser iniciada con valores
+        predeterminados así como con requisitos
+        variables.
+    </para>
+
+    <para>
+        Imaginemos que nuestra aplicación ficticia necesitará algunas páginas
+        informativas sobre los
+        autores del contenido. Queremos ser capaces de
         apuntar nuestro navegador web a
-            <filename>http://domain.com/author/martel</filename> para ver la
+        <filename>http://domain.com/author/martel</filename>
+        para ver la
         información sobre este muchacho "martel". La ruta para esa funcionalidad
-        podría parecerse a:</para>
+        podría
+        parecerse a:
+    </para>
 
     <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
@@ -31,32 +41,58 @@ $route = new Zend_Controller_Router_Route(
 $router->addRoute('user', $route);
 ]]></programlisting>
 
-   <para>El primer parámetro en el constructor
-            <classname>Zend_Controller_Router_Route</classname> es una
-        definición de ruta que será acompañada de una <acronym>URL</acronym>.
+    <para>
+        El primer parámetro en el constructor
+        <classname>Zend_Controller_Router_Route</classname>
+        es una
+        definición de ruta que será acompañada de una
+        <acronym>URL</acronym>
+        .
         Las definiciones de ruta consisten en partes estáticas y dinámicas
-        separadas por el caracter barra ('/'). Las partes estáticas son simples
-        textos: <command>author</command>. Las partes dinámicas, llamadas
-        variables, se marcan anteponiendo dos puntos (:) al nombre de la
-        variable <command>:username</command>.</para>
+        separadas por el caracter
+        barra ('/'). Las partes estáticas son simples
+        textos:
+        <command>author</command>
+        . Las partes dinámicas, llamadas
+        variables, se marcan anteponiendo dos puntos (:) al nombre
+        de la
+        variable
+        <command>:username</command>
+        .
+    </para>
 
     <note>
         <title>Uso de Caracteres</title>
-       <para>La implementación actual le permite utilizar cualquier carácter
-            (salvo una barra) como un identificador de variable, pero se
-            recomienda encarecidamente que se utilicen sólo caracteres que sean
-            válidos para identificadores de variables <acronym>PHP</acronym>. En
+        <para>
+            La implementación actual le permite utilizar cualquier carácter
+            (salvo una barra) como un
+            identificador de variable, pero se
+            recomienda encarecidamente que se utilicen sólo
+            caracteres que sean
+            válidos para identificadores de variables
+            <acronym>PHP</acronym>
+            . En
             implementaciones futuras se podría alterar este comportamiento,
-            resultando en probables fallos escondidos en su código.</para>
+            resultando en
+            probables fallos escondidos en su código.
+        </para>
     </note>
 
-   <para>Este ejemplo de ruta debería ser coincidente cuando apunta su
-        navegador a <filename>http://domain.com/author/martel</filename>, en
+    <para>
+        Este ejemplo de ruta debería ser coincidente cuando apunta su
+        navegador a
+        <filename>http://domain.com/author/martel</filename>
+        , en
         cuyo caso todas sus variables se inyectan al objeto
-            <classname>Zend_Controller_Request</classname> y quedando accesibles
-        en <classname>ProfileController</classname>. Las variables devueltas
-        por este ejemplo pueden ser representadas como el siguiente array de
-        pares clave/valor:</para>
+        <classname>Zend_Controller_Request</classname>
+        y quedando accesibles
+        en
+        <classname>ProfileController</classname>
+        . Las variables devueltas
+        por este ejemplo pueden ser representadas como el siguiente array
+        de
+        pares clave/valor:
+    </para>
 
     <programlisting language="php"><![CDATA[
 $values = array(
@@ -66,13 +102,22 @@ $values = array(
 );
 ]]></programlisting>
 
-   <para>Después, <classname>Zend_Controller_Dispatcher_Standard</classname>
-        debe invocar al método <methodname>userinfoAction()</methodname> de su
-        clase <classname>ProfileController</classname> (en el módulo por
+    <para>
+        Después,
+        <classname>Zend_Controller_Dispatcher_Standard</classname>
+        debe invocar al método
+        <methodname>userinfoAction()</methodname>
+        de su
+        clase
+        <classname>ProfileController</classname>
+        (en el módulo por
         defecto) basado en estos valores. Allí se podrán acceder a todas las
         variables mediante los métodos
-        <methodname>Zend_Controller_Action::_getParam()</methodname> o
-        <methodname>Zend_Controller_Request::getParam()</methodname>:</para>
+        <methodname>Zend_Controller_Action::_getParam()</methodname>
+        o
+        <methodname>Zend_Controller_Request::getParam()</methodname>
+        :
+    </para>
 
     <programlisting language="php"><![CDATA[
 public function userinfoAction()
@@ -84,11 +129,17 @@ public function userinfoAction()
 }
 ]]></programlisting>
 
-   <para>La definición de ruta puede contener uno o más caracteres especiales
-        - un comodín - representado por el símbolo '*'. Se utiliza para reunir
-        parámetros al igual que el valor de ruta por defecto del Módulo (var =>
-        pares de valores definidos en la <acronym>URI</acronym>). La siguiente
-        ruta imita más o menos el comportamiento de la ruta del Módulo:</para>
+    <para>
+        La definición de ruta puede contener uno o más caracteres especiales
+        - un comodín -
+        representado por el símbolo '*'. Se utiliza para reunir
+        parámetros al igual que el valor de
+        ruta por defecto del Módulo (var =>
+        pares de valores definidos en la
+        <acronym>URI</acronym>
+        ). La siguiente
+        ruta imita más o menos el comportamiento de la ruta del Módulo:
+    </para>
 
     <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
@@ -101,11 +152,16 @@ $router->addRoute('default', $route);
     <sect4 id="zend.controller.router.routes.standard.variable-defaults">
         <title>Variables por Defecto</title>
 
-       <para>Cada variable en la ruta puede tener una valor por defecto y para
-            esto es que se usa el segundo parámetro del constructor
-                <classname>Zend_Controller_Router_Route</classname>. Este
+        <para>
+            Cada variable en la ruta puede tener una valor por defecto y para
+            esto es que se usa el
+            segundo parámetro del constructor
+            <classname>Zend_Controller_Router_Route</classname>
+            . Este
             parámetro es un array con claves representando los nombres de
-            variables y con valores como los deseados por defecto:</para>
+            variables y con
+            valores como los deseados por defecto:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
@@ -115,20 +171,33 @@ $route = new Zend_Controller_Router_Route(
 $router->addRoute('archive', $route);
 ]]></programlisting>
 
-       <para>La ruta de arriba comparará <acronym>URL</acronym>s como
-                <filename>http://domain.com/archive/2005</filename> y
-                <filename>http://example.com/archive</filename>. En este último
+        <para>
+            La ruta de arriba comparará
+            <acronym>URL</acronym>
+            s como
+            <filename>http://domain.com/archive/2005</filename>
+            y
+            <filename>http://example.com/archive</filename>
+            . En este último
             caso la variable year(año) tendrá un valor inicial predeterminado de
-            2006.</para>
-
-       <para>Este ejemplo resultará en inyectar una variable año al objeto
-            solicitud. Ya que no hay información de enrutamiento presente (no se
-            define ningún controlador ni parámetros de acción), la solicitud
-            será enviada al controlador y al método de acción por defecto (que a
+            2006.
+        </para>
+
+        <para>
+            Este ejemplo resultará en inyectar una variable año al objeto
+            solicitud. Ya que no hay
+            información de enrutamiento presente (no se
+            define ningún controlador ni parámetros de
+            acción), la solicitud
+            será enviada al controlador y al método de acción por defecto (que
+            a
             la vez ambos están definidos en
-                <classname>Zend_Controller_Dispatcher_Abstract</classname>).
+            <classname>Zend_Controller_Dispatcher_Abstract</classname>
+            ).
             Para hacerlos más utilizables, tiene que proporcionar un controlador
-            válido y una acción válida como la ruta por defecto:</para>
+            válido y una
+            acción válida como la ruta por defecto:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
@@ -142,19 +211,27 @@ $route = new Zend_Controller_Router_Route(
 $router->addRoute('archive', $route);
 ]]></programlisting>
 
-       <para>Entonces, esta ruta resultará en el dispatch al método
-            <methodname>showAction()</methodname> de la clase
-            <classname>ArchiveController</classname>.</para>
+        <para>
+            Entonces, esta ruta resultará en el dispatch al método
+            <methodname>showAction()</methodname>
+            de la clase
+            <classname>ArchiveController</classname>
+            .
+        </para>
 
     </sect4>
 
     <sect4 id="zend.controller.router.routes.standard.variable-requirements">
         <title>Requerimientos para Variables</title>
 
-       <para>Podemos agregar un tercer parámetro al constructor
-                <classname>Zend_Controller_Router_Route</classname> donde
+        <para>
+            Podemos agregar un tercer parámetro al constructor
+            <classname>Zend_Controller_Router_Route</classname>
+            donde
             podemos establecer los requisitos para las variables. Estas son
-            definidas como partes de una expresión regular:</para>
+            definidas como
+            partes de una expresión regular:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
@@ -169,83 +246,128 @@ $route = new Zend_Controller_Router_Route(
 $router->addRoute('archive', $route);
 ]]></programlisting>
 
-       <para>Con una ruta definida como la de arriba, el router comparará solo
-            cuando la variable año contenga datos numéricos, eg.
-                <filename>http://domain.com/archive/2345</filename>. Una
-                <acronym>URL</acronym> como
-                <filename>http://example.com/archive/test</filename> no se
+        <para>
+            Con una ruta definida como la de arriba, el router comparará solo
+            cuando la variable año
+            contenga datos numéricos, eg.
+            <filename>http://domain.com/archive/2345</filename>
+            . Una
+            <acronym>URL</acronym>
+            como
+            <filename>http://example.com/archive/test</filename>
+            no se
             comparará y en su lugar el control se pasará a la próxima ruta en la
-            cadena.</para>
+            cadena.
+        </para>
     </sect4>
 
     <sect4 id="zend.controller.router.routes.standard.translated-segments">
         <title>Segmentos Traducidos</title>
 
-       <para>El standard de ruta brinda apoyo a la traducción de segmentos.
-            Para utilizar esta característica, tiene que definir por lo menos un
-            traductor (una instancia de <classname>Zend_Translate</classname>)
-            mediante una de las siguientes formas:</para>
+        <para>
+            El standard de ruta brinda apoyo a la traducción de segmentos.
+            Para utilizar esta
+            característica, tiene que definir por lo menos un
+            traductor (una instancia de
+            <classname>Zend_Translate</classname>
+            )
+            mediante una de las siguientes formas:
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>Ponerlo en el registro con la clave
-                    <methodname>Zend_Translate</methodname>.</para>
+                <para>
+                    Ponerlo en el registro con la clave
+                    <methodname>Zend_Translate</methodname>
+                    .
+                </para>
             </listitem>
             <listitem>
-               <para>Setearlo mediante el método estático
-                    <methodname>Zend_Controller_Router_Route::setDefaultTranslator()</methodname>.
-               </para>
+                <para>
+                    Setearlo mediante el método estático
+                    <methodname>Zend_Controller_Router_Route::setDefaultTranslator()</methodname>
+                    .
+                </para>
             </listitem>
             <listitem>
-               <para>Pasarlo como cuarto parámetro al constructor.</para>
+                <para>Pasarlo como cuarto parámetro al constructor.</para>
             </listitem>
         </itemizedlist>
 
-       <para>Por defecto, se utilizará el "locale" especificado en la
-            instancia <classname>Zend_Translate</classname>. Para anularlo, debe
-            setearlo (como una instancia de <classname>Zend_Locale</classname> o
-            un string local) de una de las siguientes maneras:</para>
+        <para>
+            Por defecto, se utilizará el "locale" especificado en la
+            instancia
+            <classname>Zend_Translate</classname>
+            . Para anularlo, debe
+            setearlo (como una instancia de
+            <classname>Zend_Locale</classname>
+            o
+            un string local) de una de las siguientes maneras:
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>Ponerlo en el registro con la clave
-                        <classname>Zend_Locale</classname>.</para>
+                <para>
+                    Ponerlo en el registro con la clave
+                    <classname>Zend_Locale</classname>
+                    .
+                </para>
             </listitem>
             <listitem>
-               <para>Setearlo mediante el método estático
-                        <methodname>Zend_Controller_Router_Route::setDefaultLocale()</methodname>.
-               </para>
+                <para>
+                    Setearlo mediante el método estático
+                    <methodname>Zend_Controller_Router_Route::setDefaultLocale()</methodname>
+                    .
+                </para>
             </listitem>
             <listitem>
-               <para>Pasarlo como cuarto parámetro al constructor.</para>
+                <para>Pasarlo como cuarto parámetro al constructor.</para>
             </listitem>
             <listitem>
-               <para>Pasarlo como parámetro <command>@locale</command>
-                    al método de ensamblaje.</para>
+                <para>
+                    Pasarlo como parámetro
+                    <command>@locale</command>
+                    al método de ensamblaje.
+                </para>
             </listitem>
         </itemizedlist>
 
-       <para>Los segmentos traducidos se dividen en dos partes. Los segmentos
-            fijos están precedidos por un único signo
-            <emphasis>@</emphasis>, y serán traducidos al "locale" actual
-            para el ensamblaje y se revierten al ID del mensaje cuando se acepte
+        <para>
+            Los segmentos traducidos se dividen en dos partes. Los segmentos
+            fijos están precedidos
+            por un único signo
+            <emphasis>@</emphasis>
+            , y serán traducidos al "locale" actual
+            para el ensamblaje y se revierten al ID del
+            mensaje cuando se acepte
             nuevamente. Los segmentos dinámicos tienen el prefijo
-            <command>:@</command>. Para el ensamblaje, el parámetro
-            dado será traducido y se insertará en la posición del parámetro.
+            <command>:@</command>
+            . Para el ensamblaje, el parámetro
+            dado será traducido y se insertará en la posición del
+            parámetro.
             Cuando se acepte, el parámetro traducido de la URL volverá al ID del
-            mensaje nuevamente.</para>
+            mensaje
+            nuevamente.
+        </para>
 
         <note>
             <title>IDs de Mensajes y Archivos de Lenguajes Separados</title>
-           <para>Ocasionalmente un ID de mensaje que quiere usar en una de sus
-                rutas ya se utiliza en un view script o en otro lugar. Para
-                tener pleno control sobre <acronym>URL</acronym>s seguras, debe
+            <para>
+                Ocasionalmente un ID de mensaje que quiere usar en una de sus
+                rutas ya se utiliza en
+                un view script o en otro lugar. Para
+                tener pleno control sobre
+                <acronym>URL</acronym>
+                s seguras, debe
                 usar un archivo de idioma separado para los mensajes utilizados
-                en la ruta.</para>
+                en la
+                ruta.
+            </para>
         </note>
 
-       <para>La siguiente es la forma más sencilla para preparar el itinerario
-            normal para el uso de la traducción del segmento:</para>
+        <para>La siguiente es la forma más sencilla para preparar el itinerario
+            normal para el uso de
+            la traducción del segmento:</para>
 
         <programlisting language="php"><![CDATA[
 // Prepare el traductor
@@ -263,7 +385,7 @@ $translator->setLocale('en');
 Zend_Controller_Router_Route::setDefaultTranslator($translator);
 ]]></programlisting>
 
-       <para>Este ejemplo demuestra el uso de segmentos estáticos:</para>
+        <para>Este ejemplo demuestra el uso de segmentos estáticos:</para>
 
         <programlisting language="php"><![CDATA[
 // Crear la ruta
@@ -283,8 +405,9 @@ $route->assemble(array());
 $route->assemble(array());
 ]]></programlisting>
 
-       <para>Puede usar segmentos dinámicos para crear veriones traducidas
-            como del tipo módulo-ruta:</para>
+        <para>Puede usar segmentos dinámicos para crear veriones traducidas
+            como del tipo
+            módulo-ruta:</para>
 
         <programlisting language="php"><![CDATA[
 // Crear la ruta
@@ -304,7 +427,7 @@ $route->assemble(array('controller' => 'archive', 'foo' => 'bar'));
 $route->assemble(array('controller' => 'archive', 'foo' => 'bar'));
 ]]></programlisting>
 
-       <para>También puede mezclar segmentos estáticos y dinámicos:</para>
+        <para>También puede mezclar segmentos estáticos y dinámicos:</para>
 
         <programlisting language="php"><![CDATA[
 // Crear la ruta

+ 337 - 208
documentation/manual/es/module_specs/Zend_Controller-Router.xml

@@ -1,43 +1,63 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 18940 -->
-<!-- Reviewed: no -->
-<sect1 id="zend.controller.router"  xmlns:xi="http://www.w3.org/2001/XInclude">
+    <!-- EN-Revision: 18940 -->
+    <!-- Reviewed: no -->
+<sect1 id="zend.controller.router" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>El Router Standard</title>
     <sect2 id="zend.controller.router.introduction">
         <title>Introducción</title>
-       <para>
-            <classname>Zend_Controller_Router_Rewrite</classname> Es el router
+        <para>
+            <classname>Zend_Controller_Router_Rewrite</classname>
+            Es el router
             standard del Framework. Routing es el proceso de tomar la parte
-            final de una <acronym>URI</acronym> (la parte de la <acronym>URI</acronym> que viene después de la <acronym>URL</acronym>
+            final de una
+            <acronym>URI</acronym>
+            (la parte de la
+            <acronym>URI</acronym>
+            que viene después de la
+            <acronym>URL</acronym>
             base) y la descomposición en parámetros para determinar qué módulo,
-            qué controlador y acción de ese controlador debe recibir la solicitud.
-            Estos valores del módulo, controlador, acción y otros parámetros
+            qué controlador y
+            acción de ese controlador debe recibir la solicitud.
+            Estos valores del módulo,
+            controlador, acción y otros parámetros
             están enpaquetados en un objeto
-            <classname>Zend_Controller_Request_Http</classname> el cual es
-            procesado luego por <classname>Zend_Controller_Dispatcher_Standard</classname>.
+            <classname>Zend_Controller_Request_Http</classname>
+            el cual es
+            procesado luego por
+            <classname>Zend_Controller_Dispatcher_Standard</classname>
+            .
             El routing ocurre sólo una vez: cuando se recibió inicialmente la
-            solicitud y antes del dispatch del primer controlador.
-       </para>
+            solicitud y antes del
+            dispatch del primer controlador.
+        </para>
 
-       <para>
-            <classname>Zend_Controller_Router_Rewrite</classname> está diseñado
+        <para>
+            <classname>Zend_Controller_Router_Rewrite</classname>
+            está diseñado
             para permitir que una funcionalidad tipo mod_rewrite se pueda usar
-            en estructuras <acronym>PHP</acronym> puras. Se basa muy vagamente en el routing de
-            Ruby on Rails (RoR) y no requiere ningún conocimiento previo de
-            reescritura de la <acronym>URL</acronym> del webserver. Está diseñado para trabajar
-            con solo una regla mod_rewrite de Apache (one of):
-       </para>
-
-         <programlisting language="php"><![CDATA[
+            en
+            estructuras
+            <acronym>PHP</acronym>
+            puras. Se basa muy vagamente en el routing de
+            Ruby on Rails (RoR) y no requiere ningún
+            conocimiento previo de
+            reescritura de la
+            <acronym>URL</acronym>
+            del webserver. Está diseñado para trabajar
+            con solo una regla mod_rewrite de Apache (one
+            of):
+        </para>
+
+        <programlisting language="php"><![CDATA[
 RewriteEngine on
 RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
 ]]></programlisting>
 
-       <para>
+        <para>
             o (preferido):
        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} -s [OR]
 RewriteCond %{REQUEST_FILENAME} -l [OR]
@@ -46,32 +66,39 @@ RewriteRule ^.*$ - [NC,L]
 RewriteRule ^.*$ index.php [NC,L]
 ]]></programlisting>
 
-       <para>
-            El router rewrite también puede utilizarse con el <acronym>IIS</acronym> webserver (versions &lt;= 7.0) si <ulink
-                url="http://www.isapirewrite.com">Isapi_Rewrite</ulink>
-                se ha instalado como una extensión Isapi con la siguiente
-                regla de reescribir:
-       </para>
+        <para>
+            El router rewrite también puede utilizarse con el
+            <acronym>IIS</acronym>
+            webserver (versions &lt;= 7.0) si
+            <ulink url="http://www.isapirewrite.com">Isapi_Rewrite</ulink>
+            se ha instalado como una extensión Isapi con la siguiente
+            regla de reescribir:
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.php [I]
 ]]></programlisting>
 
         <note>
             <title>IIS Isapi_Rewrite</title>
-           <para>
-                Cuando se usa <acronym>IIS</acronym>, <varname>$_SERVER['REQUEST_URI']</varname> puede
+            <para>
+                Cuando se usa
+                <acronym>IIS</acronym>
+                ,
+                <varname>$_SERVER['REQUEST_URI']</varname>
+                puede
                 no existir, o establecerlo como un string vacío. En este caso,
                 <classname>Zend_Controller_Request_Http</classname>
                 intentará usar el valor de
                 <varname>$_SERVER['HTTP_X_REWRITE_URL']</varname>
                 establecido por la extensión Isapi_Rewrite.
-           </para>
+            </para>
         </note>
 
-       <para>
+        <para>
             IIS 7.0 introduce un módulo nativo de reescribir la URL, y puede ser
-            configurado como sigue:
+            configurado como
+            sigue:
        </para>
 
         <programlisting language="xml"><![CDATA[
@@ -117,14 +144,16 @@ url.rewrite-once = (
     <sect2 id="zend.controller.router.usage">
         <title>Usando un Router</title>
 
-       <para>
+        <para>
             Para utilizar adecuadamente el router de reescritura debe
-            instanciarlo, agregar algunas rutas definidas por el usuario y
-            luego inyectarlo en el controlador. El siguiente código ilustra el
+            instanciarlo, agregar algunas
+            rutas definidas por el usuario y
+            luego inyectarlo en el controlador. El siguiente código
+            ilustra el
             procedimiento:
        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 // Crear un router
 
 $router = $ctrl->getRouter(); // returns a rewrite router by default
@@ -140,150 +169,183 @@ $router->addRoute(
     <sect2 id="zend.controller.router.basic">
         <title>Operación Básica del Rewrite Router</title>
 
-       <para>
+        <para>
             El corazón del RewriteRouter es la definición de la rutas definidas
-            por el usuario. Las rutas se agregan llamando al método addRoute
-            de RewriteRouter y pasándole una nueva instancia de una clase que
+            por el usuario. Las
+            rutas se agregan llamando al método addRoute
+            de RewriteRouter y pasándole una nueva
+            instancia de una clase que
             implementó a
-            <classname>Zend_Controller_Router_Route_Interface</classname>. Eg.:
-       </para>
+            <classname>Zend_Controller_Router_Route_Interface</classname>
+            . Eg.:
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $router->addRoute('user',
                   new Zend_Controller_Router_Route('user/:username'));
 ]]></programlisting>
 
-       <para>
+        <para>
             El Rewrite Router viene con seis tipos básicos de rutas (uno de los
-            cuales es especial):
+            cuales es
+            especial):
        </para>
 
         <itemizedlist mark="opencircle">
             <listitem>
-               <para>
-                    <link
-                        linkend="zend.controller.router.routes.standard">Zend_Controller_Router_Route</link>
-               </para>
+                <para>
+                    <link linkend="zend.controller.router.routes.standard">Zend_Controller_Router_Route</link>
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <link
-                        linkend="zend.controller.router.routes.static">Zend_Controller_Router_Route_Static</link>
-               </para>
+                <para>
+                    <link linkend="zend.controller.router.routes.static">Zend_Controller_Router_Route_Static</link>
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <link
-                        linkend="zend.controller.router.routes.regex">Zend_Controller_Router_Route_Regex</link>
-               </para>
+                <para>
+                    <link linkend="zend.controller.router.routes.regex">Zend_Controller_Router_Route_Regex</link>
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <link
-                        linkend="zend.controller.router.routes.hostname">Zend_Controller_Router_Route_Hostname</link>
-               </para>
+                <para>
+                    <link linkend="zend.controller.router.routes.hostname">Zend_Controller_Router_Route_Hostname</link>
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <link
-                        linkend="zend.controller.router.routes.chain">Zend_Controller_Router_Route_Chain</link>
-               </para>
+                <para>
+                    <link linkend="zend.controller.router.routes.chain">Zend_Controller_Router_Route_Chain</link>
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <link
-                        linkend="zend.controller.router.default-routes">Zend_Controller_Router_Rewrite</link>
+                <para>
+                    <link linkend="zend.controller.router.default-routes">Zend_Controller_Router_Rewrite</link>
                     *
-               </para>
+                </para>
             </listitem>
         </itemizedlist>
 
-       <para>
+        <para>
             Las rutas pueden ser utilizadas numerosas veces para crear una cadena
-            o un esquema de aplicación de ruteo definido por el usuario.
-            Puede usar cualquier número de rutas en cualquier configuración,
-            con la excepción de la ruta del Módulo, la cual debe ser utilizada
+            o un esquema de
+            aplicación de ruteo definido por el usuario.
+            Puede usar cualquier número de rutas en
+            cualquier configuración,
+            con la excepción de la ruta del Módulo, la cual debe ser
+            utilizada
             una vez y probablemente como la ruta más genérica (es decir,
-            por defecto). Cada ruta se describe en mayor detalle más adelante.
+            por defecto). Cada
+            ruta se describe en mayor detalle más adelante.
        </para>
 
-       <para>
+        <para>
             El primer parámetro a addRoute es el nombre de la ruta.
-            Se utiliza como un manejador para sacar las rutas del router
-            (por ejemplo, con fines de generación de <acronym>URL</acronym>).
+            Se utiliza como un manejador para
+            sacar las rutas del router
+            (por ejemplo, con fines de generación de
+            <acronym>URL</acronym>
+            ).
             El segundo parámetro es la ruta misma.
-       </para>
+        </para>
 
         <note>
-           <para>
+            <para>
                 El uso más común del nombre de ruta es por medio del
-                ayudante de <acronym>URL</acronym> <classname>Zend_View</classname>:
-           </para>
+                ayudante de
+                <acronym>URL</acronym>
+                <classname>Zend_View</classname>
+                :
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 <a href=
 "<?php echo $this->url(array('username' => 'martel'), 'user') ?>">Martel</a>
 ]]></programlisting>
 
-           <para>
-                Que resultaría en la href: <methodname>user/martel</methodname>.
-           </para>
+            <para>
+                Que resultaría en la href:
+                <methodname>user/martel</methodname>
+                .
+            </para>
         </note>
 
-       <para>
+        <para>
             El routing es un simple proceso de iteración a través de todas las
-            rutas provistas y la equiparación de sus definiciones con la petición
-            actual de <acronym>URI</acronym>. Cuando se encuentra una concordancia, se devuelven
-            valores de variables desde la instancia Route y se inyecta en el
-            objeto <classname>Zend_Controller_Request</classname>
+            rutas provistas y la
+            equiparación de sus definiciones con la petición
+            actual de
+            <acronym>URI</acronym>
+            . Cuando se encuentra una concordancia, se devuelven
+            valores de variables desde la
+            instancia Route y se inyecta en el
+            objeto
+            <classname>Zend_Controller_Request</classname>
             para su posterior utilización en el dispatcher así también como en
-            los controladores creados por el usuario. En caso de no encontrar
-            ninguna concordancia, se comprobará la siguiente ruta en la cadena.
-       </para>
+            los controladores
+            creados por el usuario. En caso de no encontrar
+            ninguna concordancia, se comprobará la
+            siguiente ruta en la cadena.
+        </para>
 
-       <para>
+        <para>
             Si necesita determinar en qué ruta se encontró una concordancia,
-            puede usar el método <methodname>getCurrentRouteName()</methodname>, que devolverá
+            puede usar el método
+            <methodname>getCurrentRouteName()</methodname>
+            , que devolverá
             el identificador usado cuando registró la ruta con el router.
-            Si quiere el objeto de la ruta actual, puede usar
-            <methodname>getCurrentRoute()</methodname>.
-       </para>
+            Si quiere el
+            objeto de la ruta actual, puede usar
+            <methodname>getCurrentRoute()</methodname>
+            .
+        </para>
 
         <note>
             <title>Matching Inverso</title>
-           <para>
+            <para>
                 Las rutas están equiparadas en orden inverso para asegurarse
-                que las rutas más genéricas se definan primero.
+                que las rutas más
+                genéricas se definan primero.
            </para>
         </note>
 
         <note>
             <title>Valores Retornados</title>
-           <para>
-                Los valores retornados del routing provienen de parámetros <acronym>URL</acronym>
+            <para>
+                Los valores retornados del routing provienen de parámetros
+                <acronym>URL</acronym>
                 o de rutas definidas por defecto por el usuario.
-                Estas variables son accesibles posteriormente a través de los métodos
-                <methodname>Zend_Controller_Request::getParam()</methodname> o
-                <methodname>Zend_Controller_Action::_getParam()</methodname>.
-           </para>
+                Estas variables son accesibles
+                posteriormente a través de los métodos
+                <methodname>Zend_Controller_Request::getParam()</methodname>
+                o
+                <methodname>Zend_Controller_Action::_getParam()</methodname>
+                .
+            </para>
         </note>
 
-       <para>
+        <para>
             Hay tres variables que pueden utilizarse en las rutas - 'module',
-            'controller' y 'action'. Estas variables especiales son utilizados por
-            <classname>Zend_Controller_Dispatcher</classname> para encontrar un
+            'controller' y
+            'action'. Estas variables especiales son utilizados por
+            <classname>Zend_Controller_Dispatcher</classname>
+            para encontrar un
             controlador y una acción para hacer el dispatch.
-       </para>
+        </para>
 
         <note>
             <title>Variables Especiales</title>
-           <para>
+            <para>
                 Los nombres de estas variables especiales pueden ser diferentes
-                si elige alterar los valores por defecto en
-                <classname>Zend_Controller_Request_Http</classname> mediante los
+                si elige alterar los
+                valores por defecto en
+                <classname>Zend_Controller_Request_Http</classname>
+                mediante los
                 métodos
-                <methodname>setControllerKey</methodname> y <methodname>setActionKey</methodname>.
-           </para>
+                <methodname>setControllerKey</methodname>
+                y
+                <methodname>setActionKey</methodname>
+                .
+            </para>
         </note>
 
     </sect2>
@@ -291,22 +353,34 @@ $router->addRoute('user',
     <sect2 id="zend.controller.router.default-routes">
         <title>Routes por Defecto</title>
 
-       <para>
-            <classname>Zend_Controller_Router_Rewrite</classname> viene
-            preconfigurado con una ruta por defecto, que se comparará con <acronym>URI</acronym>s
-            en la forma de <methodname>controller/action</methodname>.
+        <para>
+            <classname>Zend_Controller_Router_Rewrite</classname>
+            viene
+            preconfigurado con una ruta por defecto, que se comparará con
+            <acronym>URI</acronym>
+            s
+            en la forma de
+            <methodname>controller/action</methodname>
+            .
             Además, se puede especificar un nombre de módulo como primer
-            elemento del path, permitiendo <acronym>URI</acronym>s de la forma
-            <filename>module/controller/action</filename>. Por último, también coincidrá
-            con cualquier parámetro adicional agregado a la <acronym>URI</acronym> por defecto -
-            <filename>controller/action/var1/value1/var2/value2</filename>.
-       </para>
-
-       <para>
+            elemento del path,
+            permitiendo
+            <acronym>URI</acronym>
+            s de la forma
+            <filename>module/controller/action</filename>
+            . Por último, también coincidrá
+            con cualquier parámetro adicional agregado a la
+            <acronym>URI</acronym>
+            por defecto -
+            <filename>controller/action/var1/value1/var2/value2</filename>
+            .
+        </para>
+
+        <para>
             Algunos ejemplos de cómo están equiparadas las rutas:
        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 // Asumiendo lo siguiente:
 $ctrl->setControllerDirectory(
     array(
@@ -344,28 +418,33 @@ http://example/blog/archive/list/sort/alpha/date/desc
     date       == desc
 ]]></programlisting>
 
-       <para>
+        <para>
             La ruta por defecto es simplemente un objeto
             <classname>Zend_Controller_Router_Route_Module</classname>
             almacenado bajo el nombre de (index) por 'default' en RewriteRouter.
-            Está generado más o menos así:
-       </para>
+            Está generado más o
+            menos así:
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $compat = new Zend_Controller_Router_Route_Module(array(),
                                                   $dispatcher,
                                                   $request);
 $this->addRoute('default', $compat);
 ]]></programlisting>
 
-       <para>
+        <para>
             Si no quiere esta ruta en particular en su esquema por defecto de
-            routing, podrá anularla creando su propia ruta por 'defecto'
-            (es decir, almacenar bajo el nombre de 'default') o eliminarla por
-            completo usando <methodname>removeDefaultRoutes()</methodname>:
-       </para>
-
-         <programlisting language="php"><![CDATA[
+            routing, podrá anularla
+            creando su propia ruta por 'defecto'
+            (es decir, almacenar bajo el nombre de 'default') o
+            eliminarla por
+            completo usando
+            <methodname>removeDefaultRoutes()</methodname>
+            :
+        </para>
+
+        <programlisting language="php"><![CDATA[
 // Eliminar cualquier ruta por defecto
 $router->removeDefaultRoutes();
 ]]></programlisting>
@@ -375,24 +454,37 @@ $router->removeDefaultRoutes();
     <sect2 id="zend.controller.router.rewritebase">
         <title>URL Base y Subdirectorios</title>
 
-       <para>
+        <para>
             El router rewrite puede ser utilizado en subdirectorios (por
-            ejemplo <filename>http://domain.com/~user/application-root/</filename>)
-            en cuyo caso la <acronym>URL</acronym> base de la aplicación
-            (<filename>/user/application-root</filename>) debe ser detectada
-            automáticamente por <classname>Zend_Controller_Request_Http</classname>
+            ejemplo
+            <filename>http://domain.com/~user/application-root/</filename>
+            )
+            en cuyo caso la
+            <acronym>URL</acronym>
+            base de la aplicación
+            (
+            <filename>/user/application-root</filename>
+            ) debe ser detectada
+            automáticamente por
+            <classname>Zend_Controller_Request_Http</classname>
             y usada en consecuencia.
-       </para>
+        </para>
 
-       <para>
-            Si la <acronym>URL</acronym> base se detecta incorrectamente se la puede anular con su
+        <para>
+            Si la
+            <acronym>URL</acronym>
+            base se detecta incorrectamente se la puede anular con su
             propio path de base usando
-            <classname>Zend_Controller_Request_Http</classname> y llamando al
-            método <methodname>setBaseUrl()</methodname> (ver <xref
-                linkend="zend.controller.request.http.baseurl" />):
-       </para>
-
-         <programlisting language="php"><![CDATA[
+            <classname>Zend_Controller_Request_Http</classname>
+            y llamando al
+            método
+            <methodname>setBaseUrl()</methodname>
+            (ver
+            <xref linkend="zend.controller.request.http.baseurl"/>
+            ):
+        </para>
+
+        <programlisting language="php"><![CDATA[
 $request->setBaseUrl('/~user/application-root/');
 ]]></programlisting>
 
@@ -401,46 +493,60 @@ $request->setBaseUrl('/~user/application-root/');
     <sect2 id="zend.controller.router.global.parameters">
         <title>Parámetros Globales</title>
 
-       <para>
+        <para>
             Puede establecer los parámetros globales en un router que se
-            proporcionan automáticamente a una ruta cuando se ensamblasn mediante
-            <methodname>setGlobalParam</methodname>. Si se establece un parámetro global
-            pero también se lo entrega directamente al método de ensamblaje,
+            proporcionan automáticamente
+            a una ruta cuando se ensamblasn mediante
+            <methodname>setGlobalParam</methodname>
+            . Si se establece un parámetro global
+            pero también se lo entrega directamente al método
+            de ensamblaje,
             el parámetro del usuario sobreescribe al parámetro global.
-            Puede establecer un parámetro global esta forma:
-       </para>
+            Puede establecer
+            un parámetro global esta forma:
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $router->setGlobalParam('lang', 'en');
 ]]></programlisting>
     </sect2>
 
     <sect2 id="zend.controller.router.routes">
         <title>Tipos de Route</title>
-        <xi:include href="Zend_Controller-Router-Route.xml" />
-        <xi:include href="Zend_Controller-Router-Route-Static.xml" />
-        <xi:include href="Zend_Controller-Router-Route-Regex.xml" />
-        <xi:include href="Zend_Controller-Router-Route-Hostname.xml" />
-        <xi:include href="Zend_Controller-Router-Route-Chain.xml" />
+        <xi:include href="Zend_Controller-Router-Route.xml"/>
+        <xi:include href="Zend_Controller-Router-Route-Static.xml"/>
+        <xi:include href="Zend_Controller-Router-Route-Regex.xml"/>
+        <xi:include href="Zend_Controller-Router-Route-Hostname.xml"/>
+        <xi:include href="Zend_Controller-Router-Route-Chain.xml"/>
     </sect2>
 
     <sect2 id="zend.controller.router.add-config">
-        <title>Usando <classname>Zend_Config</classname> con RewriteRouter</title>
+        <title>
+            Usando
+            <classname>Zend_Config</classname>
+            con RewriteRouter
+        </title>
 
-       <para>
+        <para>
             A veces es más conveniente para actualizar un archivo de
-            configuración con nuevas rutas que modificar el código.
-            Esto es posible a través del método <methodname>addConfig()</methodname>.
+            configuración con nuevas rutas
+            que modificar el código.
+            Esto es posible a través del método
+            <methodname>addConfig()</methodname>
+            .
             Básicamente, se crea una configuración compatible con
-            <classname>Zend_Config</classname>.
+            <classname>Zend_Config</classname>
+            .
             Y en su código lo lee y lo pasa a RewriteRouter.
-       </para>
+        </para>
 
-       <para>
-            Como ejemplo, considere el siguiente archivo  <acronym>INI</acronym>:
-       </para>
+        <para>
+            Como ejemplo, considere el siguiente archivo
+            <acronym>INI</acronym>
+            :
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 [production]
 routes.archive.route = "archive/:year/*"
 routes.archive.defaults.controller = archive
@@ -461,56 +567,74 @@ routes.archive.map.1 = "year"
 ; O: routes.archive.map.year = 1
 ]]></programlisting>
 
-       <para>
-            Entonces el archivo <acronym>INI</acronym> puede ser leído por un objeto
-            <classname>Zend_Config</classname> como sigue:
-       </para>
+        <para>
+            Entonces el archivo
+            <acronym>INI</acronym>
+            puede ser leído por un objeto
+            <classname>Zend_Config</classname>
+            como sigue:
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $config = new Zend_Config_Ini('/path/to/config.ini', 'production');
 $router = new Zend_Controller_Router_Rewrite();
 $router->addConfig($config, 'routes');
 ]]></programlisting>
 
-       <para>
+        <para>
             En el ejemplo de arriba, le decimos el router que utilice la
-            sección 'routes' del archivo <acronym>INI</acronym> para utilizarlo en sus rutas.
-            Cada clave de primer nivel en esa sección será utilizada para definir
+            sección 'routes' del archivo
+            <acronym>INI</acronym>
+            para utilizarlo en sus rutas.
+            Cada clave de primer nivel en esa sección será utilizada
+            para definir
             un nombre de ruta; el ejemplo anterior define las rutas 'archive' y
-            'news'. Entonces cada ruta requiere, como mínimo, una entrada a la
-            'ruta' y una o más entradas por 'default'; opcionalmente puede
-            proporcionarse una o más 'reqs' (abreviación de 'required').
+            'news'.
+            Entonces cada ruta requiere, como mínimo, una entrada a la
+            'ruta' y una o más entradas
+            por 'default'; opcionalmente puede
+            proporcionarse una o más 'reqs' (abreviación de
+            'required').
             Dicho todo esto, estos corresponden a los tres argumentos que se le
             suministran al objeto
-            <classname>Zend_Controller_Router_Route_Interface</classname>.
+            <classname>Zend_Controller_Router_Route_Interface</classname>
+            .
             Puede utilizarse una clave opcional 'type' para especificar el
-            tipo de clase de ruta a utilizar en esa ruta en particular;
+            tipo de clase de ruta a
+            utilizar en esa ruta en particular;
             por defecto, usa
-            <classname>Zend_Controller_Router_Route</classname>.
+            <classname>Zend_Controller_Router_Route</classname>
+            .
             En el ejemplo de arriba, la ruta 'news' está definida para usar
-            <classname>Zend_Controller_Router_Route_Static</classname>.
-       </para>
+            <classname>Zend_Controller_Router_Route_Static</classname>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.controller.router.subclassing">
         <title>Subclassing del Router</title>
 
-       <para>
+        <para>
             El standard rewrite router debería proporcionarle más funcionalidad
-            si la necesita; más a menudo, sólo necesitará crear un nuevo
-            tipo de ruta a fin de ofrecer funcionalidades nuevas o modificadas
+            si la necesita; más
+            a menudo, sólo necesitará crear un nuevo
+            tipo de ruta a fin de ofrecer funcionalidades
+            nuevas o modificadas
             sobre las tutas provistas.
        </para>
 
-       <para>
+        <para>
             Dicho esto, en algún momento puede encontrarse a si mismo deseando
-            usar un paradigma diferente de routing. La intefaz
-            <classname>Zend_Controller_Router_Interface</classname> proporciona
+            usar un paradigma
+            diferente de routing. La intefaz
+            <classname>Zend_Controller_Router_Interface</classname>
+            proporciona
             la información mínima necesaria para crear un router, y consiste en
-            un único método.
-       </para>
+            un único
+            método.
+        </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 interface Zend_Controller_Router_Interface
 {
   /**
@@ -522,17 +646,22 @@ interface Zend_Controller_Router_Interface
 }
 ]]></programlisting>
 
-       <para>
+        <para>
             El routing sólo ocurre una vez: cuando la petición es recibida por
-            primera vez en el sistema. El propósito del router es determinar el
-            controlador, la acción, y los parámetros opcionales sobre la base
-            del medio ambiente de la solicitud, y luego ajustarlos en la solicitud.
+            primera vez en el
+            sistema. El propósito del router es determinar el
+            controlador, la acción, y los
+            parámetros opcionales sobre la base
+            del medio ambiente de la solicitud, y luego
+            ajustarlos en la solicitud.
             El objeto solicitud se pasa entonces al dispatcher.
-            Si no es posible trazar una ruta hacia un dispatch token,
-            el router no debe hacer nada con el objeto solicitud.
+            Si no es
+            posible trazar una ruta hacia un dispatch token,
+            el router no debe hacer nada con el
+            objeto solicitud.
        </para>
     </sect2>
 </sect1>
-<!--
+    <!--
 vim:se ts=4 sw=4 et:
 -->

+ 219 - 93
documentation/manual/es/module_specs/Zend_Date-Introduction.xml

@@ -1,59 +1,96 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17986 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17986 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.date.introduction">
 
     <title>Introducción</title>
 
-   <para>El componente <classname>Zend_Date</classname> ofrece una
-            <acronym>API</acronym> detallada pero simple para manipular fechas y
-        horas. Sus métodos aceptan una gran variedad de tipos de información,
-        incluyendo partes de fecha, en numerosas combinaciones provocando muchas
+    <para>
+        El componente
+        <classname>Zend_Date</classname>
+        ofrece una
+        <acronym>API</acronym>
+        detallada pero simple para manipular fechas y
+        horas. Sus métodos aceptan una gran variedad de
+        tipos de información,
+        incluyendo partes de fecha, en numerosas combinaciones provocando
+        muchas
         características y posibilidades más allá de las funciones de fecha
-            <acronym>PHP</acronym> relacionadas. Para las últimas
-        actualizaciones manuales, por favor ver el siguiente link <ulink
-            url="http://framework.zend.com/wiki/display/ZFDOCDEV/Home">our
+        <acronym>PHP</acronym>
+        relacionadas. Para las últimas
+        actualizaciones manuales, por favor ver el siguiente link
+        <ulink url="http://framework.zend.com/wiki/display/ZFDOCDEV/Home">our
             online manual (sincronizado frecuentemente con Subversion) </ulink>
-        .</para>
+        .
+    </para>
 
-   <para>Aunque la simplicidad sea el objetivo, trabajar con fechas y tiempos
-        localizados mientras se modifican, combinan y comparan partes, provoca
-        una complejidad inevitable. Las fechas, así como los tiempos, a menudo
-        son escritos de forma diferente en zonas locales distintas. Por ejemplo,
+    <para>
+        Aunque la simplicidad sea el objetivo, trabajar con fechas y tiempos
+        localizados mientras se
+        modifican, combinan y comparan partes, provoca
+        una complejidad inevitable. Las fechas, así
+        como los tiempos, a menudo
+        son escritos de forma diferente en zonas locales distintas. Por
+        ejemplo,
         algunos colocan primero el mes, mientras otros escriben el año en primer
-        lugar cuando expresan fechas del calendario. Para más información
-        relacionada con manejo de localizaciones y normalización, por favor vea
-        el manual de <link linkend="zend.locale.date.datesandtimes">
+        lugar cuando
+        expresan fechas del calendario. Para más información
+        relacionada con manejo de localizaciones
+        y normalización, por favor vea
+        el manual de
+        <link linkend="zend.locale.date.datesandtimes">
             <classname>Zend_Locale</classname>
-        </link> .</para>
+        </link>
+        .
+    </para>
 
-   <para>
-        <classname>Zend_Date</classname> también soporta nombres de meses
-        abreviados en varios idiomas. <classname>Zend_Locale</classname>
+    <para>
+        <classname>Zend_Date</classname>
+        también soporta nombres de meses
+        abreviados en varios idiomas.
+        <classname>Zend_Locale</classname>
         facilita la normalización de meses localizados y nombres de días de la
-        semana a timestamps, los cuales pueden, a su vez, ser mostrados
-        localizados a otras regiones.</para>
+        semana a timestamps,
+        los cuales pueden, a su vez, ser mostrados
+        localizados a otras regiones.
+    </para>
 
     <sect2 id="zend.date.setdefaulttimezone">
 
         <title>Asigne Siempre una Zona Horaria por Defecto</title>
 
-       <para>Antes de utilizar funciones relacionadas con fechas en
-                <acronym>PHP</acronym> o en el Zend Framework, primero debe
-            asegurarse que su aplicación tiene una zona horaria correcta por
+        <para>
+            Antes de utilizar funciones relacionadas con fechas en
+            <acronym>PHP</acronym>
+            o en el Zend Framework, primero debe
+            asegurarse que su aplicación tiene una zona horaria
+            correcta por
             defecto, configurando la variable de entorno TZ, usando el parametro
-            del <filename>php.ini</filename> <property>date.timezone</property> , o usando <ulink
-                url="http://php.net/date_default_timezone_set">
-                date_default_timezone_set() </ulink> . En
-            <acronym>PHP</acronym>, podemos ajustar todas las funciones
-            relacionadas con fechas y hora para trabajar para un usuario
+            del
+            <filename>php.ini</filename>
+            <property>date.timezone</property>
+            , o usando
+            <ulink url="http://php.net/date_default_timezone_set">
+                date_default_timezone_set() </ulink>
+            . En
+            <acronym>PHP</acronym>
+            , podemos ajustar todas las funciones
+            relacionadas con fechas y hora para trabajar para
+            un usuario
             particular configurando por defecto una zona horaria de acuerdo a
-            las expectativas del usuario. Para una lista completa de
-            configuraciones de zona horaria, vea el siguiente link <ulink
+            las
+            expectativas del usuario. Para una lista completa de
+            configuraciones de zona horaria, vea
+            el siguiente link
+            <ulink
                 url="http://unicode.org/cldr/data/diff/supplemental/territory_containment_un_m_49.html"
-                > Lista de Identificadores de Zonas Horarias <acronym> CLDR
+            >
+                Lista de Identificadores de Zonas Horarias
+                <acronym> CLDR
                 </acronym>
-            </ulink> . <example id="zend.date.setdefaulttimezone.example-1">
+            </ulink>
+            .
+            <example id="zend.date.setdefaulttimezone.example-1">
                 <title>Configurando una Zona Horaria por Defecto</title>
                 <programlisting language="php"><![CDATA[
                 // zona horaria para un estadounidense en California
@@ -63,95 +100,184 @@ date_default_timezone_set('Europe/Berlin');
 ]]></programlisting>
             </example>
 
-            <emphasis>¡Al crear instancias de <classname>Zend_Date</classname>, su zona horaria se
+            <emphasis>
+                ¡Al crear instancias de
+                <classname>Zend_Date</classname>
+                , su zona horaria se
                 convertirá automáticamente en la zona horaria por defecto
-                actual!</emphasis> De esta forma, la configuración de zona
-            horaria tendrá en cuenta cualquier cambio de hora de verano
-            (Daylight Saving Time, <acronym>DST</acronym>), eliminando la necesidad de
-            especificarlo explícitamente el horario de verano (Daylight Saving Time, <acronym>DST</acronym>).</para>
+                actual!
+            </emphasis>
+            De esta forma, la configuración de zona
+            horaria tendrá en cuenta cualquier cambio de hora
+            de verano
+            (Daylight Saving Time,
+            <acronym>DST</acronym>
+            ), eliminando la necesidad de
+            especificarlo explícitamente el horario de verano (Daylight
+            Saving Time,
+            <acronym>DST</acronym>
+            ).
+        </para>
 
-       <para>Tenga en cuenta que las zonas horarias <emphasis><acronym>UTC</acronym></emphasis> y
-            <emphasis><acronym>GMT</acronym></emphasis> no incluyen el cambio de hora de
-            verano (Daylight Saving Time, <acronym>DST</acronym>). Esto significa que
-            aunque defina a mano que <classname>Zend_Date</classname> deba
-            trabajar con <acronym>DST</acronym>, podría ser anulado por las instancias de
-            <classname>Zend_Date</classname> que han sido fijadas a <acronym>UTC</acronym> o
-            <acronym>GMT</acronym>.</para>
+        <para>
+            Tenga en cuenta que las zonas horarias
+            <emphasis>
+                <acronym>UTC</acronym>
+            </emphasis>
+            y
+            <emphasis>
+                <acronym>GMT</acronym>
+            </emphasis>
+            no incluyen el cambio de hora de
+            verano (Daylight Saving Time,
+            <acronym>DST</acronym>
+            ). Esto significa que
+            aunque defina a mano que
+            <classname>Zend_Date</classname>
+            deba
+            trabajar con
+            <acronym>DST</acronym>
+            , podría ser anulado por las instancias de
+            <classname>Zend_Date</classname>
+            que han sido fijadas a
+            <acronym>UTC</acronym>
+            o
+            <acronym>GMT</acronym>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.date.why">
 
         <title>¿Por Qué Usar Zend_Date?</title>
 
-       <para>
-            <classname>Zend_Date</classname> ofrece las siguientes prestaciones,
-            las cuales extienden el alcance de las funciones de fecha de
-                <acronym>PHP</acronym>:</para>
+        <para>
+            <classname>Zend_Date</classname>
+            ofrece las siguientes prestaciones,
+            las cuales extienden el alcance de las funciones de
+            fecha de
+            <acronym>PHP</acronym>
+            :
+        </para>
 
         <itemizedlist mark="opencircle">
             <listitem>
-               <para>
-                    <acronym>API</acronym> sencilla</para>
-               <para>
-                    <classname>Zend_Date</classname> aporta una
-                        <acronym>API</acronym> muy sencilla, que combina lo
-                    mejor de la funcionalidad fecha/hora de cuatro lenguajes de
+                <para>
+                    <acronym>API</acronym>
+                    sencilla
+                </para>
+                <para>
+                    <classname>Zend_Date</classname>
+                    aporta una
+                    <acronym>API</acronym>
+                    muy sencilla, que combina lo
+                    mejor de la funcionalidad fecha/hora de cuatro
+                    lenguajes de
                     programación. Es posible, por ejemplo, añadir o comparar dos
-                    horas dentro de una misma columna.</para>
+                    horas
+                    dentro de una misma columna.
+                </para>
             </listitem>
             <listitem>
-               <para>Completamente internacionalizado</para>
-               <para>Todos los nombres de meses y días de la semana completos
-                    y abreviados están incluidos para más de 130 idiomas. Los
-                    métodos admiten tanto entrada como salida de fechas usando
+                <para>Completamente internacionalizado</para>
+                <para>Todos los nombres de meses y días de la semana completos
+                    y abreviados están
+                    incluidos para más de 130 idiomas. Los
+                    métodos admiten tanto entrada como salida
+                    de fechas usando
                     los nombres localizados de meses y días de la semana.
                </para>
             </listitem>
             <listitem>
-               <para>Timestamps ilimitados</para>
-               <para>A pesar de que la documentación de <acronym>PHP</acronym>
+                <para>Timestamps ilimitados</para>
+                <para>
+                    A pesar de que la documentación de
+                    <acronym>PHP</acronym>
                     5.2 indice: "El intervalo de valores admitidos de timestamps
-                    es desde el 13 Dec 1901 20:45:54 <acronym>GMT</acronym> al 19 Ene 2038 03:14:07
-                    <acronym>GMT</acronym>," <classname>Zend_Date</classname> admite un rango casi
+                    es desde el 13 Dec
+                    1901 20:45:54
+                    <acronym>GMT</acronym>
+                    al 19 Ene 2038 03:14:07
+                    <acronym>GMT</acronym>
+                    ,"
+                    <classname>Zend_Date</classname>
+                    admite un rango casi
                     ilimitado, con la ayuda de la extensión BCMath. Si BCMath no
                     está disponible, Zend_Date tendrá una funcionalidad de
-                    timestamps reducida al rango del tipo
-                        <methodname>float</methodname> soportado por su
+                    timestamps reducida al
+                    rango del tipo
+                    <methodname>float</methodname>
+                    soportado por su
                     servidor. El tamaño de un float es dependiente de la
-                    plataforma, aunque un máximo de <command>~1.8e308</command> con una precisión
+                    plataforma,
+                    aunque un máximo de
+                    <command>~1.8e308</command>
+                    con una precisión
                     de cerca de 14 dígitos decimales es un valor habitual
-                    (formato 64 bit <acronym>IEEE</acronym>)." [ <ulink
-                        url="http://www.php.net/float"
-                        >http://www.php.net/float</ulink> ]. Adicionalmente, las
-                    limitaciones heredadas de los tipos de dato float, y errores
+                    (formato
+                    64 bit
+                    <acronym>IEEE</acronym>
+                    )." [
+                    <ulink url="http://www.php.net/float">http://www.php.net/float</ulink>
+                    ]. Adicionalmente, las
+                    limitaciones heredadas de los tipos de dato float, y
+                    errores
                     de redondeo de números flotantes pueden introducir errores
-                    en los cálculos. Para evitar estos problemas, los
-                    componentes  de Zend Framework I18n usan la extensión BCMath, si está
-                    disponible.</para>
+                    en los
+                    cálculos. Para evitar estos problemas, los
+                    componentes de Zend Framework I18n
+                    usan la extensión BCMath, si está
+                    disponible.
+                </para>
             </listitem>
             <listitem>
-               <para>Soporte para especificaciones de fecha <acronym>ISO-8601</acronym></para>
-               <para>Las especificaciones de fecha <acronym>ISO_8601</acronym> están aceptadas.
-                    Incluso las especificaciones de fecha <acronym>ISO_8601</acronym> parcialmente
+                <para>
+                    Soporte para especificaciones de fecha
+                    <acronym>ISO-8601</acronym>
+                </para>
+                <para>
+                    Las especificaciones de fecha
+                    <acronym>ISO_8601</acronym>
+                    están aceptadas.
+                    Incluso las especificaciones de fecha
+                    <acronym>ISO_8601</acronym>
+                    parcialmente
                     autorizadas serán identificadas. Estos formatos de fecha son
                     particularmente útiles al trabajar con bases de datos. Por
-                    ejemplo, aunque MsSQL y <ulink
-                        url="http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html"
-                        >MySQL</ulink> difieren ligeramente uno de otro, ambos
-                    tienen soporte por parte de <classname>Zend_Date</classname>
-                    usando la constante de especificación de formato <link
-                        linkend="zend.date.constants.list"
-                        >Zend_Date::ISO_8601</link>. Cuando las cadenas de fecha
-                    sean del tipo "<command>Y/m/d</command>" o "<command>Y-m-d H:i:s</command>", de acuerdo con los
-                    tokens de formato <acronym>PHP</acronym> <methodname>date()</methodname>, use el soporte integrado de
-                    <classname>Zend_Date</classname> para fechas formateadas <acronym>ISO 8601</acronym>.</para>
+                    ejemplo, aunque MsSQL
+                    y
+                    <ulink url="http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html">MySQL</ulink>
+                    difieren ligeramente uno de otro, ambos
+                    tienen soporte por parte de
+                    <classname>Zend_Date</classname>
+                    usando la constante de especificación de formato
+                    <link linkend="zend.date.constants.list">Zend_Date::ISO_8601</link>
+                    . Cuando las cadenas de fecha
+                    sean del tipo "
+                    <command>Y/m/d</command>
+                    " o "
+                    <command>Y-m-d H:i:s</command>
+                    ", de acuerdo con los
+                    tokens de formato
+                    <acronym>PHP</acronym>
+                    <methodname>date()</methodname>
+                    , use el soporte integrado de
+                    <classname>Zend_Date</classname>
+                    para fechas formateadas
+                    <acronym>ISO 8601</acronym>
+                    .
+                </para>
             </listitem>
             <listitem>
-               <para>Calcular amanecer y puesta de sol</para>
-               <para>Las horas de amanecer y puesta de sol pueden mostrarse
-                    para cualquier lugar y día, para que no pierda ni un segundo
+                <para>Calcular amanecer y puesta de sol</para>
+                <para>
+                    Las horas de amanecer y puesta de sol pueden mostrarse
+                    para cualquier lugar y
+                    día, para que no pierda ni un segundo
                     de luz diurna para trabajar en su proyecto
-                        <acronym>PHP</acronym> favorito :)</para>
+                    <acronym>PHP</acronym>
+                    favorito :)
+                </para>
             </listitem>
         </itemizedlist>
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 596 - 232
documentation/manual/es/module_specs/Zend_Date-Overview.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 425 - 244
documentation/manual/es/module_specs/Zend_Db_Adapter.xml


+ 54 - 34
documentation/manual/es/module_specs/Zend_Db_Profiler-Firebug.xml

@@ -1,49 +1,68 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17600 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17600 -->
+    <!-- Reviewed: no -->
 <sect3 id="zend.db.profiler.profilers.firebug">
     <title>Perfilando con Firebug</title>
 
-   <para>
-        <classname>Zend_Db_Profiler_Firebug</classname> envía información de
-        perfilado a la <ulink url="http://getfirebug.com/logging.html"
-            >Consola</ulink> de <ulink url="http://www.getfirebug.com/"
-            >Firebug</ulink>.</para>
-
-   <para>Todos los datos son enviados a través del componente
-            <classname>Zend_Wildfire_Channel_HttpHeaders</classname> que usa
-        cabeceras <acronym>HTTP</acronym> para asegurar que el contenido de la página no sea
-        alterado. Depurar peticiones <acronym>AJAX</acronym> que requieren
-        respuestas <acronym>JSON</acronym> y <acronym>XML</acronym> es perfectamente posible con
-        este enfoque.</para>
-
-   <para>Requerimientos:</para>
+    <para>
+        <classname>Zend_Db_Profiler_Firebug</classname>
+        envía información de
+        perfilado a la
+        <ulink url="http://getfirebug.com/logging.html">Consola</ulink>
+        de
+        <ulink url="http://www.getfirebug.com/">Firebug</ulink>
+        .
+    </para>
+
+    <para>
+        Todos los datos son enviados a través del componente
+        <classname>Zend_Wildfire_Channel_HttpHeaders</classname>
+        que usa
+        cabeceras
+        <acronym>HTTP</acronym>
+        para asegurar que el contenido de la página no sea
+        alterado. Depurar peticiones
+        <acronym>AJAX</acronym>
+        que requieren
+        respuestas
+        <acronym>JSON</acronym>
+        y
+        <acronym>XML</acronym>
+        es perfectamente posible con
+        este enfoque.
+    </para>
+
+    <para>Requerimientos:</para>
 
     <itemizedlist>
         <listitem>
-           <para>Navegador web Firefox idealmente versión 3, pero la versión 2
-                tambien está soportada.</para>
+            <para>Navegador web Firefox idealmente versión 3, pero la versión 2
+                tambien está
+                soportada.</para>
         </listitem>
 
         <listitem>
-           <para>Extensión Firebug para Firefox, la cual puede descargarse
-                desde <ulink
-                    url="https://addons.mozilla.org/en-US/firefox/addon/1843"
-                    >https://addons. mozilla
-                    .org/en-US/firefox/addon/1843</ulink>.</para>
+            <para>
+                Extensión Firebug para Firefox, la cual puede descargarse
+                desde
+                <ulink url="https://addons.mozilla.org/en-US/firefox/addon/1843">https://addons.
+                    mozilla
+                    .org/en-US/firefox/addon/1843</ulink>
+                .
+            </para>
         </listitem>
 
         <listitem>
-           <para>Extensión FirePHP para Firefox, la cual puede descargarse
-                desde <ulink
-                    url="https://addons.mozilla.org/en-US/firefox/addon/6149"
-                    >https://addons.mozilla.org/en-US/firefox/addon/6149</ulink>.
-           </para>
+            <para>
+                Extensión FirePHP para Firefox, la cual puede descargarse
+                desde
+                <ulink url="https://addons.mozilla.org/en-US/firefox/addon/6149">https://addons.mozilla.org/en-US/firefox/addon/6149</ulink>
+                .
+            </para>
         </listitem>
     </itemizedlist>
 
-    <example
-        id="zend.db.profiler.profilers.firebug.example.with_front_controller">
+    <example id="zend.db.profiler.profilers.firebug.example.with_front_controller">
         <title>Perfilando DB con Zend_Controller_Front</title>
 
         <programlisting language="php"><![CDATA[
@@ -62,10 +81,11 @@ $db->setProfiler($profiler)
 ]]></programlisting>
     </example>
 
-    <example
-        id="zend.db.profiler.profilers.firebug.example.without_front_controller">
-        <title>Perfilar DB sin
-            <classname>Zend_Controller_Front</classname></title>
+    <example id="zend.db.profiler.profilers.firebug.example.without_front_controller">
+        <title>
+            Perfilar DB sin
+            <classname>Zend_Controller_Front</classname>
+        </title>
 
         <programlisting language="php"><![CDATA[
 $profiler = new Zend_Db_Profiler_Firebug('All DB Queries');

+ 292 - 145
documentation/manual/es/module_specs/Zend_Db_Profiler.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 19484 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 19484 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.db.profiler" xmlns:xi="http://www.w3.org/2001/XInclude">
 
     <title>Zend_Db_Profiler</title>
@@ -9,17 +9,24 @@
 
         <title>Introducción</title>
 
-       <para>
-            <classname>Zend_Db_Profiler</classname> puede ser habilitado para
-            Perfilar las consultas. Los Perfiles incluyen la consulta procesada
+        <para>
+            <classname>Zend_Db_Profiler</classname>
+            puede ser habilitado para
+            Perfilar las consultas. Los Perfiles incluyen la consulta
+            procesada
             por el adaptador como el tiempo as transcurrido en la ejecución de
-            las consultas, permitiendo inspeccionar las consultas realizadas win
-            necesidad de agregar información de depuración extra en el código de
-            las clases. El uso avanzado también permite que el desarrollador
-            filtre las consultas que desea perfilar.</para>
-
-       <para>Habilite el perfilador pasando una directiva al al constructor
-            del adaptador, o pidiendole al adaptador permitirlo más adelante.</para>
+            las
+            consultas, permitiendo inspeccionar las consultas realizadas win
+            necesidad de agregar
+            información de depuración extra en el código de
+            las clases. El uso avanzado también
+            permite que el desarrollador
+            filtre las consultas que desea perfilar.
+        </para>
+
+        <para>Habilite el perfilador pasando una directiva al al constructor
+            del adaptador, o
+            pidiendole al adaptador permitirlo más adelante.</para>
 
         <programlisting language="php"><![CDATA[
 $params = array(
@@ -40,53 +47,85 @@ $db->getProfiler()->setEnabled(false);
 $db->getProfiler()->setEnabled(true);
 ]]></programlisting>
 
-       <para>El valor de la opción '<property>profiler</property>' es
+        <para>
+            El valor de la opción '
+            <property>profiler</property>
+            ' es
             flexible. Es interpretada de distintas formas dependiendo del tipo.
-            Normalmente, debería usar un valor booleano simple, pero otros tipos
-            le permiten personalizar el comportamiento del perfilador.</para>
-
-       <para>Un argumento booleano establece el perfilador como habilitado si
-            el valor es <constant>TRUE</constant>, o deshabilitado si es
-                <constant>FALSE</constant>. La clase del perfilador es el la
+            Normalmente,
+            debería usar un valor booleano simple, pero otros tipos
+            le permiten personalizar el
+            comportamiento del perfilador.
+        </para>
+
+        <para>
+            Un argumento booleano establece el perfilador como habilitado si
+            el valor es
+            <constant>TRUE</constant>
+            , o deshabilitado si es
+            <constant>FALSE</constant>
+            . La clase del perfilador es el la
             clase de perfilador por defecto del adaptador,
-            <classname>Zend_Db_Profiler</classname>.
+            <classname>Zend_Db_Profiler</classname>
+            .
 
-       </para>
+        </para>
 
-           <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $params['profiler'] = true;
 $db = Zend_Db::factory('PDO_MYSQL', $params);
 ]]></programlisting>
 
-       <para>Una instancia del objeto perfilador hace que el adaptador use ese
-            objeto. El tipo del objeto debe ser
-                <classname>Zend_Db_Profiler</classname> o una subclase de este.
+        <para>
+            Una instancia del objeto perfilador hace que el adaptador use ese
+            objeto. El tipo del
+            objeto debe ser
+            <classname>Zend_Db_Profiler</classname>
+            o una subclase de este.
             Habilitar el perfilador se hace por separado.
-       </para>
+        </para>
 
-            <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $profiler = MyProject_Db_Profiler();
 $profiler->setEnabled(true);
 $params['profiler'] = $profiler;
 $db = Zend_Db::factory('PDO_MYSQL', $params);
 ]]></programlisting>
 
-       <para>El argumento puede ser un array asociativo conteniendo algunas o
-            todas las claves '<methodname>enabled</methodname>',
-            '<property>instance</property>', y
-            '<property>class</property>'. Las claves
-            '<property>enabled</property>' e
-            '<property>instance</property>' corresponden a los tipos
+        <para>
+            El argumento puede ser un array asociativo conteniendo algunas o
+            todas las claves '
+            <methodname>enabled</methodname>
+            ',
+            '
+            <property>instance</property>
+            ', y
+            '
+            <property>class</property>
+            '. Las claves
+            '
+            <property>enabled</property>
+            ' e
+            '
+            <property>instance</property>
+            ' corresponden a los tipos
             booleano y la instancia documentada previamente. La clave
-            '<property>class</property>' es usada para nombrar la clase
+            '
+            <property>class</property>
+            ' es usada para nombrar la clase
             que usará el perfilador personalizado. La clase debe ser
-                <classname>Zend_Db_Profiler</classname> o una subclase. La clase
+            <classname>Zend_Db_Profiler</classname>
+            o una subclase. La clase
             es instanciada sin argumentos de constructor. La opción
-            '<property>class</property>' es ignorada cuando la opción
-            '<property>instance</property>' está dada.
-       </para>
+            '
+            <property>class</property>
+            ' es ignorada cuando la opción
+            '
+            <property>instance</property>
+            ' está dada.
+        </para>
 
-            <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $params['profiler'] = array(
     'enabled' => true,
     'class'   => 'MyProject_Db_Profiler'
@@ -94,34 +133,44 @@ $params['profiler'] = array(
 $db = Zend_Db::factory('PDO_MYSQL', $params);
 ]]></programlisting>
 
-       <para>Finalmente, el argumento puede ser un objeto de tipo
-                <methodname>Zend_Config</methodname> conteniendo las
+        <para>
+            Finalmente, el argumento puede ser un objeto de tipo
+            <methodname>Zend_Config</methodname>
+            conteniendo las
             propiedades, que son tratadas como las claves de array descritas
-            recién. Por ejemplo, un archivo "<filename>config.ini</filename>" puede contener los
+            recién.
+            Por ejemplo, un archivo "
+            <filename>config.ini</filename>
+            " puede contener los
             siguientes datos:
 
-       </para>
+        </para>
 
-            <programlisting language="ini"><![CDATA[
+        <programlisting language="ini"><![CDATA[
 [main]
 db.profiler.class   = "MyProject_Db_Profiler"
 db.profiler.enabled = true
 ]]></programlisting>
 
-       <para>Esta configuración puede ser aplicada con el siguiente
-            código <acronym>PHP</acronym>:
-           </para>
-            <programlisting language="php"><![CDATA[
+        <para>
+            Esta configuración puede ser aplicada con el siguiente
+            código
+            <acronym>PHP</acronym>
+            :
+        </para>
+        <programlisting language="php"><![CDATA[
 $config = new Zend_Config_Ini('config.ini', 'main');
 $params['profiler'] = $config->db->profiler;
 $db = Zend_Db::factory('PDO_MYSQL', $params);
 ]]></programlisting>
-       <para>
-        La propiedad '<methodname>instance</methodname>' debe ser
+        <para>
+            La propiedad '
+            <methodname>instance</methodname>
+            ' debe ser
             usada como el siguiente ejemplo:
-           </para>
+        </para>
 
-            <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $profiler = new MyProject_Db_Profiler();
 $profiler->setEnabled(true);
 $configData = array(
@@ -138,87 +187,131 @@ $db = Zend_Db::factory('PDO_MYSQL', $params);
 
         <title>Usando el Perfilador</title>
 
-       <para>En este punto, obtenemos el perfilador usando el método
-                <methodname>getProfiler()</methodname> del adaptador:</para>
+        <para>
+            En este punto, obtenemos el perfilador usando el método
+            <methodname>getProfiler()</methodname>
+            del adaptador:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $profiler = $db->getProfiler();
 ]]></programlisting>
 
-       <para>Este retorna una instancia del objeto
-                <classname>Zend_Db_Profiler</classname>. Con esta instancia, el
-            desarrollador puede examinar las consultar usando una variedad de
-            métodos:</para>
+        <para>
+            Este retorna una instancia del objeto
+            <classname>Zend_Db_Profiler</classname>
+            . Con esta instancia, el
+            desarrollador puede examinar las consultar usando una variedad
+            de
+            métodos:
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>
-                    <methodname>getTotalNumQueries()</methodname> retorna el
-                    número total de consultas que han sido perfiladas.</para>
+                <para>
+                    <methodname>getTotalNumQueries()</methodname>
+                    retorna el
+                    número total de consultas que han sido perfiladas.
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <methodname>getTotalElapsedSecs()</methodname> retorna el
+                <para>
+                    <methodname>getTotalElapsedSecs()</methodname>
+                    retorna el
                     número total de segundos transcurridos en todas las
-                    consultas perfiladas.</para>
+                    consultas
+                    perfiladas.
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <methodname>getQueryProfiles()</methodname> retorna un array
-                    con todos los perfiles de consultas.</para>
+                <para>
+                    <methodname>getQueryProfiles()</methodname>
+                    retorna un array
+                    con todos los perfiles de consultas.
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <methodname>getLastQueryProfile()</methodname> retorna el
+                <para>
+                    <methodname>getLastQueryProfile()</methodname>
+                    retorna el
                     último perfil (más reciente) de consulta, independientemente
-                    de si la consulta ha terminado o no (si no lo ha hecho, la
-                    hora de finalización será nula).</para>
+                    de si la
+                    consulta ha terminado o no (si no lo ha hecho, la
+                    hora de finalización será
+                    nula).
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <methodname>clear()</methodname> limpia los perfiles de
-                    consulta de la pila.</para>
+                <para>
+                    <methodname>clear()</methodname>
+                    limpia los perfiles de
+                    consulta de la pila.
+                </para>
             </listitem>
         </itemizedlist>
 
-       <para>El valor de retorno de
-                <methodname>getLastQueryProfile()</methodname> y elementos
-            individuales de <methodname>getQueryProfiles()</methodname> son
-                <methodname>Zend_Db_Profiler_Query</methodname> objetos, que
+        <para>
+            El valor de retorno de
+            <methodname>getLastQueryProfile()</methodname>
+            y elementos
+            individuales de
+            <methodname>getQueryProfiles()</methodname>
+            son
+            <methodname>Zend_Db_Profiler_Query</methodname>
+            objetos, que
             proporcionan la capacidad para inspeccionar cada una de las
-            consultas:</para>
+            consultas:
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>
-                    <methodname>getQuery()</methodname> retorna el texto SQL de
-                    la consulta. El texto <acronym>SQL</acronym> de una declaración preparada con
-                    parámetros es el texto al tiempo en que la consulta fué
+                <para>
+                    <methodname>getQuery()</methodname>
+                    retorna el texto SQL de
+                    la consulta. El texto
+                    <acronym>SQL</acronym>
+                    de una declaración preparada con
+                    parámetros es el texto al tiempo en que la
+                    consulta fué
                     preparada, por lo que contiene marcadores de posición, no
-                    los valores utilizados cuando la declaración se ejecuta.
-               </para>
+                    los valores
+                    utilizados cuando la declaración se ejecuta.
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <methodname>getQueryParams()</methodname> retorna un array
+                <para>
+                    <methodname>getQueryParams()</methodname>
+                    retorna un array
                     de los valores de los parámetros usados cuando se ejecuta
-                    una consulta preparada. Este incluye ambos parámetros y
-                    argumentos vinculados al método
-                        <methodname>execute()</methodname> de la declaración.
+                    una
+                    consulta preparada. Este incluye ambos parámetros y
+                    argumentos vinculados al
+                    método
+                    <methodname>execute()</methodname>
+                    de la declaración.
                     Las claves del array son las posiciones (basado en 1) o
-                    indices de parámetros nombrados (string).</para>
+                    indices de parámetros nombrados (string).
+                </para>
             </listitem>
             <listitem>
-               <para>
-                    <methodname>getElapsedSecs()</methodname> returna el número
-                    de segundos que tuvo la consulta al correr.</para>
+                <para>
+                    <methodname>getElapsedSecs()</methodname>
+                    returna el número
+                    de segundos que tuvo la consulta al correr.
+                </para>
             </listitem>
         </itemizedlist>
 
-       <para>La información que <classname>Zend_Db_Profiler</classname> provee
+        <para>
+            La información que
+            <classname>Zend_Db_Profiler</classname>
+            provee
             es útil para perfilar cuellos de botella en aplicaciones, y para
-            depurar consultas que han sido ejecutadas. Por instancia, para ver
-            la consulta exacta que tuvo la última ejecución:</para>
+            depurar consultas
+            que han sido ejecutadas. Por instancia, para ver
+            la consulta exacta que tuvo la última
+            ejecución:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $query = $profiler->getLastQueryProfile();
@@ -226,9 +319,11 @@ $query = $profiler->getLastQueryProfile();
 echo $query->getQuery();
 ]]></programlisting>
 
-       <para>Tal vez una página se genera lentamente; use el perfilador para
-            determinar primero el número total de segundos de todas las
-            consultas, y luego recorrer paso a paso a través de las consultas
+        <para>Tal vez una página se genera lentamente; use el perfilador para
+            determinar primero el
+            número total de segundos de todas las
+            consultas, y luego recorrer paso a paso a través de
+            las consultas
             para encontrar la más lenta:</para>
 
         <programlisting language="php"><![CDATA[
@@ -259,19 +354,27 @@ echo "Consulta más lenta: \n" . $longestQuery . "\n";
 
         <title>Uso avanzado del Perfilador</title>
 
-       <para>Además de la inspección de consultas, el perfilador también le
-            permite al desarrollador filtrar que consultas serán perfiladas. El
+        <para>
+            Además de la inspección de consultas, el perfilador también le
+            permite al desarrollador
+            filtrar que consultas serán perfiladas. El
             siguiente método opera en una instancia de
-                <classname>Zend_Db_Profiler</classname>:</para>
+            <classname>Zend_Db_Profiler</classname>
+            :
+        </para>
 
         <sect3 id="zend.db.profiler.advanced.filtertime">
             <title>Filtrar por tiempo transcurrido en consulta</title>
 
-           <para>
-                <methodname>setFilterElapsedSecs()</methodname> le permite al
+            <para>
+                <methodname>setFilterElapsedSecs()</methodname>
+                le permite al
                 desarrolador establecer un tiempo mínimo antes de que una
-                consulta se perfile. Para remover el filtro, pase un valor <constant>NULL</constant>
-                al método.</para>
+                consulta se
+                perfile. Para remover el filtro, pase un valor
+                <constant>NULL</constant>
+                al método.
+            </para>
 
             <programlisting language="php"><![CDATA[
 // Solo perfilar consultas que tardan más de 5 segundos:
@@ -285,61 +388,93 @@ $profiler->setFilterElapsedSecs(null);
         <sect3 id="zend.db.profiler.advanced.filtertype">
             <title>Filtrar por tipo de consulta</title>
 
-           <para>
-                <methodname>setFilterQueryType()</methodname> le permite al
+            <para>
+                <methodname>setFilterQueryType()</methodname>
+                le permite al
                 desarrollador establecer que tipo de consulta serán perfiladas;
-                para perfilar multiples tipos, use un "OR" lógico. Los tipos de
-                consulta se definen como las siguientes constantes de
-                    <classname>Zend_Db_Profiler</classname>:</para>
+                para
+                perfilar multiples tipos, use un "OR" lógico. Los tipos de
+                consulta se definen como
+                las siguientes constantes de
+                <classname>Zend_Db_Profiler</classname>
+                :
+            </para>
 
             <itemizedlist>
                 <listitem>
-                   <para>
-                        <constant>Zend_Db_Profiler::CONNECT</constant>:
+                    <para>
+                        <constant>Zend_Db_Profiler::CONNECT</constant>
+                        :
                         operaciones de conexión o selección de base de datos.
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <constant>Zend_Db_Profiler::QUERY</constant>:
+                    <para>
+                        <constant>Zend_Db_Profiler::QUERY</constant>
+                        :
                         consultas generales a la base de datos que no calzan con
-                        otros tipos.</para>
+                        otros tipos.
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <constant>Zend_Db_Profiler::INSERT</constant>:
+                    <para>
+                        <constant>Zend_Db_Profiler::INSERT</constant>
+                        :
                         cualquier consulta que agrega filas a la base de datos,
-                        generalmente un <acronym>SQL</acronym> INSERT.</para>
+                        generalmente un
+                        <acronym>SQL</acronym>
+                        INSERT.
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <constant>Zend_Db_Profiler::UPDATE</constant>:
+                    <para>
+                        <constant>Zend_Db_Profiler::UPDATE</constant>
+                        :
                         cualquier consulta que actualice registros existentes,
-                        usualmente un <acronym>SQL</acronym> UPDATE.</para>
+                        usualmente un
+                        <acronym>SQL</acronym>
+                        UPDATE.
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <constant>Zend_Db_Profiler::DELETE</constant>:
+                    <para>
+                        <constant>Zend_Db_Profiler::DELETE</constant>
+                        :
                         cualquier consulta que elimine datos existentes,
-                        usualmente un <acronym>SQL</acronym> DELETE.</para>
+                        usualmente un
+                        <acronym>SQL</acronym>
+                        DELETE.
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <constant>Zend_Db_Profiler::SELECT</constant>:
+                    <para>
+                        <constant>Zend_Db_Profiler::SELECT</constant>
+                        :
                         cualquier consulta que retorne datos existentes,
-                        usualmente un <acronym>SQL</acronym> SELECT.</para>
+                        usualmente un
+                        <acronym>SQL</acronym>
+                        SELECT.
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <constant>Zend_Db_Profiler::TRANSACTION</constant>:
+                    <para>
+                        <constant>Zend_Db_Profiler::TRANSACTION</constant>
+                        :
                         cualquier operación transaccional, tal como iniciar una
-                        transacción, confirmar, o revertir.</para>
+                        transacción,
+                        confirmar, o revertir.
+                    </para>
                 </listitem>
             </itemizedlist>
 
-           <para>Asi como con <methodname>setFilterElapsedSecs()</methodname>,
+            <para>
+                Asi como con
+                <methodname>setFilterElapsedSecs()</methodname>
+                ,
                 puedes remover cualquier filtro existente pasando un
-                    <constant>NULL</constant> como único argumento.</para>
+                <constant>NULL</constant>
+                como único argumento.
+            </para>
 
             <programlisting language="php"><![CDATA[
 // Perfilar solo consultas SELECT
@@ -362,15 +497,24 @@ $profiler->setFilterQueryType(null);
         <sect3 id="zend.db.profiler.advanced.getbytype">
             <title>Obtener perfiles por tipo de consulta</title>
 
-           <para>Usando <methodname>setFilterQueryType()</methodname> puedes
+            <para>
+                Usando
+                <methodname>setFilterQueryType()</methodname>
+                puedes
                 reducir los perfiles generados. Sin embargo, a veces puede ser
-                más útil mantener todos los perfiles, pero ver sólo los que
-                necesita en un determinado momento. Otra característica de
-                    <methodname>getQueryProfiles()</methodname> es que puede
+                más útil
+                mantener todos los perfiles, pero ver sólo los que
+                necesita en un determinado
+                momento. Otra característica de
+                <methodname>getQueryProfiles()</methodname>
+                es que puede
                 este filtrado al-vuelo, pasando un tipo de consulta(o una
-                combinación lógica de tipos de consulta) en el primer; vea <xref
-                    linkend="zend.db.profiler.advanced.filtertype"/> para una
-                lista las constantes de tipo de consulta.</para>
+                combinación
+                lógica de tipos de consulta) en el primer; vea
+                <xref linkend="zend.db.profiler.advanced.filtertype"/>
+                para una
+                lista las constantes de tipo de consulta.
+            </para>
 
             <programlisting language="php"><![CDATA[
 // Obtiene solo perfiles de consultas SELECT
@@ -392,10 +536,13 @@ $profiles = $profiler->getQueryProfiles(Zend_Db_Profiler::DELETE);
     <sect2 id="zend.db.profiler.profilers">
         <title>Perfiladores Especializados</title>
 
-       <para>Un Perfilador Especializado es un objeto que hereda de
-                <classname>Zend_Db_Profiler</classname>. Los Perfiladores
+        <para>
+            Un Perfilador Especializado es un objeto que hereda de
+            <classname>Zend_Db_Profiler</classname>
+            . Los Perfiladores
             Especializados tratan la información de perfilado de maneras más
-            especificas.</para>
+            especificas.
+        </para>
 
         <xi:include href="Zend_Db_Profiler-Firebug.xml"/>
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 548 - 258
documentation/manual/es/module_specs/Zend_Db_Select.xml


+ 263 - 172
documentation/manual/es/module_specs/Zend_Db_Statement.xml

@@ -1,41 +1,58 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17987 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17987 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.db.statement">
 
     <title>Zend_Db_Statement</title>
 
-   <para>
+    <para>
         Además de algunos métodos convenientes tales como
-        <methodname>fetchAll()</methodname> e <methodname>insert()</methodname> documentados en
-        <xref linkend="zend.db.adapter" />, puede usarse un objeto de declaración
-        para obtener más opciones al ejecutar consultas y devolver conjuntos de
+        <methodname>fetchAll()</methodname>
+        e
+        <methodname>insert()</methodname>
+        documentados en
+        <xref linkend="zend.db.adapter"/>
+        , puede usarse un objeto de declaración
+        para obtener más opciones al ejecutar consultas y
+        devolver conjuntos de
         resultados. Esta sección describe cómo obtener una instancia de un
         objeto de declaración y cómo usar sus métodos.
-   </para>
+    </para>
 
-   <para>
-        <classname>Zend_Db_Statement</classname> está basado en el objeto PDOStatement en la extensión
-        <ulink url="http://www.php.net/pdo">PHP Data Objects</ulink>.
-   </para>
+    <para>
+        <classname>Zend_Db_Statement</classname>
+        está basado en el objeto PDOStatement en la extensión
+        <ulink url="http://www.php.net/pdo">PHP Data Objects</ulink>
+        .
+    </para>
 
     <sect2 id="zend.db.statement.creating">
 
         <title>Creando una Declaración</title>
 
-       <para>
+        <para>
             Típicamente, un objeto de declaración statement es devuelto por el
-            método <methodname>query()</methodname> de la clase de Adaptador de la base de
+            método
+            <methodname>query()</methodname>
+            de la clase de Adaptador de la base de
             datos.
-            Este método es un modo general de preparar una declaración <acronym>SQL</acronym>.
-            El primer parámetro es un string conteniendo la declaración <acronym>SQL</acronym>.
+            Este método es un modo general de preparar
+            una declaración
+            <acronym>SQL</acronym>
+            .
+            El primer parámetro es un string conteniendo la declaración
+            <acronym>SQL</acronym>
+            .
             El segundo parámetro (opcional) es un array de valores para
-            vincular posiciones de parámetros en el string <acronym>SQL</acronym>.
-       </para>
+            vincular posiciones de
+            parámetros en el string
+            <acronym>SQL</acronym>
+            .
+        </para>
 
         <example id="zend.db.statement.creating.example1">
             <title>Crear un objeto de declaración SQL con query()</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $stmt = $db->query(
             'SELECT * FROM bugs WHERE reported_by = ? AND bug_status = ?',
             array('goofy', 'FIXED')
@@ -43,27 +60,36 @@ $stmt = $db->query(
 ]]></programlisting>
         </example>
 
-       <para>
-            El objeto de declaración corresponde a una declaración <acronym>SQL</acronym> que ha
+        <para>
+            El objeto de declaración corresponde a una declaración
+            <acronym>SQL</acronym>
+            que ha
             sido preparada y ejecutada una vez con valores vinculados
             especificados.
-            Si la declaración fue una consulta SELECT u otro tipo de declaración
-            que devuelve un conjunto de resultados, ahora estará lista para
+            Si la
+            declaración fue una consulta SELECT u otro tipo de declaración
+            que devuelve un conjunto
+            de resultados, ahora estará lista para
             extraer resultados.
-       </para>
+        </para>
 
-       <para>
+        <para>
             Puede crear una declaración con su constructor, pero éste es un
-            uso menos típico. No hay un método factory para crear el objeto,
-            así que es necesario cargar una clase de declaración específica y llamar a su constructor.
-            Pase el objeto Adaptador como el primer parámetro, y un string
-            conteniendo la declaración <acronym>SQL</acronym> como el segundo parámetro.
+            uso menos típico. No hay
+            un método factory para crear el objeto,
+            así que es necesario cargar una clase de
+            declaración específica y llamar a su constructor.
+            Pase el objeto Adaptador como el primer
+            parámetro, y un string
+            conteniendo la declaración
+            <acronym>SQL</acronym>
+            como el segundo parámetro.
             La declaración es preparada pero no ejecutada.
-       </para>
+        </para>
 
         <example id="zend.db.statement.creating.example2">
             <title>Usando un constructor de declaración SQL</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $sql = 'SELECT * FROM bugs WHERE reported_by = ? AND bug_status = ?';
 
 $stmt = new Zend_Db_Statement_Mysqli($db, $sql);
@@ -76,23 +102,30 @@ $stmt = new Zend_Db_Statement_Mysqli($db, $sql);
 
         <title>Ejecutando la declaración</title>
 
-       <para>
+        <para>
             Necesita ejecutar un objeto de declaración si lo crea con el
-            constructor, o si desea ejecutar la misma declaración varias veces.
-            Use el método <methodname>execute()</methodname> del mismo objeto de
+            constructor, o si desea
+            ejecutar la misma declaración varias veces.
+            Use el método
+            <methodname>execute()</methodname>
+            del mismo objeto de
             declaración. El único parámetro es un array de valores a vincular a
             posiciones de parámetros en la declaración.
-       </para>
-
-       <para>
-            Si usa <emphasis>parámetros posicionales</emphasis>, o los que
-            están marcados por un signo de interrogación (<emphasis>?</emphasis>), pase
+        </para>
+
+        <para>
+            Si usa
+            <emphasis>parámetros posicionales</emphasis>
+            , o los que
+            están marcados por un signo de interrogación (
+            <emphasis>?</emphasis>
+            ), pase
             los valores de vinculación en un array plano.
-       </para>
+        </para>
 
         <example id="zend.db.statement.executing.example1">
             <title>Ejecutar una declaración con parámetros posicionales</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $sql = 'SELECT * FROM bugs WHERE reported_by = ? AND bug_status = ?';
 
 $stmt = new Zend_Db_Statement_Mysqli($db, $sql);
@@ -101,17 +134,23 @@ $stmt->execute(array('goofy', 'FIXED'));
 ]]></programlisting>
         </example>
 
-       <para>
-            Si usa <emphasis>parámetros nombrados</emphasis>, o los que son
+        <para>
+            Si usa
+            <emphasis>parámetros nombrados</emphasis>
+            , o los que son
             indicados por un string identificador precedido por un caracter de
-            dos puntos (<emphasis>:</emphasis>), pase el valor en un array asociativo.
-            Las claves de este array deben coincidir con el nombre de los
+            dos
+            puntos (
+            <emphasis>:</emphasis>
+            ), pase el valor en un array asociativo.
+            Las claves de este array deben coincidir con el
+            nombre de los
             parámetros.
-       </para>
+        </para>
 
         <example id="zend.db.statement.executing.example2">
             <title>Ejecutando una declaración con parámetros nombrados</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $sql = 'SELECT * FROM bugs WHERE ' .
        'reported_by = :reporter AND bug_status = :status';
 
@@ -121,86 +160,121 @@ $stmt->execute(array(':reporter' => 'goofy', ':status' => 'FIXED'));
 ]]></programlisting>
         </example>
 
-       <para>
-            Las declaraciones <acronym>PDO</acronym> soportan tanto parámetros posicionales como
-            parámetros nombrados, pero no ambos tipos en la misma declaración
-            <acronym>SQL</acronym>. Algunas clases <classname>Zend_Db_Statement</classname> para extensiones no-PDO
+        <para>
+            Las declaraciones
+            <acronym>PDO</acronym>
+            soportan tanto parámetros posicionales como
+            parámetros nombrados, pero no ambos tipos en
+            la misma declaración
+            <acronym>SQL</acronym>
+            . Algunas clases
+            <classname>Zend_Db_Statement</classname>
+            para extensiones no-PDO
             soportan solo un tipo de parámetro o el otro.
-       </para>
+        </para>
 
     </sect2>
 
     <sect2 id="zend.db.statement.fetching">
 
-        <title>Extrayendo Resultados de una declaración <methodname>SELECT</methodname></title>
+        <title>
+            Extrayendo Resultados de una declaración
+            <methodname>SELECT</methodname>
+        </title>
 
-       <para>
+        <para>
             Puede llamar a métodos del objeto de declaración para obtener filas
-            desde declaraciones <acronym>SQL</acronym> que producen conjuntos de resultados.
+            desde declaraciones
+            <acronym>SQL</acronym>
+            que producen conjuntos de resultados.
 
-            SELECT, SHOW, DESCRIBE y EXPLAIN son ejemplos de declaraciones que
+            SELECT, SHOW, DESCRIBE y EXPLAIN son ejemplos de
+            declaraciones que
             producen un conjunto de resultados.
-            INSERT, UPDATE, and DELETE son ejemplo de declaraciones que
+            INSERT, UPDATE, and DELETE son
+            ejemplo de declaraciones que
             no producen un conjunto de resultados.
 
-            Puede ejecutar las últimas declaraciones de <acronym>SQL</acronym> usando
-            <classname>Zend_Db_Statement</classname>, pero no puede llamar a los métodos que extraen
+            Puede ejecutar las
+            últimas declaraciones de
+            <acronym>SQL</acronym>
+            usando
+            <classname>Zend_Db_Statement</classname>
+            , pero no puede llamar a los métodos que extraen
             filas de resultados desde éste.
-       </para>
+        </para>
 
         <sect3 id="zend.db.statement.fetching.fetch">
 
             <title>Extrayendo una Fila Simple desde un Conjunto de Resultados</title>
 
-           <para>
+            <para>
                 Para extraer una fila desde el conjunto de resultados,
-                use el método <methodname>fetch()</methodname> del objeto de declaración.
+                use el método
+                <methodname>fetch()</methodname>
+                del objeto de declaración.
                 Los tres parámetros de este método son opcionales:
-           </para>
+            </para>
 
             <itemizedlist>
                 <listitem>
-                   <para>
+                    <para>
                         <emphasis>Estilo de Extracción</emphasis>
                         es el primer parámetro. Éste controla la estructura
-                        en la que será devuelta la fila.
-                        Vea <xref linkend="zend.db.adapter.select.fetch-mode" />
+                        en la que será devuelta
+                        la fila.
+                        Vea
+                        <xref linkend="zend.db.adapter.select.fetch-mode"/>
                         para la descripción de un valor válido los
-                        correspondientes formatos de datos.
-                   </para>
+                        correspondientes formatos de
+                        datos.
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
+                    <para>
                         <emphasis>Orientación del Cursor</emphasis>
                         es el segundo parámetro. Por omisión es
-                        Zend_Db::FETCH_ORI_NEXT, lo cual simplemente significa
-                        que cada llamada a <methodname>fetch()</methodname> devuelve la
+                        Zend_Db::FETCH_ORI_NEXT, lo cual
+                        simplemente significa
+                        que cada llamada a
+                        <methodname>fetch()</methodname>
+                        devuelve la
                         siguiente fila del resultado, en el orden devuelto por
-                        el  <acronym>RDBMS</acronym>.
-                   </para>
+                        el
+                        <acronym>RDBMS</acronym>
+                        .
+                    </para>
                 </listitem>
                 <listitem>
-                   <para>
-                        <emphasis>Compensación</emphasis> es el
+                    <para>
+                        <emphasis>Compensación</emphasis>
+                        es el
                         tercer parámetro.
-                        Si la orientación del cursor es Zend_Db::FETCH_ORI_ABS,
+                        Si la orientación del cursor es
+                        Zend_Db::FETCH_ORI_ABS,
                         entonces el offset es el número ordinal
-                        de las filas que devolver.
+                        de las filas
+                        que devolver.
                         Si la orientación del cursor es Zend_Db::FETCH_ORI_REL,
                         entonces el offset es relativo a la posición del
-                        cursor antes de que <methodname>fetch()</methodname> fuera llamado.
-                   </para>
+                        cursor antes de que
+                        <methodname>fetch()</methodname>
+                        fuera llamado.
+                    </para>
                 </listitem>
             </itemizedlist>
 
-           <para>
-                <methodname>fetch()</methodname> devuelve <constant>FALSE</constant> si todas las filas
+            <para>
+                <methodname>fetch()</methodname>
+                devuelve
+                <constant>FALSE</constant>
+                si todas las filas
                 del conjunto de resultados han sido extraídas.
-           </para>
+            </para>
 
             <example id="zend.db.statement.fetching.fetch.example">
                 <title>Usando fetch() en un bucle</title>
-                 <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $stmt = $db->query('SELECT * FROM bugs');
 
 while ($row = $stmt->fetch()) {
@@ -209,9 +283,11 @@ while ($row = $stmt->fetch()) {
 ]]></programlisting>
             </example>
 
-           <para>
-                Vea también <ulink url="http://www.php.net/PDOStatement-fetch">PDOStatement::fetch()</ulink>.
-           </para>
+            <para>
+                Vea también
+                <ulink url="http://www.php.net/PDOStatement-fetch">PDOStatement::fetch()</ulink>
+                .
+            </para>
 
         </sect3>
 
@@ -219,20 +295,27 @@ while ($row = $stmt->fetch()) {
 
             <title>Extrayendo un Conjunto de Resultados completo</title>
 
-           <para>
+            <para>
                 Para extraer todas las filas de un resultado en un solo paso,
-                use el método <methodname>fetchAll()</methodname>. Esto es equivalente a
-                llamar al método <methodname>fetch()</methodname> en un bucle devolviendo
-                todas las filas en una array. El método <methodname>fetchAll()</methodname>
-                acepta 2 parámetros.  El primero es el estilo de extracción,
-                descrito anteriormente, y el segundo indica el número de la
-                columa que devolver, cuando el estilo de extracción es
+                use el método
+                <methodname>fetchAll()</methodname>
+                . Esto es equivalente a
+                llamar al método
+                <methodname>fetch()</methodname>
+                en un bucle devolviendo
+                todas las filas en una array. El método
+                <methodname>fetchAll()</methodname>
+                acepta 2 parámetros. El primero es el estilo de extracción,
+                descrito anteriormente, y
+                el segundo indica el número de la
+                columa que devolver, cuando el estilo de extracción
+                es
                 Zend_Db::FETCH_COLUMN.
-           </para>
+            </para>
 
             <example id="zend.db.statement.fetching.fetchall.example">
                 <title>Usando fetchAll()</title>
-                 <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $stmt = $db->query('SELECT * FROM bugs');
 
 $rows = $stmt->fetchAll();
@@ -241,9 +324,11 @@ echo $rows[0]['bug_description'];
 ]]></programlisting>
             </example>
 
-           <para>
-                Vea también <ulink url="http://www.php.net/PDOStatement-fetchAll">PDOStatement::fetchAll()</ulink>.
-           </para>
+            <para>
+                Vea también
+                <ulink url="http://www.php.net/PDOStatement-fetchAll">PDOStatement::fetchAll()</ulink>
+                .
+            </para>
 
         </sect3>
 
@@ -251,27 +336,37 @@ echo $rows[0]['bug_description'];
 
             <title>Cambiando el Modo de extracción</title>
 
-           <para>
+            <para>
                 Por defecto, el objeto de declaración devuelve filas de un
-                conjunto de resultados como array asociativo, mapeando los
+                conjunto de resultados
+                como array asociativo, mapeando los
                 nombres de columnas a los valores de la columna.
                 Se puede especificar un formato diferente para que la clase de
-                declaración devuelva las filas, tal como se puede con la clase
-                Adaptadora. Puede usar él método <methodname>setFetchMode()</methodname>
+                declaración devuelva
+                las filas, tal como se puede con la clase
+                Adaptadora. Puede usar él método
+                <methodname>setFetchMode()</methodname>
                 para establecer el modo de extracción. Especifique el modo de
-                extracción usando las constantes de la clase
+                extracción usando las
+                constantes de la clase
                 Zend_Db: FETCH_ASSOC, FETCH_NUM, FETCH_BOTH,
-                FETCH_COLUMN, and FETCH_OBJ.
-                Vea <xref linkend="zend.db.adapter.select.fetch-mode" />
+                FETCH_COLUMN, and
+                FETCH_OBJ.
+                Vea
+                <xref linkend="zend.db.adapter.select.fetch-mode"/>
                 para más información de estos modos.
-                Llamadas subsiguientes a los métodos de la declaración
-                <methodname>fetch()</methodname> o <methodname>fetchAll()</methodname> usan el modo de
+                Llamadas subsiguientes a los métodos de la
+                declaración
+                <methodname>fetch()</methodname>
+                o
+                <methodname>fetchAll()</methodname>
+                usan el modo de
                 extracción especificado.
-           </para>
+            </para>
 
             <example id="zend.db.statement.fetching.fetch-mode.example">
                 <title>Configurando un modo de extracción</title>
-                 <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $stmt = $db->query('SELECT * FROM bugs');
 
 $stmt->setFetchMode(Zend_Db::FETCH_NUM);
@@ -282,9 +377,11 @@ echo $rows[0][0];
 ]]></programlisting>
             </example>
 
-           <para>
-                Vea también <ulink url="http://www.php.net/PDOStatement-setFetchMode">PDOStatement::setFetchMode()</ulink>.
-           </para>
+            <para>
+                Vea también
+                <ulink url="http://www.php.net/PDOStatement-setFetchMode">PDOStatement::setFetchMode()</ulink>
+                .
+            </para>
 
         </sect3>
 
@@ -292,37 +389,49 @@ echo $rows[0][0];
 
             <title>Extrayendo una Única Columna desde un Conjunto de Resultados</title>
 
-           <para>
+            <para>
                 Para devolver una única columna de la siguiente fila del
-                conjunto de resultados, use <methodname>fetchColumn()</methodname>. El
+                conjunto de resultados, use
+                <methodname>fetchColumn()</methodname>
+                . El
                 parámetro opcional es el índice de la columna (integer), y por
-                defecto es 0. Este método devuelve un valor escalar, o
-                <constant>FALSE</constant> si todas las filas del conjunto de resultados
+                defecto es 0. Este
+                método devuelve un valor escalar, o
+                <constant>FALSE</constant>
+                si todas las filas del conjunto de resultados
                 han sido extraídas.
-           </para>
+            </para>
 
-           <para>
+            <para>
                 Note que este método opera diferente que el método
-                <methodname>fetchCol()</methodname> de la clase Adaptadora.
-                El método <methodname>fetchColumn()</methodname> de una declaración devuelve
+                <methodname>fetchCol()</methodname>
+                de la clase Adaptadora.
+                El método
+                <methodname>fetchColumn()</methodname>
+                de una declaración devuelve
                 un único valor desde una fila.
-                El método <methodname>fetchCol()</methodname> de un adaptador devuelve un
-                array de valores, tomados desde la primera columa de todas las
+                El método
+                <methodname>fetchCol()</methodname>
+                de un adaptador devuelve un
+                array de valores, tomados desde la primera columa de
+                todas las
                 del conjunto de resultados.
-           </para>
+            </para>
 
             <example id="zend.db.statement.fetching.fetchcolumn.example">
                 <title>Usando fetchColumn()</title>
-                 <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $stmt = $db->query('SELECT bug_id, bug_description, bug_status FROM bugs');
 
 $bug_status = $stmt->fetchColumn(2);
 ]]></programlisting>
             </example>
 
-           <para>
-                Vea también <ulink url="http://www.php.net/PDOStatement-fetchColumn">PDOStatement::fetchColumn()</ulink>.
-           </para>
+            <para>
+                Vea también
+                <ulink url="http://www.php.net/PDOStatement-fetchColumn">PDOStatement::fetchColumn()</ulink>
+                .
+            </para>
 
         </sect3>
 
@@ -330,19 +439,22 @@ $bug_status = $stmt->fetchColumn(2);
 
             <title>Extrayendo una Fila como un Objeto</title>
 
-           <para>
+            <para>
                 Para extraer una fila desde un conjunto de resultados
-                estructurado como un Objeto, use el método
-                <methodname>fetchObject()</methodname>.  Este método tiene 2 parámetros
-                opcionales. El primer parámetro es un string con el nombre de
+                estructurado como un Objeto,
+                use el método
+                <methodname>fetchObject()</methodname>
+                . Este método tiene 2 parámetros
+                opcionales. El primer parámetro es un string con el
+                nombre de
                 la clase del objeto que devolver; por defecto será 'stdClass'. El segundo
                 parámetro es un array de valores que será pasado al
                 constructor de la clase.
-           </para>
+            </para>
 
             <example id="zend.db.statement.fetching.fetchobject.example">
                 <title>Usando fetchObject()</title>
-                 <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $stmt = $db->query('SELECT bug_id, bug_description, bug_status FROM bugs');
 
 $obj = $stmt->fetchObject();
@@ -351,59 +463,38 @@ echo $obj->bug_description;
 ]]></programlisting>
             </example>
 
-           <para>
-                Vea también <ulink url="http://www.php.net/PDOStatement-fetchObject">PDOStatement::fetchObject()</ulink>.
-           </para>
+            <para>
+                Vea también
+                <ulink url="http://www.php.net/PDOStatement-fetchObject">PDOStatement::fetchObject()</ulink>
+                .
+            </para>
 
         </sect3>
 
     </sect2>
 
     <!--
-      @todo: binding parameters is not working yet.
-
-    <sect2 id="zend.db.statement.binding-param">
-
-        <title>Binding PHP Variables to Parameters</title>
-
-       <para>
-       </para>
-
-        <example id="zend.db.statement.binding-param.example">
-            <title>Binding parameters from PHP variables</title>
-             <programlisting language="php"><![CDATA[
-<?php
-]]></programlisting>
-        </example>
+        @todo: binding parameters is not working yet. <sect2 id="zend.db.statement.binding-param">
 
-       <para>
-            See also <ulink url="http://www.php.net/PDOStatement-bindParam">PDOStatement::bindParam()</ulink>.
-       </para>
+        <title>Binding PHP Variables to Parameters</title> <para> </para> <example
+        id="zend.db.statement.binding-param.example"> <title>Binding parameters from PHP
+        variables</title> <programlisting language="php"><![CDATA[ <?php ]]></programlisting>
+        </example> <para> See also <ulink
+        url="http://www.php.net/PDOStatement-bindParam">PDOStatement::bindParam()</ulink>. </para>
 
-    </sect2>
+        </sect2>
     -->
 
     <!--
-      @todo: binding columns is not working yet.
-    <sect2 id="zend.db.statement.binding-column">
-
-        <title>Binding PHP Variables to Query Results</title>
+        @todo: binding columns is not working yet. <sect2 id="zend.db.statement.binding-column">
 
-       <para>
-       </para>
+        <title>Binding PHP Variables to Query Results</title> <para> </para> <example
+        id="zend.db.statement.binding-column.example"> <title>Binding results to PHP
+        variables</title> <programlisting language="php"><![CDATA[ <?php ]]></programlisting>
+        </example> <para> See also <ulink
+        url="http://www.php.net/PDOStatement-bindColumn">PDOStatement::bindColumn()</ulink>. </para>
 
-        <example id="zend.db.statement.binding-column.example">
-            <title>Binding results to PHP variables</title>
-             <programlisting language="php"><![CDATA[
-<?php
-]]></programlisting>
-        </example>
-
-       <para>
-            See also <ulink url="http://www.php.net/PDOStatement-bindColumn">PDOStatement::bindColumn()</ulink>.
-       </para>
-
-    </sect2>
+        </sect2>
     -->
 
 </sect1>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 448 - 256
documentation/manual/es/module_specs/Zend_Db_Table-Relationships.xml


+ 344 - 164
documentation/manual/es/module_specs/Zend_Db_Table_Row.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 19484 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 19484 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.db.table.row">
 
     <title>Zend_Db_Table_Row</title>
@@ -9,19 +9,28 @@
 
         <title>Introducción</title>
 
-       <para>
-            <classname>Zend_Db_Table_Row</classname> is a class that contains an
-            individual row of a <classname>Zend_Db_Table</classname> object.
+        <para>
+            <classname>Zend_Db_Table_Row</classname>
+            is a class that contains an
+            individual row of a
+            <classname>Zend_Db_Table</classname>
+            object.
             When you run a query against a Table class, the result is returned
-            in a set of <classname>Zend_Db_Table_Row</classname> objects. You
+            in a set of
+            <classname>Zend_Db_Table_Row</classname>
+            objects. You
             can also use this object to create new rows and add them to the
-            database table.</para>
-
-       <para>
-            <classname>Zend_Db_Table_Row</classname> is an implementation of the
-                <ulink
-                url="http://www.martinfowler.com/eaaCatalog/rowDataGateway.html"
-                >Row Data Gateway</ulink> pattern.</para>
+            database
+            table.
+        </para>
+
+        <para>
+            <classname>Zend_Db_Table_Row</classname>
+            is an implementation of the
+            <ulink url="http://www.martinfowler.com/eaaCatalog/rowDataGateway.html">Row Data
+                Gateway</ulink>
+            pattern.
+        </para>
 
     </sect2>
 
@@ -29,13 +38,22 @@
 
         <title>Fetching a Row</title>
 
-       <para>
-            <classname>Zend_Db_Table_Abstract</classname> provides methods
-                <methodname>find()</methodname> and
-                <methodname>fetchAll()</methodname>, which each return an object
-            of type <classname>Zend_Db_Table_Rowset</classname>, and the method
-                <methodname>fetchRow()</methodname>, which returns an object of
-            type <classname>Zend_Db_Table_Row</classname>.</para>
+        <para>
+            <classname>Zend_Db_Table_Abstract</classname>
+            provides methods
+            <methodname>find()</methodname>
+            and
+            <methodname>fetchAll()</methodname>
+            , which each return an object
+            of type
+            <classname>Zend_Db_Table_Rowset</classname>
+            , and the method
+            <methodname>fetchRow()</methodname>
+            , which returns an object of
+            type
+            <classname>Zend_Db_Table_Row</classname>
+            .
+        </para>
 
         <example id="zend.db.table.row.read.example">
 
@@ -48,9 +66,16 @@ $row = $bugs->fetchRow($bugs->select()->where('bug_id = ?', 1));
 
         </example>
 
-       <para>A <classname>Zend_Db_Table_Rowset</classname> object contains a
-            collection of <classname>Zend_Db_Table_Row</classname> objects. See
-                <xref linkend="zend.db.table.rowset"/>.</para>
+        <para>
+            A
+            <classname>Zend_Db_Table_Rowset</classname>
+            object contains a
+            collection of
+            <classname>Zend_Db_Table_Row</classname>
+            objects. See
+            <xref linkend="zend.db.table.rowset"/>
+            .
+        </para>
 
         <example id="zend.db.table.row.read.example-rowset">
 
@@ -68,10 +93,13 @@ $row = $rowset->current();
 
             <title>Reading column values from a row</title>
 
-           <para>
-                <classname>Zend_Db_Table_Row_Abstract</classname> provides
+            <para>
+                <classname>Zend_Db_Table_Row_Abstract</classname>
+                provides
                 accessor methods so you can reference columns in the row as
-                object properties.</para>
+                object
+                properties.
+            </para>
 
             <example id="zend.db.table.row.read.get.example">
 
@@ -89,15 +117,25 @@ echo $row->bug_description;
 
             <note>
 
-               <para>Earlier versions of
-                        <classname>Zend_Db_Table_Row</classname> mapped these
+                <para>
+                    Earlier versions of
+                    <classname>Zend_Db_Table_Row</classname>
+                    mapped these
                     column accessors to the database column names using a string
-                    transformation called <emphasis>inflection</emphasis>.</para>
-
-               <para>Currently, <classname>Zend_Db_Table_Row</classname> does
+                    transformation called
+                    <emphasis>inflection</emphasis>
+                    .
+                </para>
+
+                <para>
+                    Currently,
+                    <classname>Zend_Db_Table_Row</classname>
+                    does
                     not implement inflection. Accessed property names need to
-                    match the spelling of the column names as they appear in
-                    your database.</para>
+                    match the spelling
+                    of the column names as they appear in
+                    your database.
+                </para>
 
             </note>
 
@@ -107,10 +145,14 @@ echo $row->bug_description;
 
             <title>Retrieving Row Data as an Array</title>
 
-           <para>You can access the row's data as an array using the
-                    <methodname>toArray()</methodname> method of the Row object.
-                This returns an associative array of the column names to the
-                column values.</para>
+            <para>
+                You can access the row's data as an array using the
+                <methodname>toArray()</methodname>
+                method of the Row object.
+                This returns an associative array of the column names to
+                the
+                column values.
+            </para>
 
             <example id="zend.db.table.row.read.to-array.example">
 
@@ -132,10 +174,15 @@ foreach ($rowArray as $column => $value) {
 
             </example>
 
-           <para>The array returned from <methodname>toArray()</methodname> is
+            <para>
+                The array returned from
+                <methodname>toArray()</methodname>
+                is
                 not updateable. You can modify values in the array as you can
-                with any array, but you cannot save changes to this array to the
-                database directly.</para>
+                with any array, but
+                you cannot save changes to this array to the
+                database directly.
+            </para>
 
         </sect3>
 
@@ -143,10 +190,16 @@ foreach ($rowArray as $column => $value) {
 
             <title>Fetching data from related tables</title>
 
-           <para>The <classname>Zend_Db_Table_Row_Abstract</classname> class
+            <para>
+                The
+                <classname>Zend_Db_Table_Row_Abstract</classname>
+                class
                 provides methods for fetching rows and rowsets from related
-                tables. See <xref linkend="zend.db.table.relationships"/> for
-                more information on table relationships.</para>
+                tables. See
+                <xref linkend="zend.db.table.relationships"/>
+                for
+                more information on table relationships.
+            </para>
 
         </sect3>
 
@@ -160,14 +213,20 @@ foreach ($rowArray as $column => $value) {
 
             <title>Changing column values in a row</title>
 
-           <para>You can set individual column values using column accessors,
-                similar to how the columns are read as object properties in the
+            <para>You can set individual column values using column accessors,
+                similar to how the
+                columns are read as object properties in the
                 example above.</para>
 
-           <para>Using a column accessor to set a value changes the column
-                value of the row object in your application, but it does not
-                commit the change to the database yet. You can do that with the
-                    <methodname>save()</methodname> method.</para>
+            <para>
+                Using a column accessor to set a value changes the column
+                value of the row object in
+                your application, but it does not
+                commit the change to the database yet. You can do
+                that with the
+                <methodname>save()</methodname>
+                method.
+            </para>
 
             <example id="zend.db.table.row.write.set.example">
 
@@ -192,12 +251,17 @@ $row->save();
 
             <title>Inserting a new row</title>
 
-           <para>You can create a new row for a given table with the
-                    <methodname>createRow()</methodname> method of the table
+            <para>
+                You can create a new row for a given table with the
+                <methodname>createRow()</methodname>
+                method of the table
                 class. You can access fields of this row with the
-                object-oriented interface, but the row is not stored in the
-                database until you call the <methodname>save()</methodname>
-                method.</para>
+                object-oriented
+                interface, but the row is not stored in the
+                database until you call the
+                <methodname>save()</methodname>
+                method.
+            </para>
 
             <example id="zend.db.table.row.write.insert.example">
 
@@ -217,8 +281,9 @@ $newRow->save();
 
             </example>
 
-           <para>The optional argument to the createRow() method is an
-                associative array, with which you can populate fields of the new
+            <para>The optional argument to the createRow() method is an
+                associative array, with which
+                you can populate fields of the new
                 row.</para>
 
             <example id="zend.db.table.row.write.insert.example2">
@@ -242,12 +307,21 @@ $newRow->save();
 
             <note>
 
-               <para>The <methodname>createRow()</methodname> method was
-                    called <methodname>fetchNew()</methodname> in earlier
-                    releases of <classname>Zend_Db_Table</classname>. You are
+                <para>
+                    The
+                    <methodname>createRow()</methodname>
+                    method was
+                    called
+                    <methodname>fetchNew()</methodname>
+                    in earlier
+                    releases of
+                    <classname>Zend_Db_Table</classname>
+                    . You are
                     encouraged to use the new method name, even though the old
-                    name continues to work for the sake of backward
-                    compatibility.</para>
+                    name
+                    continues to work for the sake of backward
+                    compatibility.
+                </para>
 
             </note>
 
@@ -257,13 +331,17 @@ $newRow->save();
 
             <title>Changing values in multiple columns</title>
 
-           <para>
-                <classname>Zend_Db_Table_Row_Abstract</classname> provides the
-                    <methodname>setFromArray()</methodname> method to enable you
+            <para>
+                <classname>Zend_Db_Table_Row_Abstract</classname>
+                provides the
+                <methodname>setFromArray()</methodname>
+                method to enable you
                 to set several columns in a single row at once, specified in an
                 associative array that maps the column names to values. You may
-                find this method convenient for setting values both for new rows
-                and for rows you need to update.</para>
+                find this method
+                convenient for setting values both for new rows
+                and for rows you need to update.
+            </para>
 
             <example id="zend.db.table.row.write.set-from-array.example">
 
@@ -295,9 +373,14 @@ $newRow->save();
 
             <title>Deleting a row</title>
 
-           <para>You can call the <methodname>delete()</methodname> method on
+            <para>
+                You can call the
+                <methodname>delete()</methodname>
+                method on
                 a Row object. This deletes rows in the database matching the
-                primary key in the Row object.</para>
+                primary key in
+                the Row object.
+            </para>
 
             <example id="zend.db.table.row.write.delete.example">
 
@@ -313,9 +396,13 @@ $row->delete();
 
             </example>
 
-           <para>You do not have to call <methodname>save()</methodname> to
+            <para>
+                You do not have to call
+                <methodname>save()</methodname>
+                to
                 apply the delete; it is executed against the database
-                immediately.</para>
+                immediately.
+            </para>
 
         </sect3>
 
@@ -325,21 +412,32 @@ $row->delete();
 
         <title>Serializing and unserializing rows</title>
 
-       <para>It is often convenient to save the contents of a database row to
-            be used later. <emphasis>Serialization</emphasis> is the name for
+        <para>
+            It is often convenient to save the contents of a database row to
+            be used later.
+            <emphasis>Serialization</emphasis>
+            is the name for
             the operation that converts an object into a form that is easy to
-            save in offline storage (for example, a file). Objects of type
-                <classname>Zend_Db_Table_Row_Abstract</classname> are
-            serializable.</para>
+            save in
+            offline storage (for example, a file). Objects of type
+            <classname>Zend_Db_Table_Row_Abstract</classname>
+            are
+            serializable.
+        </para>
 
         <sect3 id="zend.db.table.row.serialize.serializing">
 
             <title>Serializing a Row</title>
 
-           <para>Simply use <acronym>PHP</acronym>'s
-                    <methodname>serialize()</methodname> function to create a
+            <para>
+                Simply use
+                <acronym>PHP</acronym>
+                's
+                <methodname>serialize()</methodname>
+                function to create a
                 string containing a byte-stream representation of the Row object
-                argument.</para>
+                argument.
+            </para>
 
             <example id="zend.db.table.row.serialize.serializing.example">
 
@@ -363,15 +461,25 @@ $serializedRow = serialize($row);
 
             <title>Unserializing Row Data</title>
 
-           <para>Use PHP's <methodname>unserialize()</methodname> function to
+            <para>
+                Use PHP's
+                <methodname>unserialize()</methodname>
+                function to
                 restore a string containing a byte-stream representation of an
-                object. The function returns the original object.</para>
-
-           <para>Note that the Row object returned is in a
-                    <emphasis>disconnected</emphasis> state. You can read the
-                Row object and its properties, but you cannot change values in
+                object. The
+                function returns the original object.
+            </para>
+
+            <para>
+                Note that the Row object returned is in a
+                <emphasis>disconnected</emphasis>
+                state. You can read the
+                Row object and its properties, but you cannot change values
+                in
                 the Row or execute other methods that require a database
-                connection (for example, queries against related tables).</para>
+                connection (for example,
+                queries against related tables).
+            </para>
 
             <example id="zend.db.table.row.serialize.unserializing.example">
 
@@ -390,15 +498,20 @@ echo $rowClone->bug_description;
 
                 <title>Why do Rows unserialize in a disconnected state?</title>
 
-               <para>A serialized object is a string that is readable to
-                    anyone who possesses it. It could be a security risk to
-                    store parameters such as database account and password in
+                <para>A serialized object is a string that is readable to
+                    anyone who possesses it. It
+                    could be a security risk to
+                    store parameters such as database account and
+                    password in
                     plain, unencrypted text in the serialized string. You would
-                    not want to store such data to a text file that is not
-                    protected, or send it in an email or other medium that is
+                    not want
+                    to store such data to a text file that is not
+                    protected, or send it in an email
+                    or other medium that is
                     easily read by potential attackers. The reader of the
                     serialized object should not be able to use it to gain
-                    access to your database without knowing valid credentials.</para>
+                    access to your database
+                    without knowing valid credentials.</para>
 
             </note>
 
@@ -408,14 +521,21 @@ echo $rowClone->bug_description;
 
             <title>Reactivating a Row as Live Data</title>
 
-           <para>You can reactivate a disconnected Row, using the
-                    <methodname>setTable()</methodname> method. The argument to
+            <para>
+                You can reactivate a disconnected Row, using the
+                <methodname>setTable()</methodname>
+                method. The argument to
                 this method is a valid object of type
-                    <classname>Zend_Db_Table_Abstract</classname>, which you
+                <classname>Zend_Db_Table_Abstract</classname>
+                , which you
                 create. Creating a Table object requires a live connection to
-                the database, so by reassociating the Table with the Row, the
-                Row gains access to the database. Subsequently, you can change
-                values in the Row object and save the changes to the database.</para>
+                the
+                database, so by reassociating the Table with the Row, the
+                Row gains access to the
+                database. Subsequently, you can change
+                values in the Row object and save the changes
+                to the database.
+            </para>
 
             <example id="zend.db.table.row.serialize.set-table.example">
 
@@ -445,16 +565,23 @@ $rowClone->save();
 
         <title>Extending the Row class</title>
 
-       <para>
-            <classname>Zend_Db_Table_Row</classname> is the default concrete
+        <para>
+            <classname>Zend_Db_Table_Row</classname>
+            is the default concrete
             class that extends
-            <classname>Zend_Db_Table_Row_Abstract</classname>. You can define
+            <classname>Zend_Db_Table_Row_Abstract</classname>
+            . You can define
             your own concrete class for instances of Row by extending
-                <classname>Zend_Db_Table_Row_Abstract</classname>. To use your
+            <classname>Zend_Db_Table_Row_Abstract</classname>
+            . To use your
             new Row class to store results of Table queries, specify the custom
-            Row class by name either in the <varname>$_rowClass</varname>
+            Row
+            class by name either in the
+            <varname>$_rowClass</varname>
             protected member of a Table class, or in the array argument of the
-            constructor of a Table object.</para>
+            constructor of a Table
+            object.
+        </para>
 
         <example id="zend.db.table.row.extending.example">
 
@@ -485,13 +612,19 @@ $bugs = new Bugs(array('rowClass' => 'MyRow'));
 
             <title>Row initialization</title>
 
-           <para>If application-specific logic needs to be initialized when a
-                row is constructed, you can select to move your tasks to the
-                    <methodname>init()</methodname> method, which is called
-                after all row metadata has been processed. This is recommended
-                over the <methodname>__construct</methodname> method if you do
-                not need to alter the metadata in any programmatic way. <example
-                    id="zend.db.table.row.init.usage.example">
+            <para>
+                If application-specific logic needs to be initialized when a
+                row is constructed, you
+                can select to move your tasks to the
+                <methodname>init()</methodname>
+                method, which is called
+                after all row metadata has been processed. This is
+                recommended
+                over the
+                <methodname>__construct</methodname>
+                method if you do
+                not need to alter the metadata in any programmatic way.
+                <example id="zend.db.table.row.init.usage.example">
 
                     <title>Example usage of init() method</title>
 
@@ -508,7 +641,7 @@ class MyApplicationRow extends Zend_Db_Table_Row_Abstract
 ]]></programlisting>
 
                 </example>
-           </para>
+            </para>
 
         </sect3>
 
@@ -517,42 +650,67 @@ class MyApplicationRow extends Zend_Db_Table_Row_Abstract
             <title>Defining Custom Logic for Insert, Update, and Delete in
                 Zend_Db_Table_Row</title>
 
-           <para>The Row class calls protected methods
-                    <methodname>_insert()</methodname>,
-                    <methodname>_update()</methodname>, and
-                    <methodname>_delete()</methodname> before performing the
-                corresponding operations <methodname>INSERT</methodname>,
-                    <methodname>UPDATE</methodname>, and
-                    <methodname>DELETE</methodname>. You can add logic to these
-                methods in your custom Row subclass.</para>
-
-           <para>If you need to do custom logic in a specific table, and the
-                custom logic must occur for every operation on that table, it
-                may make more sense to implement your custom code in the
-                    <methodname>insert()</methodname>,
-                    <methodname>update()</methodname> and
-                    <methodname>delete()</methodname> methods of your Table
-                class. However, sometimes it may be necessary to do custom logic
-                in the Row class.</para>
-
-           <para>Below are some example cases where it might make sense to
-                implement custom logic in a Row class instead of in the Table
+            <para>
+                The Row class calls protected methods
+                <methodname>_insert()</methodname>
+                ,
+                <methodname>_update()</methodname>
+                , and
+                <methodname>_delete()</methodname>
+                before performing the
+                corresponding operations
+                <methodname>INSERT</methodname>
+                ,
+                <methodname>UPDATE</methodname>
+                , and
+                <methodname>DELETE</methodname>
+                . You can add logic to these
+                methods in your custom Row subclass.
+            </para>
+
+            <para>
+                If you need to do custom logic in a specific table, and the
+                custom logic must occur
+                for every operation on that table, it
+                may make more sense to implement your custom
+                code in the
+                <methodname>insert()</methodname>
+                ,
+                <methodname>update()</methodname>
+                and
+                <methodname>delete()</methodname>
+                methods of your Table
+                class. However, sometimes it may be necessary to do custom
+                logic
+                in the Row class.
+            </para>
+
+            <para>Below are some example cases where it might make sense to
+                implement custom logic in
+                a Row class instead of in the Table
                 class:</para>
 
             <example id="zend.db.table.row.extending.overriding-example1">
 
                 <title>Example of custom logic in a Row class</title>
 
-               <para>The custom logic may not apply in all cases of operations
-                    on the respective Table. You can provide custom logic on
-                    demand by implementing it in a Row class and creating an
+                <para>The custom logic may not apply in all cases of operations
+                    on the respective
+                    Table. You can provide custom logic on
+                    demand by implementing it in a Row class
+                    and creating an
                     instance of the Table class with that custom Row class
-                    specified. Otherwise, the Table uses the default Row class.</para>
-
-               <para>You need data operations on this table to record the
-                    operation to a <classname>Zend_Log</classname> object, but
+                    specified.
+                    Otherwise, the Table uses the default Row class.</para>
+
+                <para>
+                    You need data operations on this table to record the
+                    operation to a
+                    <classname>Zend_Log</classname>
+                    object, but
                     only if the application configuration has enabled this
-                    behavior.</para>
+                    behavior.
+                </para>
 
                 <programlisting language="php"><![CDATA[
 class MyLoggingRow extends Zend_Db_Table_Row_Abstract
@@ -583,13 +741,16 @@ if ($loggingEnabled) {
                 <title>Example of a Row class that logs insert data for multiple
                     tables</title>
 
-               <para>The custom logic may be common to multiple tables.
-                    Instead of implementing the same custom logic in every one
-                    of your Table classes, you can implement the code for such
+                <para>The custom logic may be common to multiple tables.
+                    Instead of implementing the
+                    same custom logic in every one
+                    of your Table classes, you can implement the code
+                    for such
                     actions in the definition of a Row class, and use this Row
-                    in each of your Table classes.</para>
+                    in each of
+                    your Table classes.</para>
 
-               <para>In this example, the logging code is identical in all
+                <para>In this example, the logging code is identical in all
                     table classes.</para>
 
                 <programlisting language="php"><![CDATA[
@@ -626,31 +787,49 @@ class Products extends Zend_Db_Table_Abstract
 
             <title>Define Inflection in Zend_Db_Table_Row</title>
 
-           <para>Some people prefer that the table class name match a table
-                name in the <acronym>RDBMS</acronym> by using a string
-                transformation called <emphasis>inflection</emphasis>.</para>
-
-           <para>
-                <classname>Zend_Db</classname> classes do not implement
-                inflection by default. See <xref
-                    linkend="zend.db.table.extending.inflection"/> for an
-                explanation of this policy.</para>
-
-           <para>If you prefer to use inflection, then you must implement the
-                transformation yourself, by overriding the
-                    <methodname>_transformColumn()</methodname> method in a
+            <para>
+                Some people prefer that the table class name match a table
+                name in the
+                <acronym>RDBMS</acronym>
+                by using a string
+                transformation called
+                <emphasis>inflection</emphasis>
+                .
+            </para>
+
+            <para>
+                <classname>Zend_Db</classname>
+                classes do not implement
+                inflection by default. See
+                <xref linkend="zend.db.table.extending.inflection"/>
+                for an
+                explanation of this policy.
+            </para>
+
+            <para>
+                If you prefer to use inflection, then you must implement the
+                transformation yourself,
+                by overriding the
+                <methodname>_transformColumn()</methodname>
+                method in a
                 custom Row class, and using that custom Row class when you
-                perform queries against your Table class.</para>
+                perform queries
+                against your Table class.
+            </para>
 
             <example id="zend.db.table.row.extending.inflection.example">
 
                 <title>Example of defining an inflection transformation</title>
 
-               <para>This allows you to use an inflected version of the column
-                    name in the accessors. The Row class uses the
-                        <methodname>_transformColumn()</methodname> method to
+                <para>
+                    This allows you to use an inflected version of the column
+                    name in the accessors.
+                    The Row class uses the
+                    <methodname>_transformColumn()</methodname>
+                    method to
                     change the name you use to the native column name in the
-                    database table.</para>
+                    database table.
+                </para>
 
                 <programlisting language="php"><![CDATA[
 class MyInflectedRow extends Zend_Db_Table_Row_Abstract
@@ -679,8 +858,9 @@ $row->bugDescription = 'New description';
 
             </example>
 
-           <para>You are responsible for writing the functions to perform
-                inflection transformation. Zend Framework does not provide such
+            <para>You are responsible for writing the functions to perform
+                inflection transformation.
+                Zend Framework does not provide such
                 a function.</para>
 
         </sect3>

+ 211 - 116
documentation/manual/es/module_specs/Zend_Db_Table_Rowset.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 18822 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 18822 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.db.table.rowset">
 
     <title>Zend_Db_Table_Rowset</title>
@@ -9,12 +9,20 @@
 
         <title>Introduction</title>
 
-       <para>
-            When you run a query against a Table class using the <methodname>find()</methodname> or <methodname>fetchAll()</methodname>
-            methods, the result is returned in an object of type <classname>Zend_Db_Table_Rowset_Abstract</classname>. A Rowset
-            contains a collection of objects descending from <classname>Zend_Db_Table_Row_Abstract</classname>. You can iterate
-            through the Rowset and access individual Row objects, reading or modifying data in the Rows.
-       </para>
+        <para>
+            When you run a query against a Table class using the
+            <methodname>find()</methodname>
+            or
+            <methodname>fetchAll()</methodname>
+            methods, the result is returned in an object of type
+            <classname>Zend_Db_Table_Rowset_Abstract</classname>
+            . A Rowset
+            contains a collection of objects descending from
+            <classname>Zend_Db_Table_Row_Abstract</classname>
+            . You can iterate
+            through the Rowset and access individual Row objects, reading or
+            modifying data in the Rows.
+        </para>
 
     </sect2>
 
@@ -22,16 +30,23 @@
 
         <title>Fetching a Rowset</title>
 
-       <para>
-            <classname>Zend_Db_Table_Abstract</classname> provides methods <methodname>find()</methodname> and <methodname>fetchAll()</methodname>, each
-            of which returns an object of type <classname>Zend_Db_Table_Rowset_Abstract</classname>.
-       </para>
+        <para>
+            <classname>Zend_Db_Table_Abstract</classname>
+            provides methods
+            <methodname>find()</methodname>
+            and
+            <methodname>fetchAll()</methodname>
+            , each
+            of which returns an object of type
+            <classname>Zend_Db_Table_Rowset_Abstract</classname>
+            .
+        </para>
 
         <example id="zend.db.table.rowset.fetch.example">
 
             <title>Example of fetching a rowset</title>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $bugs   = new Bugs();
 $rowset = $bugs->fetchAll("bug_status = 'NEW'");
 ]]></programlisting>
@@ -44,23 +59,31 @@ $rowset = $bugs->fetchAll("bug_status = 'NEW'");
 
         <title>Retrieving Rows from a Rowset</title>
 
-       <para>
-            The Rowset itself is usually less interesting than the Rows that it contains. This section illustrates how
+        <para>
+            The Rowset itself is usually less interesting than the Rows that it contains. This
+            section illustrates how
             to get the Rows that comprise the Rowset.
        </para>
 
-       <para>
-            A legitimate query returns zero rows when no rows in the database match the query conditions. Therefore, a
-            Rowset object might contain zero Row objects. Since <classname>Zend_Db_Table_Rowset_Abstract</classname> implements
-            the <methodname>Countable</methodname> interface, you can use <methodname>count()</methodname> to determine the number of Rows in
+        <para>
+            A legitimate query returns zero rows when no rows in the database match the query
+            conditions. Therefore, a
+            Rowset object might contain zero Row objects. Since
+            <classname>Zend_Db_Table_Rowset_Abstract</classname>
+            implements
+            the
+            <methodname>Countable</methodname>
+            interface, you can use
+            <methodname>count()</methodname>
+            to determine the number of Rows in
             the Rowset.
-       </para>
+        </para>
 
         <example id="zend.db.table.rowset.rows.counting.example">
 
             <title>Counting the Rows in a Rowset</title>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $rowset   = $bugs->fetchAll("bug_status = 'FIXED'");
 
 $rowCount = count($rowset);
@@ -78,12 +101,14 @@ if ($rowCount > 0) {
 
             <title>Reading a Single Row from a Rowset</title>
 
-           <para>
-                The simplest way to access a Row from a Rowset is to use the <methodname>current()</methodname> method. This is
+            <para>
+                The simplest way to access a Row from a Rowset is to use the
+                <methodname>current()</methodname>
+                method. This is
                 particularly appropriate when the Rowset contains exactly one Row.
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $bugs   = new Bugs();
 $rowset = $bugs->fetchAll("bug_id = 1");
 $row    = $rowset->current();
@@ -91,23 +116,34 @@ $row    = $rowset->current();
 
         </example>
 
-       <para>
-            If the Rowset contains zero rows, <methodname>current()</methodname> returns
-            PHP's <constant>NULL</constant> value.
-       </para>
+        <para>
+            If the Rowset contains zero rows,
+            <methodname>current()</methodname>
+            returns
+            PHP's
+            <constant>NULL</constant>
+            value.
+        </para>
 
         <example id="zend.db.table.rowset.rows.iterate.example">
 
             <title>Iterating through a Rowset</title>
 
-           <para>
-                Objects descending from <classname>Zend_Db_Table_Rowset_Abstract</classname> implement the <methodname>SeekableIterator</methodname>
-                interface, which means you can loop through them using the <methodname>foreach</methodname> construct. Each value
-                you retrieve this way is a <classname>Zend_Db_Table_Row_Abstract</classname> object that corresponds to one
+            <para>
+                Objects descending from
+                <classname>Zend_Db_Table_Rowset_Abstract</classname>
+                implement the
+                <methodname>SeekableIterator</methodname>
+                interface, which means you can loop through them using the
+                <methodname>foreach</methodname>
+                construct. Each value
+                you retrieve this way is a
+                <classname>Zend_Db_Table_Row_Abstract</classname>
+                object that corresponds to one
                 record from the table.
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $bugs = new Bugs();
 
 // fetch all records from the table
@@ -131,19 +167,27 @@ foreach ($rowset as $row) {
 
         </example>
 
-         <example id="zend.db.table.rowset.rows.seek.example">
+        <example id="zend.db.table.rowset.rows.seek.example">
 
             <title>Seeking to a known position into a Rowset</title>
 
-           <para>
-                <methodname>SeekableIterator</methodname> allows you to seek to a position that you would like the iterator to jump to.
-                Simply use the <methodname>seek()</methodname> method for that. Pass it an integer representing the number of the Row
-                you would like your Rowset to point to next, don't forget that it starts with index 0. If the index is wrong,
-                ie doesn't exist, an exception will be thrown. You should use <methodname>count()</methodname> to check the number of
+            <para>
+                <methodname>SeekableIterator</methodname>
+                allows you to seek to a position that you would like the iterator to jump to.
+                Simply
+                use the
+                <methodname>seek()</methodname>
+                method for that. Pass it an integer representing the number of the Row
+                you would like
+                your Rowset to point to next, don't forget that it starts with index 0. If the index
+                is wrong,
+                ie doesn't exist, an exception will be thrown. You should use
+                <methodname>count()</methodname>
+                to check the number of
                 results before seeking to a position.
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $bugs = new Bugs();
 
 // fetch all records from the table
@@ -162,15 +206,21 @@ $row9->save();
 
         </example>
 
-           <para>
-                <methodname>getRow()</methodname> allows you to get a specific row in the Rowset, knowing its position; don't forget
-                however that positions start with index zero. The first parameter for <methodname>getRow()</methodname> is an integer
-                for the position asked. The second optional parameter is a boolean; it tells the Rowset iterator if it must
-                seek to that position in the same time, or not (default is false). This method returns a <classname>Zend_Db_Table_Row</classname>
-                object by default. If the position requested does not exist, an exception will be thrown. Here is an example :
-           </para>
-
-             <programlisting language="php"><![CDATA[
+        <para>
+            <methodname>getRow()</methodname>
+            allows you to get a specific row in the Rowset, knowing its position; don't forget
+            however that positions start with index zero. The first parameter for
+            <methodname>getRow()</methodname>
+            is an integer
+            for the position asked. The second optional parameter is a boolean; it tells the Rowset iterator if
+            it must
+            seek to that position in the same time, or not (default is false). This method returns a
+            <classname>Zend_Db_Table_Row</classname>
+            object by default. If the position requested does not exist, an exception will be
+            thrown. Here is an example :
+        </para>
+
+        <programlisting language="php"><![CDATA[
 $bugs = new Bugs();
 
 // fetch all records from the table
@@ -184,10 +234,12 @@ $row9->assigned_to = 'mmouse';
 $row9->save();
 ]]></programlisting>
 
-       <para>
-            After you have access to an individual Row object, you can manipulate the Row using methods described in
-            <xref linkend="zend.db.table.row" />.
-       </para>
+        <para>
+            After you have access to an individual Row object, you can manipulate the Row using
+            methods described in
+            <xref linkend="zend.db.table.row"/>
+            .
+        </para>
 
     </sect2>
 
@@ -195,17 +247,21 @@ $row9->save();
 
         <title>Retrieving a Rowset as an Array</title>
 
-       <para>
-            You can access all the data in the Rowset as an array using the <methodname>toArray()</methodname> method of the Rowset
-            object. This returns an array containing one entry per Row. Each entry is an associative array having keys
-            that correspond to column names and elements that correspond to the respective column values.
-       </para>
+        <para>
+            You can access all the data in the Rowset as an array using the
+            <methodname>toArray()</methodname>
+            method of the Rowset
+            object. This returns an array containing one entry per Row. Each
+            entry is an associative array having keys
+            that correspond to column names and elements
+            that correspond to the respective column values.
+        </para>
 
         <example id="zend.db.table.rowset.to-array.example">
 
             <title>Using toArray()</title>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $bugs   = new Bugs();
 $rowset = $bugs->fetchAll();
 
@@ -223,10 +279,13 @@ foreach ($rowsetArray as $rowArray) {
 ]]></programlisting>
         </example>
 
-       <para>
-            The array returned from <methodname>toArray()</methodname> is not updateable. That is, you can modify values in the
-            array as you can with any array, but changes to the array data are not propagated to the database.
-       </para>
+        <para>
+            The array returned from
+            <methodname>toArray()</methodname>
+            is not updateable. That is, you can modify values in the
+            array as you can with any array,
+            but changes to the array data are not propagated to the database.
+        </para>
 
     </sect2>
 
@@ -234,21 +293,27 @@ foreach ($rowsetArray as $rowArray) {
 
         <title>Serializing and Unserializing a Rowset</title>
 
-       <para>
-            Objects of type <classname>Zend_Db_Table_Rowset_Abstract</classname> are serializable. In a similar fashion to
-            serializing an individual Row object, you can serialize a Rowset and unserialize it later.
-       </para>
+        <para>
+            Objects of type
+            <classname>Zend_Db_Table_Rowset_Abstract</classname>
+            are serializable. In a similar fashion to
+            serializing an individual Row object, you can
+            serialize a Rowset and unserialize it later.
+        </para>
 
         <example id="zend.db.table.rowset.serialize.example.serialize">
 
             <title>Serializing a Rowset</title>
 
-           <para>
-                Simply use PHP's <methodname>serialize()</methodname> function to create a string containing a byte-stream
-                representation of the Rowset object argument.
-           </para>
+            <para>
+                Simply use PHP's
+                <methodname>serialize()</methodname>
+                function to create a string containing a byte-stream
+                representation of the Rowset
+                object argument.
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $bugs   = new Bugs();
 $rowset = $bugs->fetchAll();
 
@@ -264,19 +329,26 @@ $serializedRowset = serialize($rowset);
 
             <title>Unserializing a Serialized Rowset</title>
 
-           <para>
-                Use PHP's <methodname>unserialize()</methodname> function to restore a string containing a byte-stream
-                representation of an object. The function returns the original object.
-           </para>
-
-           <para>
-                Note that the Rowset object returned is in a <emphasis>disconnected</emphasis> state. You can iterate
-                through the Rowset and read the Row objects and their properties, but you cannot change values in the
-                Rows or execute other methods that require a database connection (for example, queries against related
+            <para>
+                Use PHP's
+                <methodname>unserialize()</methodname>
+                function to restore a string containing a byte-stream
+                representation of an object.
+                The function returns the original object.
+            </para>
+
+            <para>
+                Note that the Rowset object returned is in a
+                <emphasis>disconnected</emphasis>
+                state. You can iterate
+                through the Rowset and read the Row objects and their
+                properties, but you cannot change values in the
+                Rows or execute other methods that
+                require a database connection (for example, queries against related
                 tables).
-           </para>
+            </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $rowsetDisconnected = unserialize($serializedRowset);
 
 // Now you can use object methods and properties, but read-only
@@ -288,28 +360,41 @@ echo $row->bug_description;
 
         <note>
             <title>Why do Rowsets unserialize in a disconnected state?</title>
-           <para>
-                A serialized object is a string that is readable to anyone who possesses it. It could be a security
-                risk to store parameters such as database account and password in plain, unencrypted text in the
-                serialized string. You would not want to store such data to a text file that is not protected, or send
-                it in an email or other medium that is easily read by potential attackers. The reader of the serialized
-                object should not be able to use it to gain access to your database without knowing valid credentials.
+            <para>
+                A serialized object is a string that is readable to anyone who possesses it. It
+                could be a security
+                risk to store parameters such as database account and password in
+                plain, unencrypted text in the
+                serialized string. You would not want to store such
+                data to a text file that is not protected, or send
+                it in an email or other medium
+                that is easily read by potential attackers. The reader of the serialized
+                object
+                should not be able to use it to gain access to your database without knowing valid
+                credentials.
            </para>
         </note>
 
-       <para>
-            You can reactivate a disconnected Rowset using the <methodname>setTable()</methodname> method. The argument to this
-            method is a valid object of type <classname>Zend_Db_Table_Abstract</classname>, which you create. Creating a Table
-            object requires a live connection to the database, so by reassociating the Table with the Rowset, the
-            Rowset gains access to the database. Subsequently, you can change values in the Row objects contained in
-            the Rowset and save the changes to the database.
-       </para>
+        <para>
+            You can reactivate a disconnected Rowset using the
+            <methodname>setTable()</methodname>
+            method. The argument to this
+            method is a valid object of type
+            <classname>Zend_Db_Table_Abstract</classname>
+            , which you create. Creating a Table
+            object requires a live connection to the database,
+            so by reassociating the Table with the Rowset, the
+            Rowset gains access to the database.
+            Subsequently, you can change values in the Row objects contained in
+            the Rowset and save
+            the changes to the database.
+        </para>
 
         <example id="zend.db.table.rowset.serialize.example.set-table">
 
             <title>Reactivating a Rowset as Live Data</title>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 $rowset = unserialize($serializedRowset);
 
 $bugs = new Bugs();
@@ -327,10 +412,12 @@ $row->save();
 
         </example>
 
-       <para>
-            Reactivating a Rowset with <methodname>setTable()</methodname> also reactivates all the Row objects contained in that
+        <para>
+            Reactivating a Rowset with
+            <methodname>setTable()</methodname>
+            also reactivates all the Row objects contained in that
             Rowset.
-       </para>
+        </para>
 
     </sect2>
 
@@ -338,17 +425,21 @@ $row->save();
 
         <title>Extending the Rowset class</title>
 
-       <para>
+        <para>
             You can use an alternative concrete class for instances of Rowsets
-            by extending <classname>Zend_Db_Table_Rowset_Abstract</classname>. Specify the custom
-            Rowset class by name either in the <methodname>$_rowsetClass</methodname>
+            by extending
+            <classname>Zend_Db_Table_Rowset_Abstract</classname>
+            . Specify the custom
+            Rowset class by name either in the
+            <methodname>$_rowsetClass</methodname>
             protected member of a Table class, or in the array argument of the
-            constructor of a Table object.
-       </para>
+            constructor of a Table
+            object.
+        </para>
 
         <example id="zend.db.table.rowset.extending.example">
             <title>Specifying a custom Rowset class</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 class MyRowset extends Zend_Db_Table_Rowset_Abstract
 {
     // ...customizations
@@ -368,17 +459,21 @@ $bugs = new Bugs(array('rowsetClass' => 'MyRowset'));
 ]]></programlisting>
         </example>
 
-       <para>
-            Typically, the standard <classname>Zend_Db_Rowset</classname> concrete class is
+        <para>
+            Typically, the standard
+            <classname>Zend_Db_Rowset</classname>
+            concrete class is
             sufficient for most usage. However, you might find it useful
-            to add new logic to a Rowset, specific to a given Table.
-            For example, a new method could calculate an aggregate
+            to add new
+            logic to a Rowset, specific to a given Table.
+            For example, a new method could calculate
+            an aggregate
             over all the Rows in the Rowset.
-       </para>
+        </para>
 
         <example id="zend.db.table.rowset.extending.example-aggregate">
             <title>Example of Rowset class with a new method</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 class MyBugsRowset extends Zend_Db_Table_Rowset_Abstract
 {
     /**
@@ -409,6 +504,6 @@ class Bugs extends Zend_Db_Table_Abstract
     </sect2>
 
 </sect1>
-<!--
+    <!--
 vim:se ts=4 sw=4 et:
 -->

+ 80 - 42
documentation/manual/es/module_specs/Zend_Debug.xml

@@ -1,71 +1,109 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 18834 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 18834 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.debug.dumping">
 
     <title>Mostrar información de variables(Dumping Variables)</title>
 
-   <para>
-        El método estático <methodname>Zend_Debug::dump()</methodname> imprime o devuelve
+    <para>
+        El método estático
+        <methodname>Zend_Debug::dump()</methodname>
+        imprime o devuelve
         información sobre una expresión. Esta sencilla técnica de depuración es
         común, porque es fácil de utilizar en caliente y no requiere
-        inicialización, herramientas especiales, o la depuración del entorno.
-   </para>
+        inicialización, herramientas
+        especiales, o la depuración del entorno.
+    </para>
 
     <example id="zend.debug.dumping.example">
         <title>Ejemplo del método dump()</title>
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 Zend_Debug::dump($var, $label=null, $echo=true);
 ]]></programlisting>
     </example>
 
-   <para>
-        El argumento <varname>$var</varname> especifica la expresión o variable sobre
-        la cual el método <methodname>Zend_Debug::dump()</methodname> generará información.
-   </para>
+    <para>
+        El argumento
+        <varname>$var</varname>
+        especifica la expresión o variable sobre
+        la cual el método
+        <methodname>Zend_Debug::dump()</methodname>
+        generará información.
+    </para>
 
-        <para>
-        The <varname>$label</varname> argument is a string to be prepended to the
-        output of <methodname>Zend_Debug::dump()</methodname>. It may be useful, for
-         example, to use labels if you are dumping information about multiple
-         variables on a given screen.
+    <para>
+        The
+        <varname>$label</varname>
+        argument is a string to be prepended to the
+        output of
+        <methodname>Zend_Debug::dump()</methodname>
+        . It may be useful, for
+        example, to use labels if you are dumping information about multiple
+        variables on a given screen.
     </para>
 
-   <para>
-        El argumento boleano <varname>$echo</varname> especifica si la salida de
-        <methodname>Zend_Debug::dump()</methodname> es o no mostrada. Si es
-        <constant>TRUE</constant>, la salida es mostrada. A pesar del valor del
-        argumento <varname>$echo</varname>, el retorno de este método contiene la
+    <para>
+        El argumento boleano
+        <varname>$echo</varname>
+        especifica si la salida de
+        <methodname>Zend_Debug::dump()</methodname>
+        es o no mostrada. Si es
+        <constant>TRUE</constant>
+        , la salida es mostrada. A pesar del valor del
+        argumento
+        <varname>$echo</varname>
+        , el retorno de este método contiene la
         salida.
-   </para>
+    </para>
 
-   <para>
-        Puede ser útil comprender que el método <methodname>Zend_Debug::dump()</methodname>
-        envuelve la función de <acronym>PHP</acronym>
-        <ulink url="http://php.net/var_dump"><methodname>var_dump()</methodname></ulink>.
+    <para>
+        Puede ser útil comprender que el método
+        <methodname>Zend_Debug::dump()</methodname>
+        envuelve la función de
+        <acronym>PHP</acronym>
+        <ulink url="http://php.net/var_dump">
+            <methodname>var_dump()</methodname>
+        </ulink>
+        .
         Si el flujo de salida es detectado como una presentación de la web, la
-        salida de <methodname>var_dump()</methodname> es escapada usando
-        <ulink url="http://php.net/htmlspecialchars"><methodname>htmlspecialchars()</methodname></ulink>
-        y envuelta con el tag (X)HTML <command>&lt;pre&gt;</command>.
-   </para>
+        salida de
+        <methodname>var_dump()</methodname>
+        es escapada usando
+        <ulink url="http://php.net/htmlspecialchars">
+            <methodname>htmlspecialchars()</methodname>
+        </ulink>
+        y envuelta con el tag (X)HTML
+        <command>&lt;pre&gt;</command>
+        .
+    </para>
 
     <tip>
         <title>Depurando con Zend_Log</title>
-       <para>
-            Usar <methodname>Zend_Debug::dump()</methodname> es lo mejor para la depuración
-            en caliente durante el desarrollo de software. Puede añadir el código para
+        <para>
+            Usar
+            <methodname>Zend_Debug::dump()</methodname>
+            es lo mejor para la depuración
+            en caliente durante el desarrollo de software. Puede
+            añadir el código para
             volcar una variable y después quitar el código fácilmente.
-       </para>
-       <para>
-            También considere el componente <link linkend="zend.log.overview">
-            Zend_Log</link>  component when writing more permanent debugging code. For example,
-            you can use the <constant>DEBUG</constant> log level and the
-            <link linkend="zend.log.writers.stream">stream log writer</link> to
-            output the string returned by <methodname>Zend_Debug::dump()</methodname>.
-       </para>
+        </para>
+        <para>
+            También considere el componente
+            <link linkend="zend.log.overview">
+                Zend_Log</link>
+            component when writing more permanent debugging code. For example,
+            you can use the
+            <constant>DEBUG</constant>
+            log level and the
+            <link linkend="zend.log.writers.stream">stream log writer</link>
+            to
+            output the string returned by
+            <methodname>Zend_Debug::dump()</methodname>
+            .
+        </para>
     </tip>
 
 </sect1>
-<!--
+    <!--
     vim:se ts=4 sw=4 et:
 -->

+ 287 - 146
documentation/manual/es/module_specs/Zend_Dojo-Data.xml

@@ -1,22 +1,38 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17598 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17598 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.dojo.data">
     <title>Zend_Dojo_Data: Envolturas de dojo.data</title>
 
-   <para>Dojo proporciona abstracciones de datos para los widgets de datos
-        habilitados a través de su componente dojo.data. Este componente
-        proporciona la capacidad de adjuntar un datastore, ofrecer algunos
+    <para>
+        Dojo proporciona abstracciones de datos para los widgets de datos
+        habilitados a través de su
+        componente dojo.data. Este componente
+        proporciona la capacidad de adjuntar un datastore,
+        ofrecer algunos
         metadatos relativos al campo identidad, opcionalmente una etiqueta de
-        campo, y una <acronym>API</acronym> para efectuar consultas,
+        campo, y
+        una
+        <acronym>API</acronym>
+        para efectuar consultas,
         clasificación, recuperación de archivos y conjuntos de registros del
-        datastore.</para>
-
-   <para>dojo.data se utiliza a menudo con XmlHttpRequest para traer
-        dinámicamente datos desde el servidor. El principal mecanismo para esto
-        es extender el QueryReadStore para que apunte a una  <acronym>URL</acronym> y especificar la
+        datastore.
+    </para>
+
+    <para>
+        dojo.data se utiliza a menudo con XmlHttpRequest para traer
+        dinámicamente datos desde el
+        servidor. El principal mecanismo para esto
+        es extender el QueryReadStore para que apunte a
+        una
+        <acronym>URL</acronym>
+        y especificar la
         información a consultar. El lado del servidor después devuelve los datos
-        con el siguiente formato <acronym>JSON</acronym>:</para>
+        con
+        el siguiente formato
+        <acronym>JSON</acronym>
+        :
+    </para>
 
     <programlisting language="javascript"><![CDATA[
 {
@@ -29,17 +45,24 @@
 }
 ]]></programlisting>
 
-   <para>
-        <classname>Zend_Dojo_Data</classname> ofrece una interfaz simple para la
-        construcción de estas estructuras programáticamente, interactuando con
-        ellos, y serializándolos a un array o a <acronym>JSON</acronym>.</para>
+    <para>
+        <classname>Zend_Dojo_Data</classname>
+        ofrece una interfaz simple para la
+        construcción de estas estructuras programáticamente,
+        interactuando con
+        ellos, y serializándolos a un array o a
+        <acronym>JSON</acronym>
+        .
+    </para>
 
     <sect2 id="zend.dojo.data.usage">
         <title>Uso de Zend_Dojo_Data</title>
 
-       <para>En su forma más simple, dojo.data requiere que se proporcione el
-            nombre del campo identificador en cada item, y un conjunto de items
-            (datos). Puede pasarlos tanto via el constructor, o via mutators:</para>
+        <para>En su forma más simple, dojo.data requiere que se proporcione el
+            nombre del campo
+            identificador en cada item, y un conjunto de items
+            (datos). Puede pasarlos tanto via el
+            constructor, o via mutators:</para>
 
         <example id="zend.dojo.data.usage.constructor">
             <title>Inicialización de Zend_Dojo_Data via constructor</title>
@@ -59,13 +82,20 @@ $data->setIdentifier('id')
 ]]></programlisting>
         </example>
 
-       <para>También puede añadir un solo item a la vez, o agregar items
-            utilizando <methodname>addItem()</methodname> y
-                <methodname>addItems()</methodname>.</para>
+        <para>
+            También puede añadir un solo item a la vez, o agregar items
+            utilizando
+            <methodname>addItem()</methodname>
+            y
+            <methodname>addItems()</methodname>
+            .
+        </para>
 
         <example id="zend.dojo.data.usage.append">
-            <title>Agregando datos a
-                <classname>Zend_Dojo_Data</classname></title>
+            <title>
+                Agregando datos a
+                <classname>Zend_Dojo_Data</classname>
+            </title>
 
             <programlisting language="php"><![CDATA[
 $data = new Zend_Dojo_Data($identifier, $items);
@@ -78,66 +108,93 @@ $data->addItems($someMoreItems);
         <note>
             <title>Siempre use un identificador!</title>
 
-           <para>Cada datastore de dojo.data requiere que la columna
-                identificadora se proporcione como metadatos, incluyendo
-                    <classname>Zend_Dojo_Data</classname>. De hecho, si intenta
+            <para>
+                Cada datastore de dojo.data requiere que la columna
+                identificadora se proporcione
+                como metadatos, incluyendo
+                <classname>Zend_Dojo_Data</classname>
+                . De hecho, si intenta
                 añadir items sin un identificador, se generará una excepción.
-           </para>
+            </para>
         </note>
 
-       <para>Los items individuales pueden ser uno de los siguientes:</para>
+        <para>Los items individuales pueden ser uno de los siguientes:</para>
 
         <itemizedlist>
             <listitem>
-               <para>Arrays asociativos</para>
+                <para>Arrays asociativos</para>
             </listitem>
 
             <listitem>
-               <para>Objectos implementando un método
-                        <methodname>toArray()</methodname>
-               </para>
+                <para>
+                    Objectos implementando un método
+                    <methodname>toArray()</methodname>
+                </para>
             </listitem>
 
             <listitem>
-               <para>Cualquiera de los otros objetos (se serializarán via
+                <para>Cualquiera de los otros objetos (se serializarán via
                     get_object_vars())</para>
             </listitem>
         </itemizedlist>
 
-       <para>Puede adjuntar colecciones de los items anteriores via
-                <methodname>addItems()</methodname> o
-                <methodname>setItems()</methodname> (sobreescribe todos los
-            items previamente establecidos); cuando lo haga, puede pasar un solo
-            argumento:</para>
+        <para>
+            Puede adjuntar colecciones de los items anteriores via
+            <methodname>addItems()</methodname>
+            o
+            <methodname>setItems()</methodname>
+            (sobreescribe todos los
+            items previamente establecidos); cuando lo haga, puede pasar un
+            solo
+            argumento:
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>Arrays</para>
+                <para>Arrays</para>
             </listitem>
 
             <listitem>
-               <para>Objectos implementando la interfaz
-                        <methodname>Traversable</methodname>, que incluye las
-                    interfaces <methodname>Iterator</methodname> y
-                        <methodname>ArrayAccess</methodname>.</para>
+                <para>
+                    Objectos implementando la interfaz
+                    <methodname>Traversable</methodname>
+                    , que incluye las
+                    interfaces
+                    <methodname>Iterator</methodname>
+                    y
+                    <methodname>ArrayAccess</methodname>
+                    .
+                </para>
             </listitem>
         </itemizedlist>
 
-       <para>Si quiere especificar un campo que actuará como una etiqueta para
-            el item, llame a <methodname>setLabel()</methodname>:</para>
+        <para>
+            Si quiere especificar un campo que actuará como una etiqueta para
+            el item, llame a
+            <methodname>setLabel()</methodname>
+            :
+        </para>
 
         <example id="zend.dojo.data.usage.label">
-            <title>Especificando la etiqueta de un campo en
-                    <classname>Zend_Dojo_Data</classname></title>
+            <title>
+                Especificando la etiqueta de un campo en
+                <classname>Zend_Dojo_Data</classname>
+            </title>
 
             <programlisting language="php"><![CDATA[
 $data->setLabel('name');
 ]]></programlisting>
         </example>
 
-       <para>Por último, también puede cargar un item
-            <classname>Zend_Dojo_Data</classname> de un array <acronym>JSON</acronym>
-            dojo.data, utilizando el método <methodname>fromJson()</methodname>.</para>
+        <para>
+            Por último, también puede cargar un item
+            <classname>Zend_Dojo_Data</classname>
+            de un array
+            <acronym>JSON</acronym>
+            dojo.data, utilizando el método
+            <methodname>fromJson()</methodname>
+            .
+        </para>
 
         <example id="zend.dojo.data.usage.populate">
             <title>Alimentando Zend_Dojo_Data desde
@@ -152,23 +209,36 @@ $data->fromJson($json);
     <sect2 id="zend.dojo.data.metadata">
         <title>Agregando metadatos a sus contenedores</title>
 
-       <para>Algunos componentes de Dojo requieren metadatos adicionales junto
-            al conjunto de datos de dojo.data. Como ejemplo,
-                <methodname>dojox.grid.Grid</methodname> puede tirar datos
+        <para>
+            Algunos componentes de Dojo requieren metadatos adicionales junto
+            al conjunto de datos de
+            dojo.data. Como ejemplo,
+            <methodname>dojox.grid.Grid</methodname>
+            puede tirar datos
             dinámicamente desde un
-                <methodname>dojox.data.QueryReadStore</methodname>. Para que la
+            <methodname>dojox.data.QueryReadStore</methodname>
+            . Para que la
             paginación funcione correctamente, cada conjunto de datos de regreso
-            debería contener una clave <methodname>numRows</methodname> con el
+            debería contener una clave
+            <methodname>numRows</methodname>
+            con el
             número total de filas que podrían ser devueltas por la consulta. Con
-            estos datos, la plantilla sabe cuando seguir haciendo pequeños
-            pedidos de subconjuntos de datos al servidor y cuando dejar de hacer
-            más peticiones (es decir, ha llegado a la última página de datos).
+            estos datos,
+            la plantilla sabe cuando seguir haciendo pequeños
+            pedidos de subconjuntos de datos al
+            servidor y cuando dejar de hacer
+            más peticiones (es decir, ha llegado a la última página
+            de datos).
             Esta técnica es útil para despachar grandes conjuntos de datos en
-            sus plantillas sin cargar todo el conjunto de una sola vez.</para>
+            sus
+            plantillas sin cargar todo el conjunto de una sola vez.
+        </para>
 
-       <para>
-            <classname>Zend_Dojo_Data</classname> permite asignar propiedades a
-            los metadatos como al objeto. Lo siguiente ilustra su uso:</para>
+        <para>
+            <classname>Zend_Dojo_Data</classname>
+            permite asignar propiedades a
+            los metadatos como al objeto. Lo siguiente ilustra su uso:
+        </para>
 
         <programlisting language="php"><![CDATA[
 // Establece el "numRows" a 100
@@ -197,23 +267,36 @@ $data->clearMetadata();
     <sect2 id="zend.dojo.data.advanced">
         <title>Casos Avanzados de Uso</title>
 
-       <para>Además de actuar como un contenedor de datos serializable,
-                <classname>Zend_Dojo_Data</classname> también ofrece la
+        <para>
+            Además de actuar como un contenedor de datos serializable,
+            <classname>Zend_Dojo_Data</classname>
+            también ofrece la
             posibilidad de manipular y recorrer los datos en una variedad de
-            formas.</para>
-
-       <para>
-            <classname>Zend_Dojo_Data</classname> implementa las interfaces
-                <methodname>ArrayAccess</methodname>,
-                <methodname>Iterator</methodname>, y
-                <methodname>Countable</methodname>. Por lo tanto, puede usar la
-            recopilación de datos casi como si fuera un array.</para>
-
-       <para>Todos los items son referenciados por el identificador de campo.
-            Dado que los identificadores deben ser únicos, puede usar los
-            valores de este campo para sacar los registros individuales. Hay dos
+            formas.
+        </para>
+
+        <para>
+            <classname>Zend_Dojo_Data</classname>
+            implementa las interfaces
+            <methodname>ArrayAccess</methodname>
+            ,
+            <methodname>Iterator</methodname>
+            , y
+            <methodname>Countable</methodname>
+            . Por lo tanto, puede usar la
+            recopilación de datos casi como si fuera un array.
+        </para>
+
+        <para>
+            Todos los items son referenciados por el identificador de campo.
+            Dado que los
+            identificadores deben ser únicos, puede usar los
+            valores de este campo para sacar los
+            registros individuales. Hay dos
             maneras de hacer esto: con el método
-                <methodname>getItem()</methodname>, o via notación de array.</para>
+            <methodname>getItem()</methodname>
+            , o via notación de array.
+        </para>
 
         <programlisting language="php"><![CDATA[
 // Usando getItem():
@@ -223,8 +306,9 @@ $item = $data->getItem('foo');
 $item = $data['foo'];
 ]]></programlisting>
 
-       <para>Si conoce el identificador, puede utilizarlo para recuperar un
-            item, actualizarlo, borrarlo, crearlo, o probarlo:</para>
+        <para>Si conoce el identificador, puede utilizarlo para recuperar un
+            item, actualizarlo,
+            borrarlo, crearlo, o probarlo:</para>
 
         <programlisting language="php"><![CDATA[
 // Actualizar o crear un item:
@@ -238,8 +322,9 @@ if (isset($data[foo])) {
 }
 ]]></programlisting>
 
-       <para>También puede hacer un loop sobre todos los items. Internamente,
-            todos los items se almacenan como arrays.</para>
+        <para>También puede hacer un loop sobre todos los items. Internamente,
+            todos los items se
+            almacenan como arrays.</para>
 
         <programlisting language="php"><![CDATA[
 foreach ($data as $item) {
@@ -247,16 +332,23 @@ foreach ($data as $item) {
 }
 ]]></programlisting>
 
-       <para>O inclusive contar para ver cuántos ítems tiene:</para>
+        <para>O inclusive contar para ver cuántos ítems tiene:</para>
 
         <programlisting language="php"><![CDATA[
 echo count($data), " items encontrados!";
 ]]></programlisting>
 
-       <para>Por último, como la clase implementa
-                <methodname>__toString()</methodname>, también puede convertirlo
-            a <acronym>JSON</acronym> simplemente con "echo" de <acronym>PHP</acronym> o
-            convertirlo a string:</para>
+        <para>
+            Por último, como la clase implementa
+            <methodname>__toString()</methodname>
+            , también puede convertirlo
+            a
+            <acronym>JSON</acronym>
+            simplemente con "echo" de
+            <acronym>PHP</acronym>
+            o
+            convertirlo a string:
+        </para>
 
         <programlisting language="php"><![CDATA[
 echo $data; // echo como un string JSON
@@ -267,125 +359,174 @@ $json = (string) $data; // conversión a string == conversión a JSON
         <sect3 id="zend.dojo.data.advanced.methods">
             <title>Métodos Disponibles</title>
 
-           <para>Además de los métodos necesarios para aplicar las interfaces
-                enumeradas anteriormente, están disponibles los siguientes
+            <para>Además de los métodos necesarios para aplicar las interfaces
+                enumeradas
+                anteriormente, están disponibles los siguientes
                 métodos.</para>
 
             <itemizedlist>
                 <listitem>
-                   <para>
-                        <methodname>setItems($items)</methodname>: establece
+                    <para>
+                        <methodname>setItems($items)</methodname>
+                        : establece
                         varios items a la vez, sobrescribiendo cualquier item
-                        que figurase anteriormente en el objeto.
-                            <methodname>$items</methodname> debe ser un array o
-                        un objeto <methodname>Traversable</methodname>.</para>
+                        que figurase
+                        anteriormente en el objeto.
+                        <methodname>$items</methodname>
+                        debe ser un array o
+                        un objeto
+                        <methodname>Traversable</methodname>
+                        .
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>setItem($item, $id = null)</methodname>:
+                    <para>
+                        <methodname>setItem($item, $id = null)</methodname>
+                        :
                         establece un item individual, opcionalmente puede pasar
-                        un identificador explícito. Sobreescribe el item si ya
-                        existe en la colección. Los items válidos incluyen a
+                        un identificador
+                        explícito. Sobreescribe el item si ya
+                        existe en la colección. Los items
+                        válidos incluyen a
                         arrays asociativos, objetos implementando
-                            <methodname>toArray()</methodname>, o cualquier
-                        objeto con propiedades públicas.</para>
+                        <methodname>toArray()</methodname>
+                        , o cualquier
+                        objeto con propiedades públicas.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>addItem($item, $id = null)</methodname>:
+                    <para>
+                        <methodname>addItem($item, $id = null)</methodname>
+                        :
                         añade un item individual, opcionalmente puede pasar un
-                        identificador explícito. Generará una excepción si el
-                        item ya existe en la colección. Los items válidos
+                        identificador
+                        explícito. Generará una excepción si el
+                        item ya existe en la colección. Los
+                        items válidos
                         incluyen a arrays asociativos, objetos implementando
-                            <methodname>toArray()</methodname>, o cualquier
-                        objeto con propiedades públicas.</para>
+                        <methodname>toArray()</methodname>
+                        , o cualquier
+                        objeto con propiedades públicas.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>addItems($items)</methodname>: agrega
+                    <para>
+                        <methodname>addItems($items)</methodname>
+                        : agrega
                         múltiples items a la vez, añadiendolos a cualquiera de
-                        los items actuales. Generará una excepción si alguno de
-                        los nuevos items tiene un identificador concordante a un
+                        los items
+                        actuales. Generará una excepción si alguno de
+                        los nuevos items tiene un
+                        identificador concordante a un
                         identificador ya existente en la colección.
-                            <methodname>$items</methodname> debe ser un array o
-                        un objeto <methodname>Traversable</methodname>.</para>
+                        <methodname>$items</methodname>
+                        debe ser un array o
+                        un objeto
+                        <methodname>Traversable</methodname>
+                        .
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>getItems()</methodname>: recupera todos los
-                        items como un array de arrays.</para>
+                    <para>
+                        <methodname>getItems()</methodname>
+                        : recupera todos los
+                        items como un array de arrays.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>hasItem($id)</methodname>: determina si un
+                    <para>
+                        <methodname>hasItem($id)</methodname>
+                        : determina si un
                         item con el identificador dado existe en la colección.
-                   </para>
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>getItem($id)</methodname>: recupera un item
+                    <para>
+                        <methodname>getItem($id)</methodname>
+                        : recupera un item
                         con el identificador dado de la colección; el item
                         retornado será un array asociativo. Si ningún item
-                        coincide, se devolverá un valor null.</para>
+                        coincide, se devolverá un
+                        valor null.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>removeItem($id)</methodname>: elimina de la
-                        colección un item con el identificador dado.</para>
+                    <para>
+                        <methodname>removeItem($id)</methodname>
+                        : elimina de la
+                        colección un item con el identificador dado.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>clearItems()</methodname>: elimina todos los
-                        items de la colección.</para>
+                    <para>
+                        <methodname>clearItems()</methodname>
+                        : elimina todos los
+                        items de la colección.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>setIdentifier($identifier)</methodname>:
+                    <para>
+                        <methodname>setIdentifier($identifier)</methodname>
+                        :
                         establece el nombre del campo que representa el
-                        identificador único para cada item en la colección.
-                   </para>
+                        identificador único para
+                        cada item en la colección.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>getIdentifier()</methodname>: recupera el
-                        nombre del campo identificador.</para>
+                    <para>
+                        <methodname>getIdentifier()</methodname>
+                        : recupera el
+                        nombre del campo identificador.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>setLabel($label)</methodname>: establece el
+                    <para>
+                        <methodname>setLabel($label)</methodname>
+                        : establece el
                         nombre de un campo para ser utilizado como la etiqueta a
-                        mostrar para un item.</para>
+                        mostrar para un item.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>getLabel()</methodname>: recupera la
-                        etiqueta del nombre del campo.</para>
+                    <para>
+                        <methodname>getLabel()</methodname>
+                        : recupera la
+                        etiqueta del nombre del campo.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>toArray()</methodname>: enviar el objeto a
+                    <para>
+                        <methodname>toArray()</methodname>
+                        : enviar el objeto a
                         un array. Como mínimo, el array contendrá las claves
                         'identifier', 'items', y 'label' si una etiqueta de
-                        campo ha sido establecida en el objeto.</para>
+                        campo ha sido establecida
+                        en el objeto.
+                    </para>
                 </listitem>
 
                 <listitem>
-                   <para>
-                        <methodname>toJson()</methodname>: enviar el objeto a
-                        una representación <acronym>JSON</acronym>.</para>
+                    <para>
+                        <methodname>toJson()</methodname>
+                        : enviar el objeto a
+                        una representación
+                        <acronym>JSON</acronym>
+                        .
+                    </para>
                 </listitem>
             </itemizedlist>
         </sect3>

+ 97 - 56
documentation/manual/es/module_specs/Zend_Dojo-Form-Decorators.xml

@@ -1,45 +1,69 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17134 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17134 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.dojo.form.decorators">
     <title>Decoradores de Forms Específicos de Dijit</title>
 
-   <para>La mayoría de los elementos de formularios pueden usar el decorador
-        DijitElement, que tomará los parámetros dijit de los elementos, y
-        pasarán estos y otros metadatos al ayudante de vista especificado por el
-        elemento. Sin embargo, para decorar los forms, sub forms, y grupos de
+    <para>La mayoría de los elementos de formularios pueden usar el decorador
+        DijitElement, que
+        tomará los parámetros dijit de los elementos, y
+        pasarán estos y otros metadatos al ayudante
+        de vista especificado por el
+        elemento. Sin embargo, para decorar los forms, sub forms, y
+        grupos de
         visualización, hay un conjunto de decoradores correspondientes a los
-        diversos esquemas dijit.</para>
-
-   <para>Todos los decoradores dijit buscan la propiedad
-            <methodname>dijitParams</methodname> del elemento que va a ser
-        decorado, y mandarlos como un array <varname>$params</varname> al
+        diversos
+        esquemas dijit.</para>
+
+    <para>
+        Todos los decoradores dijit buscan la propiedad
+        <methodname>dijitParams</methodname>
+        del elemento que va a ser
+        decorado, y mandarlos como un array
+        <varname>$params</varname>
+        al
         ayudante de vista dijit que se está usando. Luego, éstos son separados
-        de cualquiera de las otras propiedades para evitar la duplicación de
-        información.</para>
+        de cualquiera de las
+        otras propiedades para evitar la duplicación de
+        información.
+    </para>
 
     <sect3 id="zend.dojo.form.decorators.dijitElement">
         <title>Decorador DijitElement</title>
 
-       <para>Al igual que <link
-                linkend="zend.form.standardDecorators.viewHelper"> el decorador
-                ViewHelper</link>, DijitElement espera una propiedad del
-                <methodname>helper</methodname> en el elemento que luego usará
-            como el ayudante de vista cuando lo renderice. Los parámetros Dijit
+        <para>
+            Al igual que
+            <link linkend="zend.form.standardDecorators.viewHelper"> el decorador
+                ViewHelper</link>
+            , DijitElement espera una propiedad del
+            <methodname>helper</methodname>
+            en el elemento que luego usará
+            como el ayudante de vista cuando lo renderice. Los
+            parámetros Dijit
             suelen ser arrastrados directamente desde el elemento, pero también
             pueden ser pasados como opciones vía la clave
-                <methodname>dijitParams</methodname> (el valor de esa clave debe
-            ser un array asociativo de opciones).</para>
-
-       <para>Es importante que cada elemento tenga un único ID (como traído
-            desde el método <methodname>getId()</methodname> del elemento). Si
+            <methodname>dijitParams</methodname>
+            (el valor de esa clave debe
+            ser un array asociativo de opciones).
+        </para>
+
+        <para>
+            Es importante que cada elemento tenga un único ID (como traído
+            desde el método
+            <methodname>getId()</methodname>
+            del elemento). Si
             se detectan duplicados dentro del ayudante de vista
-                <methodname>dojo()</methodname>, el decorador accionará un
-            aviso, pero luego creará un único ID añadiéndole lo que devuelve
-                <methodname>uniqid()</methodname> al identificador.</para>
-
-       <para>El uso estándar es simplemente asociar este decorador como el
-            primero de su cadena de decoradores, sin opciones adicionales.</para>
+            <methodname>dojo()</methodname>
+            , el decorador accionará un
+            aviso, pero luego creará un único ID añadiéndole lo que
+            devuelve
+            <methodname>uniqid()</methodname>
+            al identificador.
+        </para>
+
+        <para>El uso estándar es simplemente asociar este decorador como el
+            primero de su cadena de
+            decoradores, sin opciones adicionales.</para>
 
         <example id="zend.dojo.form.decorators.dijitElement.usage">
             <title>Uso del Decorador DijitElement</title>
@@ -58,15 +82,21 @@ $element->setDecorators(array(
     <sect3 id="zend.dojo.form.decorators.dijitForm">
         <title>Decorador DijitForm</title>
 
-       <para>El decorador DijitForm es muy similar al <link
-                linkend="zend.form.standardDecorators.form">Form
-                decorator</link>; de hecho, básicamente puede ser utilizado de
-            manera intercambiable con él, ya que utiliza el mismo nombre de
-            ayudante de vista ('form').</para>
-
-       <para>Dado que dijit.form.Form no requiere ningún parámetro dijit para
-            la configuración, la principal diferencia es que el ayudante de
-            vista dijit del form exige que se pase un DOM ID para garantizar que
+        <para>
+            El decorador DijitForm es muy similar al
+            <link linkend="zend.form.standardDecorators.form">Form
+                decorator</link>
+            ; de hecho, básicamente puede ser utilizado de
+            manera intercambiable con él, ya que
+            utiliza el mismo nombre de
+            ayudante de vista ('form').
+        </para>
+
+        <para>Dado que dijit.form.Form no requiere ningún parámetro dijit para
+            la configuración, la
+            principal diferencia es que el ayudante de
+            vista dijit del form exige que se pase un DOM
+            ID para garantizar que
             la creación programática del dijit pueda trabajar. El decorador
             garantiza esto, pasando el nombre del form como el identificador.
        </para>
@@ -75,42 +105,53 @@ $element->setDecorators(array(
     <sect3 id="zend.dojo.form.decorators.dijitContainer">
         <title>Decoradores basados en DijitContainer</title>
 
-       <para>El decorador <methodname>DijitContainer</methodname> es en
+        <para>
+            El decorador
+            <methodname>DijitContainer</methodname>
+            es en
             realidad una clase abstracta desde la cual derivan una variedad de
-            otros decoradores. Ofrece la misma funcionalidad de <link
-                linkend="zend.dojo.form.decorators.dijitElement"
-                >DijitElement</link>, con el añadido del soporte para títulos.
-            Muchos esquemas de dijits requieren o pueden utilizar un título;
+            otros
+            decoradores. Ofrece la misma funcionalidad de
+            <link linkend="zend.dojo.form.decorators.dijitElement">DijitElement</link>
+            , con el añadido del soporte para títulos.
+            Muchos esquemas de dijits requieren o pueden
+            utilizar un título;
             DijitContainer utilizará la propiedad del elemento leyenda (legend)
             si está disponible, y también pueden utilizar tanto 'legend' o
-            'title' como opción del decorador, si es pasada. El título será
-            traducido si un adaptador de traducción con su correspondiente
-            traducción está presente.</para>
-
-       <para>La siguiente es una lista de decoradores que heredan de
-                <methodname>DijitContainer</methodname>:</para>
+            'title' como opción del
+            decorador, si es pasada. El título será
+            traducido si un adaptador de traducción con su
+            correspondiente
+            traducción está presente.
+        </para>
+
+        <para>
+            La siguiente es una lista de decoradores que heredan de
+            <methodname>DijitContainer</methodname>
+            :
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>AccordionContainer</para>
+                <para>AccordionContainer</para>
             </listitem>
             <listitem>
-               <para>AccordionPane</para>
+                <para>AccordionPane</para>
             </listitem>
             <listitem>
-               <para>BorderContainer</para>
+                <para>BorderContainer</para>
             </listitem>
             <listitem>
-               <para>ContentPane</para>
+                <para>ContentPane</para>
             </listitem>
             <listitem>
-               <para>SplitContainer</para>
+                <para>SplitContainer</para>
             </listitem>
             <listitem>
-               <para>StackContainer</para>
+                <para>StackContainer</para>
             </listitem>
             <listitem>
-               <para>TabContainer</para>
+                <para>TabContainer</para>
             </listitem>
         </itemizedlist>
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 509 - 314
documentation/manual/es/module_specs/Zend_Dojo-Form-Elements.xml


+ 36 - 18
documentation/manual/es/module_specs/Zend_Dojo-Form-Examples.xml

@@ -1,20 +1,28 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17166 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17166 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.dojo.form.examples">
     <title>Ejemplos de Dojo Form</title>
 
     <example id="zend.dojo.form.examples.dojoform">
         <title>Usando Zend_Dojo_Form</title>
 
-       <para>La forma más fácil de utilizar Dojo con
-                <classname>Zend_Form</classname> es utilizar
-                <classname>Zend_Dojo_Form</classname>, ya sea mediante el uso
-            directo o mediante su extensión. Este ejemplo muestra la extensión
-            de <classname>Zend_Dojo_Form</classname>, y muestra el uso de todos
-            los elementos dijit. Crea cuatro sub forms, y decora el form para
+        <para>
+            La forma más fácil de utilizar Dojo con
+            <classname>Zend_Form</classname>
+            es utilizar
+            <classname>Zend_Dojo_Form</classname>
+            , ya sea mediante el uso
+            directo o mediante su extensión. Este ejemplo muestra la
+            extensión
+            de
+            <classname>Zend_Dojo_Form</classname>
+            , y muestra el uso de todos
+            los elementos dijit. Crea cuatro sub forms, y decora el form
+            para
             utilizar un TabContainer, mostrando cada sub form en su propia
-            pestaña.</para>
+            pestaña.
+        </para>
 
         <programlisting language="php"><![CDATA[
 class My_Form_Test extends Zend_Dojo_Form
@@ -355,11 +363,15 @@ class My_Form_Test extends Zend_Dojo_Form
     <example id="zend.dojo.form.examples.decorating">
         <title>Modificando un form existente para utilizarlo con Dojo</title>
 
-       <para>Los forms existentes pueden ser modificados para ser utilizados
-            también por Dojo, usando el método estático
-            <methodname>Zend_Dojo::enableForm()</methodname>.</para>
+        <para>
+            Los forms existentes pueden ser modificados para ser utilizados
+            también por Dojo, usando
+            el método estático
+            <methodname>Zend_Dojo::enableForm()</methodname>
+            .
+        </para>
 
-       <para>Este primer ejemplo muestra como decorar una instancia de un form
+        <para>Este primer ejemplo muestra como decorar una instancia de un form
             existente:</para>
 
         <programlisting language="php"><![CDATA[
@@ -384,7 +396,7 @@ array(
 );
 ]]></programlisting>
 
-       <para>Alternativamente, puede hacer un ligero retoque a su form de
+        <para>Alternativamente, puede hacer un ligero retoque a su form de
             inicialización:</para>
 
         <programlisting language="php"><![CDATA[
@@ -399,10 +411,16 @@ class My_Custom_Form extends Zend_Form
 }
 ]]></programlisting>
 
-       <para>Por supuesto, si puede hacerlo... podría y debería simplemente
-            alterar la clase a heredar de <classname>Zend_Dojo_Form</classname>,
+        <para>
+            Por supuesto, si puede hacerlo... podría y debería simplemente
+            alterar la clase a heredar
+            de
+            <classname>Zend_Dojo_Form</classname>
+            ,
             que es una sustitución del drop-in de
-                <classname>Zend_Form</classname> que ya está habilitada por
-            Dojo....</para>
+            <classname>Zend_Form</classname>
+            que ya está habilitada por
+            Dojo....
+        </para>
     </example>
 </sect2>

+ 76 - 37
documentation/manual/es/module_specs/Zend_Dojo-Form.xml

@@ -1,71 +1,109 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17166 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17166 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Elementos y Decoradores de Dojo Form</title>
 
-   <para>Sobre la base de los ayudantes de vista dijit <link
-            linkend="zend.dojo.view.dijit"/>, la familia de clases
-            <classname>Zend_Dojo_Form</classname> ofrece la posibilidad de
-        utilizar Dijits nativamente en sus formularios.</para>
+    <para>
+        Sobre la base de los ayudantes de vista dijit
+        <link linkend="zend.dojo.view.dijit"/>
+        , la familia de clases
+        <classname>Zend_Dojo_Form</classname>
+        ofrece la posibilidad de
+        utilizar Dijits nativamente en sus formularios.
+    </para>
 
-   <para>Hay tres opciones para utilizar los elementos de Dojo form con sus
+    <para>Hay tres opciones para utilizar los elementos de Dojo form con sus
         formularios:</para>
 
     <itemizedlist>
         <listitem>
-           <para>Use <methodname>Zend_Dojo::enableForm()</methodname>. Esto le
+            <para>
+                Use
+                <methodname>Zend_Dojo::enableForm()</methodname>
+                . Esto le
                 permitirá añadir recursivamente paths de plugins para
-                decoradores y elementos de todos los items de forms adjuntos.
-                Además, el objeto vista será habilitado para Dojo. Note, sin
+                decoradores y
+                elementos de todos los items de forms adjuntos.
+                Además, el objeto vista será
+                habilitado para Dojo. Note, sin
                 embargo, que cualquier subformulario que agregue
-                    <emphasis>después</emphasis> de esta llamada también tendrá
+                <emphasis>después</emphasis>
+                de esta llamada también tendrá
                 que ser pasado mediante
-                    <methodname>Zend_Dojo::enableForm()</methodname>.</para>
+                <methodname>Zend_Dojo::enableForm()</methodname>
+                .
+            </para>
         </listitem>
 
         <listitem>
-           <para>Utilice las implementaciones específicas de Dojo para
+            <para>
+                Utilice las implementaciones específicas de Dojo para
                 formularios y subformularios,
-                    <classname>Zend_Dojo_Form</classname> y
-                    <classname>Zend_Dojo_Form_SubForm</classname>
+                <classname>Zend_Dojo_Form</classname>
+                y
+                <classname>Zend_Dojo_Form_SubForm</classname>
                 respectivamente. Éstas pueden utilizarse como reemplazantes
-                drop-in para <classname>Zend_Form</classname> y
-                    <classname>Zend_Form_SubForm</classname>, contener todos los
+                drop-in para
+                <classname>Zend_Form</classname>
+                y
+                <classname>Zend_Form_SubForm</classname>
+                , contener todos los
                 paths apropiados de los decoradores y elementos, establecer una
                 clase DisplayGroup por defecto específica, y habilitar la vista
-                para Dojo.</para>
+                para Dojo.
+            </para>
         </listitem>
 
         <listitem>
-           <para>Por último, y lo más tedioso, puede establecer por sí mismo
-                el path apropiado para el decorador y para el elemento,
-                establecer por defecto la clase DisplayGroup, y habilitar la
+            <para>
+                Por último, y lo más tedioso, puede establecer por sí mismo
+                el path apropiado para el
+                decorador y para el elemento,
+                establecer por defecto la clase DisplayGroup, y
+                habilitar la
                 vista para Dojo. Dado que
-                    <methodname>Zend_Dojo::enableForm()</methodname> ya hizo
-                esto, hay pocas razones para seguir esta vía.</para>
+                <methodname>Zend_Dojo::enableForm()</methodname>
+                ya hizo
+                esto, hay pocas razones para seguir esta vía.
+            </para>
         </listitem>
     </itemizedlist>
 
     <example id="zend.dojo.form.enable">
         <title>Habilitando Dojo en sus formularios existentes</title>
 
-       <para>"Pero espere", podría decir; "Ya extendí
-                <classname>Zend_Form</classname> con mi propia clase
-            personalizada de form! ¿Cómo puede habilitarlo para Dojo?"</para>
+        <para>
+            "Pero espere", podría decir; "Ya extendí
+            <classname>Zend_Form</classname>
+            con mi propia clase
+            personalizada de form! ¿Cómo puede habilitarlo para Dojo?"
+        </para>
 
-       <para>En primer lugar, y lo más fácil, simplemente cambie de extender
-                <classname>Zend_Form</classname> a extender
-                <classname>Zend_Dojo_Form</classname>, y actualizar todos los
+        <para>
+            En primer lugar, y lo más fácil, simplemente cambie de extender
+            <classname>Zend_Form</classname>
+            a extender
+            <classname>Zend_Dojo_Form</classname>
+            , y actualizar todos los
             lugares donde se instancie a
-                <classname>Zend_Form_SubForm</classname> para instanciar a
-                <classname>Zend_Dojo_Form_SubForm</classname>.</para>
+            <classname>Zend_Form_SubForm</classname>
+            para instanciar a
+            <classname>Zend_Dojo_Form_SubForm</classname>
+            .
+        </para>
 
-       <para>Un segundo enfoque es llamar al método
-                <methodname>init()</methodname> dentro de sus forms
-            personalizados <methodname>Zend_Dojo::enableForm()</methodname>.
+        <para>
+            Un segundo enfoque es llamar al método
+            <methodname>init()</methodname>
+            dentro de sus forms
+            personalizados
+            <methodname>Zend_Dojo::enableForm()</methodname>
+            .
             Cuando la definición del formulario está completa, mediante un loop
-            habilite todos los SubForms de Dojo:</para>
+            habilite todos los
+            SubForms de Dojo:
+        </para>
 
         <programlisting language="php"><![CDATA[
 class My_Form_Custom extends Zend_Form
@@ -86,8 +124,9 @@ class My_Form_Custom extends Zend_Form
 ]]></programlisting>
     </example>
 
-   <para>El uso de los decoradores y elementos específicos de dijit form es
-        como usar cualquier otro decorador o elemento de formularios.</para>
+    <para>El uso de los decoradores y elementos específicos de dijit form es
+        como usar cualquier otro
+        decorador o elemento de formularios.</para>
 
     <xi:include href="Zend_Dojo-Form-Decorators.xml"/>
     <xi:include href="Zend_Dojo-Form-Elements.xml"/>

+ 408 - 198
documentation/manual/es/module_specs/Zend_Dojo-View-Dojo.xml

@@ -1,47 +1,59 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17987 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17987 -->
+    <!-- Reviewed: no -->
 <sect2 id="zend.dojo.view.dojo">
     <title>dojo() Ayudante de Vista</title>
 
-   <para>El ayudante de vista <methodname>dojo()</methodname> está destinado a simplificar el
-        establecimiento del medio ambiente de Dojo, incluyendo las siguientes responsabilidades:</para>
+    <para>
+        El ayudante de vista
+        <methodname>dojo()</methodname>
+        está destinado a simplificar el
+        establecimiento del medio ambiente de Dojo, incluyendo las
+        siguientes responsabilidades:
+    </para>
 
     <itemizedlist>
         <listitem>
-           <para>Especificar bien un CDN o un path local para instalar Dojo.</para>
+            <para>Especificar bien un CDN o un path local para instalar Dojo.</para>
         </listitem>
         <listitem>
-           <para>Especificando paths a módulos Dojo personalizados.</para>
+            <para>Especificando paths a módulos Dojo personalizados.</para>
         </listitem>
         <listitem>
-           <para>Especificando sentencias dojo.require.</para>
+            <para>Especificando sentencias dojo.require.</para>
         </listitem>
         <listitem>
-           <para>Especificando hojas de estilo dijit a usar.</para>
+            <para>Especificando hojas de estilo dijit a usar.</para>
         </listitem>
         <listitem>
-           <para>Especificando eventos dojo.addOnLoad().</para>
+            <para>Especificando eventos dojo.addOnLoad().</para>
         </listitem>
     </itemizedlist>
 
-   <para>La implementación del ayudante de vista <methodname>dojo()</methodname> es un ejemplo de
-        implementación de un marcador de posición. El conjunto de datos en él, persiste entre los
-        objetos vista y puede ser directamente activado con en "echo" de <acronym>PHP</acronym>
-        desde su script.</para>
+    <para>
+        La implementación del ayudante de vista
+        <methodname>dojo()</methodname>
+        es un ejemplo de
+        implementación de un marcador de posición. El conjunto de datos en él,
+        persiste entre los
+        objetos vista y puede ser directamente activado con en "echo" de
+        <acronym>PHP</acronym>
+        desde su script.
+    </para>
 
     <example id="zend.dojo.view.dojo.usage">
         <title>dojo() Ejemplo de Uso del Ayudante de Vista</title>
 
-       <para>En este ejemplo, asumamos que el desarrollador estará usando Dojo desde un path
-            local, se necesitarán varios dijits, y se utilizará el tema de dijit Tundra.</para>
+        <para>En este ejemplo, asumamos que el desarrollador estará usando Dojo desde un path
+            local,
+            se necesitarán varios dijits, y se utilizará el tema de dijit Tundra.</para>
 
-       <para>En muchas páginas, el desarrollador no podrá utilizar Dojo para nada. Así, vamos a
+        <para>En muchas páginas, el desarrollador no podrá utilizar Dojo para nada. Así, vamos a
             centrarnos primero en un view script donde Dojo es necesario y luego en el layout
             script, en donde vamos a configurar algo del medio ambiente de Dojo y luego lo
             mostraremos.</para>
 
-       <para>En primer lugar, tenemos que decir nuestro objeto vista que utilice el path del
+        <para>En primer lugar, tenemos que decir nuestro objeto vista que utilice el path del
             ayudante de vista de Dojo. Esto puede hacerse en el arranque o en un plugin de ejecución
             temprana; simplemente apoderarse de su objeto vista y ejecutar lo siguiente:</para>
 
@@ -49,8 +61,9 @@
 $view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');
 ]]></programlisting>
 
-       <para>El paso siguiente, el view script. En este caso, vamos a especificar que vamos a
-            estar utilizando un FilteringSelect -- que consumirá un almacén personalizado basado en
+        <para>El paso siguiente, el view script. En este caso, vamos a especificar que vamos a
+            estar
+            utilizando un FilteringSelect -- que consumirá un almacén personalizado basado en
             QueryReadStore, al que llamamos 'PairedStore' y almacenado en nuestro módulo 'custom'.</para>
 
         <programlisting language="php"><![CDATA[
@@ -71,8 +84,9 @@ $this->dojo()->enable()
              ->requireModule('custom.PairedStore'); ?>
 ]]></programlisting>
 
-       <para>En nuestro script de esquema, vamos entonces a comprobar si Dojo está habilitado, y
-            si es así, haremos algunas configuraciones más generales y lo ensamblaremos:</para>
+        <para>En nuestro script de esquema, vamos entonces a comprobar si Dojo está habilitado, y
+            si
+            es así, haremos algunas configuraciones más generales y lo ensamblaremos:</para>
 
         <programlisting language="php"><![CDATA[
 <?php echo $this->doctype() ?>
@@ -97,58 +111,92 @@ $this->dojo()->enable()
 </html>
 ]]></programlisting>
 
-       <para>En este punto, sólo necesita asegurarse de que sus archivos están en el lugar
-            correcto y que ha creado el punto final de acción para su FilteringSelect!</para>
+        <para>En este punto, sólo necesita asegurarse de que sus archivos están en el lugar
+            correcto
+            y que ha creado el punto final de acción para su FilteringSelect!</para>
     </example>
 
     <sect3 id="zend.dojo.view.dojo.declarative">
         <title>Uso Programático y Declarativo de Dojo</title>
 
-       <para>Dojo permite usar a ambos <emphasis>declarative</emphasis> y
-                <emphasis>programmatic</emphasis> en muchas de sus características. El uso de
-                <emphasis>Declarative</emphasis> utiliza elementos <acronym>HTML</acronym> con atributos no estándar
-            que se parsean cuando la página se está cargado. Mientras que ésta es una sintaxis
-            poderosa y simple de utilizar, para muchos desarrolladores esto puede causar problemas
-            con la validación de páginas.</para>
-
-       <para>El uso de <emphasis>Programmatic</emphasis> permite al desarrollador decorar los
-            elementos existentes tirando de ellos por ID o selectores <acronym>CSS</acronym> y
+        <para>
+            Dojo permite usar a ambos
+            <emphasis>declarative</emphasis>
+            y
+            <emphasis>programmatic</emphasis>
+            en muchas de sus características. El uso de
+            <emphasis>Declarative</emphasis>
+            utiliza elementos
+            <acronym>HTML</acronym>
+            con atributos no estándar
+            que se parsean cuando la página se está cargado. Mientras que
+            ésta es una sintaxis
+            poderosa y simple de utilizar, para muchos desarrolladores esto
+            puede causar problemas
+            con la validación de páginas.
+        </para>
+
+        <para>
+            El uso de
+            <emphasis>Programmatic</emphasis>
+            permite al desarrollador decorar los
+            elementos existentes tirando de ellos por ID o
+            selectores
+            <acronym>CSS</acronym>
+            y
             pasarlos a los constructores apropiados de objetos en Dojo. Debido a que no se usan
-            atributos <acronym>HTML</acronym> no standard, las páginas continúan con la validación.</para>
-
-       <para>En la práctica, ambos casos de uso permiten una degradación elegante cuando
-            javascript está desactivado o los diversos recursos de Dojo script están fuera de
-            alcance. Para promover las normas y validación de documentos, Zend Framework hace uso de
-            los usos programáticos por defecto; los diversos ayudantes de vista generarán javascript
-            y lo empujan al ayudante de vista <methodname>dojo()</methodname> para su inclusión
-            cuando sean presentados.</para>
-
-       <para>Utilizando esta técnica los desarrolladores pueden también desear explorar la
+            atributos
+            <acronym>HTML</acronym>
+            no standard, las páginas continúan con la validación.
+        </para>
+
+        <para>
+            En la práctica, ambos casos de uso permiten una degradación elegante cuando
+            javascript
+            está desactivado o los diversos recursos de Dojo script están fuera de
+            alcance. Para
+            promover las normas y validación de documentos, Zend Framework hace uso de
+            los usos
+            programáticos por defecto; los diversos ayudantes de vista generarán javascript
+            y lo
+            empujan al ayudante de vista
+            <methodname>dojo()</methodname>
+            para su inclusión
+            cuando sean presentados.
+        </para>
+
+        <para>Utilizando esta técnica los desarrolladores pueden también desear explorar la
             posibilidad de escribir sus propia decoración programática de la página. Uno de los
             beneficios sería la posibilidad de especificar handlers para eventos dijit.</para>
 
-       <para>Para permitir esto, así como la posibilidad de usar sintaxis declarativa, hay
+        <para>Para permitir esto, así como la posibilidad de usar sintaxis declarativa, hay
             disponibles una serie de métodos estáticos para establecer globamente este
             comportamiento.</para>
 
         <example id="zend.dojo.view.dojo.declarative.usage">
             <title>Especificando el Uso Declarativo y Programático de Dojo</title>
 
-           <para>Para especificar el uso declarativo, simplemente llame al método estático
-                    <methodname>setUseDeclarative()</methodname>:</para>
+            <para>
+                Para especificar el uso declarativo, simplemente llame al método estático
+                <methodname>setUseDeclarative()</methodname>
+                :
+            </para>
 
             <programlisting language="php"><![CDATA[
 Zend_Dojo_View_Helper_Dojo::setUseDeclarative();
 ]]></programlisting>
 
-           <para>Si decide más bien utilizar el uso programático, llame al método estático
-                    <methodname>setUseProgrammatic()</methodname>:</para>
+            <para>
+                Si decide más bien utilizar el uso programático, llame al método estático
+                <methodname>setUseProgrammatic()</methodname>
+                :
+            </para>
 
             <programlisting language="php"><![CDATA[
 Zend_Dojo_View_Helper_Dojo::setUseProgrammatic();
 ]]></programlisting>
 
-           <para>Por último, si quiere crear sus propias normas programáticas, debe especificar el
+            <para>Por último, si quiere crear sus propias normas programáticas, debe especificar el
                 uso programático, pero al pasarle el valor '-1'; en esta situación, no se creará
                 ningún javascript para decorar cualquier dijit usado.</para>
 
@@ -161,19 +209,23 @@ Zend_Dojo_View_Helper_Dojo::setUseProgrammatic(-1);
     <sect3 id="zend.dojo.view.dojo.themes">
         <title>Temas</title>
 
-       <para>Dojo permite la creación de los temas de su dijits (widgets). Puede seleccionar uno
+        <para>Dojo permite la creación de los temas de su dijits (widgets). Puede seleccionar uno
             pasándolo en un path de módulo:</para>
 
         <programlisting language="php"><![CDATA[
 $view->dojo()->addStylesheetModule('dijit.themes.tundra');
 ]]></programlisting>
 
-       <para>La ruta del módulo es descubierta por utilizar el carácter '.' como separador de
+        <para>
+            La ruta del módulo es descubierta por utilizar el carácter '.' como separador de
             directorio y utilizando el último valor en la lista como el nombre del archivo
-                <acronym>CSS</acronym> en ese directorio del tema a usar; en el ejemplo de arriba,
-            Dojo buscará el tema en 'dijit/themes/tundra/tundra.css'.</para>
+            <acronym>CSS</acronym>
+            en ese directorio del tema a usar; en el ejemplo de arriba,
+            Dojo buscará el tema en
+            'dijit/themes/tundra/tundra.css'.
+        </para>
 
-       <para>Cuando se utiliza un tema, es importante recordar pasar la calse del tema a, por lo
+        <para>Cuando se utiliza un tema, es importante recordar pasar la calse del tema a, por lo
             menos un contenedor rodeando cualquier dijits que se utilice; el caso de uso más común
             es pasárselo en el body:</para>
 
@@ -185,220 +237,378 @@ $view->dojo()->addStylesheetModule('dijit.themes.tundra');
     <sect3 id="zend.dojo.view.dojo.layers">
         <title>Usando Layers (Construcciones Personalizadas)</title>
 
-       <para>Por defecto, cuando utilice uns sentencia dojo.require, dojo hará una solicitud de
+        <para>Por defecto, cuando utilice uns sentencia dojo.require, dojo hará una solicitud de
             retorno al servidor para agarrar al archivo javascript apropiado. Si hay muchos dijits
             en el lugar, esto se traduce en muchas peticiones al servidor -- lo que no es óptimo.</para>
 
-       <para>La respuesta de Dojo a esto es proporcionar la capacidad de crear <emphasis>custom
-                builds (construcciones personalizadas</emphasis>. Las contrucciones hacen varias
-            cosas:</para>
+        <para>
+            La respuesta de Dojo a esto es proporcionar la capacidad de crear
+            <emphasis>custom
+                builds (construcciones personalizadas</emphasis>
+            . Las contrucciones hacen varias
+            cosas:
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para>Grupos de archivos necesarios en <emphasis>layers</emphasis>; una capa
-                    (layer) agrupa a todos archivos necesarios en un único archivo JS. (De ahí el
-                    nombre de esta sección.)</para>
+                <para>
+                    Grupos de archivos necesarios en
+                    <emphasis>layers</emphasis>
+                    ; una capa
+                    (layer) agrupa a todos archivos necesarios en un único archivo JS. (De
+                    ahí el
+                    nombre de esta sección.)
+                </para>
             </listitem>
 
             <listitem>
-               <para>"Interns" no son archivos javascript usados por dijits (típicamente, archivos
+                <para>"Interns" no son archivos javascript usados por dijits (típicamente, archivos
                     de plantilla). También están agrupados en el mismo archivo JS como la capa.
                </para>
             </listitem>
 
             <listitem>
-               <para>Pasa el archivo a través de ShrinkSafe, que elimina espacios en blanco y
+                <para>Pasa el archivo a través de ShrinkSafe, que elimina espacios en blanco y
                     comentarios, así como acorta nombres de variables.</para>
             </listitem>
         </itemizedlist>
 
-       <para>Algunos archivos pueden no ser superpuestos, pero el proceso creará una versión
+        <para>Algunos archivos pueden no ser superpuestos, pero el proceso creará una versión
             especial del directorio con la archivo capa y todos los otros archivos. Esto le permite
             tener una distribución reducida adaptada a su sitio o necesidades de aplicación.</para>
 
-       <para>Para usar una capa, el ayudante de vista <methodname>dojo()</methodname> tiene el
-            método <methodname>addLayer()</methodname> para añadir paths de capas requeridas:</para>
+        <para>
+            Para usar una capa, el ayudante de vista
+            <methodname>dojo()</methodname>
+            tiene el
+            método
+            <methodname>addLayer()</methodname>
+            para añadir paths de capas requeridas:
+        </para>
 
         <programlisting language="html"><![CDATA[
 $view->dojo()->addLayer('/js/foo/foo.js');
 ]]></programlisting>
 
-       <para>Para más información sobre la creación de construcciones personalizadas, por favor
-                <ulink
+        <para>
+            Para más información sobre la creación de construcciones personalizadas, por favor
+            <ulink
                 url="http://dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/package-system-and-custom-builds"
-                > consulte la docuemntación de Build de Dojo</ulink>.</para>
+            > consulte la docuemntación de Build de Dojo</ulink>
+            .
+        </para>
     </sect3>
 
     <sect3 id="zend.dojo.view.dojo.methods">
         <title>Métodos Disponibles</title>
 
-       <para>El ayudante de vista <methodname>dojo()</methodname> siempre devuelve una instancia
-            del contenedor del marcador de posición dojo. Ese objeto contenedor dispone de los
-            siguientes métodos:</para>
+        <para>
+            El ayudante de vista
+            <methodname>dojo()</methodname>
+            siempre devuelve una instancia
+            del contenedor del marcador de posición dojo. Ese objeto
+            contenedor dispone de los
+            siguientes métodos:
+        </para>
 
         <itemizedlist>
             <listitem>
-               <para><methodname>setView(Zend_View_Interface $view)</methodname>: establecer una
-                    instancia de vista en el contenedor.</para>
+                <para>
+                    <methodname>setView(Zend_View_Interface $view)</methodname>
+                    : establecer una
+                    instancia de vista en el contenedor.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>enable()</methodname>: habilitar explícitamente la integración de
-                    Dojo.</para>
+                <para>
+                    <methodname>enable()</methodname>
+                    : habilitar explícitamente la integración de
+                    Dojo.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>disable()</methodname>: deshabilitar la integración de
-                    Dojo.</para>
+                <para>
+                    <methodname>disable()</methodname>
+                    : deshabilitar la integración de
+                    Dojo.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>isEnabled()</methodname>: determinar cuándo la integración de Dojo
-                    está habilitada o no.</para>
+                <para>
+                    <methodname>isEnabled()</methodname>
+                    : determinar cuándo la integración de Dojo
+                    está habilitada o no.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>requireModule($module)</methodname>: establecer una sentencia
-                        <methodname>dojo.require</methodname></para>
+                <para>
+                    <methodname>requireModule($module)</methodname>
+                    : establecer una sentencia
+                    <methodname>dojo.require</methodname>
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>getModules()</methodname>: determinar qué módulos han sido
-                    requeridos.</para>
+                <para>
+                    <methodname>getModules()</methodname>
+                    : determinar qué módulos han sido
+                    requeridos.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>registerModulePath($module, $path)</methodname>: registrar un path
-                    de un módulo personalizado de Dojo.</para>
+                <para>
+                    <methodname>registerModulePath($module, $path)</methodname>
+                    : registrar un path
+                    de un módulo personalizado de Dojo.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>getModulePaths()</methodname>: obtener la lista de los paths de
-                    módulos registrados.</para>
+                <para>
+                    <methodname>getModulePaths()</methodname>
+                    : obtener la lista de los paths de
+                    módulos registrados.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>addLayer($path)</methodname>: añadir una capa (construcción
-                    personalizada) del path a utilizar.</para>
+                <para>
+                    <methodname>addLayer($path)</methodname>
+                    : añadir una capa (construcción
+                    personalizada) del path a utilizar.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>getLayers()</methodname>: conseguir una lista de todos los paths
-                    de capas registrados (construcción personalizada).</para>
+                <para>
+                    <methodname>getLayers()</methodname>
+                    : conseguir una lista de todos los paths
+                    de capas registrados (construcción
+                    personalizada).
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>removeLayer($path)</methodname>: eliminar la capa que concuerde
-                    con <methodname>$path</methodname> de la lista de capas registradas
-                    (construcción personalizada).</para>
+                <para>
+                    <methodname>removeLayer($path)</methodname>
+                    : eliminar la capa que concuerde
+                    con
+                    <methodname>$path</methodname>
+                    de la lista de capas registradas
+                    (construcción personalizada).
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>setCdnBase($url)</methodname>: establecer la URL base para un CDN;
-                    típicamente, una de las <classname>Zend_Dojo::CDN_BASE_AOL</classname> o
-                        <classname>Zend_Dojo::CDN_BASE_GOOGLE</classname>, pero sólo necesita ser el
-                    string del URL antes del número de versión.</para>
+                <para>
+                    <methodname>setCdnBase($url)</methodname>
+                    : establecer la URL base para un CDN;
+                    típicamente, una de las
+                    <classname>Zend_Dojo::CDN_BASE_AOL</classname>
+                    o
+                    <classname>Zend_Dojo::CDN_BASE_GOOGLE</classname>
+                    , pero sólo necesita ser el
+                    string del URL antes del número de versión.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>getCdnBase()</methodname>: recuperar el CDN de la url base a
-                    utilizar.</para>
+                <para>
+                    <methodname>getCdnBase()</methodname>
+                    : recuperar el CDN de la url base a
+                    utilizar.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>setCdnVersion($version = null)</methodname>: establecer cuál es la
-                    versión de Dojo a utilizar desde el CDN.</para>
+                <para>
+                    <methodname>setCdnVersion($version = null)</methodname>
+                    : establecer cuál es la
+                    versión de Dojo a utilizar desde el CDN.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>getCdnVersion()</methodname>: recuperar que versión de Dojo será
-                    utilizada desde el CDN.</para>
+                <para>
+                    <methodname>getCdnVersion()</methodname>
+                    : recuperar que versión de Dojo será
+                    utilizada desde el CDN.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>setCdnDojoPath($path)</methodname>: establecer el path relativo a
-                    un archivo dojo.js o dojo.xd.js sobre un CDN; típicamente, uno de los
-                    <constant>Zend_Dojo::CDN_DOJO_PATH_AOL</constant> o
-                    <constant>Zend_Dojo::CDN_DOJO_PATH_GOOGLE</constant>, pero sólo debe ser
-                    el string del path detrás del número de versión.</para>
+                <para>
+                    <methodname>setCdnDojoPath($path)</methodname>
+                    : establecer el path relativo a
+                    un archivo dojo.js o dojo.xd.js sobre un CDN;
+                    típicamente, uno de los
+                    <constant>Zend_Dojo::CDN_DOJO_PATH_AOL</constant>
+                    o
+                    <constant>Zend_Dojo::CDN_DOJO_PATH_GOOGLE</constant>
+                    , pero sólo debe ser
+                    el string del path detrás del número de versión.
+                </para>
             </listitem>
             <listitem>
-               <para><methodname>getCdnDojoPath()</methodname>: recuperar el último segmento del
-                    path del CDN de la url apuntando al archivo dojo.js.</para>
+                <para>
+                    <methodname>getCdnDojoPath()</methodname>
+                    : recuperar el último segmento del
+                    path del CDN de la url apuntando al archivo
+                    dojo.js.
+                </para>
             </listitem>
-            <listitem>
-               <para><methodname>useCdn()</methodname>: decirle al contenedor que utilice el CDN;
-                    implícitamente permite integración.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>setLocalPath($path)</methodname>: decirle al contenedor el path a
-                    una instalación local de Dojo (deberá ser una ruta relativa al servidor, y
-                    contener el propio archivo dojo.js); implícitamente permite integración.</para>
+            <listitem>
+                <para>
+                    <methodname>useCdn()</methodname>
+                    : decirle al contenedor que utilice el CDN;
+                    implícitamente permite integración.
+                </para>
             </listitem>
-            <listitem>
-               <para><methodname>getLocalPath()</methodname>: determinar qué ruta local a Dojo está
-                    siendo utilizada.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>useLocalPath()</methodname>: ¿la integración está utilizando un
-                    path local de Dojo?</para>
-            </listitem>
-            <listitem>
-               <para><methodname>setDjConfig(array $config)</methodname>: conjunto de valores de
-                    configuración dojo/dijit (espera un array asociativo).</para>
-            </listitem>
-            <listitem>
-               <para><methodname>setDjConfigOption($option, $value)</methodname>: establecer un
-                    único valor de configuración para dojo/dijit.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>getDjConfig()</methodname>: obtener todos los valores de
-                    configuración de dojo/dijit.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>getDjConfigOption($option, $default = null)</methodname>:
-                    conseguir un único valor de configuración de dojo/dijit.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>addStylesheetModule($module)</methodname>: agregar una hoja de
-                    estilo sobre la base del tema de un módulo.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>getStylesheetModules()</methodname>: obtener hojas de estilo
-                    registradas como temas de módulos.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>addStylesheet($path)</methodname>: agregar una hoja de estilo
-                    local para su uso con Dojo.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>getStylesheets()</methodname>: obtener hojas de estilo locales
-                    Dojo.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>addOnLoad($spec, $function = null)</methodname>: agregar un lambda
-                    para dojo.onLoad para llamadas. Si se pasa un argumento, se supone que que puede
-                    ser tanto el nombre de una función o dar por terminado javascript. Si se pasan
-                    dos argumentos, el primero se supone que es el nombre de la variable de la
-                    instancia de un objeto y el segundo ya sea un nombre de método en ese objeto o
-                    un cierre a utilizar con ese objeto.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>prependOnLoad($spec, $function = null)</methodname>: exactamente
-                    como <methodname>addOnLoad()</methodname>, excluyendo agregar al principio el
-                    comienzo de onLoad stack.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>getOnLoadActions()</methodname>: recuperar todas las acciones
-                    dojo.onLoad registradas con el contenedor. Esto será un array de arrays.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>onLoadCaptureStart($obj = null)</methodname>: capturar los datos
-                    que se utilizarán como lambda para dojo.onLoad(). Si se provee $obj, los códigos
-                    JS capturados serán considerados un cierre a utilizar con ese objeto
-                    Javascript.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>onLoadCaptureEnd($obj = null)</methodname>: finalizar la captura
-                    de datos para su uso con dojo.onLoad().</para>
-            </listitem>
-            <listitem>
-               <para><methodname>javascriptCaptureStart()</methodname>: captura javascript
-                    arbitrario para ser incluido en Dojo JS (onLoad, require, etc.
-                    statements).</para>
-            </listitem>
-            <listitem>
-               <para><methodname>javascriptCaptureEnd()</methodname>: finalizar la captura de
-                    javascript.</para>
-            </listitem>
-            <listitem>
-               <para><methodname>__toString()</methodname>: emitir el contenedor a un string;
-                    muestra todo el estilo <acronym>HTML</acronym> y elementos del script.</para>
+            <listitem>
+                <para>
+                    <methodname>setLocalPath($path)</methodname>
+                    : decirle al contenedor el path a
+                    una instalación local de Dojo (deberá ser una
+                    ruta relativa al servidor, y
+                    contener el propio archivo dojo.js); implícitamente
+                    permite integración.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>getLocalPath()</methodname>
+                    : determinar qué ruta local a Dojo está
+                    siendo utilizada.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>useLocalPath()</methodname>
+                    : ¿la integración está utilizando un
+                    path local de Dojo?
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>setDjConfig(array $config)</methodname>
+                    : conjunto de valores de
+                    configuración dojo/dijit (espera un array asociativo).
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>setDjConfigOption($option, $value)</methodname>
+                    : establecer un
+                    único valor de configuración para dojo/dijit.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>getDjConfig()</methodname>
+                    : obtener todos los valores de
+                    configuración de dojo/dijit.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>getDjConfigOption($option, $default = null)</methodname>
+                    :
+                    conseguir un único valor de configuración de dojo/dijit.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>addStylesheetModule($module)</methodname>
+                    : agregar una hoja de
+                    estilo sobre la base del tema de un módulo.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>getStylesheetModules()</methodname>
+                    : obtener hojas de estilo
+                    registradas como temas de módulos.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>addStylesheet($path)</methodname>
+                    : agregar una hoja de estilo
+                    local para su uso con Dojo.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>getStylesheets()</methodname>
+                    : obtener hojas de estilo locales
+                    Dojo.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>addOnLoad($spec, $function = null)</methodname>
+                    : agregar un lambda
+                    para dojo.onLoad para llamadas. Si se pasa un argumento, se
+                    supone que que puede
+                    ser tanto el nombre de una función o dar por terminado
+                    javascript. Si se pasan
+                    dos argumentos, el primero se supone que es el nombre de
+                    la variable de la
+                    instancia de un objeto y el segundo ya sea un nombre de método
+                    en ese objeto o
+                    un cierre a utilizar con ese objeto.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>prependOnLoad($spec, $function = null)</methodname>
+                    : exactamente
+                    como
+                    <methodname>addOnLoad()</methodname>
+                    , excluyendo agregar al principio el
+                    comienzo de onLoad stack.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>getOnLoadActions()</methodname>
+                    : recuperar todas las acciones
+                    dojo.onLoad registradas con el contenedor. Esto
+                    será un array de arrays.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>onLoadCaptureStart($obj = null)</methodname>
+                    : capturar los datos
+                    que se utilizarán como lambda para dojo.onLoad(). Si se
+                    provee $obj, los códigos
+                    JS capturados serán considerados un cierre a utilizar
+                    con ese objeto
+                    Javascript.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>onLoadCaptureEnd($obj = null)</methodname>
+                    : finalizar la captura
+                    de datos para su uso con dojo.onLoad().
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>javascriptCaptureStart()</methodname>
+                    : captura javascript
+                    arbitrario para ser incluido en Dojo JS (onLoad, require,
+                    etc.
+                    statements).
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>javascriptCaptureEnd()</methodname>
+                    : finalizar la captura de
+                    javascript.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <methodname>__toString()</methodname>
+                    : emitir el contenedor a un string;
+                    muestra todo el estilo
+                    <acronym>HTML</acronym>
+                    y elementos del script.
+                </para>
             </listitem>
         </itemizedlist>
     </sect3>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 553 - 300
documentation/manual/es/module_specs/Zend_Dojo-View-Helpers.xml


+ 23 - 10
documentation/manual/es/module_specs/Zend_Dojo-View.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17133 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17133 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.dojo.view" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Ayudantes de Dojo View</title>
 
@@ -9,25 +9,38 @@
     <itemizedlist>
         <listitem>
             <para>
-                <emphasis>dojo():</emphasis> configura el medio ambiente de Dojo para su página,
-                incluyendo valores de configuración de Dojo, paths de módulos personalizados,
-                sentencias de requerimientos de módulos, temas de hojas de estilo, uso de CDN, y
-                más.</para>
+                <emphasis>dojo():</emphasis>
+                configura el medio ambiente de Dojo para su página,
+                incluyendo valores de
+                configuración de Dojo, paths de módulos personalizados,
+                sentencias de requerimientos
+                de módulos, temas de hojas de estilo, uso de CDN, y
+                más.
+            </para>
         </listitem>
     </itemizedlist>
 
     <example id="zend.dojo.view.setup">
         <title>Usando los Ayudantes de Dojo View</title>
 
-        <para>Para utilizar los ayudantes de vista de Dojo, necesitará decirle a un objeto vista
-            dónde encontrarlos. Puede hacerlo llamando a <methodname>addHelperPath()</methodname>:</para>
+        <para>
+            Para utilizar los ayudantes de vista de Dojo, necesitará decirle a un objeto vista
+            dónde
+            encontrarlos. Puede hacerlo llamando a
+            <methodname>addHelperPath()</methodname>
+            :
+        </para>
 
         <programlisting language="php"><![CDATA[
 $view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');
 ]]></programlisting>
 
-        <para>Alternativamente, puede usar el método de <classname>Zend_Dojo</classname>
-            <methodname>enableView()</methodname> para que haga el trabajo por usted:</para>
+        <para>
+            Alternativamente, puede usar el método de
+            <classname>Zend_Dojo</classname>
+            <methodname>enableView()</methodname>
+            para que haga el trabajo por usted:
+        </para>
 
         <programlisting language="php"><![CDATA[
 Zend_Dojo::enableView($view);

+ 31 - 14
documentation/manual/es/module_specs/Zend_Dojo.xml

@@ -1,12 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17987 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17987 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.dojo.introduction">
     <title>Introducción</title>
 
-    <para>Zend Framework trae incorporado <ulink url="http://dojotoolkit.org">Dojo Toolkit</ulink>
+    <para>
+        Zend Framework trae incorporado
+        <ulink url="http://dojotoolkit.org">Dojo Toolkit</ulink>
         para brindar apoyo out-of-the-box al desarrollo de aplicaciones "ricas de internet". Los
-        puntos de integración con Dojo incluyen:</para>
+        puntos de integración con Dojo incluyen:
+    </para>
 
     <itemizedlist>
         <listitem>
@@ -19,19 +22,33 @@
             <para>Ayudante de vista para ayudar a establecer el medio ambiente de Dojo</para>
         </listitem>
         <listitem>
-            <para>Ayudantes de Dijit-specific <classname>Zend_View</classname></para>
+            <para>
+                Ayudantes de Dijit-specific
+                <classname>Zend_View</classname>
+            </para>
         </listitem>
         <listitem>
-            <para>Elementos y decoradores de Dijit-specific <classname>Zend_Form</classname></para>
+            <para>
+                Elementos y decoradores de Dijit-specific
+                <classname>Zend_Form</classname>
+            </para>
         </listitem>
     </itemizedlist>
 
-    <para>La propia distribución de Dojo puede encontrarse en el directorio
-        <filename>externals/dojo/</filename> de la distribución de Zend Framework. Esta es
-        una distribución fuente, que incluye completamente los fuentes javascript de Dojo, unidades
-        de pruebas, y constructores de herramientas. Puede hacer un symlink a su directorio
-        javascript, copiarlo, o utilizarlo como herramienta para crear sus propias construcciones
-        personalizadas a fin de incluirlas en su proyecto. Alternativamente, puede usar una de las
-        Content Delivery Networks que ofrece Dojo (Zend Framework apoya tanto el AOL CDN oficial así como el
-        Google CDN).</para>
+    <para>
+        La propia distribución de Dojo puede encontrarse en el directorio
+        <filename>externals/dojo/</filename>
+        de la distribución de Zend Framework. Esta es
+        una distribución fuente, que incluye
+        completamente los fuentes javascript de Dojo, unidades
+        de pruebas, y constructores de
+        herramientas. Puede hacer un symlink a su directorio
+        javascript, copiarlo, o utilizarlo como
+        herramienta para crear sus propias construcciones
+        personalizadas a fin de incluirlas en su
+        proyecto. Alternativamente, puede usar una de las
+        Content Delivery Networks que ofrece Dojo
+        (Zend Framework apoya tanto el AOL CDN oficial así como el
+        Google CDN).
+    </para>
 </sect1>

+ 12 - 7
documentation/manual/es/module_specs/Zend_Dom.xml

@@ -1,16 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17175 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17175 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.dom.introduction">
     <title>Introducción</title>
 
     <para>
-        <classname>Zend_Dom</classname> provee herramientas para trabajar con documentos y
-        estructuras DOM. Actualmente, ofrecemos <classname>Zend_Dom_Query</classname>, el cual
+        <classname>Zend_Dom</classname>
+        provee herramientas para trabajar con documentos y
+        estructuras DOM. Actualmente, ofrecemos
+        <classname>Zend_Dom_Query</classname>
+        , el cual
         provee una interfaz unificada para consultar documentos DOM utilizando selectores
-        XPath y <acronym>CSS</acronym>.
-   </para>
+        XPath y
+        <acronym>CSS</acronym>
+        .
+    </para>
 </sect1>
-<!--
+    <!--
 vim:se ts=4 sw=4 et:
 -->

+ 22 - 13
documentation/manual/es/module_specs/Zend_Exception.xml

@@ -1,19 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 19661 -->
-<!-- Reviewed: no -->
-<!-- Traducir todo de nuevo-->
+    <!-- EN-Revision: 19661 -->
+    <!-- Reviewed: no -->
+    <!-- Traducir todo de nuevo-->
 <sect1 id="zend.exception.using">
 
     <title>Uso de Excepciones</title>
 
     <para>
-        <classname>Zend_Exception</classname> es simplemente la clase base para todos los
-        las excepciones lanzadas dentro de Zend Framework.</para>
+        <classname>Zend_Exception</classname>
+        es simplemente la clase base para todos los
+        las excepciones lanzadas dentro de Zend
+        Framework.
+    </para>
 
     <example id="zend.exception.using.example">
         <title>Capturando una Excepcion</title>
         <para>
-        El siguiente  listado de código muestra cómo capturar una excepción
+            El siguiente listado de c�digo muestra c�mo capturar una excepci�n
             lanzado en Zend Framework:</para>
         <programlisting language="php"><![CDATA[
 try {
@@ -28,14 +31,20 @@ try {
 ]]></programlisting>
     </example>
     <para>
-        <classname>Zend_Exception</classname> can be used as a catch-all
-        exception class in a catch block to trap all exceptions thrown by Zend
+        <classname>Zend_Exception</classname>
+        can be used as a catch-all
+        exception class in a catch block to trap all exceptions thrown by
+        Zend
         Framework classes. This can be useful when the program can not recover
-        by catching a specific exception type.</para>
+        by catching a
+        specific exception type.
+    </para>
 
-<para>La documentación de cada componente  y clase de Zend Framework
-        contienen información específica sobre los métodos que generan excepciones, la
-        circunstancias en que provocan una excepción a ser lanzado,
-y los diferentes tipos de excepción que puede ser lanzadas. </ para>
+    <para>La documentaci�n de cada componente y clase de Zend Framework
+        contienen informaci�n
+        espec�fica sobre los m�todos que generan excepciones, la
+        circunstancias en que provocan una
+        excepci�n a ser lanzado,
+        y los diferentes tipos de excepci�n que puede ser lanzadas. </ para>
 
 </sect1>

+ 184 - 74
documentation/manual/es/module_specs/Zend_Filter.xml

@@ -1,68 +1,135 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 19419 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 19419 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.filter.introduction">
 
     <title>Introducción</title>
 
-    <para>El componente <classname>Zend_Filter</classname> proporciona un conjunto de filtros de
-        datos comúnmente necesarios. También proporciona un sencillo mecanismo de encadenar varios
-        filtros que se puedan aplicar a un solo dato en un orden definido por el usuario.</para>
+    <para>
+        El componente
+        <classname>Zend_Filter</classname>
+        proporciona un conjunto de filtros de
+        datos comúnmente necesarios. También proporciona un
+        sencillo mecanismo de encadenar varios
+        filtros que se puedan aplicar a un solo dato en un
+        orden definido por el usuario.
+    </para>
 
     <sect2 id="zend.filter.introduction.definition">
         <title>¿Qué es un filtro?</title>
         <para>En el mundo físico, un filtro se suele utilizar para eliminar partes no deseadas de
-            lo ingresado, y la vez lo ingresado pasa a través de un filtro de salida (por ejemplo,
-            el café). En este caso, un filtro es un operador que devuelve una parte de los datos de
+            lo
+            ingresado, y la vez lo ingresado pasa a través de un filtro de salida (por ejemplo,
+            el
+            café). En este caso, un filtro es un operador que devuelve una parte de los datos de
             entrada. Este tipo de filtro es útil para aplicaciones web, para la supresión de
             entradas ilegales y/o que no se ajustan, eliminación de los espacios en blanco
             innecesarios, etc</para>
-        <para>This basic definition of a filter may be extended to include generalized
-            transformations upon input. A common transformation applied in web applications is the
-            escaping of <acronym>HTML</acronym> entities. For example, if a form field is automatically populated with
-            untrusted input (e.g., from a web browser), this value should either be free of <acronym>HTML</acronym>
-            entities or contain only escaped <acronym>HTML</acronym> entities, in order to prevent undesired behavior
-            and security vulnerabilities. To meet this requirement, <acronym>HTML</acronym> entities that appear in the
-            input must either be removed or escaped. Of course, which approach is more appropriate
-            depends on the situation. A filter that removes the <acronym>HTML</acronym> entities operates within the
-            scope of the first definition of filter - an operator that produces a subset of the
-            input. A filter that escapes the <acronym>HTML</acronym> entities, however, transforms the input (e.g.,
-                "<code>&amp;</code>" is transformed to "<code>&amp;amp;</code>"). Supporting
-            such use cases for web developers is important, and "to filter," in the context of using
-                <classname>Zend_Filter</classname>, means to perform some transformations upon input
-            data.</para> Esta definición básica de un filtro puede ser extendido para incluir
-        transformaciones generalizadas sobre la entrada. Una transformación común requerida en las
-        aplicaciones web es la de escapar las entidades <acronym>HTML</acronym>. Por ejemplo, si un campo del
-        formulario es completado automáticamente y contiene datos no verificados (por ejemplo, datos
-        ingresados desde un navegador web), este valor debe estar libre de las entidades <acronym>HTML</acronym> o sólo
-        contener entidades <acronym>HTML</acronym> de forma escapada, a fin de evitar comportamientos no deseados y
-        vulnerabilidades de seguridad. Para cumplir este requerimiento, las entidades <acronym>HTML</acronym> que
+        <para>
+            This basic definition of a filter may be extended to include generalized
+            transformations
+            upon input. A common transformation applied in web applications is the
+            escaping of
+            <acronym>HTML</acronym>
+            entities. For example, if a form field is automatically populated with
+            untrusted input
+            (e.g., from a web browser), this value should either be free of
+            <acronym>HTML</acronym>
+            entities or contain only escaped
+            <acronym>HTML</acronym>
+            entities, in order to prevent undesired behavior
+            and security vulnerabilities. To meet
+            this requirement,
+            <acronym>HTML</acronym>
+            entities that appear in the
+            input must either be removed or escaped. Of course, which
+            approach is more appropriate
+            depends on the situation. A filter that removes the
+            <acronym>HTML</acronym>
+            entities operates within the
+            scope of the first definition of filter - an operator that
+            produces a subset of the
+            input. A filter that escapes the
+            <acronym>HTML</acronym>
+            entities, however, transforms the input (e.g.,
+            "
+            <code>&amp;</code>
+            " is transformed to "
+            <code>&amp;amp;</code>
+            "). Supporting
+            such use cases for web developers is important, and "to filter," in the
+            context of using
+            <classname>Zend_Filter</classname>
+            , means to perform some transformations upon input
+            data.
+        </para>
+        Esta definición básica de un filtro puede ser extendido para incluir
+        transformaciones
+        generalizadas sobre la entrada. Una transformación común requerida en las
+        aplicaciones web es
+        la de escapar las entidades
+        <acronym>HTML</acronym>
+        . Por ejemplo, si un campo del
+        formulario es completado automáticamente y contiene datos no
+        verificados (por ejemplo, datos
+        ingresados desde un navegador web), este valor debe estar
+        libre de las entidades
+        <acronym>HTML</acronym>
+        o sólo
+        contener entidades
+        <acronym>HTML</acronym>
+        de forma escapada, a fin de evitar comportamientos no deseados y
+        vulnerabilidades de
+        seguridad. Para cumplir este requerimiento, las entidades
+        <acronym>HTML</acronym>
+        que
         aparecen en los datos introducidos deben ser suprimidos o escapados. Por supuesto, el
         enfoque más adecuado depende del contexto y de la situción. Un filtro que quita las
-        entidades <acronym>HTML</acronym> funciona dentro del ámbito o alcance de la primera definición del filtro - un
-        operador que produce un subconjunto de la entrada. Un filtro que escapa a las entidades
-        <acronym>HTML</acronym>, sin embargo, transforma la entrada (por ejemplo, "<code> &amp;</code>" se
-        transforma en "<code> &amp;amp;</code>"). El Apoyo a los casos de uso como para la web
-        los desarrolladores es importante, y "filtrar", en el contexto de la utilización de
-            <classname> Zend_Filter </classname>, los medios para realizar algunas transformaciones
-        en los datos de entrada. </sect2>
+        entidades
+        <acronym>HTML</acronym>
+        funciona dentro del ámbito o alcance de la primera definición del filtro - un
+        operador que
+        produce un subconjunto de la entrada. Un filtro que escapa a las entidades
+        <acronym>HTML</acronym>
+        , sin embargo, transforma la entrada (por ejemplo, "
+        <code> &amp;</code>
+        " se
+        transforma en "
+        <code> &amp;amp;</code>
+        "). El Apoyo a los casos de uso como para la web
+        los desarrolladores es importante, y
+        "filtrar", en el contexto de la utilización de
+        <classname> Zend_Filter </classname>
+        , los medios para realizar algunas transformaciones
+        en los datos de entrada.
+    </sect2>
 
     <sect2 id="zend.filter.introduction.using">
 
         <title>Uso básico de los filtros</title>
 
-        <para>Having this filter definition established provides the foundation for
-                <classname>Zend_Filter_Interface</classname>, which requires a single method named
-                <methodname>filter()</methodname> to be implemented by a filter class.</para>
+        <para>
+            Having this filter definition established provides the foundation for
+            <classname>Zend_Filter_Interface</classname>
+            , which requires a single method named
+            <methodname>filter()</methodname>
+            to be implemented by a filter class.
+        </para>
 
-        <para>Following is a basic example of using a filter upon two input data, the ampersand
-                (<code>&amp;</code>) and double quote (<code>&quot;</code>) characters: <programlisting language="php"><![CDATA[
+        <para>
+            Following is a basic example of using a filter upon two input data, the ampersand
+            (
+            <code>&amp;</code>
+            ) and double quote (
+            <code>&quot;</code>
+            ) characters:
+            <programlisting language="php"><![CDATA[
 $htmlEntities = new Zend_Filter_HtmlEntities();
 
 echo $htmlEntities->filter('&'); // &amp;
 echo $htmlEntities->filter('"'); // &quot;
 ]]></programlisting>
-       </para>
+        </para>
 
     </sect2>
 
@@ -70,41 +137,69 @@ echo $htmlEntities->filter('"'); // &quot;
 
         <title> Usando el método estático staticFilter()</title>
 
-        <para>If it is inconvenient to load a given filter class and create an instance of the
-            filter, you can use the static method
-                <methodname>Zend_Filter::filterStatic()</methodname> as an alternative invocation
-            style. The first argument of this method is a data input value, that you would pass to
-            the <methodname>filter()</methodname> method. The second argument is a string, which
-            corresponds to the basename of the filter class, relative to the Zend_Filter namespace.
-            The <methodname>staticFilter()</methodname> method automatically loads the class,
-            creates an instance, and applies the <methodname>filter()</methodname> method to the
-            data input. <programlisting language="php"><![CDATA[
+        <para>
+            If it is inconvenient to load a given filter class and create an instance of the
+            filter,
+            you can use the static method
+            <methodname>Zend_Filter::filterStatic()</methodname>
+            as an alternative invocation
+            style. The first argument of this method is a data input
+            value, that you would pass to
+            the
+            <methodname>filter()</methodname>
+            method. The second argument is a string, which
+            corresponds to the basename of the filter
+            class, relative to the Zend_Filter namespace.
+            The
+            <methodname>staticFilter()</methodname>
+            method automatically loads the class,
+            creates an instance, and applies the
+            <methodname>filter()</methodname>
+            method to the
+            data input.
+            <programlisting language="php"><![CDATA[
 echo Zend_Filter::filterStatic('&', 'HtmlEntities');
 ]]></programlisting>
-       </para>
+        </para>
 
-        <para>You can also pass an array of constructor arguments, if they are needed for the
-            filter class. <programlisting language="php"><![CDATA[
+        <para>
+            You can also pass an array of constructor arguments, if they are needed for the
+            filter
+            class.
+            <programlisting language="php"><![CDATA[
 echo Zend_Filter::filterStatic('"', 'HtmlEntities', array(ENT_QUOTES));
 ]]></programlisting>
-       </para>
+        </para>
 
-        <para>The static usage can be convenient for invoking a filter ad hoc, but if you have the
+        <para>
+            The static usage can be convenient for invoking a filter ad hoc, but if you have the
             need to run a filter for multiple inputs, it's more efficient to follow the first
             example above, creating an instance of the filter object and calling its
-                <methodname>filter()</methodname> method.</para>
+            <methodname>filter()</methodname>
+            method.
+        </para>
 
-        <para>Also, the <classname>Zend_Filter_Input</classname> class allows you to instantiate
-            and run multiple filter and validator classes on demand to process sets of input data.
-            See <xref linkend="zend.filter.input"/>.</para>
+        <para>
+            Also, the
+            <classname>Zend_Filter_Input</classname>
+            class allows you to instantiate
+            and run multiple filter and validator classes on demand
+            to process sets of input data.
+            See
+            <xref linkend="zend.filter.input"/>
+            .
+        </para>
 
         <sect3 id="zend.filter.introduction.static.namespaces">
 
             <title>Namespaces</title>
 
-            <para>When working with self defined filters you can give a forth parameter to
-                    <methodname>Zend_Filter::filterStatic()</methodname> which is the namespace
-                where your filter can be found.</para>
+            <para>
+                When working with self defined filters you can give a forth parameter to
+                <methodname>Zend_Filter::filterStatic()</methodname>
+                which is the namespace
+                where your filter can be found.
+            </para>
 
             <programlisting language="php"><![CDATA[
 echo Zend_Filter::filterStatic(
@@ -116,10 +211,15 @@ echo Zend_Filter::filterStatic(
 ]]></programlisting>
 
             <para>
-                <classname>Zend_Filter</classname> allows also to set namespaces as default. This
-                means that you can set them once in your bootstrap and have not to give them again
-                for each call of <methodname>Zend_Filter::filterStatic()</methodname>. The following
-                code snippet is identical to the above one.</para>
+                <classname>Zend_Filter</classname>
+                allows also to set namespaces as default. This
+                means that you can set them once in
+                your bootstrap and have not to give them again
+                for each call of
+                <methodname>Zend_Filter::filterStatic()</methodname>
+                . The following
+                code snippet is identical to the above one.
+            </para>
 
             <programlisting language="php"><![CDATA[
 Zend_Filter::setDefaultNamespaces(array('FirstNamespace', 'SecondNamespace'));
@@ -135,33 +235,43 @@ echo Zend_Filter::filterStatic('"', 'OtherFilter', array($parameters));
                     <para>
                         <emphasis>
                             <methodname>Zend_Filter::getDefaultNamespaces()</methodname>
-                        </emphasis>: Returns all set default namespaces as array.</para>
+                        </emphasis>
+                        : Returns all set default namespaces as array.
+                    </para>
                 </listitem>
 
                 <listitem>
                     <para>
                         <emphasis>
                             <methodname>Zend_Filter::setDefaultNamespaces()</methodname>
-                        </emphasis>: Sets new default namespaces and overrides any previous set. It
-                        accepts eighter a string for a single namespace of an array for multiple
-                        namespaces.</para>
+                        </emphasis>
+                        : Sets new default namespaces and overrides any previous set. It
+                        accepts
+                        eighter a string for a single namespace of an array for multiple
+                        namespaces.
+                    </para>
                 </listitem>
 
                 <listitem>
                     <para>
                         <emphasis>
                             <methodname>Zend_Filter::addDefaultNamespaces()</methodname>
-                        </emphasis>: Adds additional namespaces to already set ones. It accepts
-                        eighter a string for a single namespace of an array for multiple namespaces.
-                   </para>
+                        </emphasis>
+                        : Adds additional namespaces to already set ones. It accepts
+                        eighter a string
+                        for a single namespace of an array for multiple namespaces.
+                    </para>
                 </listitem>
 
                 <listitem>
                     <para>
                         <emphasis>
                             <methodname>Zend_Filter::hasDefaultNamespaces()</methodname>
-                        </emphasis>: Returns true when one or more default namespaces are set, and
-                        false when no default namespaces are set.</para>
+                        </emphasis>
+                        : Returns true when one or more default namespaces are set, and
+                        false when no
+                        default namespaces are set.
+                    </para>
                 </listitem>
             </itemizedlist>
         </sect3>

+ 198 - 96
documentation/manual/es/module_specs/Zend_Form-Advanced.xml

@@ -1,23 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17987 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17987 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.form.advanced">
     <title>Uso avanzado de Zend_Form</title>
 
     <para>
-        <classname>Zend_Form</classname> tiene una funcional riqueza, muchas de
-        ellas dirigidas a expertos desarroladores. Este capítulo esta dirigido a
-        documentar algunas de las funcionalidades con ejemplos y casos de uso.</para>
+        <classname>Zend_Form</classname>
+        tiene una funcional riqueza, muchas de
+        ellas dirigidas a expertos desarroladores. Este
+        capítulo esta dirigido a
+        documentar algunas de las funcionalidades con ejemplos y casos de
+        uso.
+    </para>
 
     <sect2 id="zend.form.advanced.arrayNotation">
         <title>Notación de array</title>
 
         <para>A muchos desarroladores web experimentados les gusta agrupar
-            elementos relacionados de formulario usando notación de array en los
-            nombres del elemento. Por ejemplo, si se tienen dos direcciones que
-            se desean capturar, un envío y una dirección de facturación, se
+            elementos relacionados de
+            formulario usando notación de array en los
+            nombres del elemento. Por ejemplo, si se
+            tienen dos direcciones que
+            se desean capturar, un envío y una dirección de facturación,
+            se
             pueden tener elementos idénticos; agrupándolos en un array se puede
-            asegurar que son capturados por separado. Nótese el siguiente
+            asegurar que son
+            capturados por separado. Nótese el siguiente
             formulario por ejemplo:</para>
 
         <programlisting language="html"><![CDATA[
@@ -73,8 +81,10 @@
 ]]></programlisting>
 
         <para>En este ejemplo, la facturación y la dirección de envío contienen
-            algunos campos idénticos, eso significa que uno puede sobrescribir
-            al otro. Nosotros podemos resolver esta solución usando una notación
+            algunos campos
+            idénticos, eso significa que uno puede sobrescribir
+            al otro. Nosotros podemos resolver
+            esta solución usando una notación
             de array:</para>
 
         <programlisting language="html"><![CDATA[
@@ -140,93 +150,142 @@
 ]]></programlisting>
 
         <para>En el ejemplo anterior, obtenemos direcciones separadas. En el
-            formulario sometido, ahora tenemos tres elementos, 'guardar'
-            elemento para someterlo, y dos arrays, 'envio' y 'cuenta', cada uno
+            formulario sometido,
+            ahora tenemos tres elementos, 'guardar'
+            elemento para someterlo, y dos arrays, 'envio' y
+            'cuenta', cada uno
             con llaves para los variados elementos.</para>
 
         <para>
-            <classname>Zend_Form</classname> intenta automatizar este proceso
-            con los <link linkend="zend.form.forms.subforms"
-                >subformularios</link>. Por defecto, los subformularios son
-            generados usando la notación de array como se muestra en el anterior
-            formulario <acronym>HTML</acronym> listado completo con identificadores. El nombre del
-            array esta basado en el nombre del subformulario, con las llaves
-            basados en los elementos contenidos en el subformulario. Los
+            <classname>Zend_Form</classname>
+            intenta automatizar este proceso
+            con los
+            <link linkend="zend.form.forms.subforms">subformularios</link>
+            . Por defecto, los subformularios son
+            generados usando la notación de array como se
+            muestra en el anterior
+            formulario
+            <acronym>HTML</acronym>
+            listado completo con identificadores. El nombre del
+            array esta basado en el nombre del
+            subformulario, con las llaves
+            basados en los elementos contenidos en el subformulario.
+            Los
             subformularios pueder ser anidados arbitrariamente, y esto puede
-            crear arrays anidados que reflejan la estructura. Adicionalmente,
-            las validaciones rutinarias en <classname>Zend_Form</classname>
+            crear arrays anidados
+            que reflejan la estructura. Adicionalmente,
+            las validaciones rutinarias en
+            <classname>Zend_Form</classname>
             respetan la estructura del array, asegurando que sus formularios
-            sean validados correctamente, no importa cuan arbitrariamente
-            anidados esten los subformularios. No se necesita hacer nada para
-            beneficiarse; éste comportamiento esta activo por defecto.</para>
+            sean validados
+            correctamente, no importa cuan arbitrariamente
+            anidados esten los subformularios. No se
+            necesita hacer nada para
+            beneficiarse; éste comportamiento esta activo por defecto.
+        </para>
 
         <para>Adicionalmente, existen facilidades que le permiten activar
-            condicionalmente la notación de un array, así como también
-            especificar el específico array al cual un elemento o coleccion
+            condicionalmente la
+            notación de un array, así como también
+            especificar el específico array al cual un
+            elemento o coleccion
             pertenece:</para>
 
         <itemizedlist>
             <listitem>
                 <para>
-                    <methodname>Zend_Form::setIsArray($flag)</methodname>:
+                    <methodname>Zend_Form::setIsArray($flag)</methodname>
+                    :
                     Definiendo la bandera a verdadero, se puede indicar que un
-                    formulario entero debería ser tratado como un array. Por
-                    defecto, el nombre del formulario será usado como el nombre
+                    formulario entero
+                    debería ser tratado como un array. Por
+                    defecto, el nombre del formulario será
+                    usado como el nombre
                     del array, a no ser que
-                        <methodname>setElementsBelongTo()</methodname> haya sido
+                    <methodname>setElementsBelongTo()</methodname>
+                    haya sido
                     llamado. Si el formulario no tiene un nombre específico, o
-                    si <methodname>setElementsBelongTo()</methodname> no ha sido
+                    si
+                    <methodname>setElementsBelongTo()</methodname>
+                    no ha sido
                     definido, esta bandera será ignorada (como cuando no hay
-                    nombre del array al cual los elementos puedan pertenecer).</para>
+                    nombre del
+                    array al cual los elementos puedan pertenecer).
+                </para>
 
-                <para>Se deberá determinar si un formulario está siendo tratado
-                    como un array usando el accesor
-                        <methodname>isArray()</methodname>.</para>
+                <para>
+                    Se deberá determinar si un formulario está siendo tratado
+                    como un array usando el
+                    accesor
+                    <methodname>isArray()</methodname>
+                    .
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>Zend_Form::setElementsBelongTo($array)</methodname>:
+                    <methodname>Zend_Form::setElementsBelongTo($array)</methodname>
+                    :
                     Usando este método, se puede especificar el nombre de un
-                    array al cual todos los elementos del formulario pertenecen.
-                    Se puede determinar el nombre usando el accesor
-                        <methodname>getElementsBelongTo()</methodname>.</para>
+                    array al cual todos los
+                    elementos del formulario pertenecen.
+                    Se puede determinar el nombre usando el
+                    accesor
+                    <methodname>getElementsBelongTo()</methodname>
+                    .
+                </para>
             </listitem>
         </itemizedlist>
 
-        <para>Adicionalmente, a nivel del elemento, se pueden especificar
-            elementos individuales que puedan pertenecer a arrays particulares
+        <para>
+            Adicionalmente, a nivel del elemento, se pueden especificar
+            elementos individuales que
+            puedan pertenecer a arrays particulares
             usando el método
-                <methodname>Zend_Form_Element::setBelongsTo()</methodname>. Para
+            <methodname>Zend_Form_Element::setBelongsTo()</methodname>
+            . Para
             descubrir el valor que tiene -- sea o no sea definido explícitamente
-            o implícitamente a través del formulario -- se puede usar el accesor
-                <methodname>getBelongsTo()</methodname>.</para>
+            o
+            implícitamente a través del formulario -- se puede usar el accesor
+            <methodname>getBelongsTo()</methodname>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.form.advanced.multiPage">
         <title>Formularios Multi-Página</title>
 
-        <para>Actualmente, los formularios multi-página no están oficialmente
-            soportados en <classname>Zend_Form</classname>; sin embargo, la
+        <para>
+            Actualmente, los formularios multi-página no están oficialmente
+            soportados en
+            <classname>Zend_Form</classname>
+            ; sin embargo, la
             mayoría del soporte para implementarlos está disponible y puede ser
-            utilizado con algunos retoques.</para>
+            utilizado con algunos retoques.
+        </para>
 
         <para>La clave para crear fomrularios multi-página es utilizar
-            subformularios, pero solo para mostrar un solo subformulario por
-            página. Esto le permite someter un solo subformulario a la vez y
+            subformularios, pero solo para
+            mostrar un solo subformulario por
+            página. Esto le permite someter un solo subformulario a
+            la vez y
             validarlo, pero no procesar el formulario hasta que todos los
-            subformularios esten completos.</para>
+            subformularios
+            esten completos.</para>
 
         <example id="zend.form.advanced.multiPage.registration">
             <title>Ejemplo de formulario de registro</title>
             <para>Vamos a usar un formulario de registro como ejemplo. Para
-                nuestros propósitos, queremos capturar el nombre del usuario y
-                la contraseña en la primera página, después la información del
+                nuestros propósitos,
+                queremos capturar el nombre del usuario y
+                la contraseña en la primera página, después
+                la información del
                 usuario -- nombre, apellido, y ubicación -- y finalmente
                 permitirles decidir qué lista de correo, si desean suscribirse.</para>
 
             <para>Primero, vamos a crear nuestro propio formulario, y definir
-                varios subformularios dentro del mismo:</para>
+                varios subformularios
+                dentro del mismo:</para>
 
             <programlisting language="php"><![CDATA[
 class My_Form_Registration extends Zend_Form
@@ -330,12 +389,16 @@ class My_Form_Registration extends Zend_Form
 ]]></programlisting>
 
             <para>Note que no hay botones de enviar, y que ni hemos hecho nada
-                con los decoradores de subformularios -- lo que significa que
-                por defecto serán desplegados como campos. Necesitaremos hacer
+                con los decoradores de
+                subformularios -- lo que significa que
+                por defecto serán desplegados como campos.
+                Necesitaremos hacer
                 algo con ellos mientras desplegamos cada subformulario
                 individualmente, y añadir botones de manera que podamos
-                procesarlos realmente -- el cual requerira las propiedades
-                acción y método. Vamos a añadir algunos andamios a nuestras
+                procesarlos realmente -- el
+                cual requerira las propiedades
+                acción y método. Vamos a añadir algunos andamios a
+                nuestras
                 clases para proveer esa información:</para>
 
             <programlisting language="php"><![CDATA[
@@ -416,19 +479,27 @@ class My_Form_Registration extends Zend_Form
 }
 ]]></programlisting>
 
-            <para>Siguiente, necesitamos añadir andamios a nuestro action
-                controller, y tener varias consideraciones. Primero, necesitamos
-                asegurar que persiste la información del formulario entre los
+            <para>
+                Siguiente, necesitamos añadir andamios a nuestro action
+                controller, y tener varias
+                consideraciones. Primero, necesitamos
+                asegurar que persiste la información del
+                formulario entre los
                 requerimientos, de esa manera determinar cuándo terminar.
                 Segundo, necesitamos alguna lógica para determinar qué segmentos
-                del formulario han sido sometidos, y qué subformulario mostrar
+                del formulario han
+                sido sometidos, y qué subformulario mostrar
                 de acuerdo a la información. Usaremos
-                    <classname>Zend_Session_Namespace</classname> para persistir
+                <classname>Zend_Session_Namespace</classname>
+                para persistir
                 la información, el cual nos ayudará a responder la pregunta de
-                qué formulario someter.</para>
+                qué
+                formulario someter.
+            </para>
 
             <para>Vamos a crear nuestro controlador, y añadir un método para
-                recuperar un formulario instanciado:</para>
+                recuperar un formulario
+                instanciado:</para>
 
             <programlisting language="php"><![CDATA[
 class RegistrationController extends Zend_Controller_Action
@@ -446,12 +517,17 @@ class RegistrationController extends Zend_Controller_Action
 ]]></programlisting>
 
             <para>Ahora, vamos a añadir algunas funcionalidades para determinar
-                qué formulario mostrar. Básicamente, hasta que el formulario
-                entero sea considerado válido, necesitamos continuar mostrando
-                segmentos de formulario. Adicionalmente, queremos asegurar que
+                qué formulario
+                mostrar. Básicamente, hasta que el formulario
+                entero sea considerado válido,
+                necesitamos continuar mostrando
+                segmentos de formulario. Adicionalmente, queremos
+                asegurar que
                 están en un orden particular: usuario, demog, y después las
-                listas. Podemos determinar qué información ha sido sometida
-                verificando nuestro session namespace para claves particulares
+                listas.
+                Podemos determinar qué información ha sido sometida
+                verificando nuestro session
+                namespace para claves particulares
                 representando cada subformulario.</para>
 
             <programlisting language="php"><![CDATA[
@@ -547,29 +623,47 @@ class RegistrationController extends Zend_Controller_Action
 }
 ]]></programlisting>
 
-            <para>El método de arriba nos permite usar notaciones tal como
-                "<command>$subForm =
-                    $this-&gt;getCurrentSubForm();</command>" recuperar
-                el actual subformulario para la validación, o "<command>$next
-                    = $this-&gt;getNextSubForm();</command>" obtener el
-                siguiente para mostrar.</para>
-
-            <para>Ahora, vamos a encontrar la manera para procesar y mostrar
-                varios subformularios. Podemos usar
-                    <methodname>getCurrentSubForm()</methodname> para determinar
+            <para>
+                El método de arriba nos permite usar notaciones tal como
+                "
+                <command>$subForm =
+                    $this-&gt;getCurrentSubForm();</command>
+                " recuperar
+                el actual subformulario para la validación, o "
+                <command>$next
+                    = $this-&gt;getNextSubForm();</command>
+                " obtener el
+                siguiente para mostrar.
+            </para>
+
+            <para>
+                Ahora, vamos a encontrar la manera para procesar y mostrar
+                varios subformularios.
+                Podemos usar
+                <methodname>getCurrentSubForm()</methodname>
+                para determinar
                 si algún subformulario ha sido sometido (los valores de retorno
-                falso indican que ninguno ha sido desplegado o sometido), y
-                    <methodname>getNextSubForm()</methodname> recupera el
+                falso
+                indican que ninguno ha sido desplegado o sometido), y
+                <methodname>getNextSubForm()</methodname>
+                recupera el
                 formulario que mostrar. Podemos entonces usar el método del
-                formulario <methodname>prepareSubForm()</methodname> para
-                asegurar que el formulario está listo para mostrar.</para>
+                formulario
+                <methodname>prepareSubForm()</methodname>
+                para
+                asegurar que el formulario está listo para mostrar.
+            </para>
 
             <para>Cuando tenemos un formulario sometido, podemos validar el
-                subformulario, y luego verificar si el formulario entero es
-                válido ahora. Para hacer esas tareas, necesitamos métodos
+                subformulario, y luego
+                verificar si el formulario entero es
+                válido ahora. Para hacer esas tareas,
+                necesitamos métodos
                 adicionales que aseguren que la información sometida es añadida
-                a la sesión, y que cuando validamos el formulario entero,
-                nosotros validamos contra todos los segmentos de la sesión:</para>
+                a
+                la sesión, y que cuando validamos el formulario entero,
+                nosotros validamos contra
+                todos los segmentos de la sesión:</para>
 
             <programlisting language="php"><![CDATA[
 class RegistrationController extends Zend_Controller_Action
@@ -613,8 +707,10 @@ class RegistrationController extends Zend_Controller_Action
 ]]></programlisting>
 
             <para>Ahora que tenemos el trabajo preparado, vamos a construir las
-                acciones para este controlador. Necesitaremos una página de
-                destino para el formulario, y luego una acción 'process' para
+                acciones para este
+                controlador. Necesitaremos una página de
+                destino para el formulario, y luego una
+                acción 'process' para
                 procesar el formulario.</para>
 
             <programlisting language="php"><![CDATA[
@@ -659,12 +755,16 @@ class RegistrationController extends Zend_Controller_Action
 ]]></programlisting>
 
             <para>Como se ha notado, el código actual para procesar el
-                formulario es relativamente simple. Verificamos si tenemos un
-                subformulario actual sometido y si no, retornamos a la página de
+                formulario es relativamente
+                simple. Verificamos si tenemos un
+                subformulario actual sometido y si no, retornamos a
+                la página de
                 destino. Si tenemos un subformulario, intentaremos validarlo,
                 volviéndolo a mostrar si tiene fallos. Si el subformulario es
-                válido, entonces verificaremos si el formulario es válido, lo
-                que debería indicar que hemos terminado; si no, mostraremos el
+                válido, entonces
+                verificaremos si el formulario es válido, lo
+                que debería indicar que hemos terminado;
+                si no, mostraremos el
                 siguiente segmento del formulario. Finalmente, mostraremos una
                 página de verificación con el contenido de la sesión.</para>
 
@@ -704,8 +804,10 @@ endforeach
 ]]></programlisting>
 
             <para>Próximas novedades de Zend Framework incluirán componentes
-                para hacer formularios multi páginas mas simples, abstrayendo la
-                sesión y la lógica de orden. Mientras tanto, el ejemplo de
+                para hacer formularios
+                multi páginas mas simples, abstrayendo la
+                sesión y la lógica de orden. Mientras
+                tanto, el ejemplo de
                 arriba debería servir como guia razonable para alcanzar esta
                 tarea en su web.</para>
         </example>

+ 206 - 96
documentation/manual/es/module_specs/Zend_Form-Decorators.xml

@@ -1,149 +1,227 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17173 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17173 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.form.decorators">
     <title>Creando un personalizado marcado de formulario usando
         Zend_Form_Decorator</title>
 
-    <para>Representar un objeto form es completamente opcional -- no está
-        obligado a usar los métodos <classname>Zend_Form</classname> render() en
+    <para>
+        Representar un objeto form es completamente opcional -- no está
+        obligado a usar los métodos
+        <classname>Zend_Form</classname>
+        render() en
         absoluto. Sin embargo, si lo hace, los decoradores se usan para
-        representar distintos objetos form.</para>
+        representar
+        distintos objetos form.
+    </para>
 
     <para>Un número arbitrario de decoradores pueden estar junto a cada
-        elemento (elements, display groups, sub forms o el objeto form por si
-        mismo); Sin embargo, solo un decorador de un tipo dado puede estar al
+        elemento (elements, display
+        groups, sub forms o el objeto form por si
+        mismo); Sin embargo, solo un decorador de un tipo
+        dado puede estar al
         lado de cada elemento. Los decoradores son llamados en el orden en que
         han sido introducidos. Dependiendo del decorador, puede reemplazar el
-        contenido que se ha pasado, postponerlo o anteponerlo.</para>
-
-    <para>El estado del objeto es determinado a través de las opciones de
-        configuración pasadas al constructor o el método decorador
-            <methodname>setOptions()</methodname>. Cuando se crean decoradores
-        mediante funciones <methodname>addDecorator()</methodname> o métodos
+        contenido que se ha
+        pasado, postponerlo o anteponerlo.</para>
+
+    <para>
+        El estado del objeto es determinado a través de las opciones de
+        configuración pasadas al
+        constructor o el método decorador
+        <methodname>setOptions()</methodname>
+        . Cuando se crean decoradores
+        mediante funciones
+        <methodname>addDecorator()</methodname>
+        o métodos
         relacionados, las opciones pueden ser pasadas como argumentos al método.
-        Esto puese ser usado para una ubicación especifica, un separador se usa
-        entre el contenido pasado y el nuevo contenido generado y cualquier
-        opción que el decorador soporte.</para>
-
-    <para>Antes de que el <methodname>render()</methodname> de cada decorador
+        Esto puese
+        ser usado para una ubicación especifica, un separador se usa
+        entre el contenido pasado y el
+        nuevo contenido generado y cualquier
+        opción que el decorador soporte.
+    </para>
+
+    <para>
+        Antes de que el
+        <methodname>render()</methodname>
+        de cada decorador
         sea llamado, el item actual es determinado en el decorador usando
-            <methodname>setElement()</methodname>, dando al decorador
+        <methodname>setElement()</methodname>
+        , dando al decorador
         conocimiento del item representado. Esto permite crear decoradores que
         sólo representan porciones especificas del item -- tal como etiquetas,
-        el valor, mensajes de error, etc. Encadenando muchos decoradores que
-        representan especificos segmentos, puede construir marcados complejos
-        representando al item entero.</para>
+        el valor, mensajes de
+        error, etc. Encadenando muchos decoradores que
+        representan especificos segmentos, puede
+        construir marcados complejos
+        representando al item entero.
+    </para>
 
     <sect2 id="zend.form.decorators.operation">
         <title>Operación</title>
 
-        <para>Para configurar un decorador, pase un array de opciones o un
-            objeto <classname>Zend_Config</classname> a este constructor, a un
-            array <methodname>setOptions()</methodname>, o a un objeto
-                <classname>Zend_Config</classname>
-            <methodname>setConfig()</methodname>.</para>
+        <para>
+            Para configurar un decorador, pase un array de opciones o un
+            objeto
+            <classname>Zend_Config</classname>
+            a este constructor, a un
+            array
+            <methodname>setOptions()</methodname>
+            , o a un objeto
+            <classname>Zend_Config</classname>
+            <methodname>setConfig()</methodname>
+            .
+        </para>
 
         <para>Opciones estándar incluyen:</para>
 
         <itemizedlist>
             <listitem>
                 <para>
-                    <methodname>placement</methodname>: La ubicación puede ser
+                    <methodname>placement</methodname>
+                    : La ubicación puede ser
                     cualquiera de los dos 'append' o 'prepend' (caso
                     insensitivo) e indica cualquier contenido pasado a
-                        <methodname>render()</methodname> será postpuesto o
+                    <methodname>render()</methodname>
+                    será postpuesto o
                     antepuesto respectivamente. En el caso de que el decorador
                     reemplace el contenido, esta configuración es ignorada. La
-                    configuración por defecto es adjuntada.</para>
+                    configuración por
+                    defecto es adjuntada.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>separator</methodname>: El separator es usado
+                    <methodname>separator</methodname>
+                    : El separator es usado
                     entre el contenido pasado a
-                        <methodname>render()</methodname> y el nuevo contenido
+                    <methodname>render()</methodname>
+                    y el nuevo contenido
                     generado por el decorador, o entre items generados por el
                     decorador (ejemplo FormElements usa el separador entre cada
-                    item generado). En el caso que un decorador reemplace el
-                    contenido, esta configuración puede ser ignorada. El valor
-                    por defecto es <constant>PHP_EOL</constant>.</para>
+                    item generado). En el
+                    caso que un decorador reemplace el
+                    contenido, esta configuración puede ser
+                    ignorada. El valor
+                    por defecto es
+                    <constant>PHP_EOL</constant>
+                    .
+                </para>
             </listitem>
         </itemizedlist>
 
         <para>La interface del decorador especifica los métodos para
-            interactuar con las opciones. Esto incluye:</para>
+            interactuar con las opciones.
+            Esto incluye:</para>
 
         <itemizedlist>
             <listitem>
                 <para>
-                    <methodname>setOption($key, $value)</methodname>: determina
-                    una sola opción.</para>
+                    <methodname>setOption($key, $value)</methodname>
+                    : determina
+                    una sola opción.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>getOption($key)</methodname>: recuperar un solo
-                    valor de opción.</para>
+                    <methodname>getOption($key)</methodname>
+                    : recuperar un solo
+                    valor de opción.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>getOptions()</methodname>: recuperar todas las
-                    opciones.</para>
+                    <methodname>getOptions()</methodname>
+                    : recuperar todas las
+                    opciones.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>removeOption($key)</methodname>: eliminar una
-                    sola opción.</para>
+                    <methodname>removeOption($key)</methodname>
+                    : eliminar una
+                    sola opción.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>clearOptions()</methodname>: eliminar todas las
-                    opciones.</para>
+                    <methodname>clearOptions()</methodname>
+                    : eliminar todas las
+                    opciones.
+                </para>
             </listitem>
         </itemizedlist>
 
-        <para>Decoradores son diseñados para interactuar con varios tipos de
-            clases <classname>Zend_Form</classname>:
-                <classname>Zend_Form</classname>,
-                <classname>Zend_Form_Element</classname>,
-                <methodname>Zend_Form_DisplayGroup</methodname>, y todas las
+        <para>
+            Decoradores son diseñados para interactuar con varios tipos de
+            clases
+            <classname>Zend_Form</classname>
+            :
+            <classname>Zend_Form</classname>
+            ,
+            <classname>Zend_Form_Element</classname>
+            ,
+            <methodname>Zend_Form_DisplayGroup</methodname>
+            , y todas las
             clases derivan de ellas. El método
-                <methodname>setElement()</methodname> permite determinar el
+            <methodname>setElement()</methodname>
+            permite determinar el
             objeto del decorador que esta actualmente trabajando con, y
-                <methodname>getElement()</methodname> es usado para recuperarlo.</para>
+            <methodname>getElement()</methodname>
+            es usado para recuperarlo.
+        </para>
 
-        <para>Cada método decorador <methodname>render()</methodname> acepta
-            una cadena <varname>$content</varname>. Cuando el primer
+        <para>
+            Cada método decorador
+            <methodname>render()</methodname>
+            acepta
+            una cadena
+            <varname>$content</varname>
+            . Cuando el primer
             decorador es llamado, esta cadena esta tipicamente vacía, mientras
-            las subsecuentes llamadas serán puestas. Basados en el tipo de
-            decorador y en las opciones pasadas, el decorador ya sea reemplazará
-            la cadena, antenpodrá la cadena o adjuntará la cadena; una separador
-            opcional será usado en las dos últimas situaciones.</para>
+            las
+            subsecuentes llamadas serán puestas. Basados en el tipo de
+            decorador y en las opciones
+            pasadas, el decorador ya sea reemplazará
+            la cadena, antenpodrá la cadena o adjuntará la
+            cadena; una separador
+            opcional será usado en las dos últimas situaciones.
+        </para>
     </sect2>
 
     <sect2 id="zend.form.decorators.standard">
         <title>Decoradores estándar</title>
 
         <para>
-            <classname>Zend_Form</classname> entrega muchos decoradores
-            estándar; ver <link linkend="zend.form.standardDecorators">el
-                capítulo Decoradores estándar</link> para detalles.</para>
+            <classname>Zend_Form</classname>
+            entrega muchos decoradores
+            estándar; ver
+            <link linkend="zend.form.standardDecorators">el
+                capítulo Decoradores estándar</link>
+            para detalles.
+        </para>
     </sect2>
 
     <sect2 id="zend.form.decorators.custom">
         <title>Decoradores personalizados</title>
 
         <para>Si encuentra que sus necesidades son complejas o necesita una
-            enorme personalización, debería considerar crear un decorador
+            enorme personalización,
+            debería considerar crear un decorador
             personalizado.</para>
 
-        <para>Los decoradores necesitan implementar sólo
-                <classname>Zend_Form_Decorator_Interface</classname>. La
-            interface especifica lo siguiente:</para>
+        <para>
+            Los decoradores necesitan implementar sólo
+            <classname>Zend_Form_Decorator_Interface</classname>
+            . La
+            interface especifica lo siguiente:
+        </para>
 
         <programlisting language="php"><![CDATA[
 interface Zend_Decorator_Interface
@@ -162,16 +240,26 @@ interface Zend_Decorator_Interface
 }
 ]]></programlisting>
 
-        <para>Para hacerlo mas simple, simplemente puede extender
-                <classname>Zend_Form_Decorator_Abstract</classname>, el cual
+        <para>
+            Para hacerlo mas simple, simplemente puede extender
+            <classname>Zend_Form_Decorator_Abstract</classname>
+            , el cual
             implementa todos los métodos excepto
-                <methodname>render()</methodname>.</para>
+            <methodname>render()</methodname>
+            .
+        </para>
 
-        <para>Como ejemplo, digamos que quiere reducir el número de decoradores
-            que utiliza, y construir un decorador compuesto que se encargó de
-            renderizar la etiqueta generadora, el elemento, cualquier mensaje de
-            error, y descripción en un <methodname>div</methodname> HTML. Puede
-            construir como un decorador compuesto como sigue:</para>
+        <para>
+            Como ejemplo, digamos que quiere reducir el número de decoradores
+            que utiliza, y
+            construir un decorador compuesto que se encargó de
+            renderizar la etiqueta generadora, el
+            elemento, cualquier mensaje de
+            error, y descripción en un
+            <methodname>div</methodname>
+            HTML. Puede
+            construir como un decorador compuesto como sigue:
+        </para>
 
         <programlisting language="php"><![CDATA[
 class My_Decorator_Composite extends Zend_Form_Decorator_Abstract
@@ -282,16 +370,23 @@ $element->setDecorators(array('Composite'));
 ]]></programlisting>
 
         <para>Mientras este ejemplo mostró cómo crear un decorador que genera
-            salidas complejas de muchas propiedades de elementos, puede también
-            crear decoradores que manejen un solo aspecto de un elemento; los
-            decoradores 'Decorator' y 'Label' son excelentes ejemplos para esta
+            salidas complejas de
+            muchas propiedades de elementos, puede también
+            crear decoradores que manejen un solo
+            aspecto de un elemento; los
+            decoradores 'Decorator' y 'Label' son excelentes ejemplos
+            para esta
             práctica. Hacerlo le permite mezclar y combinar decoradores para
-            llegar a complejas salidas -- y también anular aspectos de
-            decoración para personalizar sus necesidades.</para>
+            llegar a
+            complejas salidas -- y también anular aspectos de
+            decoración para personalizar sus
+            necesidades.</para>
 
         <para>Por ejemplo, si quiere simplemente desplegar que un error ha
-            ocurrido cuando validábamos un elemento, pero no desplegar
-            individualmente cada uno de los mensajes de error, usted podría
+            ocurrido cuando
+            validábamos un elemento, pero no desplegar
+            individualmente cada uno de los mensajes de
+            error, usted podría
             crear su propio decorador 'Errores':</para>
 
         <programlisting language="php"><![CDATA[
@@ -316,30 +411,43 @@ class My_Decorator_Errors
 }
 ]]></programlisting>
 
-        <para>En este ejemplo particular, debido al segmento del decorador
-            final, 'Errors', se combina como
-                <classname>Zend_Form_Decorator_Errors</classname>, será generado
-                <emphasis>en lugar de</emphasis> el decorador -- significa que
-            no necesitará cambiar ningún decorador para modificar la salida.
+        <para>
+            En este ejemplo particular, debido al segmento del decorador
+            final, 'Errors', se combina
+            como
+            <classname>Zend_Form_Decorator_Errors</classname>
+            , será generado
+            <emphasis>en lugar de</emphasis>
+            el decorador -- significa que
+            no necesitará cambiar ningún decorador para modificar la
+            salida.
             Nombrando sus decoradores después de los decoradores existentes
-            estándar, usted puede modificar decoradores sin necesitad de
-            modificar sus elementos decoradores.</para>
+            estándar, usted
+            puede modificar decoradores sin necesitad de
+            modificar sus elementos decoradores.
+        </para>
     </sect2>
 
     <sect2 id="zend.form.decorators.individual">
         <title>Generando decoradores individuales</title>
 
         <para>Desde que los decoradores pueden capturar distintos metadatos del
-            elemento o formulario que ellos decoran, es a menudo útil generar un
-            decorador individual. Afortunadamente, esta caracteristica es
+            elemento o formulario
+            que ellos decoran, es a menudo útil generar un
+            decorador individual. Afortunadamente,
+            esta caracteristica es
             posible inicializando el método en cada tipo de clase form (forms,
             sub form, display group, element).</para>
 
-        <para>Para hacer eso, simplemente
-                <methodname>render[DecoratorName]()</methodname>, cuando
+        <para>
+            Para hacer eso, simplemente
+            <methodname>render[DecoratorName]()</methodname>
+            , cuando
             "[DecoratorName]" es el "nombre corto" de su decorador;
-            opcionalmente, puede pasar en el contenido lo que usted quiera. Por
-            ejemplo:</para>
+            opcionalmente, puede
+            pasar en el contenido lo que usted quiera. Por
+            ejemplo:
+        </para>
 
         <programlisting language="php"><![CDATA[
 // genera el elemento decorador label:
@@ -355,8 +463,10 @@ echo $form->renderHtmlTag('wrap this content');
         <para>Si el decorador no existe, una excepción es inicializada.</para>
 
         <para>Esto puede ser útil particularmente cuando se genera un
-            formulario con el decorador ViewScript; cada elemento puede usar sus
-            decoradores adjuntos para generar contenido, pero con un control
+            formulario con el decorador
+            ViewScript; cada elemento puede usar sus
+            decoradores adjuntos para generar contenido,
+            pero con un control
             minucioso.</para>
     </sect2>
 </sect1>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 483 - 229
documentation/manual/es/module_specs/Zend_Form-Elements.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 416 - 205
documentation/manual/es/module_specs/Zend_Form-Forms.xml


+ 131 - 59
documentation/manual/es/module_specs/Zend_Form-I18n.xml

@@ -1,63 +1,103 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17987 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17987 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.form.i18n">
     <title>Internacionalización de Zend_Form</title>
 
-    <para>Cada vez más, desarrolladores necesitan adaptar su contenido para multiples idiomas y
-        regiones. <classname>Zend_Form</classname> intenta hacer de ésta una tarea trivial, y provee
-        funcionalidad en ambas <link linkend="zend.translate">Zend_Translate</link> y <link
-            linkend="zend.validate">Zend_Validate</link> para realizar esa funcionalidad.</para>
-
-    <para>Por defecto, no se realiza ninguna internacionalización (I18n). Para iniciar las
-        caraterísticas de I18n en <classname>Zend_Form</classname>, se necesitará instanciar un
-        objeto <classname>Zend_Translate</classname> con un adaptador apropiado, y adjuntarlo a
-            <classname>Zend_Form</classname> y/o <classname>Zend_Validate</classname>. Ver la <link
-            linkend="zend.translate">documentación Zend_Translate </link> para más información sobre
-        crear el objeto traducción y los archivos de traducción</para>
+    <para>
+        Cada vez más, desarrolladores necesitan adaptar su contenido para multiples idiomas y
+        regiones.
+        <classname>Zend_Form</classname>
+        intenta hacer de ésta una tarea trivial, y provee
+        funcionalidad en ambas
+        <link linkend="zend.translate">Zend_Translate</link>
+        y
+        <link linkend="zend.validate">Zend_Validate</link>
+        para realizar esa funcionalidad.
+    </para>
+
+    <para>
+        Por defecto, no se realiza ninguna internacionalización (I18n). Para iniciar las
+        caraterísticas de I18n en
+        <classname>Zend_Form</classname>
+        , se necesitará instanciar un
+        objeto
+        <classname>Zend_Translate</classname>
+        con un adaptador apropiado, y adjuntarlo a
+        <classname>Zend_Form</classname>
+        y/o
+        <classname>Zend_Validate</classname>
+        . Ver la
+        <link linkend="zend.translate">documentación Zend_Translate </link>
+        para más información sobre
+        crear el objeto traducción y los archivos de traducción
+    </para>
 
     <note>
         <title>La Traducción Puede Ser Deshabilitado Por Item</title>
 
-        <para>Se puede deshabilitar la traducción para cualquier formulario, elemento, grupo de
+        <para>
+            Se puede deshabilitar la traducción para cualquier formulario, elemento, grupo de
             visualización o subformulario llamando al método
-                <methodname>setDisableTranslator($flag)</methodname> o pasando la opción
-            <property>disableTranslator</property> al objeto. Puede ser de mucha ayuda
-            cuando se quiere deshabilitar selectivamente la traducción para elementos individuales o
-            grupo de elementos.</para>
+            <methodname>setDisableTranslator($flag)</methodname>
+            o pasando la opción
+            <property>disableTranslator</property>
+            al objeto. Puede ser de mucha ayuda
+            cuando se quiere deshabilitar selectivamente la
+            traducción para elementos individuales o
+            grupo de elementos.
+        </para>
     </note>
 
     <sect2 id="zend.form.i18n.initialization">
         <title>Inicializando I18n en formularios</title>
 
-        <para>Para poder inicializar I18n en formularios, se necesitará un objeto
-                <classname>Zend_Translate</classname> o un objeto
-                <classname>Zend_Translate_Adapter</classname>, como se detalló en la documentación
-                <classname>Zend_Translate</classname>. Una vez que se tenga el objeto traducción,
-            existen varias opciones:</para>
+        <para>
+            Para poder inicializar I18n en formularios, se necesitará un objeto
+            <classname>Zend_Translate</classname>
+            o un objeto
+            <classname>Zend_Translate_Adapter</classname>
+            , como se detalló en la documentación
+            <classname>Zend_Translate</classname>
+            . Una vez que se tenga el objeto traducción,
+            existen varias opciones:
+        </para>
 
         <itemizedlist>
             <listitem>
                 <para>
-                    <emphasis>Fácil:</emphasis> añadirlo al registro. Todos los componentes I18n de
-                    Zend Framework descubrirán automáticamente un objeto traducción que está en el
-                    registro con la clave 'Zend_Translate' y lo usará para ejecutar la traducción
-                    y/o la localización:</para>
+                    <emphasis>Fácil:</emphasis>
+                    añadirlo al registro. Todos los componentes I18n de
+                    Zend Framework descubrirán
+                    automáticamente un objeto traducción que está en el
+                    registro con la clave
+                    'Zend_Translate' y lo usará para ejecutar la traducción
+                    y/o la localización:
+                </para>
 
                 <programlisting language="php"><![CDATA[
 // use la clave 'Zend_Translate'; $translate es un objeto Zend_Translate:
 Zend_Registry::set('Zend_Translate', $translate);
 ]]></programlisting>
 
-                <para>Será recibido por <classname>Zend_Form</classname>,
-                        <classname>Zend_Validate</classname> y
-                        <classname>Zend_View_Helper_Translate</classname>.</para>
+                <para>
+                    Será recibido por
+                    <classname>Zend_Form</classname>
+                    ,
+                    <classname>Zend_Validate</classname>
+                    y
+                    <classname>Zend_View_Helper_Translate</classname>
+                    .
+                </para>
             </listitem>
 
             <listitem>
-                <para>Si todo lo que le preocupa es traducir los mensajes de error de validación,
+                <para>
+                    Si todo lo que le preocupa es traducir los mensajes de error de validación,
                     puede registrar el objeto traducción con
-                        <classname>Zend_Validate_Abstract</classname>:</para>
+                    <classname>Zend_Validate_Abstract</classname>
+                    :
+                </para>
 
                 <programlisting language="php"><![CDATA[
 // Decir a todas las clases de validación que se use un adaptador especifico de traducción
@@ -66,9 +106,13 @@ Zend_Validate_Abstract::setDefaultTranslator($translate);
             </listitem>
 
             <listitem>
-                <para>Alternativamente, se puede adjuntar al objeto
-                        <classname>Zend_Form</classname> como un traductor global. Tiene el mismo
-                    efecto que traduciendo los mensajes de error de validación.</para>
+                <para>
+                    Alternativamente, se puede adjuntar al objeto
+                    <classname>Zend_Form</classname>
+                    como un traductor global. Tiene el mismo
+                    efecto que traduciendo los mensajes de
+                    error de validación.
+                </para>
 
                 <programlisting language="php"><![CDATA[
 // Decir a todas las clases del formulario usar un adaptador especifico, así como también
@@ -78,9 +122,12 @@ Zend_Form::setDefaultTranslator($translate);
             </listitem>
 
             <listitem>
-                <para>Finalmente, se puede adjuntar un traductor a una instancia especifica de un
+                <para>
+                    Finalmente, se puede adjuntar un traductor a una instancia especifica de un
                     formulario o a elementos especificar usando sus métodos
-                        <methodname>setTranslator()</methodname>:</para>
+                    <methodname>setTranslator()</methodname>
+                    :
+                </para>
 
                 <programlisting language="php"><![CDATA[
 // Decir a *esta* instancia del formulario que use un adaptador especifico de traducción;
@@ -106,11 +153,19 @@ $element->setTranslator($translate);
         <itemizedlist>
             <listitem>
                 <para>
-                    <emphasis>Mensajes de error de validación.</emphasis> Los mensajes de error de
-                    validación pueden ser traducidos. Para hacerlo, use la variedad de constantes de
-                    códigos de error de <classname>Zend_Validate</classname> las clases de
-                    validación como los ID del mensaje. Para más información sobre esos códigos, ver
-                    la documentación <link linkend="zend.validate">Zend_Validate</link>.</para>
+                    <emphasis>Mensajes de error de validación.</emphasis>
+                    Los mensajes de error de
+                    validación pueden ser traducidos. Para hacerlo, use la
+                    variedad de constantes de
+                    códigos de error de
+                    <classname>Zend_Validate</classname>
+                    las clases de
+                    validación como los ID del mensaje. Para más información sobre esos
+                    códigos, ver
+                    la documentación
+                    <link linkend="zend.validate">Zend_Validate</link>
+                    .
+                </para>
 
                 <para>Alternativamente, desde la versión 1.6.0, se pueden proveer cadenas de
                     traducción usando los mensajes de error actuales como mensajes identificadores.
@@ -121,39 +176,56 @@ $element->setTranslator($translate);
 
             <listitem>
                 <para>
-                    <emphasis>Etiquetas.</emphasis> Las etiquetas elemento serán traducidas, si una
-                    traducción existe.</para>
+                    <emphasis>Etiquetas.</emphasis>
+                    Las etiquetas elemento serán traducidas, si una
+                    traducción existe.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <emphasis>Leyendas de campos.</emphasis> Grupos de visualización y
-                    subformularios se generan por defecto en fieldsets. El decorador de fieldsets
-                    intenta traducir la leyenda antes de generar el fieldset.</para>
+                    <emphasis>Leyendas de campos.</emphasis>
+                    Grupos de visualización y
+                    subformularios se generan por defecto en fieldsets. El
+                    decorador de fieldsets
+                    intenta traducir la leyenda antes de generar el fieldset.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <emphasis>Descripciones de formularios y elementos.</emphasis> Todos los tipos
-                    de formulario (elemento, formulario, visualización de grupos, subformularios)
-                    permiten especificar una descripción opcional. El decorador Description puede
-                    generarlo y por defecto tomará el valor e intentará traducirlo.</para>
+                    <emphasis>Descripciones de formularios y elementos.</emphasis>
+                    Todos los tipos
+                    de formulario (elemento, formulario, visualización de grupos,
+                    subformularios)
+                    permiten especificar una descripción opcional. El decorador
+                    Description puede
+                    generarlo y por defecto tomará el valor e intentará traducirlo.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <emphasis>Valores multi-opción.</emphasis> Para los múltiples items que heredan
-                    de <classname>Zend_Form_Element_Multi</classname> (incluyendo el MultiCheckbox,
-                    Multiselect y elementos Radio), la valores de opciones (no claves) serán
-                    traducidos si una traducción esta disponible; eso significa que las etiquetas de
-                    opciones presentadas al usuario serán traducidas.</para>
+                    <emphasis>Valores multi-opción.</emphasis>
+                    Para los múltiples items que heredan
+                    de
+                    <classname>Zend_Form_Element_Multi</classname>
+                    (incluyendo el MultiCheckbox,
+                    Multiselect y elementos Radio), la valores de
+                    opciones (no claves) serán
+                    traducidos si una traducción esta disponible; eso
+                    significa que las etiquetas de
+                    opciones presentadas al usuario serán traducidas.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <emphasis>Submit y etiquetas Button.</emphasis> Los múltiples elementos Submit y
-                    Button (Button, Submit y Reset) traducirán la etiqueta mostrada al usuario.
-               </para>
+                    <emphasis>Submit y etiquetas Button.</emphasis>
+                    Los múltiples elementos Submit y
+                    Button (Button, Submit y Reset) traducirán la
+                    etiqueta mostrada al usuario.
+                </para>
             </listitem>
         </itemizedlist>
     </sect2>

+ 21 - 9
documentation/manual/es/module_specs/Zend_Form-Introduction.xml

@@ -1,12 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15854 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 15854 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.form.introduction">
     <title>Zend_Form</title>
 
     <para>
-        <classname>Zend_Form</classname> simplifica la creación y manipulación de formularios en tus
-        aplicaciones web. Cumple los siguientes objetivos:</para>
+        <classname>Zend_Form</classname>
+        simplifica la creación y manipulación de formularios en tus
+        aplicaciones web. Cumple los
+        siguientes objetivos:
+    </para>
 
     <itemizedlist>
         <listitem>
@@ -26,9 +29,18 @@
         </listitem>
     </itemizedlist>
 
-    <para>Se aprovecha en gran medida de otros componentes de Zend Framework para lograr sus
-        objetivos, incluyendo <classname>Zend_Config</classname>,
-            <classname>Zend_Validate</classname>, <classname>Zend_Filter</classname>,
-            <classname>Zend_Loader_PluginLoader</classname> y, opcionalmente,
-            <classname>Zend_View</classname>.</para>
+    <para>
+        Se aprovecha en gran medida de otros componentes de Zend Framework para lograr sus
+        objetivos, incluyendo
+        <classname>Zend_Config</classname>
+        ,
+        <classname>Zend_Validate</classname>
+        ,
+        <classname>Zend_Filter</classname>
+        ,
+        <classname>Zend_Loader_PluginLoader</classname>
+        y, opcionalmente,
+        <classname>Zend_View</classname>
+        .
+    </para>
 </sect1>

+ 281 - 127
documentation/manual/es/module_specs/Zend_Form-QuickStart.xml

@@ -1,49 +1,71 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 19873 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 19873 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.form.quickstart">
     <title>Inicio rápido a Zend_Form</title>
 
-    <para>Esta guía rápida pretende cubrir los fundamentos para crear, validar
-        y presentar formularios usando <classname>Zend_Form</classname>
-   </para>
+    <para>
+        Esta guía rápida pretende cubrir los fundamentos para crear, validar
+        y presentar formularios
+        usando
+        <classname>Zend_Form</classname>
+    </para>
 
     <sect2 id="zend.form.quickstart.create">
         <title>Creando un objeto formulario</title>
 
-        <para>Crear un objeto de formulario es muy simple: solo instancíe
-                <classname>Zend_Form</classname>
-       </para>
+        <para>
+            Crear un objeto de formulario es muy simple: solo instancíe
+            <classname>Zend_Form</classname>
+        </para>
 
         <programlisting language="php"><![CDATA[
 $form = new Zend_Form;
 ]]></programlisting>
 
-        <para>Para casos de uso avanzados, es posible desee crear una subclase
-            de <classname>Zend_Form</classname>, pero para formularios simples,
-            puede programar la creación de un formulario usando un objeto
-                <classname>Zend_Form</classname>
-       </para>
+        <para>
+            Para casos de uso avanzados, es posible desee crear una subclase
+            de
+            <classname>Zend_Form</classname>
+            , pero para formularios simples,
+            puede programar la creación de un formulario usando un
+            objeto
+            <classname>Zend_Form</classname>
+        </para>
 
-        <para>Si desea especificar el action y method del formulario (siempre
-            buenas ideas), puede hacer uso de los accesos
-                <methodname>setAction()</methodname> y
-                <methodname>setMethod()</methodname>:</para>
+        <para>
+            Si desea especificar el action y method del formulario (siempre
+            buenas ideas), puede
+            hacer uso de los accesos
+            <methodname>setAction()</methodname>
+            y
+            <methodname>setMethod()</methodname>
+            :
+        </para>
 
         <programlisting language="php"><![CDATA[
 $form->setAction('/resource/process')
      ->setMethod('post');
 ]]></programlisting>
 
-        <para>El código de arriba establece el action del formulario a la <acronym>URL</acronym>
-            parcial "/resource/process" y como method <acronym>HTTP</acronym> POST. Esto se
-            mostrará en la presentación final.</para>
+        <para>
+            El código de arriba establece el action del formulario a la
+            <acronym>URL</acronym>
+            parcial "/resource/process" y como method
+            <acronym>HTTP</acronym>
+            POST. Esto se
+            mostrará en la presentación final.
+        </para>
 
-        <para>Usted puede establecer atributos <acronym>HTML</acronym>
+        <para>
+            Usted puede establecer atributos
+            <acronym>HTML</acronym>
             adicionales para la etiqueta
-                <methodname>&lt;form&gt;</methodname> mediante el uso de
+            <methodname>&lt;form&gt;</methodname>
+            mediante el uso de
             los métodos setAttrib() o setAttribs(). Por ejemplo, si desea
-            especificar el id establezca el atributo "id":</para>
+            especificar el id establezca el atributo "id":
+        </para>
 
         <programlisting language="php"><![CDATA[
 $form->setAttrib('id', 'login');
@@ -53,11 +75,16 @@ $form->setAttrib('id', 'login');
     <sect2 id="zend.form.quickstart.elements">
         <title>Añadir elementos al formulario</title>
 
-        <para>Un formulario no es nada sin sus elementos.
-                <classname>Zend_Form</classname> contiene de manera
+        <para>
+            Un formulario no es nada sin sus elementos.
+            <classname>Zend_Form</classname>
+            contiene de manera
             predeterminada algunos elementos que generan
-                <acronym>XHTML</acronym> vía auxiliares
-                <classname>Zend_View</classname>. Son los siguientes:</para>
+            <acronym>XHTML</acronym>
+            vía auxiliares
+            <classname>Zend_View</classname>
+            . Son los siguientes:
+        </para>
 
         <itemizedlist>
             <listitem>
@@ -106,11 +133,15 @@ $form->setAttrib('id', 'login');
             </listitem>
         </itemizedlist>
 
-        <para>Tiene dos opciones para añadir elementos a un formulario; puede
-            instanciar elementos concretos y pasarlos como objetos, o
+        <para>
+            Tiene dos opciones para añadir elementos a un formulario; puede
+            instanciar elementos
+            concretos y pasarlos como objetos, o
             simplemente puede pasar el tipo de elemento y
-                <classname>Zend_Form</classname> instaciará por usted un objeto
-            del tipo correspondiente.</para>
+            <classname>Zend_Form</classname>
+            instaciará por usted un objeto
+            del tipo correspondiente.
+        </para>
 
         <para>Algunos ejemplos:</para>
 
@@ -122,18 +153,28 @@ $form->addElement(new Zend_Form_Element_Text('username'));
 $form->addElement('text', 'username');
 ]]></programlisting>
 
-        <para>De manera predeterminada, éstos no tienen validadores o filtros.
-            Esto significa que tendrá que configurar sus elementos con un mínimo
-            de validadores, y potencialmente filtros. Puede hacer esto (a) antes
-            de pasar el elemento al formulario, (b) vía opciones de
+        <para>
+            De manera predeterminada, éstos no tienen validadores o filtros.
+            Esto significa que
+            tendrá que configurar sus elementos con un mínimo
+            de validadores, y potencialmente
+            filtros. Puede hacer esto (a) antes
+            de pasar el elemento al formulario, (b) vía opciones
+            de
             configuración pasadas cuando crea un elemento a través de
-                <classname>Zend_Form</classname>, o (c) recuperar el elemento
-            del objeto form y configurándolo posteriormente.</para>
+            <classname>Zend_Form</classname>
+            , o (c) recuperar el elemento
+            del objeto form y configurándolo posteriormente.
+        </para>
 
-        <para>Veamos primero la creación de validadores para la instancia de un
-            elemento concreto. Puede pasar objetos
-                <classname>Zend_Validate_*</classname> o el nombre de un
-            validador para utilizar:</para>
+        <para>
+            Veamos primero la creación de validadores para la instancia de un
+            elemento concreto.
+            Puede pasar objetos
+            <classname>Zend_Validate_*</classname>
+            o el nombre de un
+            validador para utilizar:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $username = new Zend_Form_Element_Text('username');
@@ -146,7 +187,8 @@ $username->addValidator('alnum');
 ]]></programlisting>
 
         <para>Cuando se utiliza esta segunda opción, si el constructor del
-            validador acepta argumentos, se pueden pasar en un array como tercer
+            validador acepta
+            argumentos, se pueden pasar en un array como tercer
             parámetro:</para>
 
         <programlisting language="php"><![CDATA[
@@ -155,12 +197,15 @@ $username->addValidator('regex', false, array('/^[a-z]/i'));
 ]]></programlisting>
 
         <para>(El segundo parámetro se utiliza para indicar si el fallo debería
-            prevenir la ejecución de validadores posteriores o no; por defecto,
+            prevenir la ejecución
+            de validadores posteriores o no; por defecto,
             el valor es false.)</para>
 
         <para>Puede también desear especificar un elemento como requerido. Esto
-            puede hacerse utilizando un método de acceso o pasando una opción al
-            crear el elemento. En el primer caso:</para>
+            puede hacerse
+            utilizando un método de acceso o pasando una opción al
+            crear el elemento. En el primer
+            caso:</para>
 
         <programlisting language="php"><![CDATA[
 // Hace este elemento requerido:
@@ -168,12 +213,15 @@ $username->setRequired(true);
 ]]></programlisting>
 
         <para>Cuando un elemento es requerido, un validador 'NotEmpty'
-            (NoVacio) es añadido a la parte superior de la cadena de
-            validaciones, asegurando que el elemento tenga algún valor cuando
+            (NoVacio) es añadido a la
+            parte superior de la cadena de
+            validaciones, asegurando que el elemento tenga algún valor
+            cuando
             sea requerido.</para>
 
         <para>Los filtros son registrados básicamente de la misma manera que
-            los validadores. Para efectos ilustrativos, vamos a agregar un
+            los validadores. Para
+            efectos ilustrativos, vamos a agregar un
             filtro para poner en minúsculas el valor final:</para>
 
         <programlisting language="php"><![CDATA[
@@ -196,14 +244,21 @@ $username->addValidators(array('alnum',
     ->addFilters(array('StringToLower'));
 ]]></programlisting>
 
-        <para>Tan simple como esto, realizarlo para cada uno de los elementos
-            del formulario puede resultar un poco tedioso. Intentemos la opción
-            (b) arriba mencionada. Cuando creamos un nuevo elemento utilizando
-                <methodname>Zend_Form::addElement()</methodname> como fábrica,
+        <para>
+            Tan simple como esto, realizarlo para cada uno de los elementos
+            del formulario puede
+            resultar un poco tedioso. Intentemos la opción
+            (b) arriba mencionada. Cuando creamos un
+            nuevo elemento utilizando
+            <methodname>Zend_Form::addElement()</methodname>
+            como fábrica,
             opcionalmente podemos pasar las opciones de configuración. Éstas
-            pueden incluir validadores y los filtros que se van a utilizar. Por
-            lo tanto, para hacer todo lo anterior implícitamente, intente lo
-            siguiente:</para>
+            pueden
+            incluir validadores y los filtros que se van a utilizar. Por
+            lo tanto, para hacer todo lo
+            anterior implícitamente, intente lo
+            siguiente:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $form->addElement('text', 'username', array(
@@ -217,21 +272,32 @@ $form->addElement('text', 'username', array(
 ]]></programlisting>
 
         <note>
-            <para>Si encuentra que está asignando elementos con las mismas
-                opciones en varios lugares, podría considerar crear su propia
-                subclase de <classname>Zend_Form_Element</classname> y utilizar
-                ésta; a largo plazo le permitirá escribir menos.</para>
+            <para>
+                Si encuentra que está asignando elementos con las mismas
+                opciones en varios lugares,
+                podría considerar crear su propia
+                subclase de
+                <classname>Zend_Form_Element</classname>
+                y utilizar
+                ésta; a largo plazo le permitirá escribir menos.
+            </para>
         </note>
     </sect2>
 
     <sect2 id="zend.form.quickstart.render">
         <title>Generar un formulario</title>
 
-        <para>Generar un formulario es simple. La mayoría de los elementos
-            utilizan un auxiliar de <classname>Zend_View</classname> para
+        <para>
+            Generar un formulario es simple. La mayoría de los elementos
+            utilizan un auxiliar de
+            <classname>Zend_View</classname>
+            para
             generarse a sí mismos, por lo tanto necesitan un objeto vista con el
-            fin de generarse. Además, tiene dos opciones: usar el método
-            render() del formulario, o simplemente mostrarlo con echo.</para>
+            fin de
+            generarse. Además, tiene dos opciones: usar el método
+            render() del formulario, o
+            simplemente mostrarlo con echo.
+        </para>
 
         <programlisting language="php"><![CDATA[
 // Llamando a render()  explicitamente, y pasando un objeto vista opcional:
@@ -241,26 +307,43 @@ echo $form->render($view);
 echo $form;
 ]]></programlisting>
 
-        <para>De manera predeterminada, <classname>Zend_Form</classname> y
-                <classname>Zend_Form_Element</classname> intentarán utilizar el
+        <para>
+            De manera predeterminada,
+            <classname>Zend_Form</classname>
+            y
+            <classname>Zend_Form_Element</classname>
+            intentarán utilizar el
             objeto vista inicializado en el
-                <methodname>ViewRenderer</methodname>, lo que significa que no
-            tendrá que establecer la vista manualmente cuando use el <acronym>MVC</acronym> de Zend
+            <methodname>ViewRenderer</methodname>
+            , lo que significa que no
+            tendrá que establecer la vista manualmente cuando use el
+            <acronym>MVC</acronym>
+            de Zend
             Framework. Generar un formulario en un script vista es tan simple
-            como:</para>
+            como:
+        </para>
 
         <programlisting language="php"><![CDATA[
 <?php echo $this->form
 ]]></programlisting>
 
-        <para>Detrás del telón, <classname>Zend_Form</classname> utiliza
+        <para>
+            Detrás del telón,
+            <classname>Zend_Form</classname>
+            utiliza
             "decoradores" (decorators) para generar la salida. Estos decoradores
-            pueden reemplazar, añadir o anteponer contenido, y tienen plena
-            introspección al elemento que les es pasado. Como resultado, puede
-            combinar múltiples decoradores para lograr efectos personalizados.
-            Predeterminadamente, <classname>Zend_Form_Element</classname>
+            pueden
+            reemplazar, añadir o anteponer contenido, y tienen plena
+            introspección al elemento que
+            les es pasado. Como resultado, puede
+            combinar múltiples decoradores para lograr efectos
+            personalizados.
+            Predeterminadamente,
+            <classname>Zend_Form_Element</classname>
             actualmente combina cuatro decoradores para obtener su salida; la
-            configuración sería como sigue:</para>
+            configuración sería
+            como sigue:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $element->addDecorators(array(
@@ -272,7 +355,8 @@ $element->addDecorators(array(
 ]]></programlisting>
 
         <para>(Donde &lt;HELPERNAME&gt; es el nombre de un view helper
-            que utilizar, y varía según el elemento)</para>
+            que utilizar, y varía según el
+            elemento)</para>
 
         <para>Lo anterior crea una salida como la siguiente:</para>
 
@@ -290,19 +374,29 @@ $element->addDecorators(array(
         <para>(Aunque no con el mismo formato.)</para>
 
         <para>Puede cambiar los decoradores usados para un elemento si desea
-            tener diferente salida; véase la sección sobre decoradores para
+            tener diferente salida;
+            véase la sección sobre decoradores para
             mayor información.</para>
 
-        <para>El propio formulario simplemente itera sobre los elementos y los
-            cubre en un &lt;form&gt; HTML. El action y method que
-            proporcionó cuando definió el formulario se pasan a la etiqueta
-                <methodname>&lt;form&gt;</methodname>, como cualquier
-            atributo que establezca vía <methodname>setAttribs()</methodname> y
-            familia.</para>
+        <para>El
+            propio formulario simplemente itera sobre los elementos y los
+            cubre en un &lt;form&gt;
+            HTML. El action y method que
+            proporcionó cuando definió el formulario se pasan a la
+            etiqueta
+            <methodname>&lt;form&gt;</methodname>
+            , como cualquier
+            atributo que establezca vía
+            <methodname>setAttribs()</methodname>
+            y
+            familia.
+        </para>
 
         <para>Elementos son desplegados en el orden en el que fueron
-            registrados, o, si el elemento contienen un atributo de orden, ese
-            orden será utilizado. Usted puede fijar el orden de un elemento
+            registrados, o, si el elemento
+            contienen un atributo de orden, ese
+            orden será utilizado. Usted puede fijar el orden de
+            un elemento
             usando:</para>
 
         <programlisting language="php"><![CDATA[
@@ -320,14 +414,23 @@ $form->addElement('text', 'username', array('order' => 10));
         <title>Comprobar si un formulario es válido</title>
 
         <para>Después que un formulario es enviado, necesitará comprobar y ver
-            si pasa las validaciones. Cada elemento es valuado contra los datos
-            provistos; si una clave no está presente y el campo fue marcado como
-            requerido, la validación se ejecuta contra un valor nulo.</para>
+            si pasa las
+            validaciones. Cada elemento es valuado contra los datos
+            provistos; si una clave no está
+            presente y el campo fue marcado como
+            requerido, la validación se ejecuta contra un valor
+            nulo.</para>
 
-        <para>¿De dónde provienen los datos?. Puede usar
-                <varname>$_POST</varname> o <varname>$_GET</varname>, o
+        <para>
+            ¿De dónde provienen los datos?. Puede usar
+            <varname>$_POST</varname>
+            o
+            <varname>$_GET</varname>
+            , o
             cualquier otra fuente de datos que tenga a mano (solicitud de un
-            servicio web, por ejemplo):</para>
+            servicio web, por
+            ejemplo):
+        </para>
 
         <programlisting language="php"><![CDATA[
 if ($form->isValid($_POST)) {
@@ -337,12 +440,20 @@ if ($form->isValid($_POST)) {
 }
 ]]></programlisting>
 
-        <para>Con solicitudes <acronym>AJAX</acronym>, a veces puede ignorar la
+        <para>
+            Con solicitudes
+            <acronym>AJAX</acronym>
+            , a veces puede ignorar la
             validación de un solo elemento, o grupo de elementos.
-                <methodname>isValidPartial()</methodname> validará parcialmente
-            el formulario. A diferencia de <methodname>isValid()</methodname>,
+            <methodname>isValidPartial()</methodname>
+            validará parcialmente
+            el formulario. A diferencia de
+            <methodname>isValid()</methodname>
+            ,
             que como sea, si alguna clave no esta presente, no ejecutará las
-            validaciones para ese elemento en particular.</para>
+            validaciones para ese
+            elemento en particular.
+        </para>
 
         <programlisting language="php"><![CDATA[
 if ($form->isValidPartial($_POST)) {
@@ -352,11 +463,19 @@ if ($form->isValidPartial($_POST)) {
 }
 ]]></programlisting>
 
-        <para>Un método adicional, <methodname>processAjax()</methodname>,
+        <para>
+            Un método adicional,
+            <methodname>processAjax()</methodname>
+            ,
             puede también ser usado para validar formularios parciales. A
-            diferencia de <methodname>isValidPartial()</methodname>, regresa una
-            cadena en formato <acronym>JSON</acronym>-formatted conteniendo mensajes de
-            error en caso de fallo.</para>
+            diferencia de
+            <methodname>isValidPartial()</methodname>
+            , regresa una
+            cadena en formato
+            <acronym>JSON</acronym>
+            -formatted conteniendo mensajes de
+            error en caso de fallo.
+        </para>
 
         <para>Asumiendo que sus validaciones han pasado, ahora puede obtener
             los valores filtrados:</para>
@@ -372,7 +491,8 @@ $unfiltered = $form->getUnfilteredValues();
 ]]></programlisting>
 
         <para>
-            If you on the other hand need all the valid and filtered values of a partially valid form,
+            If you on the other hand need all the valid and filtered values of a partially valid
+            form,
             you can call:
         </para>
 
@@ -386,8 +506,10 @@ $values = $form->getValidValues($_POST);
         <title>Obteniendo el estado de error</title>
 
         <para>Entonces, ¿su formulario no es válido? En la mayoría de los
-            casos, simplemente puede generar el formulario nuevamente y los
-            errores se mostrarán cuando se usen los decoradores predeterminados:</para>
+            casos, simplemente puede
+            generar el formulario nuevamente y los
+            errores se mostrarán cuando se usen los
+            decoradores predeterminados:</para>
 
         <programlisting language="php"><![CDATA[
 if (!$form->isValid($_POST)) {
@@ -399,14 +521,20 @@ if (!$form->isValid($_POST)) {
 }
 ]]></programlisting>
 
-        <para>Si quiere inspeccionar los errores, tiene dos métodos.
-                <methodname>getErrors()</methodname> regresa una matriz
+        <para>
+            Si quiere inspeccionar los errores, tiene dos métodos.
+            <methodname>getErrors()</methodname>
+            regresa una matriz
             asociativa de nombres / códigos de elementos (donde códigos es una
-            matriz de códigos de error). <methodname>getMessages()</methodname>
+            matriz de códigos de error).
+            <methodname>getMessages()</methodname>
             regresa una matriz asociativa de nombres / mensajes de elementos
-            (donde mensajes es una matriz asociativa de pares código de error /
-            mensaje de error). Si un elemento no tiene ningún error, no será
-            incluido en la matriz.</para>
+            (donde mensajes es una
+            matriz asociativa de pares código de error /
+            mensaje de error). Si un elemento no tiene
+            ningún error, no será
+            incluido en la matriz.
+        </para>
     </sect2>
 
     <sect2 id="zend.form.quickstart.puttingtogether">
@@ -428,15 +556,21 @@ if (!$form->isValid($_POST)) {
         </itemizedlist>
 
         <para>Para nuestros propósitos, vamos a suponer que un usuario válido
-            cumplirá con tener solo caracteres alfanuméricos, comenzar con una
-            letra, tener una longitud mínima de 6 caracteres y una longitud
+            cumplirá con tener solo
+            caracteres alfanuméricos, comenzar con una
+            letra, tener una longitud mínima de 6
+            caracteres y una longitud
             máxima de 20 caracteres; se normalizarán en minúsculas. Las
             contraseñas deben tener un mínimo de 6 caracteres. Cuando se procese
-            vamos simplemente a mostrar el valor, por lo que puede permanecer
+            vamos simplemente a
+            mostrar el valor, por lo que puede permanecer
             inválido.</para>
 
-        <para>Usaremos el poder de la opciones de configuración de
-                <classname>Zend_Form</classname> para crear el formulario:</para>
+        <para>
+            Usaremos el poder de la opciones de configuración de
+            <classname>Zend_Form</classname>
+            para crear el formulario:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $form = new Zend_Form();
@@ -506,25 +640,41 @@ class UserController extends Zend_Controller_Action
 <?php echo $this->form
 ]]></programlisting>
 
-        <para>Como notará en el código del controlador, hay más trabajo por
-            hacer: mientras la información enviada sea válida, necesitará
+        <para>
+            Como notará en el código del controlador, hay más trabajo por
+            hacer: mientras la
+            información enviada sea válida, necesitará
             todavía realizar la autenticación usando
-            <classname>Zend_Auth</classname>, por ejemplo.</para>
+            <classname>Zend_Auth</classname>
+            , por ejemplo.
+        </para>
     </sect2>
 
     <sect2 id="zend.form.quickstart.config">
         <title>Usando un objeto Zend_Config</title>
 
-        <para>Todas las clases <classname>Zend_Form</classname> son
-            configurables mediante <classname>Zend_Config</classname>; puede
+        <para>
+            Todas las clases
+            <classname>Zend_Form</classname>
+            son
+            configurables mediante
+            <classname>Zend_Config</classname>
+            ; puede
             incluso pasar un objeto al constructor o pasarlo a través de
-                <methodname>setConfig()</methodname>. Veamos cómo podemos crear
-            el formulario anterior usando un archivo <acronym>INI</acronym>.
+            <methodname>setConfig()</methodname>
+            . Veamos cómo podemos crear
+            el formulario anterior usando un archivo
+            <acronym>INI</acronym>
+            .
             Primero, vamos a seguir las recomendaciones, y colocaremos nuestras
-            configuraciones dentro de secciones reflejando su objetivo y y
-            enfocándonos en la sección 'development'. A continuación, pondremos
-            en una sección de configuración para el controlador dado ('user'), y
-            una clave para el formulario ('login'):</para>
+            configuraciones
+            dentro de secciones reflejando su objetivo y y
+            enfocándonos en la sección 'development'.
+            A continuación, pondremos
+            en una sección de configuración para el controlador dado
+            ('user'), y
+            una clave para el formulario ('login'):
+        </para>
 
         <programlisting language="ini"><![CDATA[
 [development]
@@ -566,9 +716,13 @@ $form   = new Zend_Form($config->user->login);
     <sect2 id="zend.form.quickstart.conclusion">
         <title>Conclusión</title>
 
-        <para>Esperamos que después de este pequeño tutorial sea capaz de
-            descubrir el poder y flexibilidad de
-                <classname>Zend_Form</classname>. Continúe leyendo para
-            profundizar más en el tema.</para>
+        <para>
+            Esperamos que después de este pequeño tutorial sea capaz de
+            descubrir el poder y
+            flexibilidad de
+            <classname>Zend_Form</classname>
+            . Continúe leyendo para
+            profundizar más en el tema.
+        </para>
     </sect2>
 </sect1>

+ 357 - 151
documentation/manual/es/module_specs/Zend_Form-StandardDecorators.xml

@@ -1,25 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17175 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17175 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.form.standardDecorators">
     <title>Decoradores de Formulario (Form Decorartors) estándar contenidos en Zend
         Framework</title>
 
     <para>
-        <classname>Zend_Form</classname> se distribuye con distintos decoradores estándar. Para más
-        información sobre el uso de decoradores en general, vea <link linkend="zend.form.decorators"
-            >la sección sobre decoradores</link>. </para>
+        <classname>Zend_Form</classname>
+        se distribuye con distintos decoradores estándar. Para más
+        información sobre el uso de
+        decoradores en general, vea
+        <link linkend="zend.form.decorators">la sección sobre decoradores</link>
+        .
+    </para>
 
     <sect2 id="zend.form.standardDecorators.callback">
         <title>Zend_Form_Decorator_Callback</title>
 
-        <para> El decorador Callback (llamada de retorno) permite ejecutar una llamada de retorno
-            para mostrar el contenido. Las llamadas de retorno deben especificarse a través de la
-            opción 'callback' pasada en la configuración del decorador, y pueden ser de cualquier
-            valor de llamada de retorno <acronym>PHP</acronym>. Los Callbacks deben aceptar tres argumentos:
-                <varname>$content</varname> (el contenido original enviado al decorador),
-                <varname>$element</varname> (el objeto que se está decorando), y un array de
-                <varname>$options</varname>. Un callback de ejemplo sería: </para>
+        <para>
+            El decorador Callback (llamada de retorno) permite ejecutar una llamada de retorno
+            para
+            mostrar el contenido. Las llamadas de retorno deben especificarse a través de la
+            opción
+            'callback' pasada en la configuración del decorador, y pueden ser de cualquier
+            valor de
+            llamada de retorno
+            <acronym>PHP</acronym>
+            . Los Callbacks deben aceptar tres argumentos:
+            <varname>$content</varname>
+            (el contenido original enviado al decorador),
+            <varname>$element</varname>
+            (el objeto que se está decorando), y un array de
+            <varname>$options</varname>
+            . Un callback de ejemplo sería:
+        </para>
 
         <programlisting language="php"><![CDATA[
 class Util
@@ -31,10 +45,15 @@ class Util
 }
 ]]></programlisting>
 
-        <para> Esta llamada de retorno se especificaría como <methodname>array('Util',
-                'label')</methodname>, y generaría un (mal) código HTML para la etiqueta. El
-            decorador Callback reemplazará, antepondrá o postpondrá el contenido original con el que
-            devuelva. </para>
+        <para>
+            Esta llamada de retorno se especificaría como
+            <methodname>array('Util',
+                'label')</methodname>
+            , y generaría un (mal) código HTML para la etiqueta. El
+            decorador Callback reemplazará,
+            antepondrá o postpondrá el contenido original con el que
+            devuelva.
+        </para>
 
         <para> El decorador Callback permite especificar un valor null para la opción placement
             (colocación), que reemplazará el contenido original con el valor devuelto de la llamada
@@ -44,10 +63,15 @@ class Util
     <sect2 id="zend.form.standardDecorators.captcha">
         <title>Zend_Form_Decorator_Captcha</title>
 
-        <para> El decorador Captcha se usa junto con el <link
-                linkend="zend.form.standardElements.captcha">elemento de formulario Captcha</link>.
-            Utiliza el método <methodname>render()</methodname> del adaptador del captcha para
-            generar la salida. </para>
+        <para>
+            El decorador Captcha se usa junto con el
+            <link linkend="zend.form.standardElements.captcha">elemento de formulario Captcha</link>
+            .
+            Utiliza el método
+            <methodname>render()</methodname>
+            del adaptador del captcha para
+            generar la salida.
+        </para>
 
         <para> Una variante del decorador Captcha, 'Captcha_Word', es usada frecuentemente, y crea
             dos elementos, un id y una entrada (input). El id indica el identificador de sesión que
@@ -58,38 +82,75 @@ class Util
     <sect2 id="zend.form.standardDecorators.description">
         <title>Zend_Form_Decorator_Description</title>
 
-        <para> El decorador Description puede ser usado para mostrar un conjunto de descripciones de
-            un elemento <classname>Zend_Form</classname>,
-            <methodname>Zend_Form_Element</methodname>, o
-                <classname>Zend_Form_DisplayGroup</classname>; toma la descripción usando el método
-                <methodname>getDescription()</methodname> del objeto. </para>
-
-        <para> Por defecto, si no se encuentra la descripción, no se genera ninguna salida. Si la
+        <para>
+            El decorador Description puede ser usado para mostrar un conjunto de descripciones de
+            un
+            elemento
+            <classname>Zend_Form</classname>
+            ,
+            <methodname>Zend_Form_Element</methodname>
+            , o
+            <classname>Zend_Form_DisplayGroup</classname>
+            ; toma la descripción usando el método
+            <methodname>getDescription()</methodname>
+            del objeto.
+        </para>
+
+        <para>
+            Por defecto, si no se encuentra la descripción, no se genera ninguna salida. Si la
             descripción está presente, entonces se envolverá en una etiqueta
-                <methodname>p</methodname>
-            <acronym>HTML</acronym> por defecto, aunque tiene la posibilidad de especificar una
-            etiqueta pasando una opción <methodname>tag</methodname> al crear el decorador, o
-            llamando a <methodname>setTag()</methodname>. También puede especificar una clase para
-            el tag usando la opción <methodname>class</methodname> o llamando a
-                <methodname>setClass()</methodname>; por defecto, se usa la clase 'hint'. </para>
-
-        <para> La descripción es escapada utilizando los mecanismos de escapado por defecto del
-            objeto de vista. Puede desactivar esto pasando un valor <constant>FALSE</constant> a la
-            opción 'escape' del decorador o el método <methodname>setEscape()</methodname>. </para>
+            <methodname>p</methodname>
+            <acronym>HTML</acronym>
+            por defecto, aunque tiene la posibilidad de especificar una
+            etiqueta pasando una opción
+            <methodname>tag</methodname>
+            al crear el decorador, o
+            llamando a
+            <methodname>setTag()</methodname>
+            . También puede especificar una clase para
+            el tag usando la opción
+            <methodname>class</methodname>
+            o llamando a
+            <methodname>setClass()</methodname>
+            ; por defecto, se usa la clase 'hint'.
+        </para>
+
+        <para>
+            La descripción es escapada utilizando los mecanismos de escapado por defecto del
+            objeto
+            de vista. Puede desactivar esto pasando un valor
+            <constant>FALSE</constant>
+            a la
+            opción 'escape' del decorador o el método
+            <methodname>setEscape()</methodname>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.form.standardDecorators.dtDdWrapper">
         <title>Zend_Form_Decorator_DtDdWrapper</title>
 
-        <para> Los decoradores por defecto utilizan listas de definición
-                (<methodname>&lt;dl&gt;</methodname>) para generar elementos de formulario
-            (form). Dato que los elementos de formulario pueden aparecer en cualquier orden, grupos
-            de visualización y subformularios pueden ser encapsulados dentro de otros elementos de
-            formulario. Para mantener estos tipos de elemento particulares dentro de la lista de
-            definición, DtDdWrapper crea una nuevo término de definición vacío (definition
-                term)(<methodname>&lt;dt&gt;</methodname>) y encapsula su contenido en un
-            nuevo dato de definición (<methodname>&lt;dd&gt;</methodname>). La salida queda
-            como sigue: </para>
+        <para>
+            Los decoradores por defecto utilizan listas de definición
+            (
+            <methodname>&lt;dl&gt;</methodname>
+            ) para generar elementos de formulario
+            (form). Dato que los elementos de formulario
+            pueden aparecer en cualquier orden, grupos
+            de visualización y subformularios pueden ser
+            encapsulados dentro de otros elementos de
+            formulario. Para mantener estos tipos de
+            elemento particulares dentro de la lista de
+            definición, DtDdWrapper crea una nuevo
+            término de definición vacío (definition
+            term)(
+            <methodname>&lt;dt&gt;</methodname>
+            ) y encapsula su contenido en un
+            nuevo dato de definición (
+            <methodname>&lt;dd&gt;</methodname>
+            ). La salida queda
+            como sigue:
+        </para>
 
         <programlisting language="html"><![CDATA[
 <dt></dt>
@@ -99,18 +160,30 @@ class Util
 </fieldset></dd>
 ]]></programlisting>
 
-        <para> Este decorador reemplaza el contenido que se le provee envolviéndolo dentro del
-            elemento <methodname>&lt;dd&gt;</methodname>. </para>
+        <para>
+            Este decorador reemplaza el contenido que se le provee envolviéndolo dentro del
+            elemento
+            <methodname>&lt;dd&gt;</methodname>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.form.standardDecorators.errors">
         <title>Zend_Form_Decorator_Errors</title>
 
-        <para> Los errores de elemento obtienen su propio decorador con el decorador de errores.
-            Este decorador sustituye al view helper FormErrors, que genera mensajes de error en una
-            lista no ordenada (<methodname>&lt;ul&gt;</methodname>) como elementos de lista
-            (li). El elemento <methodname>&lt;ul&gt;</methodname> recibe una clase de
-            "errores". </para>
+        <para>
+            Los errores de elemento obtienen su propio decorador con el decorador de errores.
+            Este
+            decorador sustituye al view helper FormErrors, que genera mensajes de error en una
+            lista
+            no ordenada (
+            <methodname>&lt;ul&gt;</methodname>
+            ) como elementos de lista
+            (li). El elemento
+            <methodname>&lt;ul&gt;</methodname>
+            recibe una clase de
+            "errores".
+        </para>
 
         <para> El decorador de Errores puede anteponerse o postponerse al contenido que se le
             provee. </para>
@@ -119,43 +192,72 @@ class Util
     <sect2 id="zend.form.standardDecorators.fieldset">
         <title>Zend_Form_Decorator_Fieldset</title>
 
-        <para> Por defecto, los grupos de visualización y subformularios generan sus contenidos
-            dentro de fieldsets, EL decorador Fieldset busca la opción 'legend' o bien el método
-                <methodname>getLegend()</methodname> en el elemento registrado, y lo usa como campo
-            "legend" si no es vacío. Cualquier contenido pasado es envuelto en el fieldset
-                <acronym>HTML</acronym>, reemplazando al contenido original. Cualquier atributo
-            pasado al elemento decorado será generado como atributo del fieldset
-                <acronym>HTML</acronym>. </para>
+        <para>
+            Por defecto, los grupos de visualización y subformularios generan sus contenidos
+            dentro
+            de fieldsets, EL decorador Fieldset busca la opción 'legend' o bien el método
+            <methodname>getLegend()</methodname>
+            en el elemento registrado, y lo usa como campo
+            "legend" si no es vacío. Cualquier
+            contenido pasado es envuelto en el fieldset
+            <acronym>HTML</acronym>
+            , reemplazando al contenido original. Cualquier atributo
+            pasado al elemento decorado será
+            generado como atributo del fieldset
+            <acronym>HTML</acronym>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.form.standardDecorators.file">
         <title>Zend_Form_Decorator_File</title>
 
-        <para> Los elementos de tipo "File" (upload de ficheros) tienen una notación especial cuando
-            se usan múltiples elementos file o subformularios. El decorador File es usado por
-                <classname>Zend_Form_Element_File</classname> y permite fijar múltiples elementos
-            file con una única llamada al método. Se usa automáticamente y fija el nombre de cada
-            elemento. </para>
+        <para>
+            Los elementos de tipo "File" (upload de ficheros) tienen una notación especial cuando
+            se
+            usan múltiples elementos file o subformularios. El decorador File es usado por
+            <classname>Zend_Form_Element_File</classname>
+            y permite fijar múltiples elementos
+            file con una única llamada al método. Se usa
+            automáticamente y fija el nombre de cada
+            elemento.
+        </para>
     </sect2>
 
     <sect2 id="zend.form.standardDecorators.form">
         <title>Zend_Form_Decorator_Form</title>
 
-        <para> Los objetos <classname>Zend_Form</classname> normalmente necesitan generar una
-            etiqueta <acronym>HTML</acronym> "form". El decorador Form utiliza la ayuda del view
-            helper Form. Encapsula cualquier contenido provista en un elemento
-                <acronym>HTML</acronym> form, usando la acción y el método del objeto Zend Form, y
-            cualquier atributo como atributo <acronym>HTML</acronym>. </para>
+        <para>
+            Los objetos
+            <classname>Zend_Form</classname>
+            normalmente necesitan generar una
+            etiqueta
+            <acronym>HTML</acronym>
+            "form". El decorador Form utiliza la ayuda del view
+            helper Form. Encapsula cualquier
+            contenido provista en un elemento
+            <acronym>HTML</acronym>
+            form, usando la acción y el método del objeto Zend Form, y
+            cualquier atributo como
+            atributo
+            <acronym>HTML</acronym>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.form.standardDecorators.formElements">
         <title>Zend_Form_Decorator_FormElements</title>
 
-        <para> Los formularios(forms), grupos de visualización y subformularios son colecciones de
+        <para>
+            Los formularios(forms), grupos de visualización y subformularios son colecciones de
             elementos. Para poder generar estos elementos, utilizan el decorador FormElements, el
-            cual itera sobre todos los elementos, llamando a <methodname>render()</methodname> en
-            cada uno de ellos y uniéndolos con el separador indicado. Puede anteponer o postponer al
-            contenido que se le envía. </para>
+            cual itera sobre todos los elementos, llamando a
+            <methodname>render()</methodname>
+            en
+            cada uno de ellos y uniéndolos con el separador indicado. Puede anteponer o postponer
+            al
+            contenido que se le envía.
+        </para>
     </sect2>
 
     <sect2 id="zend.form.standardDecorators.formErrors">
@@ -188,44 +290,61 @@ class Util
         <itemizedlist>
             <listitem>
                 <para>
-                    <methodname>ignoreSubForms</methodname>: se desactiva o no la recursividad en
-                    los subformularios. Por defecto: <constant>FALSE</constant> (i.e., permitir recursividad). </para>
+                    <methodname>ignoreSubForms</methodname>
+                    : se desactiva o no la recursividad en
+                    los subformularios. Por defecto:
+                    <constant>FALSE</constant>
+                    (i.e., permitir recursividad).
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>markupElementLabelEnd</methodname>: Marcado para postponer las
-                    etiquetas de elementos. Por defecto: '&lt;/b&gt;' </para>
+                    <methodname>markupElementLabelEnd</methodname>:
+                    Marcado para postponer las
+                    etiquetas de elementos. Por defecto: '&lt;/b&gt;'
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>markupElementLabelStart</methodname>: Marcado para anteponer las
-                    etiquetas de elementos. Por defecto'&lt;b&gt;' </para>
+                    <methodname>markupElementLabelStart</methodname>:
+                    Marcado para anteponer las
+                    etiquetas de elementos. Por defecto'&lt;b&gt;'
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>markupListEnd</methodname>: Marcado para postponer listas de
-                    mensajes de error. Por defecto: '&lt;/ul&gt;'. </para>
+                    <methodname>markupListEnd</methodname>:
+                    Marcado para postponer listas de
+                    mensajes de error. Por defecto: '&lt;/ul&gt;'.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>markupListItemEnd</methodname>: Marcado para postponer mensajes de
-                    error individuales. Por defecto: '&lt;/li&gt;' </para>
+                    <methodname>markupListItemEnd</methodname>:
+                    Marcado para postponer mensajes de
+                    error individuales. Por defecto: '&lt;/li&gt;'
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>markupListItemStart</methodname>: Marcado para anteponer mensajes de
-                    error individuales. Por defecto: '&lt;li&gt;' </para>
+                    <methodname>markupListItemStart</methodname>:
+                    Marcado para anteponer mensajes de
+                    error individuales. Por defecto: '&lt;li&gt;'
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>markupListStart</methodname>: Marcado para anteponer listas de
-                    mensajes de error. Por defecto: '&lt;ul class="form-errors"&gt;' </para>
+                    <methodname>markupListStart</methodname>:
+                    Marcado para anteponer listas de
+                    mensajes de error. Por defecto: '&lt;ul
+                    class="form-errors"&gt;'
+                </para>
             </listitem>
         </itemizedlist>
 
@@ -236,48 +355,91 @@ class Util
     <sect2 id="zend.form.standardDecorators.htmlTag">
         <title>Zend_Form_Decorator_HtmlTag</title>
 
-        <para> El decorador HtmlTag le permite utilizar etiquetas <acronym>HTML</acronym> para
-            decorador el contenido; la etiqueta utiliza es pasada en la opción 'tag' , y cualquier
-            otra opción es usada como atributo <acronym>HTML</acronym> de esa etiqueta. Por defecto,
-            el contenido generado reemplaza al contenido envolviéndolo en la etiqueta dada. De
-            cualquier forma, se permite especificar una localización de tipo 'append' (postponer) o
-            'prepend' (anteponer). </para>
+        <para>
+            El decorador HtmlTag le permite utilizar etiquetas
+            <acronym>HTML</acronym>
+            para
+            decorador el contenido; la etiqueta utiliza es pasada en la opción 'tag' , y
+            cualquier
+            otra opción es usada como atributo
+            <acronym>HTML</acronym>
+            de esa etiqueta. Por defecto,
+            el contenido generado reemplaza al contenido envolviéndolo
+            en la etiqueta dada. De
+            cualquier forma, se permite especificar una localización de tipo
+            'append' (postponer) o
+            'prepend' (anteponer).
+        </para>
     </sect2>
 
     <sect2 id="zend.form.standardDecorators.image">
         <title>Zend_Form_Decorator_Image</title>
 
-        <para> El decorador Image le permite crear un input <acronym>HTML</acronym> de tipo image
-                (<methodname>&lt;input type="image" ... /&gt;</methodname>), y opcionalmente
-            mostrarlo dentro de otro tag <acronym>HTML</acronym>. </para>
-
-        <para> Por defecto, el decorador usa la propiedad src del elemento, que puede fijarse con el
-            método <methodname>setImage()</methodname>, como la ruta de la imagen ('src').
-            Adicionalmente, la etiqueta del elemento será usada como la etiqueta 'alt', y
-                <methodname>imageValue</methodname> (manipulado con los métodos
-                <methodname>setImageValue()</methodname> y <methodname>getImageValue()</methodname>)
-            será usada como el campo 'value'. </para>
-
-        <para> Para especificar una etiqueta <acronym>HTML</acronym> que utilizar con el elemento,
+        <para>
+            El decorador Image le permite crear un input
+            <acronym>HTML</acronym>
+            de tipo image
+            (
+            <methodname>&lt;input type="image" ... /&gt;</methodname>
+            ), y opcionalmente
+            mostrarlo dentro de otro tag
+            <acronym>HTML</acronym>
+            .
+        </para>
+
+        <para>
+            Por defecto, el decorador usa la propiedad src del elemento, que puede fijarse con el
+            método
+            <methodname>setImage()</methodname>
+            , como la ruta de la imagen ('src').
+            Adicionalmente, la etiqueta del elemento será usada
+            como la etiqueta 'alt', y
+            <methodname>imageValue</methodname>
+            (manipulado con los métodos
+            <methodname>setImageValue()</methodname>
+            y
+            <methodname>getImageValue()</methodname>
+            )
+            será usada como el campo 'value'.
+        </para>
+
+        <para>
+            Para especificar una etiqueta
+            <acronym>HTML</acronym>
+            que utilizar con el elemento,
             pase la opción 'tag' al decorador, o llame explícitamente a
-                <methodname>setTag()</methodname>. </para>
+            <methodname>setTag()</methodname>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.form.standardDecorators.label">
         <title>Zend_Form_Decorator_Label</title>
 
-        <para> Comúnmente, los elementos de formulario tienen etiquetas (labels) y se usa el
-            decorador Label para generar esas etiquetas. Utiliza la ayuda del view helper FormLabel,
-            y toma la etiqueta del elemento mediante el método <methodname>getLabel()</methodname>
+        <para>
+            Comúnmente, los elementos de formulario tienen etiquetas (labels) y se usa el
+            decorador
+            Label para generar esas etiquetas. Utiliza la ayuda del view helper FormLabel,
+            y toma la
+            etiqueta del elemento mediante el método
+            <methodname>getLabel()</methodname>
             de ese elemento. Si no se encuentra la etiqueta, no se genera. Por defecto, las
             etiquetas se traducen cuando existe un adaptador de traducciones y existe una traducción
-            para la etiqueta. </para>
-
-        <para> Opcionalmente, se puede especificar la opción 'tag'; si se suministra, encapsula la
-            etiqueta en la etiqueta <acronym>HTML</acronym> en cuestión. Si la opción está presenta
-            pero no hay etiqueta, la etiqueta será generada sin contenido. Puede especificar la
-            clase que usar con la etiqueta mediante la opción 'class' o llamando a
-                <methodname>setClass()</methodname>. </para>
+            para la etiqueta.
+        </para>
+
+        <para>
+            Opcionalmente, se puede especificar la opción 'tag'; si se suministra, encapsula la
+            etiqueta en la etiqueta
+            <acronym>HTML</acronym>
+            en cuestión. Si la opción está presenta
+            pero no hay etiqueta, la etiqueta será generada
+            sin contenido. Puede especificar la
+            clase que usar con la etiqueta mediante la opción
+            'class' o llamando a
+            <methodname>setClass()</methodname>
+            .
+        </para>
 
         <para> Adicionalmente, se pueden especificar prefijos o sufijos que usar al mostrar en
             pantalla los elementos, basados en si la etiqueta es para un elemento opcional o
@@ -287,34 +449,54 @@ class Util
         <itemizedlist>
             <listitem>
                 <para>
-                    <methodname>optionalPrefix</methodname>: fija el texto antepuesto a la etiqueta
-                    cuando el elemento es opcional. Utilice los accesores
-                        <methodname>setOptionalPrefix()</methodname> y
-                        <methodname>getOptionalPrefix()</methodname> para manipularlo. </para>
+                    <methodname>optionalPrefix</methodname>
+                    : fija el texto antepuesto a la etiqueta
+                    cuando el elemento es opcional. Utilice
+                    los accesores
+                    <methodname>setOptionalPrefix()</methodname>
+                    y
+                    <methodname>getOptionalPrefix()</methodname>
+                    para manipularlo.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>optionalSuffix</methodname>: fija el texto pospuesto a la etiqueta
-                    cuando el elemento es opcional. Utilice los accesores
-                        <methodname>setOptionalSuffix()</methodname> y
-                        <methodname>getOptionalSuffix()</methodname> para manipularlo. </para>
+                    <methodname>optionalSuffix</methodname>
+                    : fija el texto pospuesto a la etiqueta
+                    cuando el elemento es opcional. Utilice
+                    los accesores
+                    <methodname>setOptionalSuffix()</methodname>
+                    y
+                    <methodname>getOptionalSuffix()</methodname>
+                    para manipularlo.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>requiredPrefix</methodname>: fija el texto antepuesto a la etiqueta
-                    cuando el elemento es requerido. Utilice los accesores
-                        <methodname>setRequiredPrefix()</methodname> y
-                        <methodname>getRequiredPrefix()</methodname> para manipularlo. </para>
+                    <methodname>requiredPrefix</methodname>
+                    : fija el texto antepuesto a la etiqueta
+                    cuando el elemento es requerido. Utilice
+                    los accesores
+                    <methodname>setRequiredPrefix()</methodname>
+                    y
+                    <methodname>getRequiredPrefix()</methodname>
+                    para manipularlo.
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>requiredSuffix</methodname>: fija el texto antepuesto a la etiqueta
-                    cuando el elemento es requerido. Utilice los accesores
-                        <methodname>setRequiredSuffix()</methodname> y
-                        <methodname>getRequiredSuffix()</methodname> para manipularlo. </para>
+                    <methodname>requiredSuffix</methodname>
+                    : fija el texto antepuesto a la etiqueta
+                    cuando el elemento es requerido. Utilice
+                    los accesores
+                    <methodname>setRequiredSuffix()</methodname>
+                    y
+                    <methodname>getRequiredSuffix()</methodname>
+                    para manipularlo.
+                </para>
             </listitem>
         </itemizedlist>
 
@@ -325,13 +507,20 @@ class Util
     <sect2 id="zend.form.standardDecorators.prepareElements">
         <title>Zend_Form_Decorator_PrepareElements</title>
 
-        <para> Formularios, grupos de visualización, y subformularios son colecciones de elementos.
-            Al usar el decorador <link linkend="zend.form.standardDecorators.viewScript"
-                >ViewScript</link> con un formulario o subformulario, resulta útil el poder fijar
-            recursívamente el objeto de vista, el traductor (translator)y todos los nombres
-            relacionados (determinados por la notiación de tabla del subformulario). Esta tarea
-            puede realizarse gracias al decorador 'PrepareElements'. Normalmente, se indicará como
-            el primer decorador en al lista. </para>
+        <para>
+            Formularios, grupos de visualización, y subformularios son colecciones de elementos.
+            Al
+            usar el decorador
+            <link linkend="zend.form.standardDecorators.viewScript">ViewScript</link>
+            con un formulario o subformulario, resulta útil el poder fijar
+            recursívamente el objeto
+            de vista, el traductor (translator)y todos los nombres
+            relacionados (determinados por la
+            notiación de tabla del subformulario). Esta tarea
+            puede realizarse gracias al decorador
+            'PrepareElements'. Normalmente, se indicará como
+            el primer decorador en al lista.
+        </para>
 
         <programlisting language="php"><![CDATA[
 $form->setDecorators(array(
@@ -344,12 +533,19 @@ $form->setDecorators(array(
     <sect2 id="zend.form.standardDecorators.viewHelper">
         <title>Zend_Form_Decorator_ViewHelper</title>
 
-        <para> La mayoría de los elementos utiliza helpers <classname>Zend_View</classname> para
-            generar el contenido, y esto se realiza con el decorador ViewHelper. Con él, se puede
-            especificar una etiqueta 'helper' para fijar explicitamente el view helper que utilizar;
-            si no se suministra ninguno, utiliza el último segmento del nombre de clase del elemento
+        <para>
+            La mayoría de los elementos utiliza helpers
+            <classname>Zend_View</classname>
+            para
+            generar el contenido, y esto se realiza con el decorador ViewHelper. Con él, se
+            puede
+            especificar una etiqueta 'helper' para fijar explicitamente el view helper que
+            utilizar;
+            si no se suministra ninguno, utiliza el último segmento del nombre de clase del
+            elemento
             para determinar el helper, anteponiéndole la cadena 'form': e.g.,
-            'Zend_Form_Element_Text' buscaría un view helper del tipo 'formText'. </para>
+            'Zend_Form_Element_Text' buscaría un view helper del tipo 'formText'.
+        </para>
 
         <para> Cualquier atributo del elemento suministrado es pasado al view helper como atributo
             del elemento. </para>
@@ -375,23 +571,33 @@ $form->setDecorators(array(
         <itemizedlist>
             <listitem>
                 <para>
-                    <methodname>element</methodname>: el elemento decorado </para>
+                    <methodname>element</methodname>
+                    : el elemento decorado
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>content</methodname>: el contenido pasado al decorador </para>
+                    <methodname>content</methodname>
+                    : el contenido pasado al decorador
+                </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>decorator</methodname>: el propio objeto decorador </para>
+                    <methodname>decorator</methodname>
+                    : el propio objeto decorador
+                </para>
             </listitem>
 
             <listitem>
-                <para> Del mismo modo, todas las opciones pasadas al decorador a través de
-                        <methodname>setOptions()</methodname> que no son usadas internamente (tales
-                    como placement, separator, etc.) son pasadas como variables de vista. </para>
+                <para>
+                    Del mismo modo, todas las opciones pasadas al decorador a través de
+                    <methodname>setOptions()</methodname>
+                    que no son usadas internamente (tales
+                    como placement, separator, etc.) son
+                    pasadas como variables de vista.
+                </para>
             </listitem>
         </itemizedlist>
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 477 - 227
documentation/manual/es/module_specs/Zend_Form-StandardElements.xml


+ 31 - 12
documentation/manual/es/module_specs/Zend_Json-Basics.xml

@@ -1,11 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 19912 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 19912 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.json.basics">
     <title>Uso Básico</title>
-    <para>El uso de <classname>Zend_Json</classname> consiste en utilizar los dos métodos públicos
-        estáticos disponibles: <methodname>Zend_Json::encode()</methodname> y
-            <methodname>Zend_Json::decode()</methodname>.</para>
+    <para>
+        El uso de
+        <classname>Zend_Json</classname>
+        consiste en utilizar los dos métodos públicos
+        estáticos disponibles:
+        <methodname>Zend_Json::encode()</methodname>
+        y
+        <methodname>Zend_Json::decode()</methodname>
+        .
+    </para>
     <programlisting language="php"><![CDATA[
 // Recuperar un valor:
 $phpNative = Zend_Json::decode($encodedValue);
@@ -18,11 +25,19 @@ $json = Zend_Json::encode($phpNative);
         <title>Pretty-printing JSON</title>
 
         <para>
-            Sometimes, it may be hard to explore <acronym>JSON</acronym> data generated by
-            <methodname>Zend_Json::encode()</methodname>,
-            since it has no spacing or indentation. In order to make it easier, <classname>Zend_Json</classname>
-            allows you to pretty-print <acronym>JSON</acronym> data in the human-readable format
-            with <methodname>Zend_Json::prettyPrint()</methodname>.
+            Sometimes, it may be hard to explore
+            <acronym>JSON</acronym>
+            data generated by
+            <methodname>Zend_Json::encode()</methodname>
+            ,
+            since it has no spacing or indentation. In order to make it easier,
+            <classname>Zend_Json</classname>
+            allows you to pretty-print
+            <acronym>JSON</acronym>
+            data in the human-readable format
+            with
+            <methodname>Zend_Json::prettyPrint()</methodname>
+            .
         </para>
 
         <programlisting language="php"><![CDATA[
@@ -34,8 +49,12 @@ if($debug) {
 ]]></programlisting>
 
         <para>
-            Second optional argument of <methodname>Zend_Json::prettyPrint()</methodname> is an option array.
-            Option <code>indent</code> allows to set indentation string - by default it's a single tab character.
+            Second optional argument of
+            <methodname>Zend_Json::prettyPrint()</methodname>
+            is an option array.
+            Option
+            <code>indent</code>
+            allows to set indentation string - by default it's a single tab character.
         </para>
     </sect2>
 </sect1>

+ 57 - 20
documentation/manual/es/module_specs/Zend_Json-Introduction.xml

@@ -1,28 +1,65 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17227 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17227 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.json.introduction">
     <title>Introducción</title>
     <para>
-        <classname>Zend_Json</classname> ofrece métodos convenientes para la serialización desde
-            <acronym>PHP</acronym> nativo a <acronym>JSON</acronym> y la decodificación
-            <acronym>JSON</acronym> a <acronym>PHP</acronym> nativo. Para más información sobre
-            <acronym>JSON</acronym>, <ulink url="http://www.json.org/"> visite el sitio del proyecto
-                <acronym>JSON</acronym></ulink>.</para>
-    <para><acronym>JSON</acronym>, JavaScript Object Notation, puede ser utilizado para intercambio
-        de datos entre JavaScript y otros lenguajes. Dado que <acronym>JSON</acronym> puede ser
+        <classname>Zend_Json</classname>
+        ofrece métodos convenientes para la serialización desde
+        <acronym>PHP</acronym>
+        nativo a
+        <acronym>JSON</acronym>
+        y la decodificación
+        <acronym>JSON</acronym>
+        a
+        <acronym>PHP</acronym>
+        nativo. Para más información sobre
+        <acronym>JSON</acronym>
+        ,
+        <ulink url="http://www.json.org/">
+            visite el sitio del proyecto
+            <acronym>JSON</acronym>
+        </ulink>
+        .
+    </para>
+    <para>
+        <acronym>JSON</acronym>
+        , JavaScript Object Notation, puede ser utilizado para intercambio
+        de datos entre JavaScript
+        y otros lenguajes. Dado que
+        <acronym>JSON</acronym>
+        puede ser
         evaluado directamente por JavaScript, es más eficiente y ligero que el formato
-            <acronym>XML</acronym> para intercambiar datos con clientes JavaScript.</para>
+        <acronym>XML</acronym>
+        para intercambiar datos con clientes JavaScript.
+    </para>
 
-    <para>Adicionalmente, <classname>Zend_Json</classname> provee una forma útil para convertir
-        cualquier string arbitrario con formato <acronym>XML</acronym> en un string con formato
-            <acronym>JSON</acronym>. Este rasgo integral permite a desarrolladores
-            <acronym>PHP</acronym> transformar los datos codificados de la empresa en formato
-            <acronym>XML</acronym> a formato<acronym>JSON</acronym> antes de enviarlos a las
-        aplicaciones del cliente <acronym>AJAX</acronym> basadas en navegadores web. Provee una
-        manera fácil de hacer conversiones dinámicas de datos del código en el servidor evitando así
-        el innecesario parsing de <acronym>XML</acronym> de las aplicaciones en el navegador. Ofrece
-        una agradable función útil que facilita las técnicas de procesamiento de datos para
-        aplicaciones específicas.</para>
+    <para>
+        Adicionalmente,
+        <classname>Zend_Json</classname>
+        provee una forma útil para convertir
+        cualquier string arbitrario con formato
+        <acronym>XML</acronym>
+        en un string con formato
+        <acronym>JSON</acronym>
+        . Este rasgo integral permite a desarrolladores
+        <acronym>PHP</acronym>
+        transformar los datos codificados de la empresa en formato
+        <acronym>XML</acronym>
+        a formato
+        <acronym>JSON</acronym>
+        antes de enviarlos a las
+        aplicaciones del cliente
+        <acronym>AJAX</acronym>
+        basadas en navegadores web. Provee una
+        manera fácil de hacer conversiones dinámicas de datos
+        del código en el servidor evitando así
+        el innecesario parsing de
+        <acronym>XML</acronym>
+        de las aplicaciones en el navegador. Ofrece
+        una agradable función útil que facilita las
+        técnicas de procesamiento de datos para
+        aplicaciones específicas.
+    </para>
 
 </sect1>

+ 133 - 55
documentation/manual/es/module_specs/Zend_Json-Objects.xml

@@ -1,77 +1,138 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17227 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17227 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.json.advanced">
     <title>Uso Avanzado de Zend_Json</title>
 
     <sect2 id="zend.json.advanced.objects1">
         <title>Objetos JSON</title>
-        <para>Cuando se codifican objetos <acronym>PHP</acronym> como
-                <acronym>JSON</acronym>, todas las propiedades públicas de ese
+        <para>
+            Cuando se codifican objetos
+            <acronym>PHP</acronym>
+            como
+            <acronym>JSON</acronym>
+            , todas las propiedades públicas de ese
             objeto serán codificadas en un objeto
-            <acronym>JSON</acronym>.</para>
-        <para><acronym>JSON</acronym> no permite referencias a objetos, de
-            manera que debe tenerse cuidado de no codificar objetos con
+            <acronym>JSON</acronym>
+            .
+        </para>
+        <para>
+            <acronym>JSON</acronym>
+            no permite referencias a objetos, de
+            manera que debe tenerse cuidado de no codificar
+            objetos con
             referencias recursivas. Si tiene problemas con la recursión,
-                <methodname>Zend_Json::encode()</methodname> y
-                <methodname>Zend_Json_Encoder::encode()</methodname> permiten un
+            <methodname>Zend_Json::encode()</methodname>
+            y
+            <methodname>Zend_Json_Encoder::encode()</methodname>
+            permiten un
             segundo parámetro opcional para comprobar si hay recursión; si un
-            objeto es serializado dos veces, se emitirá una excepción.</para>
-        <para>La decodificación de objetos <acronym>JSON</acronym> plantea una
+            objeto es
+            serializado dos veces, se emitirá una excepción.
+        </para>
+        <para>
+            La decodificación de objetos
+            <acronym>JSON</acronym>
+            plantea una
             dificultad adicional, sin embargo, ya que los objetos Javascript se
             corresponden más estrechamente a un array asociativo de
-                <acronym>PHP</acronym>. Algunos sugieren que debe pasarse un
-            identificador de clase, y una instancia del objeto de esa clase debe
+            <acronym>PHP</acronym>
+            . Algunos sugieren que debe pasarse un
+            identificador de clase, y una instancia del objeto
+            de esa clase debe
             crearse y alimentarla con datos de pares clave/valor del objeto
-                <acronym>JSON</acronym>; otros consideran que esto podría
-            plantear un considerable riesgo de seguridad.</para>
-        <para>Por defecto, <classname>Zend_Json</classname> decodificará objetos
-                <acronym>JSON</acronym> como arrays asociativos. Sin embargo, si
-            desea retornar un objeto, puede especificar esto:</para>
+            <acronym>JSON</acronym>
+            ; otros consideran que esto podría
+            plantear un considerable riesgo de seguridad.
+        </para>
+        <para>
+            Por defecto,
+            <classname>Zend_Json</classname>
+            decodificará objetos
+            <acronym>JSON</acronym>
+            como arrays asociativos. Sin embargo, si
+            desea retornar un objeto, puede especificar
+            esto:
+        </para>
         <programlisting language="php"><![CDATA[
 // Decodifica objetos JSON como objetos PHP
 $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
 ]]></programlisting>
-        <para>Por lo tanto, cualquiera de los objetos decodificados son
-            devueltos como objetos <methodname>StdClass</methodname> con
+        <para>
+            Por lo tanto, cualquiera de los objetos decodificados son
+            devueltos como objetos
+            <methodname>StdClass</methodname>
+            con
             propiedades correspondientea a pares clave/valor en la notación
-                <acronym>JSON</acronym>.</para>
-        <para>La recomendación de Zend Framework es que el desarrollador debe
-            decidir cómo decodificar objetos <acronym>JSON</acronym>. Si debe
+            <acronym>JSON</acronym>
+            .
+        </para>
+        <para>
+            La recomendación de Zend Framework es que el desarrollador debe
+            decidir cómo decodificar
+            objetos
+            <acronym>JSON</acronym>
+            . Si debe
             crearse un objeto de un determinado tipo, puede ser creado en el
-            código del desarrollador y alimentado con datos de los valores
-            decodificados utilizando <classname>Zend_Json</classname>.</para>
+            código del
+            desarrollador y alimentado con datos de los valores
+            decodificados utilizando
+            <classname>Zend_Json</classname>
+            .
+        </para>
     </sect2>
 
     <sect2 id="zend.json.advanced.objects2">
         <title>Codificando Objetos PHP</title>
 
-        <para>Si se codifican objetos <acronym>PHP</acronym> por defecto, el
+        <para>
+            Si se codifican objetos
+            <acronym>PHP</acronym>
+            por defecto, el
             mecanismo de codificación sólo tiene acceso a las propiedades
-            públicas de estos objetos. Cuando se implementa un método
-                <methodname>toJson()</methodname> en un objeto a codificar,
-                <classname>Zend_Json</classname> llama a este método y espera
-            que el objeto devuelva una representación <acronym>JSON</acronym> de
-            su estado interno.</para>
+            públicas de
+            estos objetos. Cuando se implementa un método
+            <methodname>toJson()</methodname>
+            en un objeto a codificar,
+            <classname>Zend_Json</classname>
+            llama a este método y espera
+            que el objeto devuelva una representación
+            <acronym>JSON</acronym>
+            de
+            su estado interno.
+        </para>
     </sect2>
 
     <sect2 id="zend.json.advanced.internal">
         <title>Codificador/Decodificador Interno</title>
 
-        <para>Zend_Json tiene dos modos diferentes dependiendo de si ext/json
-            está habilitada o no en su instalación <acronym>PHP</acronym>. Si
+        <para>
+            Zend_Json tiene dos modos diferentes dependiendo de si ext/json
+            está habilitada o no en
+            su instalación
+            <acronym>PHP</acronym>
+            . Si
             ext/json está instalado por defecto, las funciones
-                <methodname>json_encode()</methodname> y
-                <methodname>json_decode()</methodname> se utilizan para la
-            codificación y decodificación <acronym>JSON</acronym>. Si ext/json
+            <methodname>json_encode()</methodname>
+            y
+            <methodname>json_decode()</methodname>
+            se utilizan para la
+            codificación y decodificación
+            <acronym>JSON</acronym>
+            . Si ext/json
             no está instalado, una implementación de Zend Framework en código
-                <acronym>PHP</acronym> es utilizada para la
+            <acronym>PHP</acronym>
+            es utilizada para la
             codificación/decodificación. Esto es considerablemente más lento que
-            usando la extensión de <acronym>PHP</acronym>, pero se comporta
-            exactamente igual.</para>
+            usando la extensión de
+            <acronym>PHP</acronym>
+            , pero se comporta
+            exactamente igual.
+        </para>
 
         <para>También algunas veces puede querer utilizar el
-            codificador/decodificador interno incluso si tiene ext/json
+            codificador/decodificador interno
+            incluso si tiene ext/json
             instalado. Puede hacer esto llamando a:</para>
 
         <programlisting language="php"><![CDATA[
@@ -82,27 +143,44 @@ Zend_Json::$useBuiltinEncoderDecoder = true:
     <sect2 id="zend.json.advanced.expr">
         <title>Expresiones JSON</title>
 
-        <para>Javascript hace uso intenso de las funciones anónimas de llamadas
-            de retorno, que pueden guardarse en variables del objeto
-                <acronym>JSON</acronym>. Aunque solo funcionan si no regresaron
-            dentro comillas dobles, que es lo que hace naturalmente
-                <classname>Zend_Json</classname>. Con la Expression de apoyo
+        <para>
+            Javascript hace uso intenso de las funciones anónimas de llamadas
+            de retorno, que pueden
+            guardarse en variables del objeto
+            <acronym>JSON</acronym>
+            . Aunque solo funcionan si no regresaron
+            dentro comillas dobles, que es lo que hace
+            naturalmente
+            <classname>Zend_Json</classname>
+            . Con la Expression de apoyo
             para Zend_Json este apoyo puede codificar objetos
-                <acronym>JSON</acronym> con callbacks validos de javascript.
-            Esto funciona tanto con <methodname>json_encode()</methodname> como
-            con el codificador interno.</para>
+            <acronym>JSON</acronym>
+            con callbacks validos de javascript.
+            Esto funciona tanto con
+            <methodname>json_encode()</methodname>
+            como
+            con el codificador interno.
+        </para>
 
-        <para>Un callback javascript se representa usando el objero
-                <classname>Zend_Json_Expr</classname>. Este implementa el patrón
-            del objeto valor y es inmutable. Se puede establecer la expresión de
+        <para>
+            Un callback javascript se representa usando el objero
+            <classname>Zend_Json_Expr</classname>
+            . Este implementa el patrón
+            del objeto valor y es inmutable. Se puede establecer la
+            expresión de
             javascript como el primer argumento del constructor. Por defecto
-                <classname>Zend_Json::encode</classname> no codifica callbacks
+            <classname>Zend_Json::encode</classname>
+            no codifica callbacks
             javascript, usted tiene que pasar la opción
-                <methodname>'enableJsonExprFinder' = true</methodname> dentro de
-            la función <methodname>encode</methodname>. Si se habilita, la
+            <methodname>'enableJsonExprFinder' = true</methodname>
+            dentro de
+            la función
+            <methodname>encode</methodname>
+            . Si se habilita, la
             expresión de apoyo trabaja para todas las expresiones anidadas en
             grandes estructuras de objetos. Un ejemplo de uso se vería
-            así:</para>
+            así:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $data = array(

+ 802 - 348
documentation/manual/es/module_specs/Zend_Json-Server.xml

@@ -1,29 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 19477 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 19477 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.json.server">
     <title>Zend_Json_Server - servidor JSON-RPC</title>
 
     <para>
-        <classname>Zend_Json_Server</classname> es una implementación del
-        servidor <ulink url="http://groups.google.com/group/json-rpc/"
-            >JSON-RPC</ulink> Soporta tanto la versión 1 de la especificación
-            <ulink url="http://json-rpc.org/wiki/specification">JSON-RPC</ulink>
-        así como la especificación de la <ulink
-            url="http://groups.google.com/group/json-rpc/web/json-rpc-1-2-proposal"
-            >versión 2</ulink>; además, provee una implementación de
-            <acronym>PHP</acronym> de la especificación del <ulink
-            url="http://groups.google.com/group/json-schema/web/service-mapping-description-proposal"
-            >Service Mapping Description (SMD)</ulink> para prestar un servicio
-        de metadatos a consumidores del servicio.</para>
-
-    <para>JSON-RPC es un protocolo liviano de Remote Procedure Call que utiliza
-        JSON para envolver sus mensajes. Esta implementación JSON-RPC sigue la
-            <acronym>API</acronym>
-        <acronym>PHP</acronym> de <ulink
-            url="http://us.php.net/manual/en/function.soap-soapserver-construct.php"
-            >SoapServer</ulink>. Esto significa que, en una situación típica,
-        simplemente:</para>
+        <classname>Zend_Json_Server</classname>
+        es una implementación del
+        servidor
+        <ulink url="http://groups.google.com/group/json-rpc/">JSON-RPC</ulink>
+        Soporta tanto la versión 1 de la especificación
+        <ulink url="http://json-rpc.org/wiki/specification">JSON-RPC</ulink>
+        así como la especificación de la
+        <ulink url="http://groups.google.com/group/json-rpc/web/json-rpc-1-2-proposal">versión
+            2</ulink>
+        ; además, provee una implementación de
+        <acronym>PHP</acronym>
+        de la especificación del
+        <ulink url="http://groups.google.com/group/json-schema/web/service-mapping-description-proposal">Service
+            Mapping Description (SMD)</ulink>
+        para prestar un servicio
+        de metadatos a consumidores del servicio.
+    </para>
+
+    <para>
+        JSON-RPC es un protocolo liviano de Remote Procedure Call que utiliza
+        JSON para envolver sus
+        mensajes. Esta implementación JSON-RPC sigue la
+        <acronym>API</acronym>
+        <acronym>PHP</acronym>
+        de
+        <ulink url="http://us.php.net/manual/en/function.soap-soapserver-construct.php">SoapServer</ulink>
+        . Esto significa que, en una situación típica,
+        simplemente:
+    </para>
 
     <itemizedlist>
         <listitem>
@@ -39,13 +49,20 @@
     </itemizedlist>
 
     <para>
-        <classname>Zend_Json_Server</classname> utiliza <xref
-            linkend="zend.server.reflection"/> para realizar reflexión sobre
+        <classname>Zend_Json_Server</classname>
+        utiliza
+        <xref linkend="zend.server.reflection"/>
+        para realizar reflexión sobre
         cualquiera de las clases o funciones agregadas, y utiliza esa
         información para construir tanto la SMD y hacer cumplir el método de
-        llamado de firmas. Como tal, es imperativo que cualquier de las
-        funciones agregadas y/o los métodos de clase tengan mínimamente una
-        plena documentación de <acronym>PHP</acronym> docblocks:</para>
+        llamado de firmas. Como
+        tal, es imperativo que cualquier de las
+        funciones agregadas y/o los métodos de clase tengan
+        mínimamente una
+        plena documentación de
+        <acronym>PHP</acronym>
+        docblocks:
+    </para>
 
     <itemizedlist>
         <listitem>
@@ -57,19 +74,25 @@
     </itemizedlist>
 
     <para>
-        <classname>Zend_Json_Server</classname> escucha por solicitudes POST
+        <classname>Zend_Json_Server</classname>
+        escucha por solicitudes POST
         únicamente en este momento; afortunadamente, la mayoría de las
         implementaciones del cliente JSON-RPC en los medios en el momento de
-        escribir esto, sólo requieren a POST como es. Esto hace que sea fácil de
-        utilizar el mismo punto final del servidor para manejar a ambas
-        peticiones así como para entregar el servicio SMD, como se muestra en el
-        siguiente ejemplo.</para>
+        escribir esto, sólo
+        requieren a POST como es. Esto hace que sea fácil de
+        utilizar el mismo punto final del
+        servidor para manejar a ambas
+        peticiones así como para entregar el servicio SMD, como se
+        muestra en el
+        siguiente ejemplo.
+    </para>
 
     <example id="zend.json.server.usage">
         <title>Uso de Zend_Json_Server</title>
 
         <para>Primero, definir una clase que queramos exponer vía servidor
-            JSON-RPC. Vamos a la clase 'Calculator', y definir los métodos para
+            JSON-RPC. Vamos a la clase
+            'Calculator', y definir los métodos para
             'add', 'subtract', 'multiply', y 'divide':</para>
 
         <programlisting language="php"><![CDATA[
@@ -128,11 +151,18 @@ class Calculator
 }
 ]]></programlisting>
 
-        <para>Nótese que cada método tiene un docblock con entradas indicando
-            cada parámetro y su tipo, así como una entrada para el valor de
-            retorno. Esto es <emphasis>absolutamente crítico</emphasis> cuando
-            se usa <classname>Zend_Json_Server</classname> -- o cualquier otro
-            componente del servidor en Zend Framework, por esa cuestión.</para>
+        <para>
+            Nótese que cada método tiene un docblock con entradas indicando
+            cada parámetro y su tipo,
+            así como una entrada para el valor de
+            retorno. Esto es
+            <emphasis>absolutamente crítico</emphasis>
+            cuando
+            se usa
+            <classname>Zend_Json_Server</classname>
+            -- o cualquier otro
+            componente del servidor en Zend Framework, por esa cuestión.
+        </para>
 
         <para>Ahora, crearemos un script para manejar las peticiones:</para>
 
@@ -146,10 +176,16 @@ $server->setClass('Calculator');
 $server->handle();
 ]]></programlisting>
 
-        <para>Sin embargo, esto no soluciona el problema de devolución de un
-            SMD para que el cliente JSON-RPC pueda autodescubrir los métodos.
-            Esto puede lograrse determinando el método del requerimiento <acronym>HTTP</acronym>, y
-            luego especificando algún servidor de metadatos:</para>
+        <para>
+            Sin embargo, esto no soluciona el problema de devolución de un
+            SMD para que el cliente
+            JSON-RPC pueda autodescubrir los métodos.
+            Esto puede lograrse determinando el método del
+            requerimiento
+            <acronym>HTTP</acronym>
+            , y
+            luego especificando algún servidor de metadatos:
+        </para>
 
         <programlisting language="php"><![CDATA[
 $server = new Zend_Json_Server();
@@ -173,7 +209,8 @@ $server->handle();
 ]]></programlisting>
 
         <para>Si utiliza el servidor JSON-RPC con Dojo toolkit, también
-            necesitará establecer un flag de compatibilidad especial para
+            necesitará establecer un flag
+            de compatibilidad especial para
             garantizar que los dos interoperen correctamente:</para>
 
         <programlisting language="php"><![CDATA[
@@ -200,80 +237,128 @@ $server->handle();
     <sect2 id="zend.json.server.details">
         <title>Detalles Avanzados</title>
 
-        <para>Aunque la mayor funcionalidad de
-                <classname>Zend_Json_Server</classname> se puntualiza en <xref
-                linkend="zend.json.server.usage"/>, hay más funcionalidad
-            avanzada disponible.</para>
+        <para>
+            Aunque la mayor funcionalidad de
+            <classname>Zend_Json_Server</classname>
+            se puntualiza en
+            <xref linkend="zend.json.server.usage"/>
+            , hay más funcionalidad
+            avanzada disponible.
+        </para>
 
         <sect3 id="zend.json.server.details.zendjsonserver">
             <title>Zend_Json_Server</title>
 
             <para>
-                <classname>Zend_Json_Server</classname> es la clase núcleo en la
+                <classname>Zend_Json_Server</classname>
+                es la clase núcleo en la
                 propuesta JSON-RPC; que maneja todas las peticiones y como
                 respuesta devuelve un conjunto de datos. Tiene los siguientes
-                métodos:</para>
+                métodos:
+            </para>
 
             <itemizedlist>
                 <listitem>
-                    <para><methodname>addFunction($function)</methodname>:
+                    <para>
+                        <methodname>addFunction($function)</methodname>
+                        :
                         Especifica la función de espacio del usuario para
-                        agregar al servidor.</para>
+                        agregar al servidor.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setClass($class)</methodname>: Especifica
+                    <para>
+                        <methodname>setClass($class)</methodname>
+                        : Especifica
                         una clase u objeto para agregar al servidor; todos los
-                        métodos públicos de ese item serán expuestos como
-                        métodos JSON-RPC.</para>
+                        métodos
+                        públicos de ese item serán expuestos como
+                        métodos JSON-RPC.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>fault($fault = null, $code = 404, $data =
-                            null)</methodname>: Crea y devuelve un objeto
-                            <classname>Zend_Json_Server_Error</classname>.</para>
+                    <para>
+                        <methodname>fault($fault = null, $code = 404, $data =
+                            null)</methodname>
+                        : Crea y devuelve un objeto
+                        <classname>Zend_Json_Server_Error</classname>
+                        .
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>handle($request = false)</methodname>:
+                    <para>
+                        <methodname>handle($request = false)</methodname>
+                        :
                         Maneja una solicitud JSON-RPC; opcionalmente, pasa un
-                        objeto <classname>Zend_Json_Server_Request</classname> a
-                        utlizar (crea uno por defecto).</para>
+                        objeto
+                        <classname>Zend_Json_Server_Request</classname>
+                        a
+                        utlizar (crea uno por defecto).
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getFunctions()</methodname>: Devuelve una
-                        lista de todos los métodos agregados.</para>
+                    <para>
+                        <methodname>getFunctions()</methodname>
+                        : Devuelve una
+                        lista de todos los métodos agregados.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setRequest(Zend_Json_Server_Request
-                            $request)</methodname>: Especifica un objeto
-                        solicitud para el servidor a utilizar.</para>
+                    <para>
+                        <methodname>setRequest(Zend_Json_Server_Request
+                            $request)</methodname>
+                        : Especifica un objeto
+                        solicitud para el servidor a utilizar.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getRequest()</methodname>: Recupera el
-                        objeto solicitud usado por el servidor.</para>
+                    <para>
+                        <methodname>getRequest()</methodname>
+                        : Recupera el
+                        objeto solicitud usado por el servidor.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setResponse(Zend_Json_Server_Response
-                            $response)</methodname>: Establece el objeto
-                        respuesta para el servidor a utilizar.</para>
+                    <para>
+                        <methodname>setResponse(Zend_Json_Server_Response
+                            $response)</methodname>
+                        : Establece el objeto
+                        respuesta para el servidor a utilizar.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getResponse()</methodname>: Recupera el
-                        objeto respuesta usado por el servidor.</para>
+                    <para>
+                        <methodname>getResponse()</methodname>
+                        : Recupera el
+                        objeto respuesta usado por el servidor.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setAutoEmitResponse($flag)</methodname>:
+                    <para>
+                        <methodname>setAutoEmitResponse($flag)</methodname>
+                        :
                         Indica si el servidor debería emitir automáticamente la
-                        respuesta y todas las cabeceras; por defecto, esto es
-                        verdadero.</para>
+                        respuesta y todas
+                        las cabeceras; por defecto, esto es
+                        verdadero.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>autoEmitResponse()</methodname>: Determina
+                    <para>
+                        <methodname>autoEmitResponse()</methodname>
+                        : Determina
                         si la auto-emisión de la respuesta está
-                        habilitada.</para>
+                        habilitada.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getServiceMap()</methodname>: Recupera la
+                    <para>
+                        <methodname>getServiceMap()</methodname>
+                        : Recupera la
                         descripción del mapa de servicio en el form de un objeto
-                            <classname>Zend_Json_Server_Smd</classname>.</para>
+                        <classname>Zend_Json_Server_Smd</classname>
+                        .
+                    </para>
                 </listitem>
             </itemizedlist>
         </sect3>
@@ -281,234 +366,391 @@ $server->handle();
         <sect3 id="zend.json.server.details.zendjsonserverrequest">
             <title>Zend_Json_Server_Request</title>
 
-            <para>El medio ambiente de una solicitud JSON-RPC está encapsulado
-                en el objeto <classname>Zend_Json_Server_Request</classname>.
+            <para>
+                El medio ambiente de una solicitud JSON-RPC está encapsulado
+                en el objeto
+                <classname>Zend_Json_Server_Request</classname>
+                .
                 Este objeto le permite establecer porciones necesarias de la
-                solicitud JSON-RPC, incluida el ID de la solicitud, parámetros y
-                especificaciones de la versión JSON-RPC. Tiene la capacidad de
+                solicitud JSON-RPC,
+                incluida el ID de la solicitud, parámetros y
+                especificaciones de la versión JSON-RPC.
+                Tiene la capacidad de
                 cargarse a sí mismo via JSON o un conjunto de opciones, y puede
                 mostrase a si mismo como JSON vía el método
-                    <methodname>toJson()</methodname>.</para>
+                <methodname>toJson()</methodname>
+                .
+            </para>
 
             <para>El objeto solicitud tiene los siguientes métodos disponibles:</para>
 
             <itemizedlist>
                 <listitem>
-                    <para><methodname>setOptions(array $options)</methodname>:
+                    <para>
+                        <methodname>setOptions(array $options)</methodname>
+                        :
                         Especifica la configuración del objeto.
-                            <varname>$options</varname> puede contener claves
+                        <varname>$options</varname>
+                        puede contener claves
                         que concuerden con cualuier método 'set':
-                            <methodname>setParams()</methodname>,
-                            <methodname>setMethod()</methodname>,
-                            <methodname>setId()</methodname>, y
-                            <methodname>setVersion()</methodname>.</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>addParam($value, $key =
-                        null)</methodname>: Agrega un parámetro para usar con el
-                        método de llamada. Los parámetros pueden ser sólo los
+                        <methodname>setParams()</methodname>
+                        ,
+                        <methodname>setMethod()</methodname>
+                        ,
+                        <methodname>setId()</methodname>
+                        , y
+                        <methodname>setVersion()</methodname>
+                        .
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>addParam($value, $key =
+                            null)</methodname>
+                        : Agrega un parámetro para usar con el
+                        método de llamada. Los parámetros
+                        pueden ser sólo los
                         valores, o pueden incluir opcionalmente el nombre del
-                        parámetro.</para>
+                        parámetro.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>addParams(array $params)</methodname>:
+                    <para>
+                        <methodname>addParams(array $params)</methodname>
+                        :
                         Agrega múltiples parámetros a la vez; proxies a
-                            <methodname>addParam()</methodname></para>
+                        <methodname>addParam()</methodname>
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setParams(array $params)</methodname>:
+                    <para>
+                        <methodname>setParams(array $params)</methodname>
+                        :
                         Establece todos los parámetros a la vez; sobrescribe
-                        cualquiera de los parámetros existentes.</para>
+                        cualquiera de los
+                        parámetros existentes.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getParam($index)</methodname>: Recupera un
-                        parámetro por posición o por el nombre.</para>
+                    <para>
+                        <methodname>getParam($index)</methodname>
+                        : Recupera un
+                        parámetro por posición o por el nombre.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getParams()</methodname>: Recupera todos
-                        los parámetros a la vez.</para>
+                    <para>
+                        <methodname>getParams()</methodname>
+                        : Recupera todos
+                        los parámetros a la vez.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setMethod($name)</methodname>: Establece
-                        el método para llamar.</para>
+                    <para>
+                        <methodname>setMethod($name)</methodname>
+                        : Establece
+                        el método para llamar.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getMethod()</methodname>: Recupera el
-                        método que será llamado.</para>
+                    <para>
+                        <methodname>getMethod()</methodname>
+                        : Recupera el
+                        método que será llamado.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>isMethodError()</methodname>: Determinar
+                    <para>
+                        <methodname>isMethodError()</methodname>
+                        : Determinar
                         si la solicitud está malformada o no y si daría como
-                        resultado un error.</para>
+                        resultado un
+                        error.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setId($name)</methodname>: Establecer el
+                    <para>
+                        <methodname>setId($name)</methodname>
+                        : Establecer el
                         identificador de solicitud(utilizado por el cliente para
-                        igualar las solicitudes de respuestas).</para>
+                        igualar las solicitudes de respuestas).
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getId()</methodname>: Recuperar el
-                        identificador de solicitudes.</para>
+                    <para>
+                        <methodname>getId()</methodname>
+                        : Recuperar el
+                        identificador de solicitudes.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setVersion($version)</methodname>:
+                    <para>
+                        <methodname>setVersion($version)</methodname>
+                        :
                         Establecer la versión de la especificación JSON-RPC que
-                        conforma la solicitud. Puede ser '1.0' o '2.0'.</para>
+                        conforma la
+                        solicitud. Puede ser '1.0' o '2.0'.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getVersion()</methodname>: Recuperar la
+                    <para>
+                        <methodname>getVersion()</methodname>
+                        : Recuperar la
                         versión de la especificación JSON-RPC utilizados por la
-                        solicitud.</para>
+                        solicitud.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>loadJson($json)</methodname>: Cargar el
-                        objeto solicitud de una cadena JSON.</para>
+                    <para>
+                        <methodname>loadJson($json)</methodname>
+                        : Cargar el
+                        objeto solicitud de una cadena JSON.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>toJson()</methodname>: Mostrar la
-                        solicitud como un string JSON.</para>
+                    <para>
+                        <methodname>toJson()</methodname>
+                        : Mostrar la
+                        solicitud como un string JSON.
+                    </para>
                 </listitem>
             </itemizedlist>
 
-            <para>Una versión específica de <acronym>HTTP</acronym> está disponible a través de
-                    <classname>Zend_Json_Server_Request_Http</classname>. Esta
+            <para>
+                Una versión específica de
+                <acronym>HTTP</acronym>
+                está disponible a través de
+                <classname>Zend_Json_Server_Request_Http</classname>
+                . Esta
                 clase podrá recuperar la solicitud via
-                    <methodname>php://input</methodname>, y permite el acceso
+                <methodname>php://input</methodname>
+                , y permite el acceso
                 JSON sin procesar vía el método
-                    <methodname>getRawJson()</methodname>.</para>
+                <methodname>getRawJson()</methodname>
+                .
+            </para>
         </sect3>
 
         <sect3 id="zend.json.server.details.zendjsonserverresponse">
             <title>Zend_Json_Server_Response</title>
 
-            <para>La respuesta del conjunto de datos JSON-RPC es encapsulada en
-                el objeto <classname>Zend_Json_Server_Response</classname>. Este
+            <para>
+                La respuesta del conjunto de datos JSON-RPC es encapsulada en
+                el objeto
+                <classname>Zend_Json_Server_Response</classname>
+                . Este
                 objeto le permite ajustar el valor de retorno de la solicitud,
-                siendo la respuesta un error o no, el identificador de
-                solicitud, con que versión de especificación esta conformada la
-                respuesta de JSON-RPC, y, opcionalmente el mapa de servicio.</para>
+                siendo la
+                respuesta un error o no, el identificador de
+                solicitud, con que versión de
+                especificación esta conformada la
+                respuesta de JSON-RPC, y, opcionalmente el mapa de
+                servicio.
+            </para>
 
             <para>El objeto respuesta tiene los siguientes métodos disponibles:</para>
 
             <itemizedlist>
                 <listitem>
-                    <para><methodname>setResult($value)</methodname>: Establecer
-                        el resultado de la respuesta.</para>
+                    <para>
+                        <methodname>setResult($value)</methodname>
+                        : Establecer
+                        el resultado de la respuesta.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getResult()</methodname>: Recuperar el
-                        resultado de la respuesta.</para>
+                    <para>
+                        <methodname>getResult()</methodname>
+                        : Recuperar el
+                        resultado de la respuesta.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setError(Zend_Json_Server_Error
-                            $error)</methodname>: Establecer un objeto error. Si
-                        ya está, este será utilizado como la respuesta cuando se
-                        serialize a JSON.</para>
+                    <para>
+                        <methodname>setError(Zend_Json_Server_Error
+                            $error)</methodname>
+                        : Establecer un objeto error. Si
+                        ya está, este será utilizado como la
+                        respuesta cuando se
+                        serialize a JSON.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getError()</methodname>: Recuperar el
-                        objeto error, si lo hubiera.</para>
+                    <para>
+                        <methodname>getError()</methodname>
+                        : Recuperar el
+                        objeto error, si lo hubiera.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>isError()</methodname>: Si la respuesta es
-                        una respuesta de error o no.</para>
+                    <para>
+                        <methodname>isError()</methodname>
+                        : Si la respuesta es
+                        una respuesta de error o no.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setId($name)</methodname>: Establecer el
+                    <para>
+                        <methodname>setId($name)</methodname>
+                        : Establecer el
                         identificador de solicitud (de manera que la respuesta
-                        del cliente pueda coincidir con la solicitud original).
-                   </para>
+                        del
+                        cliente pueda coincidir con la solicitud original).
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getId()</methodname>: Recuperar el
-                        identificador de solicitud.</para>
+                    <para>
+                        <methodname>getId()</methodname>
+                        : Recuperar el
+                        identificador de solicitud.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setVersion($version)</methodname>:
+                    <para>
+                        <methodname>setVersion($version)</methodname>
+                        :
                         Establecer la versión JSON-RPC con la que deba estar
-                        conformada la respuesta.</para>
+                        conformada la
+                        respuesta.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getVersion()</methodname>: Recuperar la
-                        versión JSON-RPC con la cumple la respuesta.</para>
+                    <para>
+                        <methodname>getVersion()</methodname>
+                        : Recuperar la
+                        versión JSON-RPC con la cumple la respuesta.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>toJson()</methodname>: Serializar la
+                    <para>
+                        <methodname>toJson()</methodname>
+                        : Serializar la
                         respuesta a JSON. Si la respuesta es una respuesta de
-                        error, serializar el objeto error.</para>
+                        error,
+                        serializar el objeto error.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setServiceMap($serviceMap)</methodname>:
+                    <para>
+                        <methodname>setServiceMap($serviceMap)</methodname>
+                        :
                         Establecer el objeto mapa de servicio para la respuesta.
-                   </para>
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getServiceMap()</methodname>: Recuperar el
-                        objeto mapa de servicio, si hubiera alguno.</para>
+                    <para>
+                        <methodname>getServiceMap()</methodname>
+                        : Recuperar el
+                        objeto mapa de servicio, si hubiera alguno.
+                    </para>
                 </listitem>
             </itemizedlist>
 
-            <para>Una versión específica de <acronym>HTTP</acronym> está disponible a través de
-                    <classname>Zend_Json_Server_Response_Http</classname>. Esta
-                clase enviará las cabeceras <acronym>HTTP</acronym> apropiadas así como serializará
-                la respuesta como<acronym>JSON</acronym>.</para>
+            <para>
+                Una versión específica de
+                <acronym>HTTP</acronym>
+                está disponible a través de
+                <classname>Zend_Json_Server_Response_Http</classname>
+                . Esta
+                clase enviará las cabeceras
+                <acronym>HTTP</acronym>
+                apropiadas así como serializará
+                la respuesta como
+                <acronym>JSON</acronym>
+                .
+            </para>
         </sect3>
 
         <sect3 id="zend.json.server.details.zendjsonservererror">
             <title>Zend_Json_Server_Error</title>
 
             <para>JSON-RPC tiene un formato especial para informar condiciones
-                de error. Todos los errores necesitan proporcionar, mínimamente,
-                un mensaje de error y un código de error; opcionalmente, pueden
+                de error. Todos los
+                errores necesitan proporcionar, mínimamente,
+                un mensaje de error y un código de
+                error; opcionalmente, pueden
                 proporcionar datos adicionales, tales como un backtrace.</para>
 
-            <para>Los códigos de error derivan de los recomendados por <ulink
-                    url="http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php"
-                    >el proyecto XML-RPC EPI</ulink>.
-                    <classname>Zend_Json_Server</classname> apropiadamente
+            <para>
+                Los códigos de error derivan de los recomendados por
+                <ulink url="http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php">el
+                    proyecto XML-RPC EPI</ulink>
+                .
+                <classname>Zend_Json_Server</classname>
+                apropiadamente
                 asigna el código sobre la base de la condición de error. Para
-                las excepciones de la aplicación, se utiliza el código '-32000'.</para>
+                las
+                excepciones de la aplicación, se utiliza el código '-32000'.
+            </para>
 
             <para>
-                <classname>Zend_Json_Server_Error</classname> expone los
-                siguientes métodos:</para>
+                <classname>Zend_Json_Server_Error</classname>
+                expone los
+                siguientes métodos:
+            </para>
 
             <itemizedlist>
                 <listitem>
-                    <para><methodname>setCode($code)</methodname>: Establece el
+                    <para>
+                        <methodname>setCode($code)</methodname>
+                        : Establece el
                         código de error; si el código de error no está en el
-                        rango de aceptación de XML-RPC, -32000 será
-                        asignado.</para>
+                        rango de
+                        aceptación de XML-RPC, -32000 será
+                        asignado.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getCode()</methodname>: Recuperar el
-                        actual código de error.</para>
+                    <para>
+                        <methodname>getCode()</methodname>
+                        : Recuperar el
+                        actual código de error.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setMessage($message)</methodname>:
-                        Establecer el mensaje de error.</para>
+                    <para>
+                        <methodname>setMessage($message)</methodname>
+                        :
+                        Establecer el mensaje de error.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getMessage()</methodname>: Recuperar el
-                        mensaje de error actual.</para>
+                    <para>
+                        <methodname>getMessage()</methodname>
+                        : Recuperar el
+                        mensaje de error actual.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setData($data)</methodname>: Establecer el
+                    <para>
+                        <methodname>setData($data)</methodname>
+                        : Establecer el
                         conjunto de datos auxiliares para calificar más adelante
-                        el error, tal como un backtrace.</para>
+                        el
+                        error, tal como un backtrace.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getData()</methodname>: Recuperar
-                        cualquier auxiliar actual de errores de datos.</para>
+                    <para>
+                        <methodname>getData()</methodname>
+                        : Recuperar
+                        cualquier auxiliar actual de errores de datos.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>toArray()</methodname>: Mandar el error a
+                    <para>
+                        <methodname>toArray()</methodname>
+                        : Mandar el error a
                         un array. El array contendrá las claves 'code',
-                        'message', y 'data'.</para>
+                        'message', y 'data'.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>toJson()</methodname>: Mandar el error a
-                        una representación de error JSON-RPC.</para>
+                    <para>
+                        <methodname>toJson()</methodname>
+                        : Mandar el error a
+                        una representación de error JSON-RPC.
+                    </para>
                 </listitem>
             </itemizedlist>
         </sect3>
@@ -516,286 +758,498 @@ $server->handle();
         <sect3 id="zend.json.server.details.zendjsonserversmd">
             <title>Zend_Json_Server_Smd</title>
 
-            <para>SMD quiere decir Service Mapping Description, un esquema JSON
-                que define cómo un cliente puede interactuar con un servicio web
-                en particular. En el momento de escribir esto, la <ulink
+            <para>
+                SMD quiere decir Service Mapping Description, un esquema JSON
+                que define cómo un
+                cliente puede interactuar con un servicio web
+                en particular. En el momento de
+                escribir esto, la
+                <ulink
                     url="http://groups.google.com/group/json-schema/web/service-mapping-description-proposal"
-                    >especificación</ulink> todavía no ha sido ratificada
-                oficialmente, pero ya está en uso en Dojo toolkit así como en
-                otros clientes consumidores de JSON-RPC.</para>
-
-            <para>En su aspecto más básico, un SMD indica el método de
-                transporte (POST, GET, TCP/IP, etc), el tipo de envoltura de la
-                solicitud (generalmente se basa en el protocolo del servidor),
-                el objetivo <acronym>URL</acronym> del proveedor del servicio, y
-                un mapa de los servicios disponibles. En el caso de JSON-RPC, el
+                >especificación</ulink>
+                todavía no ha sido ratificada
+                oficialmente, pero ya está en uso en Dojo toolkit así
+                como en
+                otros clientes consumidores de JSON-RPC.
+            </para>
+
+            <para>
+                En su aspecto más básico, un SMD indica el método de
+                transporte (POST, GET, TCP/IP,
+                etc), el tipo de envoltura de la
+                solicitud (generalmente se basa en el protocolo del
+                servidor),
+                el objetivo
+                <acronym>URL</acronym>
+                del proveedor del servicio, y
+                un mapa de los servicios disponibles. En el caso de
+                JSON-RPC, el
                 servicio de mapa es una lista de los métodos disponibles, en el
-                que cada método documenta los parámetros disponibles y sus
-                tipos, así como los tipos de valores esperados a devolver.</para>
+                que cada
+                método documenta los parámetros disponibles y sus
+                tipos, así como los tipos de
+                valores esperados a devolver.
+            </para>
 
             <para>
-                <classname>Zend_Json_Server_Smd</classname> Proporciona un
+                <classname>Zend_Json_Server_Smd</classname>
+                Proporciona un
                 objeto orientado para construir servicios de mapas. Básicamente,
-                pasa los metadatos describiendo el servicio usando mutators, y
-                especifica los servicios (métodos y funciones).</para>
+                pasa
+                los metadatos describiendo el servicio usando mutators, y
+                especifica los servicios
+                (métodos y funciones).
+            </para>
 
-            <para>Las descripciones de los servicios son típicamente instancias
-                de <classname>Zend_Json_Server_Smd_Service</classname>; también
+            <para>
+                Las descripciones de los servicios son típicamente instancias
+                de
+                <classname>Zend_Json_Server_Smd_Service</classname>
+                ; también
                 puede pasar toda la información como un array a los diversos
-                mutators de servicios en
-                    <classname>Zend_Json_Server_Smd</classname>, y que
+                mutators de
+                servicios en
+                <classname>Zend_Json_Server_Smd</classname>
+                , y que
                 instanciará on objeto de servicio por usted. Los objetos de
-                servicio contienen información como el nombre del servicio
-                (típicamente, la función o el nombre del método), los parámetros
+                servicio contienen
+                información como el nombre del servicio
+                (típicamente, la función o el nombre del
+                método), los parámetros
                 (nombres, tipos y posición), y el tipo del valor de retorno.
                 Opcionalmente, cada servicio puede tener su propio objetivo y
-                envoltura, aunque esta funcionalidad rara vez es utilizada.</para>
+                envoltura, aunque esta
+                funcionalidad rara vez es utilizada.
+            </para>
 
             <para>
-                <classname>Zend_Json_Server</classname> Realmente todo esto
+                <classname>Zend_Json_Server</classname>
+                Realmente todo esto
                 sucede entre bambalinas para usted, utilizando reflexión sobre
                 las clases y funciones agregadas; debe crear su propio servicio
-                de mapas sólo si necesita brindar funcionalidad personalizada
-                que la introspección de clase y función no puede ofrecer.</para>
+                de mapas sólo si
+                necesita brindar funcionalidad personalizada
+                que la introspección de clase y función
+                no puede ofrecer.
+            </para>
 
-            <para>Los métodos disponibles en
-                    <classname>Zend_Json_Server_Smd</classname> incluyen:</para>
+            <para>
+                Los métodos disponibles en
+                <classname>Zend_Json_Server_Smd</classname>
+                incluyen:
+            </para>
 
             <itemizedlist>
                 <listitem>
-                    <para><methodname>setOptions(array $options)</methodname>:
+                    <para>
+                        <methodname>setOptions(array $options)</methodname>
+                        :
                         Establecer un objeto SMD desde un array de opciones.
-                        Todos los mutators (métodos comenzando con 'set') se
-                        pueden usar como claves.</para>
+                        Todos los mutators
+                        (métodos comenzando con 'set') se
+                        pueden usar como claves.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setTransport($transport)</methodname>:
+                    <para>
+                        <methodname>setTransport($transport)</methodname>
+                        :
                         Establecer el transporte usado para acceder al servicio;
-                        únicamente POST es actualmente soportado.</para>
+                        únicamente POST es
+                        actualmente soportado.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getTransport()</methodname>: Obtener el
-                        servicio de transporte actual.</para>
+                    <para>
+                        <methodname>getTransport()</methodname>
+                        : Obtener el
+                        servicio de transporte actual.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setEnvelope($envelopeType)</methodname>:
+                    <para>
+                        <methodname>setEnvelope($envelopeType)</methodname>
+                        :
                         Establecer la envoltura de la solicitud que debería ser
-                        utilizada para acceder al servicio. Actualmente las
+                        utilizada para
+                        acceder al servicio. Actualmente las
                         constantes soportadas son
-                            <constant>Zend_Json_Server_Smd::ENV_JSONRPC_1</constant>
+                        <constant>Zend_Json_Server_Smd::ENV_JSONRPC_1</constant>
                         y
-                            <constant>Zend_Json_Server_Smd::ENV_JSONRPC_1</constant>.</para>
+                        <constant>Zend_Json_Server_Smd::ENV_JSONRPC_1</constant>
+                        .
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getEnvelope()</methodname>: Obtener la
-                        envoltura de la petición actual.</para>
+                    <para>
+                        <methodname>getEnvelope()</methodname>
+                        : Obtener la
+                        envoltura de la petición actual.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setContentType($type)</methodname>:
+                    <para>
+                        <methodname>setContentType($type)</methodname>
+                        :
                         Establecer el tipo de contenido que deben utilizar las
-                        solicitudes (por defecto, es 'application/json»).</para>
+                        solicitudes (por
+                        defecto, es 'application/json»).
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getContentType()</methodname>: Conseguir
+                    <para>
+                        <methodname>getContentType()</methodname>
+                        : Conseguir
                         el tipo del contenido actual para las solicitudes al
-                        servicio.</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>setTarget($target)</methodname>:
-                        Establecer el punto final de la <acronym>URL</acronym>
-                        para el servicio.</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>getTarget()</methodname>: Obtener el punto
-                        final de la <acronym>URL</acronym> para el
-                        servicio.</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>setId($id)</methodname>: Normalmente, este
-                        es el punto final de la <acronym>URL</acronym> del
-                        servicio (igual que el objetivo).</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>getId()</methodname>: Recuperar el ID del
+                        servicio.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>setTarget($target)</methodname>
+                        :
+                        Establecer el punto final de la
+                        <acronym>URL</acronym>
+                        para el servicio.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>getTarget()</methodname>
+                        : Obtener el punto
+                        final de la
+                        <acronym>URL</acronym>
+                        para el
+                        servicio.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>setId($id)</methodname>
+                        : Normalmente, este
+                        es el punto final de la
+                        <acronym>URL</acronym>
+                        del
+                        servicio (igual que el objetivo).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>getId()</methodname>
+                        : Recuperar el ID del
                         servicio (normalmente el punto final de la
-                            <acronym>URL</acronym> del servicio).</para>
+                        <acronym>URL</acronym>
+                        del servicio).
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setDescription($description)</methodname>:
+                    <para>
+                        <methodname>setDescription($description)</methodname>
+                        :
                         Establecer una descripción del servicio (típicamente
-                        información narrativa que describe el propósito del
-                        servicio).</para>
+                        información narrativa
+                        que describe el propósito del
+                        servicio).
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getDescription()</methodname>: Obtener la
-                        descripción del servicio.</para>
+                    <para>
+                        <methodname>getDescription()</methodname>
+                        : Obtener la
+                        descripción del servicio.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setDojoCompatible($flag)</methodname>:
+                    <para>
+                        <methodname>setDojoCompatible($flag)</methodname>
+                        :
                         Establecer un flag que indique si el SMD es compatible o
-                        no con el toolkit de Dojo. Cuando sea verdadero, el <acronym>JSON</acronym>
+                        no con el toolkit
+                        de Dojo. Cuando sea verdadero, el
+                        <acronym>JSON</acronym>
                         SMD será formateado para cumplir con el formato que
-                        espera el cliente de Dojo JSON-RPC.</para>
+                        espera el cliente de Dojo
+                        JSON-RPC.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>isDojoCompatible()</methodname>: Devuelve
+                    <para>
+                        <methodname>isDojoCompatible()</methodname>
+                        : Devuelve
                         el valor del flag de compatibilidad de Dojo (falso, por
-                        defecto).</para>
+                        defecto).
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>addService($service)</methodname>: Añade
+                    <para>
+                        <methodname>addService($service)</methodname>
+                        : Añade
                         un servicio al mapa. Puede ser un array de información a
-                        pasar al constructor de
-                            <classname>Zend_Json_Server_Smd_Service</classname>,
-                        o una instancia de esa clase.</para>
+                        pasar al
+                        constructor de
+                        <classname>Zend_Json_Server_Smd_Service</classname>
+                        ,
+                        o una instancia de esa clase.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>addServices(array $services)</methodname>:
-                        Agrega múltiples servicios a la vez.</para>
+                    <para>
+                        <methodname>addServices(array $services)</methodname>
+                        :
+                        Agrega múltiples servicios a la vez.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setServices(array $services)</methodname>:
+                    <para>
+                        <methodname>setServices(array $services)</methodname>
+                        :
                         Agrega múltiples servicios a la vez, sobreescribiendo
-                        cualquiera de los servicios previamente establecidos.
-                   </para>
+                        cualquiera de los
+                        servicios previamente establecidos.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getService($name)</methodname>: Ontiene el
-                        servicio por su nombre.</para>
+                    <para>
+                        <methodname>getService($name)</methodname>
+                        : Ontiene el
+                        servicio por su nombre.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getServices()</methodname>: Obtener todos
-                        los servicios agregados.</para>
+                    <para>
+                        <methodname>getServices()</methodname>
+                        : Obtener todos
+                        los servicios agregados.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>removeService($name)</methodname>: Elimina
-                        un servicio del mapa.</para>
+                    <para>
+                        <methodname>removeService($name)</methodname>
+                        : Elimina
+                        un servicio del mapa.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>toArray()</methodname>: Mandar el mapa de
-                        servicio a un array.</para>
+                    <para>
+                        <methodname>toArray()</methodname>
+                        : Mandar el mapa de
+                        servicio a un array.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>toDojoArray()</methodname>: Mandar el mapa
+                    <para>
+                        <methodname>toDojoArray()</methodname>
+                        : Mandar el mapa
                         de servicio a un array compatible con Dojo
-                        Toolkit.</para>
+                        Toolkit.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>toJson()</methodname>: Mandar el mapa de
-                        servicio a una representación JSON.</para>
+                    <para>
+                        <methodname>toJson()</methodname>
+                        : Mandar el mapa de
+                        servicio a una representación JSON.
+                    </para>
                 </listitem>
             </itemizedlist>
 
             <para>
-                <classname>Zend_Json_Server_Smd_Service</classname> tiene los
-                siguientes métodos:</para>
+                <classname>Zend_Json_Server_Smd_Service</classname>
+                tiene los
+                siguientes métodos:
+            </para>
 
             <itemizedlist>
                 <listitem>
-                    <para><methodname>setOptions(array $options)</methodname>:
+                    <para>
+                        <methodname>setOptions(array $options)</methodname>
+                        :
                         Establecer el estado del objeto dede un array. Cualquier
-                        mutator (métodos comenzando con 'set') puede ser
-                        utilizado como una clave y establecerlo mediante este
-                        método.</para>
+                        mutator (métodos
+                        comenzando con 'set') puede ser
+                        utilizado como una clave y establecerlo
+                        mediante este
+                        método.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setName($name)</methodname>: Establecer el
+                    <para>
+                        <methodname>setName($name)</methodname>
+                        : Establecer el
                         nombre del servicio (típicamente, la función o el nombre
-                        del método).</para>
+                        del
+                        método).
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getName()</methodname>: Recuperar el
-                        nombre del servicio.</para>
+                    <para>
+                        <methodname>getName()</methodname>
+                        : Recuperar el
+                        nombre del servicio.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setTransport($transport)</methodname>:
+                    <para>
+                        <methodname>setTransport($transport)</methodname>
+                        :
                         Establecer el servicio de transporte (actualmente, sólo
-                        transportes apoyados por
-                            <classname>Zend_Json_Server_Smd</classname> son
-                        permitidos).</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>getTransport()</methodname>: Recuperar el
-                        transporte actual.</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>setTarget($target)</methodname>:
-                        Establecer el punto final de la <acronym>URL</acronym>
+                        transportes apoyados
+                        por
+                        <classname>Zend_Json_Server_Smd</classname>
+                        son
+                        permitidos).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>getTransport()</methodname>
+                        : Recuperar el
+                        transporte actual.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>setTarget($target)</methodname>
+                        :
+                        Establecer el punto final de la
+                        <acronym>URL</acronym>
                         del servicio (típicamente, este será el mismo que el SMD
-                        en general, al cual el servicio está agregado).</para>
+                        en general, al cual
+                        el servicio está agregado).
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getTarget()</methodname>: Obtener el punto
-                        final de la <acronym>URL</acronym> del servicio.</para>
+                    <para>
+                        <methodname>getTarget()</methodname>
+                        : Obtener el punto
+                        final de la
+                        <acronym>URL</acronym>
+                        del servicio.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setEnvelope($envelopeType)</methodname>:
+                    <para>
+                        <methodname>setEnvelope($envelopeType)</methodname>
+                        :
                         Establecer la envoltura del servicio (actualmente, sólo
-                        se permiten las envolturas soportadas por
-                            <classname>Zend_Json_Server_Smd</classname>.</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>getEnvelope()</methodname>: Recuperar el
-                        tipo de envoltura del servicio.</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>addParam($type, array $options = array(),
-                            $order = null)</methodname>: Añadir un parámetro
-                        para el servicio. Por defecto, sólo el tipo de parámetro
+                        se permiten las
+                        envolturas soportadas por
+                        <classname>Zend_Json_Server_Smd</classname>
+                        .
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>getEnvelope()</methodname>
+                        : Recuperar el
+                        tipo de envoltura del servicio.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>addParam($type, array $options = array(),
+                            $order = null)</methodname>
+                        : Añadir un parámetro
+                        para el servicio. Por defecto, sólo el tipo de
+                        parámetro
                         es necesario. Sin embargo, también puede especificar el
-                        orden, así como opciones tales como:</para>
+                        orden, así
+                        como opciones tales como:
+                    </para>
                     <itemizedlist>
                         <listitem>
-                            <para><emphasis>name</emphasis>: el nombre del
-                                parámetro</para>
+                            <para>
+                                <emphasis>name</emphasis>
+                                : el nombre del
+                                parámetro
+                            </para>
                         </listitem>
                         <listitem>
-                            <para><emphasis>optional</emphasis>: cuándo el
-                                parámetro es opcional o no</para>
+                            <para>
+                                <emphasis>optional</emphasis>
+                                : cuándo el
+                                parámetro es opcional o no
+                            </para>
                         </listitem>
                         <listitem>
-                            <para><emphasis>default</emphasis>: un valor por
-                                defecto para el parámetro</para>
+                            <para>
+                                <emphasis>default</emphasis>
+                                : un valor por
+                                defecto para el parámetro
+                            </para>
                         </listitem>
                         <listitem>
-                            <para><emphasis>description</emphasis>: texto
-                                describiendo el parámetro</para>
+                            <para>
+                                <emphasis>description</emphasis>
+                                : texto
+                                describiendo el parámetro
+                            </para>
                         </listitem>
                     </itemizedlist>
                 </listitem>
                 <listitem>
-                    <para><methodname>addParams(array $params)</methodname>:
+                    <para>
+                        <methodname>addParams(array $params)</methodname>
+                        :
                         Agregar varios parámetros a la vez; cada param debería
-                        ser un array asociativo conteniendo mínimamente la clave
-                        'type' describiendo el tipo de parámetro y,
+                        ser un array
+                        asociativo conteniendo mínimamente la clave
+                        'type' describiendo el tipo de
+                        parámetro y,
                         opcionalmente la clave 'order'; cualquiera de las otras
-                        claves serán pasados como <varname>$options</varname> a
-                            <methodname>addOption()</methodname>.</para>
-                </listitem>
-                <listitem>
-                    <para><methodname>setParams(array $params)</methodname>:
+                        claves
+                        serán pasados como
+                        <varname>$options</varname>
+                        a
+                        <methodname>addOption()</methodname>
+                        .
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>setParams(array $params)</methodname>
+                        :
                         Establecer muchos parámetros a la vez, sobrescribiendo
-                        cualquiera de los parámetros existentes.</para>
+                        cualquiera de los
+                        parámetros existentes.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getParams()</methodname>: Recuperar todos
-                        los parámetros actualmente establecidos.</para>
+                    <para>
+                        <methodname>getParams()</methodname>
+                        : Recuperar todos
+                        los parámetros actualmente establecidos.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>setReturn($type)</methodname>: Establecer
-                        el tipo del valor de retorno del servicio.</para>
+                    <para>
+                        <methodname>setReturn($type)</methodname>
+                        : Establecer
+                        el tipo del valor de retorno del servicio.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>getReturn()</methodname>: Obtener el tipo
-                        del valor de retorno del servicio.</para>
+                    <para>
+                        <methodname>getReturn()</methodname>
+                        : Obtener el tipo
+                        del valor de retorno del servicio.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>toArray()</methodname>: Mandar el servicio
-                        a un array.</para>
+                    <para>
+                        <methodname>toArray()</methodname>
+                        : Mandar el servicio
+                        a un array.
+                    </para>
                 </listitem>
                 <listitem>
-                    <para><methodname>toJson()</methodname>: Mandar el servicio
-                        a una representación <acronym>JSON</acronym>.</para>
+                    <para>
+                        <methodname>toJson()</methodname>
+                        : Mandar el servicio
+                        a una representación
+                        <acronym>JSON</acronym>
+                        .
+                    </para>
                 </listitem>
             </itemizedlist>
         </sect3>

+ 96 - 40
documentation/manual/es/module_specs/Zend_Json-xml2json.xml

@@ -1,27 +1,46 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17227 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17227 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.json.xml2json">
     <title>Conversión de XML a JSON</title>
     <para>
-        <classname>Zend_Json</classname> roporciona una método conveniente para
-        transformar datos en formato <acronym>XML</acronym> a formato <acronym>JSON</acronym>. Esta
-        característica fue inspirado en un <ulink
-            url="http://www.ibm.com/developerworks/xml/library/x-xml2jsonphp/">
-            artículo de IBM developerWorks</ulink>.</para>
+        <classname>Zend_Json</classname>
+        roporciona una método conveniente para
+        transformar datos en formato
+        <acronym>XML</acronym>
+        a formato
+        <acronym>JSON</acronym>
+        . Esta
+        característica fue inspirado en un
+        <ulink url="http://www.ibm.com/developerworks/xml/library/x-xml2jsonphp/">
+            artículo de IBM developerWorks</ulink>
+        .
+    </para>
 
     <para>
-        <classname>Zend_Json</classname> incluye una función estática llamada
-            <methodname>Zend_Json::fromXml()</methodname>. Esta función generará
-        <acronym>JSON</acronym> desde una determinada entrada <acronym>XML</acronym>. Esta función
-        toma cualquier string <acronym>XML</acronym> arbitrario como un
+        <classname>Zend_Json</classname>
+        incluye una función estática llamada
+        <methodname>Zend_Json::fromXml()</methodname>
+        . Esta función generará
+        <acronym>JSON</acronym>
+        desde una determinada entrada
+        <acronym>XML</acronym>
+        . Esta función
+        toma cualquier string
+        <acronym>XML</acronym>
+        arbitrario como un
         parámetro de entrada. También puede tomar opcionalmente parámetros
         booleanos de entrada que instruyan a la lógica de conversión de ignorar
-        o no los atributos <acronym>XML</acronym> durante el proceso de
-        conversión. Si este parámetro opcional de entrada no está dado, entonces
+        o no los atributos
+        <acronym>XML</acronym>
+        durante el proceso de
+        conversión. Si este parámetro opcional de entrada no está dado,
+        entonces
         el comportamiento por defecto es ignorar los atributos
-            <acronym>XML</acronym>. La llamada a esta función se hace como se
-        muestra a continuación:</para>
+        <acronym>XML</acronym>
+        . La llamada a esta función se hace como se
+        muestra a continuación:
+    </para>
     <programlisting language="php"><![CDATA[
 // la función fromXml simplemente toma un string conteniendo XML
 // como entrada.
@@ -29,32 +48,60 @@ $jsonContents = Zend_Json::fromXml($xmlStringContents, true);
 ]]></programlisting>
 
     <para>
-        <methodname>Zend_Json::fromXml()</methodname> función que hace la
+        <methodname>Zend_Json::fromXml()</methodname>
+        función que hace la
         conversión del parámetro de entrada formateado como un string
-            <acronym>XML</acronym> y devuelve el string de salida equivalente
-        formateado a <acronym>JSON</acronym>. En caso de cualquier entrada con formato
-            <acronym>XML</acronym> erróneo o un error en la lógica de
-        conversión, esta función arrojará una excepción. La conversión lógica
+        <acronym>XML</acronym>
+        y devuelve el string de salida equivalente
+        formateado a
+        <acronym>JSON</acronym>
+        . En caso de cualquier entrada con formato
+        <acronym>XML</acronym>
+        erróneo o un error en la lógica de
+        conversión, esta función arrojará una excepción. La
+        conversión lógica
         también usa técnicas recursivas para recorrer el árbol
-            <acronym>XML</acronym>. Soporta una recursión de hasta 25 niveles de
-        profundidad. Más allá de esa profundidad, arrojará una
-            <classname>Zend_Json_Exception</classname>. Hay varios archivos
-            <acronym>XML</acronym> con diversos grados de complejidad provistas
-        en el directorio de tests de Zend Framework. Se pueden utilizar para
-        probar la funcionalidad de la característica xml2json.</para>
+        <acronym>XML</acronym>
+        . Soporta una recursión de hasta 25 niveles de
+        profundidad. Más allá de esa profundidad,
+        arrojará una
+        <classname>Zend_Json_Exception</classname>
+        . Hay varios archivos
+        <acronym>XML</acronym>
+        con diversos grados de complejidad provistas
+        en el directorio de tests de Zend Framework. Se
+        pueden utilizar para
+        probar la funcionalidad de la característica xml2json.
+    </para>
 
-    <para>El siguiente es un ejemplo simple que muestra tanto el string de
-        entrada <acronym>XML</acronym> pasado a y al string <acronym>JSON</acronym> de salida
+    <para>
+        El siguiente es un ejemplo simple que muestra tanto el string de
+        entrada
+        <acronym>XML</acronym>
+        pasado a y al string
+        <acronym>JSON</acronym>
+        de salida
         devuelto como resultado de la función
-            <methodname>Zend_Json::fromXml()</methodname>. Este ejemplo utilizó el
+        <methodname>Zend_Json::fromXml()</methodname>
+        . Este ejemplo utilizó el
         parámetro de la función opcional como para no ignorar los atributos
-            <acronym>XML</acronym> durante la conversión. Por lo tanto, puede
-        notar que el string resultante <acronym>JSON</acronym> incluye una representación de los
-        atributos <acronym>XML</acronym> presentes en el string de entrada
-            <acronym>XML</acronym>.</para>
+        <acronym>XML</acronym>
+        durante la conversión. Por lo tanto, puede
+        notar que el string resultante
+        <acronym>JSON</acronym>
+        incluye una representación de los
+        atributos
+        <acronym>XML</acronym>
+        presentes en el string de entrada
+        <acronym>XML</acronym>
+        .
+    </para>
 
-    <para>String de entrada XML pasada a la función
-            <methodname>Zend_Json::fromXml()</methodname>:</para>
+    <para>
+        String de entrada XML pasada a la función
+        <methodname>Zend_Json::fromXml()</methodname>
+        :
+    </para>
 
     <programlisting language="php"><![CDATA[
 <?xml version="1.0" encoding="UTF-8"?>
@@ -79,8 +126,13 @@ $jsonContents = Zend_Json::fromXml($xmlStringContents, true);
 </books>
 ]]></programlisting>
 
-    <para>String de salida <acronym>JSON</acronym> devuelto por la función
-            <methodname>Zend_Json::fromXml()</methodname>:</para>
+    <para>
+        String de salida
+        <acronym>JSON</acronym>
+        devuelto por la función
+        <methodname>Zend_Json::fromXml()</methodname>
+        :
+    </para>
 
     <programlisting language="php"><![CDATA[
 {
@@ -115,8 +167,12 @@ $jsonContents = Zend_Json::fromXml($xmlStringContents, true);
 }
 ]]></programlisting>
 
-    <para>Más detalles sobre esta característica xml2json pueden encontrarse en
-        la propuesta original. Eche un vistazo a la <ulink
-            url="http://tinyurl.com/2tfa8z">Zend_xml2json proposal</ulink>.</para>
+    <para>
+        Más detalles sobre esta característica xml2json pueden encontrarse en
+        la propuesta original.
+        Eche un vistazo a la
+        <ulink url="http://tinyurl.com/2tfa8z">Zend_xml2json proposal</ulink>
+        .
+    </para>
 
 </sect1>

+ 65 - 47
documentation/manual/es/module_specs/Zend_Layout-Introduction.xml

@@ -1,50 +1,68 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17175 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17175 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.layout.introduction">
-        <title>Introducción</title>
-
-        <para>
-                <classname>Zend_Layout</classname> implementa un patrón clásico "Vista en dos
-                etapas" (Two Step View) permitiendo a los desarrolladores colocar el contenido de la
-                aplicación dentro de otra vista, usualmente representando la plantilla del sitio.
-                Tales plantillas son a menudo denominadas <emphasis>layouts</emphasis> por otros
-                proyectos, y Zend Framework ha adoptado este término por consistencia.</para>
-
-        <para>Los objetivos principales de <classname>Zend_Layout</classname>> son los siguientes:</para>
-
-        <itemizedlist>
-                <listitem>
-                        <para>Automatizar la selección y renderizado de layouts cuando se usan con
-                                los componentes <acronym>MVC</acronym> de Zend Framework.</para>
-                </listitem>
-
-                <listitem>
-                        <para>Proveer ámbitos separados para variables relacionadas al diseño y
-                                contenido.</para>
-                </listitem>
-
-                <listitem>
-                        <para>Permitir configuraciones, incluyendo el nombre del layout, resolución
-                                (inflexión) del script layout, y ruta del script layout.</para>
-                </listitem>
-
-                <listitem>
-                        <para>Permitir deshabilitar layouts, cambiar el script de diseño y otras
-                                condiciones; permitir estas acciones dentro de los controladores y
-                                scripts de vista.</para>
-                </listitem>
-
-                <listitem>
-                        <para>Seguir normas de resolución similares (inflexión) como el <link
-                                        linkend="zend.controller.actionhelpers.viewrenderer"
-                                        >ViewRenderer</link>, pero permitiendo también el uso de
-                                normas distintas</para>
-                </listitem>
-
-                <listitem>
-                        <para>Permitir el uso de los componentes <acronym>MVC</acronym> de Zend
-                                Framework.</para>
-                </listitem>
-        </itemizedlist>
+    <title>Introducción</title>
+
+    <para>
+        <classname>Zend_Layout</classname>
+        implementa un patrón clásico "Vista en dos
+        etapas" (Two Step View) permitiendo a los desarrolladores colocar el contenido de la
+        aplicación dentro de otra vista, usualmente representando la plantilla del sitio.
+        Tales plantillas son a menudo denominadas
+        <emphasis>layouts</emphasis>
+        por otros
+        proyectos, y Zend Framework ha adoptado este término por consistencia.
+    </para>
+
+    <para>
+        Los objetivos principales de
+        <classname>Zend_Layout</classname>
+        son los siguientes:
+    </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>
+                Automatizar la selección y renderizado de layouts cuando se usan con
+                los componentes
+                <acronym>MVC</acronym>
+                de Zend Framework.
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>Proveer ámbitos separados para variables relacionadas al diseño y
+                contenido.</para>
+        </listitem>
+
+        <listitem>
+            <para>Permitir configuraciones, incluyendo el nombre del layout, resolución
+                (inflexión) del script layout, y ruta del script layout.</para>
+        </listitem>
+
+        <listitem>
+            <para>Permitir deshabilitar layouts, cambiar el script de diseño y otras
+                condiciones; permitir estas acciones dentro de los controladores y
+                scripts de vista.</para>
+        </listitem>
+
+        <listitem>
+            <para>
+                Seguir normas de resolución similares (inflexión) como el
+                <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>
+                , pero permitiendo también el uso de
+                normas distintas
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                Permitir el uso de los componentes
+                <acronym>MVC</acronym>
+                de Zend
+                Framework.
+            </para>
+        </listitem>
+    </itemizedlist>
 </sect1>

+ 224 - 95
documentation/manual/es/module_specs/Zend_Loader.xml

@@ -1,26 +1,38 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17175 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17175 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.loader.load">
 
     <title>Cargando archivos y clases dinámicamente</title>
 
     <para>
-        La clase <classname>Zend_Loader</classname> incluye métodos para ayudar a cargar archivos
+        La clase
+        <classname>Zend_Loader</classname>
+        incluye métodos para ayudar a cargar archivos
         dinámicamente.
-   </para>
+    </para>
 
     <tip>
         <title>Zend_Loader vs. require_once()</title>
         <para>
-            Los métodos de <classname>Zend_Loader</classname> tienen más utilidad si el
+            Los métodos de
+            <classname>Zend_Loader</classname>
+            tienen más utilidad si el
             nombre de archivo que necesita cargar es variable. Por ejemplo,
             si éste se basa en un parametro de entrada del usuario o argumento
-            de un método. Si carga un archivo o clase cuyo nombre es constante, no
-            hay ningún beneficio al usar <classname>Zend_Loader</classname> sobre el uso
-            de funciones tradicionales de <acronym>PHP</acronym> como
-            <ulink url="http://php.net/require_once"><methodname>require_once()</methodname></ulink>.
-       </para>
+            de un método. Si carga
+            un archivo o clase cuyo nombre es constante, no
+            hay ningún beneficio al usar
+            <classname>Zend_Loader</classname>
+            sobre el uso
+            de funciones tradicionales de
+            <acronym>PHP</acronym>
+            como
+            <ulink url="http://php.net/require_once">
+                <methodname>require_once()</methodname>
+            </ulink>
+            .
+        </para>
     </tip>
 
     <sect2 id="zend.loader.load.file">
@@ -28,44 +40,84 @@
         <title>Cargando Archivos</title>
 
         <para>
-            El método estático <methodname>Zend_Loader::loadFile()</methodname> carga un archivo
-            <acronym>PHP</acronym>. El archivo cargado puede contener cualquier código <acronym>PHP</acronym>.
-            El método se comporta como un envoltorio para la función <acronym>PHP</acronym>
-            <ulink url="http://php.net/include"><methodname>include()</methodname></ulink>.
-            Este método devuelve un booleano <constant>FALSE</constant> en caso de fallo, por ejemplo,
+            El método estático
+            <methodname>Zend_Loader::loadFile()</methodname>
+            carga un archivo
+            <acronym>PHP</acronym>
+            . El archivo cargado puede contener cualquier código
+            <acronym>PHP</acronym>
+            .
+            El método se comporta como un envoltorio para la función
+            <acronym>PHP</acronym>
+            <ulink url="http://php.net/include">
+                <methodname>include()</methodname>
+            </ulink>
+            .
+            Este método devuelve un booleano
+            <constant>FALSE</constant>
+            en caso de fallo, por ejemplo,
             si el archivo especificado no existe.
-       </para>
+        </para>
 
         <example id="zend.loader.load.file.example">
             <title>Ejemplo del Método loadFile()</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 Zend_Loader::loadFile($filename, $dirs=null, $once=false);
 ]]></programlisting>
-    </example>
+        </example>
 
         <para>
-            El argumento <varname>$filename</varname> especifica el archivo que se va a cargar,
-            el cual no debe contener ninguna información de rutas.
-            Una verificación de seguridad es efectuada sobre <varname>$filename</varname>.
-            El archivo <varname>$filename</varname> sólo puede contener caracteres alfanuméricos,
-            guiones ("-"), barras bajas ("_"), o puntos (".").
-            No hay ninguna restricción en el argumento <varname>$dirs</varname>.
-       </para>
+            El argumento
+            <varname>$filename</varname>
+            especifica el archivo que se va a cargar,
+            el cual no debe contener ninguna información de
+            rutas.
+            Una verificación de seguridad es efectuada sobre
+            <varname>$filename</varname>
+            .
+            El archivo
+            <varname>$filename</varname>
+            sólo puede contener caracteres alfanuméricos,
+            guiones ("-"), barras bajas ("_"), o puntos
+            (".").
+            No hay ninguna restricción en el argumento
+            <varname>$dirs</varname>
+            .
+        </para>
 
         <para>
-            El parámetro <varname>$dirs</varname> especifica en qué carpetas buscar el archivo.
-            Si el valor es <constant>NULL</constant>, sólo se buscará en el <methodname>include_path</methodname>
+            El parámetro
+            <varname>$dirs</varname>
+            especifica en qué carpetas buscar el archivo.
+            Si el valor es
+            <constant>NULL</constant>
+            , sólo se buscará en el
+            <methodname>include_path</methodname>
             ; si el valor es un string o un array, se buscará en la carpeta o carpetas especificadas
-            , seguidas del <methodname>include_path</methodname>.
-       </para>
+            , seguidas del
+            <methodname>include_path</methodname>
+            .
+        </para>
 
         <para>
-            El argumento <varname>$once</varname> es un booleano.  Si es <constant>TRUE</constant>,
-            <methodname>Zend_Loader::loadFile()</methodname> esa la función <acronym>PHP</acronym>
-            <ulink url="http://php.net/include"><methodname>include_once()</methodname></ulink>
-            para cargar el archivo, de lo contrario se utiliza la función <acronym>PHP</acronym>
-            <ulink url="http://php.net/include_once"><methodname>include()</methodname></ulink>.
-       </para>
+            El argumento
+            <varname>$once</varname>
+            es un booleano. Si es
+            <constant>TRUE</constant>
+            ,
+            <methodname>Zend_Loader::loadFile()</methodname>
+            esa la función
+            <acronym>PHP</acronym>
+            <ulink url="http://php.net/include">
+                <methodname>include_once()</methodname>
+            </ulink>
+            para cargar el archivo, de lo contrario se utiliza la función
+            <acronym>PHP</acronym>
+            <ulink url="http://php.net/include_once">
+                <methodname>include()</methodname>
+            </ulink>
+            .
+        </para>
 
     </sect2>
 
@@ -74,13 +126,16 @@ Zend_Loader::loadFile($filename, $dirs=null, $once=false);
         <title>Cargando Clases</title>
 
         <para>
-            El método estático <methodname>Zend_Loader::loadClass($class, $dirs)</methodname>
-            carga un archivo <acronym>PHP</acronym> y comprueba la existencia de la clase.
-       </para>
+            El método estático
+            <methodname>Zend_Loader::loadClass($class, $dirs)</methodname>
+            carga un archivo
+            <acronym>PHP</acronym>
+            y comprueba la existencia de la clase.
+        </para>
 
         <example id="zend.loader.load.class.example">
             <title>Ejemplo del método loadClass()</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 Zend_Loader::loadClass('Container_Tree',
     array(
         '/home/production/mylib',
@@ -91,29 +146,46 @@ Zend_Loader::loadClass('Container_Tree',
         </example>
 
         <para>
-            La cadena que especifica la clase es convertida a una ruta relativa sustituyendo las barras
+            La cadena que especifica la clase es convertida a una ruta relativa sustituyendo las
+            barras
             bajas (_) por el separador de carpeta de su Sistema Operativo, y añadiendo
-            '.php'. En el ejemplo de arriba, 'Container_Tree' se convierte en 'Container\\Tree.php' en Windows.
+            '.php'.
+            En el ejemplo de arriba, 'Container_Tree' se convierte en 'Container\\Tree.php' en
+            Windows.
        </para>
 
         <para>
-            Si <varname>$dirs</varname> es una cadena o un array,
-            <methodname>Zend_Loader::loadClass()</methodname> busca las carpetas en el
-            orden suministrado. El primer archivo encontrado es cargado. Si el archivo
-            no existe en el <varname>$dirs</varname> especificado, entonces se busca en el
-            <methodname>include_path</methodname> del entorno <acronym>PHP</acronym>.
-       </para>
+            Si
+            <varname>$dirs</varname>
+            es una cadena o un array,
+            <methodname>Zend_Loader::loadClass()</methodname>
+            busca las carpetas en el
+            orden suministrado. El primer archivo encontrado es cargado. Si
+            el archivo
+            no existe en el
+            <varname>$dirs</varname>
+            especificado, entonces se busca en el
+            <methodname>include_path</methodname>
+            del entorno
+            <acronym>PHP</acronym>
+            .
+        </para>
 
         <para>
             Si el archivo no es encontrado o la clase no existe después de la carga,
-            <methodname>Zend_Loader::loadClass()</methodname> lanza una <methodname>Zend_Exception</methodname>.
-       </para>
+            <methodname>Zend_Loader::loadClass()</methodname>
+            lanza una
+            <methodname>Zend_Exception</methodname>
+            .
+        </para>
 
         <para>
-            <methodname>Zend_Loader::loadFile()</methodname> se usa para cargar, así que
-            el nombre de la clase puede contener únicamente caracteres alfanuméricos,
+            <methodname>Zend_Loader::loadFile()</methodname>
+            se usa para cargar, así que
+            el nombre de la clase puede contener únicamente caracteres
+            alfanuméricos,
             guiones ('-'), barras bajas ('_'), y puntos ('.').
-       </para>
+        </para>
 
     </sect2>
 
@@ -122,14 +194,19 @@ Zend_Loader::loadClass('Container_Tree',
         <title>Comprobando si un Archivo Puede Ser Leído</title>
 
         <para>
-            El método estático <classname>Zend_Loader::isReadable($pathname)</classname>
-            devuelve <constant>TRUE</constant> si el archivo en la ruta $pathname existe
-            y tiene permisos de lectura, <constant>FALSE</constant> en caso contrario.
-       </para>
+            El método estático
+            <classname>Zend_Loader::isReadable($pathname)</classname>
+            devuelve
+            <constant>TRUE</constant>
+            si el archivo en la ruta $pathname existe
+            y tiene permisos de lectura,
+            <constant>FALSE</constant>
+            en caso contrario.
+        </para>
 
         <example id="zend.loader.load.isreadable.example">
             <title>Ejemplo del método isReadable()</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 if (Zend_Loader::isReadable($filename)) {
     // hace algo con $filename
 }
@@ -137,13 +214,25 @@ if (Zend_Loader::isReadable($filename)) {
         </example>
 
         <para>
-            El argumento <varname>$filename</varname> especifica el nombre de archivo que
-            comprobar.  Puede contener información de la ruta.
-            Este método envuelve la función <acronym>PHP</acronym>
-            <ulink url="http://php.net/is_readable"><methodname>is_readable()</methodname></ulink>.
-            La función <acronym>PHP</acronym> no busca en <methodname>include_path</methodname>,
-            mientras que <methodname>Zend_Loader::isReadable()</methodname> sí.
-       </para>
+            El argumento
+            <varname>$filename</varname>
+            especifica el nombre de archivo que
+            comprobar. Puede contener información de la ruta.
+            Este método envuelve la función
+            <acronym>PHP</acronym>
+            <ulink url="http://php.net/is_readable">
+                <methodname>is_readable()</methodname>
+            </ulink>
+            .
+            La función
+            <acronym>PHP</acronym>
+            no busca en
+            <methodname>include_path</methodname>
+            ,
+            mientras que
+            <methodname>Zend_Loader::isReadable()</methodname>
+            sí.
+        </para>
 
     </sect2>
 
@@ -152,48 +241,84 @@ if (Zend_Loader::isReadable($filename)) {
         <title>Usando el Autoloader</title>
 
         <para>
-            La clase <classname>Zend_Loader</classname> contiene un método que se puede registrar
-            con <acronym>PHP</acronym> SPL autoloader.  <methodname>Zend_Loader::autoload()</methodname> es el método
-            callback.  Por comodidad, <classname>Zend_Loader</classname> permite a la función
-            <methodname>registerAutoload()</methodname> registrar su método
-            <methodname>autoload()</methodname>.  Si la extensión <methodname>spl_autoload</methodname>
-            no está presente en el entorno <acronym>PHP</acronym>, entonces el método
-            <methodname>registerAutoload()</methodname> lanza una <methodname>Zend_Exception</methodname>.
-       </para>
+            La clase
+            <classname>Zend_Loader</classname>
+            contiene un método que se puede registrar
+            con
+            <acronym>PHP</acronym>
+            SPL autoloader.
+            <methodname>Zend_Loader::autoload()</methodname>
+            es el método
+            callback. Por comodidad,
+            <classname>Zend_Loader</classname>
+            permite a la función
+            <methodname>registerAutoload()</methodname>
+            registrar su método
+            <methodname>autoload()</methodname>
+            . Si la extensión
+            <methodname>spl_autoload</methodname>
+            no está presente en el entorno
+            <acronym>PHP</acronym>
+            , entonces el método
+            <methodname>registerAutoload()</methodname>
+            lanza una
+            <methodname>Zend_Exception</methodname>
+            .
+        </para>
 
         <example id="zend.loader.load.autoload.example">
             <title>Ejemplo de registro del método callback del autoloader</title>
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 Zend_Loader::registerAutoload();
 ]]></programlisting>
         </example>
 
         <para>
             Después de registrar el callback de autoload de Zend Framework, se pueden
-            referenciar clases de Zend Framework sin tener que cargarlas
-            explícitamente.  El método <methodname>autoload()</methodname> usa automáticamente
-            <methodname>Zend_Loader::loadClass()</methodname> cuando referencie una clase.
-       </para>
+            referenciar
+            clases de Zend Framework sin tener que cargarlas
+            explícitamente. El método
+            <methodname>autoload()</methodname>
+            usa automáticamente
+            <methodname>Zend_Loader::loadClass()</methodname>
+            cuando referencie una clase.
+        </para>
 
         <para>
-            Si ha extendido la clase <classname>Zend_Loader</classname>, se puede pasar un
-            argumento opcional a <methodname>registerAutoload()</methodname>, para especificar
-            la clase a partir de la cual registrar un método <methodname>autoload()</methodname>.
-       </para>
+            Si ha extendido la clase
+            <classname>Zend_Loader</classname>
+            , se puede pasar un
+            argumento opcional a
+            <methodname>registerAutoload()</methodname>
+            , para especificar
+            la clase a partir de la cual registrar un método
+            <methodname>autoload()</methodname>
+            .
+        </para>
 
         <example id="zend.loader.load.autoload.example-extended">
             <title>Ejemplo de registro del método de callback autoload desde una clase
-            extendida</title>
+                extendida</title>
             <para>
-                Debido a la semántica de referencia de funciones estáticas en <acronym>PHP</acronym>,
-                se debe implementar código tanto para la clase <methodname>loadClass()</methodname>
-                como <methodname>autoload()</methodname>, y <methodname>autoload()</methodname>
-                debe llamar a <methodname>self::loadClass()</methodname>.  Si su método
-                <methodname>autoload()</methodname> delega en su padre la llamada a
-                <methodname>self::loadClass()</methodname>, entonces llamará
+                Debido a la semántica de referencia de funciones estáticas en
+                <acronym>PHP</acronym>
+                ,
+                se debe implementar código tanto para la clase
+                <methodname>loadClass()</methodname>
+                como
+                <methodname>autoload()</methodname>
+                , y
+                <methodname>autoload()</methodname>
+                debe llamar a
+                <methodname>self::loadClass()</methodname>
+                . Si su método
+                <methodname>autoload()</methodname>
+                delega en su padre la llamada a
+                <methodname>self::loadClass()</methodname>
+                , entonces llamará
                 al método con ese nombre en la clase padre, no la subclase.
-           </para>
-             <programlisting language="php"><![CDATA[
+            </para>
+            <programlisting language="php"><![CDATA[
 class My_Loader extends Zend_Loader
 {
     public static function loadClass($class, $dirs = null)
@@ -218,15 +343,19 @@ Zend_Loader::registerAutoload('My_Loader');
 
         <para>
             Se puede eliminar un callback de autoload.
-            <methodname>registerAutoload()</methodname> tiene un segundo parámetro opcional,
-            que es <constant>TRUE</constant> por defecto. Si este parámetro es
-            <constant>FALSE</constant>, el callback de autoload será borrado de la pila
+            <methodname>registerAutoload()</methodname>
+            tiene un segundo parámetro opcional,
+            que es
+            <constant>TRUE</constant>
+            por defecto. Si este parámetro es
+            <constant>FALSE</constant>
+            , el callback de autoload será borrado de la pila
             de autoload SPL.
-       </para>
+        </para>
 
     </sect2>
 
 </sect1>
-<!--
+    <!--
 vim:se ts=4 sw=4 et:
 -->

+ 62 - 23
documentation/manual/es/module_specs/Zend_Pdf-Create.xml

@@ -1,20 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17227 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17227 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.pdf.create">
     <title>Creando y Cargando Documentos PDF</title>
-    <para>La clase <classname>Zend_Pdf</classname> representa documentos <acronym>PDF</acronym> y
-        proporciona operaciones a nivel de documento.</para>
+    <para>
+        La clase
+        <classname>Zend_Pdf</classname>
+        representa documentos
+        <acronym>PDF</acronym>
+        y
+        proporciona operaciones a nivel de documento.
+    </para>
 
-    <para>Para crear un nuevo documento, primero debe ser creado un nuevo
-        objeto <classname>Zend_Pdf</classname>.</para>
+    <para>
+        Para crear un nuevo documento, primero debe ser creado un nuevo
+        objeto
+        <classname>Zend_Pdf</classname>
+        .
+    </para>
 
-    <para>La clase <classname>Zend_Pdf</classname> también ofrece dos métodos
-        estáticos para cargar un documento <acronym>PDF</acronym>. Estos métodos son
-            <methodname>Zend_Pdf::load()</methodname> y
-            <methodname>Zend_Pdf::parse()</methodname>. Ambos retornan objetos
-            <classname>Zend_Pdf</classname> como resultado o arrojan una
-        excepción si ocurre un error.</para>
+    <para>
+        La clase
+        <classname>Zend_Pdf</classname>
+        también ofrece dos métodos
+        estáticos para cargar un documento
+        <acronym>PDF</acronym>
+        . Estos métodos son
+        <methodname>Zend_Pdf::load()</methodname>
+        y
+        <methodname>Zend_Pdf::parse()</methodname>
+        . Ambos retornan objetos
+        <classname>Zend_Pdf</classname>
+        como resultado o arrojan una
+        excepción si ocurre un error.
+    </para>
 
     <example id="zend.pdf.create.example-1">
         <title>Crear un nuevo documento PDF o cargar uno ya esistente.</title>
@@ -32,19 +51,39 @@ $pdf3 = Zend_Pdf::parse($pdfString);
 ]]></programlisting>
     </example>
 
-    <para>El formato de archivos <acronym>PDF</acronym> soporta la actualización incremental del
-        documento. Así, cada vez que un documento es actualizado, entonces se
+    <para>
+        El formato de archivos
+        <acronym>PDF</acronym>
+        soporta la actualización incremental del
+        documento. Así, cada vez que un documento es
+        actualizado, entonces se
         crea una nueva revisión del documento. El componente
-            <classname>Zend_Pdf</classname> soporta la recuperación de una
-        revisión especificada.</para>
-    <para>Una revisión puede especificarse como un segundo parámetro a los
-        métodos <methodname>Zend_Pdf::load()</methodname> y
-            <methodname>Zend_Pdf::parse()</methodname> o requerirlo llamando al
-        método <methodname>Zend_Pdf::rollback()</methodname>. <footnote>
-            <para>El método <methodname>Zend_Pdf::rollback()</methodname> debe
+        <classname>Zend_Pdf</classname>
+        soporta la recuperación de una
+        revisión especificada.
+    </para>
+    <para>
+        Una revisión puede especificarse como un segundo parámetro a los
+        métodos
+        <methodname>Zend_Pdf::load()</methodname>
+        y
+        <methodname>Zend_Pdf::parse()</methodname>
+        o requerirlo llamando al
+        método
+        <methodname>Zend_Pdf::rollback()</methodname>
+        .
+        <footnote>
+            <para>
+                El método
+                <methodname>Zend_Pdf::rollback()</methodname>
+                debe
                 ser invocado antes de aplicar cualquier cambio al documento, de
-                lo contrario el comportamiento no está definido.</para>
-        </footnote> call.</para>
+                lo contrario el
+                comportamiento no está definido.
+            </para>
+        </footnote>
+        call.
+    </para>
 
     <example id="zend.pdf.create.example-2">
         <title>Requiriendo Revisiones Específicas de un documento PDF</title>

+ 463 - 205
documentation/manual/es/module_specs/Zend_Pdf-Drawing.xml

@@ -1,34 +1,48 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17227 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17227 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.pdf.drawing">
     <title>Dibujo</title>
 
     <sect2 id="zend.pdf.drawing.geometry">
         <title>Geometría</title>
-        <para><acronym>PDF</acronym> utiliza la misma geometría que PostScript. Se inicia desde la
-            parte inferior izquierda de la página y por defecto se mide en
-            puntos (1/72 de pulgada).</para>
+        <para>
+            <acronym>PDF</acronym>
+            utiliza la misma geometría que PostScript. Se inicia desde la
+            parte inferior izquierda de
+            la página y por defecto se mide en
+            puntos (1/72 de pulgada).
+        </para>
         <para>El tamaño de la página se puede recuperar desde un objeto página:</para>
         <para>
             <programlisting language="php"><![CDATA[
 $width  = $pdfPage->getWidth();
 $height = $pdfPage->getHeight();
 ]]></programlisting>
-       </para>
+        </para>
     </sect2>
 
     <sect2 id="zend.pdf.drawing.color">
         <title>Colores</title>
-        <para><acronym>PDF</acronym> tiene una poderosa capacidad de representación de colores. El
-            módulo <classname>Zend_Pdf</classname> soporta la Escala de Grises,
-            y los espacios de color RGB y CMYK. Cualquiera de ellos puede ser
+        <para>
+            <acronym>PDF</acronym>
+            tiene una poderosa capacidad de representación de colores. El
+            módulo
+            <classname>Zend_Pdf</classname>
+            soporta la Escala de Grises,
+            y los espacios de color RGB y CMYK. Cualquiera de ellos
+            puede ser
             usado en cualquier lugar, donde el objeto
-                <classname>Zend_Pdf_Color</classname> sea requerido. Las clases
-                <classname>Zend_Pdf_Color_GrayScale</classname>,
-                <classname>Zend_Pdf_Color_Rgb</classname> y
-                <classname>Zend_Pdf_Color_Cmyk</classname> proporcionan esta
-            funcionalidad:</para>
+            <classname>Zend_Pdf_Color</classname>
+            sea requerido. Las clases
+            <classname>Zend_Pdf_Color_GrayScale</classname>
+            ,
+            <classname>Zend_Pdf_Color_Rgb</classname>
+            y
+            <classname>Zend_Pdf_Color_Cmyk</classname>
+            proporcionan esta
+            funcionalidad:
+        </para>
         <programlisting language="php"><![CDATA[
 // $grayLevel (float number). 0.0 (black) - 1.0 (white)
 $color1 = new Zend_Pdf_Color_GrayScale($grayLevel);
@@ -40,8 +54,13 @@ $color2 = new Zend_Pdf_Color_Rgb($r, $g, $b);
 $color3 = new Zend_Pdf_Color_Cmyk($c, $m, $y, $k);
 ]]></programlisting>
 
-        <para>Los estilos de colores <acronym>HTML</acronym> también se proporcionan con la clase
-                <classname>Zend_Pdf_Color_Html</classname>:</para>
+        <para>
+            Los estilos de colores
+            <acronym>HTML</acronym>
+            también se proporcionan con la clase
+            <classname>Zend_Pdf_Color_Html</classname>
+            :
+        </para>
         <programlisting language="php"><![CDATA[
 $color1 = new Zend_Pdf_Color_Html('#3366FF');
 $color2 = new Zend_Pdf_Color_Html('silver');
@@ -51,10 +70,18 @@ $color3 = new Zend_Pdf_Color_Html('forestgreen');
 
     <sect2 id="zend.pdf.drawing.shape-drawing">
         <title>Dibujo de Formas</title>
-        <para>Todas las operaciones de dibujo se puede hacer en un contexto de
-            página <acronym>PDF</acronym>.</para>
-        <para>La clase <classname>Zend_Pdf_Page</classname> proporciona un
-            conjunto de primitivas de dibujo:</para>
+        <para>
+            Todas las operaciones de dibujo se puede hacer en un contexto de
+            página
+            <acronym>PDF</acronym>
+            .
+        </para>
+        <para>
+            La clase
+            <classname>Zend_Pdf_Page</classname>
+            proporciona un
+            conjunto de primitivas de dibujo:
+        </para>
         <programlisting language="php"><![CDATA[
 /**
  * Dibujar una línea desde x1,y1 hasta x2,y2.
@@ -176,12 +203,19 @@ public function drawEllipse($x1,
 
     <sect2 id="zend.pdf.drawing.text-drawing">
         <title>Dibujo de Texto</title>
-        <para>Las operaciones de dibujo de texto también existen en el contexto
-            de una página <acronym>PDF</acronym>. Puede dibujar una sola línea de texto en
-            cualquier posición en la página mediante el suministro de las
+        <para>
+            Las operaciones de dibujo de texto también existen en el contexto
+            de una página
+            <acronym>PDF</acronym>
+            . Puede dibujar una sola línea de texto en
+            cualquier posición en la página mediante el
+            suministro de las
             coordenadas X e Y de la base de referencia. La fuente y tamaño
-            actual de la letra se utilizan para operaciones de dibujo de texto
-            (ver descripción detallada más abajo).</para>
+            actual de
+            la letra se utilizan para operaciones de dibujo de texto
+            (ver descripción detallada más
+            abajo).
+        </para>
         <programlisting language="php"><![CDATA[
 /**
  * Dibujar una línea de texto en una posición específica.
@@ -204,19 +238,27 @@ $pdfPage->drawText('Hello world!', 72, 720);
 ...
 ]]></programlisting>
         </example>
-        <para>Por defecto, los strings de texto se interpretan usando el método
-            de codificación de la localización actual. Si tiene un string que
-            utiliza un método de codificación diferente (como un string UTF-8 a
+        <para>
+            Por defecto, los strings de texto se interpretan usando el método
+            de codificación de la
+            localización actual. Si tiene un string que
+            utiliza un método de codificación diferente
+            (como un string UTF-8 a
             leer desde un archivo en disco, o un string MacRoman obtenido a
             partir del legado de una base de datos), puede indicar la
-            codificación de caracteres a llamar en tiempo de dibujo y
-                <classname>Zend_Pdf</classname> se encargará de la conversión.
-            Puede proporcionar la fuente de cualquier método de codificación de
-            strings soportados por la función de <acronym>PHP</acronym>
+            codificación de caracteres a
+            llamar en tiempo de dibujo y
+            <classname>Zend_Pdf</classname>
+            se encargará de la conversión.
+            Puede proporcionar la fuente de cualquier método de
+            codificación de
+            strings soportados por la función de
+            <acronym>PHP</acronym>
             <code>
-                <ulink url="http://www.php.net/manual/function.iconv.php"
-                    >iconv()</ulink>
-            </code>:</para>
+                <ulink url="http://www.php.net/manual/function.iconv.php">iconv()</ulink>
+            </code>
+            :
+        </para>
         <example id="zend.pdf.drawing.text-drawing.example-2">
             <title>Dibujar un string codificado en UTF-8 en la página</title>
             <programlisting language="php"><![CDATA[
@@ -234,9 +276,13 @@ $pdfPage->drawText($unicodeString, 72, 720, 'UTF-8');
     <sect2 id="zend.pdf.drawing.using-fonts">
         <title>Uso de Fuentes</title>
         <para>
-            <methodname>Zend_Pdf_Page::drawText()</methodname> utiliza la fuente y
+            <methodname>Zend_Pdf_Page::drawText()</methodname>
+            utiliza la fuente y
             el tamaño actual de la fuente de la página, que se establece con el
-            método <methodname>Zend_Pdf_Page::setFont()</methodname>:</para>
+            método
+            <methodname>Zend_Pdf_Page::setFont()</methodname>
+            :
+        </para>
         <programlisting language="php"><![CDATA[
 /**
  * Establecer la fuente actual.
@@ -247,20 +293,35 @@ $pdfPage->drawText($unicodeString, 72, 720, 'UTF-8');
  */
 public function setFont(Zend_Pdf_Resource_Font $font, $fontSize);
 ]]></programlisting>
-        <para>Los documentos <acronym>PDF</acronym> soportan fuentes PostScript Type 1 y TrueType,
-            así como dos tipos especializados de <acronym>PDF</acronym>, Type 3 y fuentes
+        <para>
+            Los documentos
+            <acronym>PDF</acronym>
+            soportan fuentes PostScript Type 1 y TrueType,
+            así como dos tipos especializados de
+            <acronym>PDF</acronym>
+            , Type 3 y fuentes
             compuestas. También hay 14 fuentes estándar Tipo 1 incorporadas para
-            cada visor <acronym>PDF</acronym>: Courier (4 estilos), Helvetica (4 estilos), Times (4
-            estilos), Symbol y Zapf Dingbats.</para>
+            cada visor
+            <acronym>PDF</acronym>
+            : Courier (4 estilos), Helvetica (4 estilos), Times (4
+            estilos), Symbol y Zapf Dingbats.
+        </para>
         <para>
-            <classname>Zend_Pdf</classname> actualmente soporta el estándar de
-            14 fuentes <acronym>PDF</acronym>, así como sus propias fuentes personalizadas
-            TrueType. Los objetos Font se obtienen a través de una de los dos
+            <classname>Zend_Pdf</classname>
+            actualmente soporta el estándar de
+            14 fuentes
+            <acronym>PDF</acronym>
+            , así como sus propias fuentes personalizadas
+            TrueType. Los objetos Font se obtienen a
+            través de una de los dos
             métodos de fábrica:
-                <classname>Zend_Pdf_Font::fontWithName($fontName)</classname>
-            para las 14 fuentes estándar <acronym>PDF</acronym> o
-                <classname>Zend_Pdf_Font::fontWithPath($filePath)</classname>
-            para fuentes personalizadas.</para>
+            <classname>Zend_Pdf_Font::fontWithName($fontName)</classname>
+            para las 14 fuentes estándar
+            <acronym>PDF</acronym>
+            o
+            <classname>Zend_Pdf_Font::fontWithPath($filePath)</classname>
+            para fuentes personalizadas.
+        </para>
         <example id="zend.pdf.drawing.using-fonts.example-1">
             <title>Crear un tipo de letra normal</title>
             <programlisting language="php"><![CDATA[
@@ -273,8 +334,13 @@ $pdfPage->setFont($font, 36);
 ...
 ]]></programlisting>
         </example>
-        <para>Los nombres de las 14 constantes para el tipo de letra estándar
-            de PDF se definen en la clase <classname>Zend_Pdf_Font</classname>: <itemizedlist>
+        <para>
+            Los nombres de las 14 constantes para el tipo de letra estándar
+            de PDF se definen en la
+            clase
+            <classname>Zend_Pdf_Font</classname>
+            :
+            <itemizedlist>
                 <listitem>
                     <para>Zend_Pdf_Font::FONT_COURIER</para>
                 </listitem>
@@ -318,16 +384,21 @@ $pdfPage->setFont($font, 36);
                     <para>Zend_Pdf_Font::FONT_ZAPFDINGBATS</para>
                 </listitem>
             </itemizedlist>
-       </para>
+        </para>
         <para>También puede utilizar cualquier fuente individual TrueType (que
-            generalmente tiene una extensión '.ttf') o bien una fuente OpenType
-            (con la extensión '.otf') si contiene esquemas TrueType. Actualmente
-            no están soportadas, pero está previsto para una versión futura
+            generalmente tiene una
+            extensión '.ttf') o bien una fuente OpenType
+            (con la extensión '.otf') si contiene
+            esquemas TrueType. Actualmente
+            no están soportadas, pero está previsto para una versión
+            futura
             archivos de fuentes .dfont de Mac OS X y de Microsoft TrueType
             Collection(extensión '.ttc').</para>
         <para>Para utilizar una fuente TrueType, debe proporcionar toda la ruta
-            del archivo a la fuente del programa. Si la fuente no se puede leer
-            por alguna razón, o si no es una fuente TrueType, el método de
+            del archivo a la
+            fuente del programa. Si la fuente no se puede leer
+            por alguna razón, o si no es una
+            fuente TrueType, el método de
             fábrica arrojará una excepción:</para>
         <example id="zend.pdf.drawing.using-fonts.example-2">
             <title>Crear una fuente TrueType</title>
@@ -341,13 +412,20 @@ $pdfPage->setFont($goodDogCoolFont, 36);
 ...
 ]]></programlisting>
         </example>
-        <para>Por defecto, las fuentes personalizadas serán incorporados en el
-            documento <acronym>PDF</acronym> resultante. Esto permite que los destinatarios vean la
-            página como está previsto, incluso si no tienen los tipos de letra
-            apropiados instalados en su sistema. Si le preocupa el tamaño del
+        <para>
+            Por defecto, las fuentes personalizadas serán incorporados en el
+            documento
+            <acronym>PDF</acronym>
+            resultante. Esto permite que los destinatarios vean la
+            página como está previsto, incluso
+            si no tienen los tipos de letra
+            apropiados instalados en su sistema. Si le preocupa el
+            tamaño del
             archivo, puede pedir que la fuente del programa no sea integrada
-            pasando una opción 'do not embed' ("no incluir") al método de
-            fábrica:</para>
+            pasando una
+            opción 'do not embed' ("no incluir") al método de
+            fábrica:
+        </para>
         <example id="zend.pdf.drawing.using-fonts.example-3">
             <title>Crear una fuente TrueType, pero no incluirla en el documento
                 PDF.</title>
@@ -362,18 +440,32 @@ $pdfPage->setFont($goodDogCoolFont, 36);
 ...
 ]]></programlisting>
         </example>
-        <para>Si el programa no es de fuentes incrustadas, pero el destinatario
-            del archivo <acronym>PDF</acronym> tiene instalada la fuente en su sistema, va a ver el
-            documento como estaba previsto. Si no tiene la fuente correcta
-            instalada, la aplicación del visor de <acronym>PDF</acronym> hará todo lo posible para
-            sintetizar un sustituto.</para>
-        <para>Algunas fuentes tienen normas específicas de concesión de
-            licencias que les impiden ser tenidas en cuenta en documentos <acronym>PDF</acronym>.
+        <para>
+            Si el programa no es de fuentes incrustadas, pero el destinatario
+            del archivo
+            <acronym>PDF</acronym>
+            tiene instalada la fuente en su sistema, va a ver el
+            documento como estaba previsto. Si
+            no tiene la fuente correcta
+            instalada, la aplicación del visor de
+            <acronym>PDF</acronym>
+            hará todo lo posible para
+            sintetizar un sustituto.
+        </para>
+        <para>
+            Algunas fuentes tienen normas específicas de concesión de
+            licencias que les impiden ser
+            tenidas en cuenta en documentos
+            <acronym>PDF</acronym>
+            .
             Así que no son capturados con la "guardia baja" por la presente, si
-            intenta utilizar una fuente que no puede ser incorporada, el método
-            de fábrica lanzará una excepción.</para>
+            intenta utilizar una
+            fuente que no puede ser incorporada, el método
+            de fábrica lanzará una excepción.
+        </para>
         <para>Puede seguir utilizando esas fuentes, pero debe pasar el flag de
-            no incluir como se ha descripto anteriormente, o simplemente puede
+            no incluir como se ha
+            descripto anteriormente, o simplemente puede
             suprimir la excepción:</para>
         <example id="zend.pdf.drawing.using-fonts.example-4">
             <title>No arrojar una excepción para las fuentes que no puedan ser
@@ -387,16 +479,24 @@ $font = Zend_Pdf_Font::fontWithPath(
 ...
 ]]></programlisting>
         </example>
-        <para>Esta técnica de supresión se prefiere si va a permitir a un
-            usuario final a elegir sus propios tipos de letra. Las fuentes que
-            puedan ser embebidas en el documento <acronym>PDF</acronym>, lo harán, aquellos que no
-            puedan, no.</para>
+        <para>
+            Esta técnica de supresión se prefiere si va a permitir a un
+            usuario final a elegir sus
+            propios tipos de letra. Las fuentes que
+            puedan ser embebidas en el documento
+            <acronym>PDF</acronym>
+            , lo harán, aquellos que no
+            puedan, no.
+        </para>
         <para>Los de programas de fuentes pueden ser bastante grandes, algunas
-            llegan a decenas de megabytes. Por defecto, todas las fuentes
-            incorporadas son comprimidas utilizando el esquema de compresión
+            llegan a decenas de
+            megabytes. Por defecto, todas las fuentes
+            incorporadas son comprimidas utilizando el
+            esquema de compresión
             Flate, lo que resulta en un ahorro de espacio del 50% en promedio.
             Si, por alguna razón, no desea comprimir la fuente del programa, se
-            puede desactivar con una opción:</para>
+            puede desactivar con
+            una opción:</para>
         <example id="zend.pdf.drawing.using-fonts.example-5">
             <title>No comprimir una fuente incrustada.</title>
             <programlisting language="php"><![CDATA[
@@ -407,7 +507,8 @@ $font = Zend_Pdf_Font::fontWithPath('/path/to/someReallyBigFont.ttf',
 ]]></programlisting>
         </example>
         <para>Por último, en caso necesario, puede combinar las opciones de la
-            integración mediante el operador binario OR:</para>
+            integración mediante
+            el operador binario OR:</para>
         <example id="zend.pdf.drawing.using-fonts.example-6">
             <title>La combinación de opciones de la incrustación de
                 fuentes.</title>
@@ -424,18 +525,30 @@ $font = Zend_Pdf_Font::fontWithPath(
 
     <sect2 id="zend.pdf.drawing.standard-fonts-limitations">
         <title>Limitaciones de las fuentes PDF estándar.</title>
-        <para>Las fuentes estándar <acronym>PDF</acronym> utilizan internamente varias
-            codificaciones de un solo byte (véase <ulink
-                url="http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf"
-                ><acronym>PDF</acronym> Reference, Sixth Edition, version 1.7</ulink> Apéndice D
+        <para>
+            Las fuentes estándar
+            <acronym>PDF</acronym>
+            utilizan internamente varias
+            codificaciones de un solo byte (véase
+            <ulink url="http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf">
+                <acronym>PDF</acronym>
+                Reference, Sixth Edition, version 1.7
+            </ulink>
+            Apéndice D
             para más detalles). Son, en general, igual al conjunto de caracteres
-            Latin1 (excepto las fuentes ZapfDingbats y Symbol).</para>
+            Latin1
+            (excepto las fuentes ZapfDingbats y Symbol).
+        </para>
         <para>
-            <classname>Zend_Pdf</classname> usa CP1252 (WinLatin1) para dibujar
-            el texto con las fuentes estándar.</para>
+            <classname>Zend_Pdf</classname>
+            usa CP1252 (WinLatin1) para dibujar
+            el texto con las fuentes estándar.
+        </para>
         <para>El texto todavía se puede proporcionar en cualquier otra
-            codificación, que debe ser especificada si ésta es distinto de una
-            fuente local actual. Realmente, sólo se dibujarán caracteres
+            codificación, que debe ser
+            especificada si ésta es distinto de una
+            fuente local actual. Realmente, sólo se dibujarán
+            caracteres
             WinLatin1.</para>
         <example id="zend.pdf.drawing.using-fonts.example-7">
             <title>Combinación de opciones de la incrustación de
@@ -453,18 +566,29 @@ $pdfPage->setFont($font, 36)
 
     <sect2 id="zend.pdf.drawing.extracting-fonts">
         <title>Extracción de las fuentes.</title>
-        <para>El módulo <classname>Zend_Pdf</classname> proporciona una
-            posibilidad de extraer las fuentes de los documentos cargados.</para>
+        <para>
+            El módulo
+            <classname>Zend_Pdf</classname>
+            proporciona una
+            posibilidad de extraer las fuentes de los documentos cargados.
+        </para>
 
         <para>Puede ser útil para las actualizaciones incrementales de un
-            documento. Sin esta funcionalidad tiene que agregar y posiblemente,
-            incrustar una fuente en un documento cada vez que desee
+            documento. Sin esta
+            funcionalidad tiene que agregar y posiblemente,
+            incrustar una fuente en un documento cada
+            vez que desee
             actualizarlo.</para>
 
-        <para>Los objetos <classname>Zend_Pdf</classname> y
-                <classname>Zend_Pdf_Page</classname> proporcionan métodos
+        <para>
+            Los objetos
+            <classname>Zend_Pdf</classname>
+            y
+            <classname>Zend_Pdf_Page</classname>
+            proporcionan métodos
             especiales para extraer todas las fuentes mencionadas en un
-            documento o una página:</para>
+            documento o una página:
+        </para>
         <example id="zend.pdf.drawing.extracting-fonts.example-1">
             <title>Extracción de las fuentes de un documento cargado.</title>
             <programlisting language="php"><![CDATA[
@@ -495,7 +619,8 @@ $firstPageFonts = $firstPage->extractFonts();
         </example>
         <example id="zend.pdf.drawing.extracting-fonts.example-2">
             <title>Extracción de la fuente de un documento cargado especificando
-                el nombre de la fuente.</title>
+                el nombre de la
+                fuente.</title>
             <programlisting language="php"><![CDATA[
 ...
 $pdf = new Zend_Pdf();
@@ -531,18 +656,25 @@ $pdf->save($docPath, true /* modo de actualización incremental */);
 ]]></programlisting>
         </example>
 
-        <para>Las fuentes extraídas pueden ser utilizadas en el lugar de
-            cualquier otra fuente con las siguientes limitaciones: <itemizedlist>
+        <para>
+            Las fuentes extraídas pueden ser utilizadas en el lugar de
+            cualquier otra fuente con las
+            siguientes limitaciones:
+            <itemizedlist>
                 <listitem>
                     <para>La fuente extraída puede ser usada sólo en el
-                        contexto del documento del que se ha extraído.</para>
+                        contexto del documento del
+                        que se ha extraído.</para>
                 </listitem>
                 <listitem>
-                    <para>Posiblemente, el programa no extraiga realmente la
-                        fuente incrustada. Así que las fuentes extraídas no
+                    <para>
+                        Posiblemente, el programa no extraiga realmente la
+                        fuente incrustada. Así que
+                        las fuentes extraídas no
                         pueden proporcionar métricas correctas y la fuente
                         original tiene que ser utilizada para los cálculos de
-                        ancho de texto: <programlisting language="php"><![CDATA[
+                        ancho de texto:
+                        <programlisting language="php"><![CDATA[
 ...
 $font = $pdf->extractFont($fontName);
 $originalFont = Zend_Pdf_Font::fontWithPath($fontPath);
@@ -560,16 +692,20 @@ for ($charIndex = 0; $charIndex < strlen($text); $charIndex++) {
 }
 ...
 ]]></programlisting>
-                   </para>
+                    </para>
                 </listitem>
             </itemizedlist>
-       </para>
+        </para>
     </sect2>
 
     <sect2 id="zend.pdf.drawing.image-drawing">
         <title>Dibujo de Imágenes</title>
-        <para>La clase <classname>Zend_Pdf_Page</classname> proporciona el
-            método drawImage() para dibujar la imagen:</para>
+        <para>
+            La clase
+            <classname>Zend_Pdf_Page</classname>
+            proporciona el
+            método drawImage() para dibujar la imagen:
+        </para>
         <programlisting language="php"><![CDATA[
 /**
  * Dibujar una imagen en una posición específica de la página.
@@ -583,9 +719,11 @@ for ($charIndex = 0; $charIndex < strlen($text); $charIndex++) {
  */
 public function drawImage(Zend_Pdf_Resource_Image $image, $x1, $y1, $x2, $y2);
 ]]></programlisting>
-        <para>Los objetos imagen deben ser creados con el método
-                <classname>Zend_Pdf_Image::imageWithPath($filePath)</classname>
-            (imágenes JPG, PNG y TIFF ahora son soportadas):</para>
+        <para>
+            Los objetos imagen deben ser creados con el método
+            <classname>Zend_Pdf_Image::imageWithPath($filePath)</classname>
+            (imágenes JPG, PNG y TIFF ahora son soportadas):
+        </para>
         <example id="zend.pdf.drawing.image-drawing.example-1">
             <title>Dibujar una imagen</title>
             <programlisting language="php"><![CDATA[
@@ -599,25 +737,39 @@ $pdfPage->drawImage($image, 100, 100, 400, 300);
         </example>
 
         <para>
-            <emphasis>Importante! el soporte a JPEG requiere que se configure la
-                extensión <acronym>PHP</acronym> GD.</emphasis>
+            <emphasis>
+                Importante! el soporte a JPEG requiere que se configure la
+                extensión
+                <acronym>PHP</acronym>
+                GD.
+            </emphasis>
             <emphasis>Importante! el soporte a PNG requiere que se configure la
-                extensión ZLIB para trabajar con imágenes canal Alfa.</emphasis>
-       </para>
-        <para>Consulte la documentación de <acronym>PHP</acronym> para obtener
-            información detallada (<ulink
-                url="http://www.php.net/manual/en/ref.image.php"
-                >http://www.php.net/manual/en/ref.image.php</ulink>). (<ulink
-                url="http://www.php.net/manual/en/ref.zlib.php"
-                >http://www.php.net/manual/en/ref.zlib.php</ulink>).</para>
+                extensión ZLIB para
+                trabajar con imágenes canal Alfa.</emphasis>
+        </para>
+        <para>
+            Consulte la documentación de
+            <acronym>PHP</acronym>
+            para obtener
+            información detallada (
+            <ulink url="http://www.php.net/manual/en/ref.image.php">http://www.php.net/manual/en/ref.image.php</ulink>
+            ). (
+            <ulink url="http://www.php.net/manual/en/ref.zlib.php">http://www.php.net/manual/en/ref.zlib.php</ulink>
+            ).
+        </para>
     </sect2>
 
     <sect2 id="zend.pdf.drawing.line-drawing-style">
         <title>Estilo de Dibujo de Líneas</title>
-        <para>El estilo del dibujo de líneas está definido por el ancho de
-            línea, el color de línea y el patrón del tipo de línea. Todo esto
-            parámetros pueden ser asignados por los métodos de la clase
-                <classname>Zend_Pdf_Page</classname>:</para>
+        <para>
+            El estilo del dibujo de líneas está definido por el ancho de
+            línea, el color de línea y
+            el patrón del tipo de línea. Todo esto
+            parámetros pueden ser asignados por los métodos de
+            la clase
+            <classname>Zend_Pdf_Page</classname>
+            :
+        </para>
         <programlisting language="php"><![CDATA[
 /** Establecer el color de la línea. */
 public function setLineColor(Zend_Pdf_Color $color);
@@ -642,13 +794,21 @@ public function setLineDashingPattern($pattern, $phase = 0);
 
     <sect2 id="zend.pdf.drawing.fill-style">
         <title>Estilo Relleno</title>
-        <para>Los métodos
-            <methodname>Zend_Pdf_Page::drawRectangle()</methodname>,
-                <methodname>Zend_Pdf_Page::drawPolygon()</methodname>,
-                <methodname>Zend_Pdf_Page::drawCircle()</methodname> y
-                <methodname>Zend_Pdf_Page::drawEllipse()</methodname> toman el
-            argumento <varname>$fillType</varname> como un parámetro
-            opcional. Puede ser:</para>
+        <para>
+            Los métodos
+            <methodname>Zend_Pdf_Page::drawRectangle()</methodname>
+            ,
+            <methodname>Zend_Pdf_Page::drawPolygon()</methodname>
+            ,
+            <methodname>Zend_Pdf_Page::drawCircle()</methodname>
+            y
+            <methodname>Zend_Pdf_Page::drawEllipse()</methodname>
+            toman el
+            argumento
+            <varname>$fillType</varname>
+            como un parámetro
+            opcional. Puede ser:
+        </para>
 
         <itemizedlist>
             <listitem>
@@ -660,88 +820,134 @@ public function setLineDashingPattern($pattern, $phase = 0);
             </listitem>
             <listitem>
                 <para>Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE - llenar y
-                    trazar (comportamiento por defecto)</para>
+                    trazar (comportamiento por
+                    defecto)</para>
             </listitem>
         </itemizedlist>
 
-        <para>El método <methodname>Zend_Pdf_Page::drawPolygon()</methodname>
+        <para>
+            El método
+            <methodname>Zend_Pdf_Page::drawPolygon()</methodname>
             también tiene un parámetro adicional
-                <varname>$fillMethod</varname>:</para>
+            <varname>$fillMethod</varname>
+            :
+        </para>
         <itemizedlist>
             <listitem>
                 <para>Zend_Pdf_Page::FILL_METHOD_NON_ZERO_WINDING
                     (comportamiento por defecto)</para>
                 <para>
-                    <citetitle>PDF reference</citetitle> esta norma se describe
-                    como sigue: <blockquote>
-                        <para>La tortuosa regla del número distinto de cero
-                            determina si un punto está dentro de un camino de un
-                            rayo conceptual dibujado a partir de ese punto hasta
+                    <citetitle>PDF reference</citetitle>
+                    esta norma se describe
+                    como sigue:
+                    <blockquote>
+                        <para>
+                            La tortuosa regla del número distinto de cero
+                            determina si un punto está
+                            dentro de un camino de un
+                            rayo conceptual dibujado a partir de ese punto
+                            hasta
                             el infinito en cualquier dirección y luego de
-                            examinar los lugares en los que un segmento de la
-                            ruta atraviesa el rayo. A partir de la cuenta de 0,
+                            examinar los lugares
+                            en los que un segmento de la
+                            ruta atraviesa el rayo. A partir de la
+                            cuenta de 0,
                             la norma agrega 1 cada vez que un segmento de ruta
-                            atraviesa el rayo de izquierda a derecha y resta 1
-                            cada vez que un segmento cruza de derecha a
+                            atraviesa
+                            el rayo de izquierda a derecha y resta 1
+                            cada vez que un segmento cruza
+                            de derecha a
                             izquierda. Después de contar todos los cruces, si el
                             resultado es 0, entonces el punto está fuera del
-                            camino; otra cosa es el interior. Nota: El método
-                            que acabamos de describir no especifica qué hacer si
+                            camino; otra cosa es el
+                            interior. Nota: El método
+                            que acabamos de describir no especifica qué
+                            hacer si
                             un segmento de ruta coincide con o es tangente al
-                            rayo elegido. Dado que la dirección de los rayos es
-                            arbitraria, la regla simplemente elige un rayo que
+                            rayo elegido.
+                            Dado que la dirección de los rayos es
+                            arbitraria, la regla simplemente
+                            elige un rayo que
                             no encuentre problemas con las intersecciones. Por
                             simples caminos convexos, la regla del tortuoso
-                            número distinto de cero define el dentro y afuera
-                            como uno lo espera intuitivamente. Los casos más
+                            número distinto de cero
+                            define el dentro y afuera
+                            como uno lo espera intuitivamente. Los casos
+                            más
                             interesantes son aquellos que involucran la
-                            complejidad o las rutas auto-intersectadas como las
-                            que se muestran en la Figura 4.10 (en un <acronym>PDF</acronym> de
+                            complejidad o las rutas
+                            auto-intersectadas como las
+                            que se muestran en la Figura 4.10 (en un
+                            <acronym>PDF</acronym>
+                            de
                             referencia). Para un camino que consiste en una
-                            estrella de cinco puntas, dibujado con cinco
+                            estrella de cinco
+                            puntas, dibujado con cinco
                             segmentos conectados de líneas rectas
                             intersectándose entre sí, la regla considera que el
-                            interior será toda el área delimitada por la
+                            interior será toda el
+                            área delimitada por la
                             estrella, incluido el pentágono en el centro. Para
                             un camino compuesto por dos círculos concéntricos,
-                            las áreas de ambos círculos cerrados se consideran
-                            que están adentro, siempre que ambas se hayan
+                            las áreas de ambos
+                            círculos cerrados se consideran
+                            que están adentro, siempre que ambas se
+                            hayan
                             dibujado en la misma dirección. Si los círculos son
-                            dibujados en direcciones opuestas, sólo la forma de
-                            "doughnut" (rosquilla) formada entre ellos es el
+                            dibujados en
+                            direcciones opuestas, sólo la forma de
+                            "doughnut" (rosquilla) formada
+                            entre ellos es el
                             interior, de acuerdo a la norma, el "agujero de la
-                            rosquilla" está afuera.</para>
+                            rosquilla" está afuera.
+                        </para>
                     </blockquote>
-               </para>
+                </para>
             </listitem>
             <listitem>
                 <para>Zend_Pdf_Page::FILL_METHOD_EVEN_ODD</para>
                 <para>
-                    <citetitle>PDF reference</citetitle> describe esta norma
-                    como sigue: <blockquote>
-                        <para>Una alternativa al tortuoso número distinto de
-                            cero es la regla par-impar. Esta norma determina la
-                            "interioridad" de un punto por el dibujo de un rayo
+                    <citetitle>PDF reference</citetitle>
+                    describe esta norma
+                    como sigue:
+                    <blockquote>
+                        <para>
+                            Una alternativa al tortuoso número distinto de
+                            cero es la regla
+                            par-impar. Esta norma determina la
+                            "interioridad" de un punto por el
+                            dibujo de un rayo
                             desde ese punto en cualquier dirección y simplemente
                             contando el número de segmentos de ruta que
-                            atraviesan los rayos, independientemente de la
-                            dirección. Si este número es impar, el punto está
+                            atraviesan los rayos,
+                            independientemente de la
+                            dirección. Si este número es impar, el punto
+                            está
                             adentro, si es par, el punto está afuera. Esto
-                            produce los mismos resultados que la regla del
-                            tortuoso número distinto de cero para caminos con
+                            produce los mismos
+                            resultados que la regla del
+                            tortuoso número distinto de cero para caminos
+                            con
                             formas simples, pero produce resultados diferentes
-                            para formas más complejas. La Figura 4.11 (en un <acronym>PDF</acronym>
+                            para formas más
+                            complejas. La Figura 4.11 (en un
+                            <acronym>PDF</acronym>
                             de referencia) muestra los efectos de la aplicación
-                            de la regla par-impar a las rutas complejss. Para la
-                            estrella de cinco puntas, la regla considera que los
+                            de la regla par-impar
+                            a las rutas complejss. Para la
+                            estrella de cinco puntas, la regla
+                            considera que los
                             puntos del triángulo están dentro de la ruta, pero
-                            no el pentágono en el centro. Para los dos círculos
-                            concéntricos, sólo la forma de la "rosquilla" entre
+                            no el
+                            pentágono en el centro. Para los dos círculos
+                            concéntricos, sólo la forma
+                            de la "rosquilla" entre
                             los dos círculo está considerada adentro,
                             independientemente de las direcciones en las que se
-                            dibujen los círculos.</para>
+                            dibujen los círculos.
+                        </para>
                     </blockquote>
-               </para>
+                </para>
             </listitem>
         </itemizedlist>
     </sect2>
@@ -750,9 +956,15 @@ public function setLineDashingPattern($pattern, $phase = 0);
         <title>Transformaciones Lineales</title>
         <sect3 id="zend.pdf.drawing.linear-transformations.rotations">
             <title>Rotaciones.</title>
-            <para>La página <acronym>PDF</acronym> se puede rotar antes de aplicar cualquier
-                operación de dibujo. Se puede hacer con el método
-                    <methodname>Zend_Pdf_Page::rotate()</methodname>:</para>
+            <para>
+                La página
+                <acronym>PDF</acronym>
+                se puede rotar antes de aplicar cualquier
+                operación de dibujo. Se puede hacer con el
+                método
+                <methodname>Zend_Pdf_Page::rotate()</methodname>
+                :
+            </para>
             <programlisting language="php"><![CDATA[
 /**
  * Rotar la página.
@@ -768,8 +980,11 @@ public function rotate($x, $y, $angle);
 
         <sect3 id="zend.pdf.drawing.linear-transformations.scale">
             <title>A partir de Zend Framework 1.8, el escalado.</title>
-            <para>La escala de transformación es proporcionada por el método:
-                    <methodname>Zend_Pdf_Page::scale()</methodname>:</para>
+            <para>
+                La escala de transformación es proporcionada por el método:
+                <methodname>Zend_Pdf_Page::scale()</methodname>
+                :
+            </para>
             <programlisting language="php"><![CDATA[
 /**
  * Establecer la escala al sistema de coordenadas.
@@ -784,8 +999,12 @@ public function scale($xScale, $yScale);
 
         <sect3 id="zend.pdf.drawing.linear-transformations.translate">
             <title>A partir de Zend Framework 1.8, traducir.</title>
-            <para>El desplazamiento del sistema de coordenadas es realizado por
-                el método <methodname>Zend_Pdf_Page::translate()</methodname>:</para>
+            <para>
+                El desplazamiento del sistema de coordenadas es realizado por
+                el método
+                <methodname>Zend_Pdf_Page::translate()</methodname>
+                :
+            </para>
             <programlisting language="php"><![CDATA[
 /**
  * Traducir sistema de coordenadas.
@@ -800,8 +1019,11 @@ public function translate($xShift, $yShift);
 
         <sect3 id="zend.pdf.drawing.linear-transformations.skew">
             <title>A partir de Zend Framework 1.8, el sesgo.</title>
-            <para>El sesgo de una página se puede hacer utilizando el método
-                    <methodname>Zend_Pdf_Page::skew()</methodname>:</para>
+            <para>
+                El sesgo de una página se puede hacer utilizando el método
+                <methodname>Zend_Pdf_Page::skew()</methodname>
+                :
+            </para>
             <programlisting language="php"><![CDATA[
 /**
  * Traducir sistema de coordenadas.
@@ -820,13 +1042,18 @@ public function skew($x, $y, $xAngle, $yAngle);
     <sect2 id="zend.pdf.drawing.save-restore">
         <title>Guardar/Restaurar el estado de los gráficos.</title>
         <para>En cualquier momento el estado de la página de gráficos (fuente
-            actual, tamaño de la fuente, color de línea, color de relleno,
-            estilo de línea, rotación de la página, clip del área) se pueden
+            actual, tamaño de la
+            fuente, color de línea, color de relleno,
+            estilo de línea, rotación de la página, clip
+            del área) se pueden
             guardar y restaurarlos luego. Guardar la operación pone los datos a
             un estado de pila de gráficos, la operación de restauración se
             recupera a partir de ahí.</para>
-        <para>Existen dos métodos en la clase
-                <classname>Zend_Pdf_Page</classname> para estas operaciones:</para>
+        <para>
+            Existen dos métodos en la clase
+            <classname>Zend_Pdf_Page</classname>
+            para estas operaciones:
+        </para>
         <programlisting language="php"><![CDATA[
 /**
  * Salva el estado de los gráficos de esta página.
@@ -850,12 +1077,22 @@ public function restoreGS();
 
     <sect2 id="zend.pdf.drawing.clipping">
         <title>Señalar el área de recorte</title>
-        <para><acronym>PDF</acronym> y el módulo <classname>Zend_Pdf</classname> dan soporte de
+        <para>
+            <acronym>PDF</acronym>
+            y el módulo
+            <classname>Zend_Pdf</classname>
+            dan soporte de
             recorte a la zona de dibujo. La zona actual de Clip límita las
-            regiones de la página de los operadores afectados por la pintura. En
-            principio, es la página entera.</para>
-        <para>La clase <classname>Zend_Pdf_Page</classname> proporciona un
-            conjunto de métodos para las operaciones de recorte.</para>
+            regiones de
+            la página de los operadores afectados por la pintura. En
+            principio, es la página entera.
+        </para>
+        <para>
+            La clase
+            <classname>Zend_Pdf_Page</classname>
+            proporciona un
+            conjunto de métodos para las operaciones de recorte.
+        </para>
         <programlisting language="php"><![CDATA[
 /**
  * Intersectar el área actual de recorte con un rectángulo.
@@ -928,11 +1165,20 @@ public function clipEllipse($x1,
 
     <sect2 id="zend.pdf.drawing.styles">
         <title>Estilos</title>
-        <para>La clase <classname>Zend_Pdf_Style</classname> proporciona la
-            funcionalidad de los estilos.</para>
-        <para>Los estilos se pueden utilizar para almacenar un conjunto de
-            parámetros de estado del gráfico y aplicarlo a un página <acronym>PDF</acronym> por una
-            operación:</para>
+        <para>
+            La clase
+            <classname>Zend_Pdf_Style</classname>
+            proporciona la
+            funcionalidad de los estilos.
+        </para>
+        <para>
+            Los estilos se pueden utilizar para almacenar un conjunto de
+            parámetros de estado del
+            gráfico y aplicarlo a un página
+            <acronym>PDF</acronym>
+            por una
+            operación:
+        </para>
         <programlisting language="php"><![CDATA[
 /**
  * Establecer el estilo a utilizar para futuras operaciones de dibujo sobre esta página
@@ -950,9 +1196,14 @@ public function setStyle(Zend_Pdf_Style $style);
 public function getStyle();
 ]]></programlisting>
 
-        <para>La clase <classname>Zend_Pdf_Style</classname> proporciona un
+        <para>
+            La clase
+            <classname>Zend_Pdf_Style</classname>
+            proporciona un
             conjunto de métodos para obtener o configurar diferentes parámetros
-            de estado de los gráficos:</para>
+            de
+            estado de los gráficos:
+        </para>
         <programlisting language="php"><![CDATA[
 /**
  * Establecer el color de la línea.
@@ -1069,10 +1320,17 @@ public function getFontSize();
 
     <sect2 id="zend.pdf.drawing.alpha">
         <title>Transparencia</title>
-        <para>El módulo <classname>Zend_Pdf</classname> soporta el manejo de la
-            transparencia.</para>
-        <para>La transparencia puede ser el método
-                <methodname>Zend_Pdf_Page::setAlpha()</methodname>: <programlisting language="php"><![CDATA[
+        <para>
+            El módulo
+            <classname>Zend_Pdf</classname>
+            soporta el manejo de la
+            transparencia.
+        </para>
+        <para>
+            La transparencia puede ser el método
+            <methodname>Zend_Pdf_Page::setAlpha()</methodname>
+            :
+            <programlisting language="php"><![CDATA[
 /**
  * Establecer la transparencia.
  *
@@ -1090,7 +1348,7 @@ public function getFontSize();
  */
 public function setAlpha($alpha, $mode = 'Normal');
 ]]></programlisting>
-       </para>
+        </para>
     </sect2>
 
 </sect1>

+ 40 - 17
documentation/manual/es/module_specs/Zend_Pdf-Introduction.xml

@@ -1,21 +1,38 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17227 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17227 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.pdf.introduction">
     <!-- @todo review and revise upon completion of refactoring -->
     <title>Introducción</title>
-    <para>El componente <classname>Zend_Pdf</classname> es un motor para manipular documentos
-            <acronym>PDF</acronym> (Portable Document Format). Puede cargar, crear, modificar y
-        guardar documentos. Por lo tanto, puede ayudar a cualquier aplicación <acronym>PHP</acronym>
-        a crear dinámicamente documentos <acronym>PDF</acronym> modificando los documentos
-        existentes o generar unos nuevos desde cero. <classname>Zend_Pdf</classname> ofrece las
-        siguientes características: <itemizedlist>
-            <listitem>
-                <para>Crear un documento nuevo o cargar uno existente. <footnote>
-                        <para>La carga de documentos <acronym>PDF</acronym> V1.4 (Acrobat 5) ahora
-                            está soportada.</para>
+    <para>
+        El componente
+        <classname>Zend_Pdf</classname>
+        es un motor para manipular documentos
+        <acronym>PDF</acronym>
+        (Portable Document Format). Puede cargar, crear, modificar y
+        guardar documentos. Por lo
+        tanto, puede ayudar a cualquier aplicación
+        <acronym>PHP</acronym>
+        a crear dinámicamente documentos
+        <acronym>PDF</acronym>
+        modificando los documentos
+        existentes o generar unos nuevos desde cero.
+        <classname>Zend_Pdf</classname>
+        ofrece las
+        siguientes características:
+        <itemizedlist>
+            <listitem>
+                <para>
+                    Crear un documento nuevo o cargar uno existente.
+                    <footnote>
+                        <para>
+                            La carga de documentos
+                            <acronym>PDF</acronym>
+                            V1.4 (Acrobat 5) ahora
+                            está soportada.
+                        </para>
                     </footnote>
-               </para>
+                </para>
             </listitem>
             <listitem>
                 <para>Recuperar una determinada revisión del documento.</para>
@@ -36,15 +53,21 @@
                 <para>Rotaciones.</para>
             </listitem>
             <listitem>
-                <para>Dibujo de imágenes. <footnote>
+                <para>
+                    Dibujo de imágenes.
+                    <footnote>
                         <para>Están soportados los formatos de imagen JPG, PNG [hasta 8bit por
                             channel+Alpha] y TIFF.</para>
                     </footnote>
-               </para>
+                </para>
             </listitem>
             <listitem>
-                <para>Actualización incremental de archivos <acronym>PDF</acronym>.</para>
+                <para>
+                    Actualización incremental de archivos
+                    <acronym>PDF</acronym>
+                    .
+                </para>
             </listitem>
         </itemizedlist>
-   </para>
+    </para>
 </sect1>

+ 85 - 34
documentation/manual/es/module_specs/Zend_Pdf-Pages.xml

@@ -1,38 +1,72 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17227 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17227 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.pdf.pages">
     <title>Trabajando con Páginas</title>
     <sect2 id="zend.pdf.pages.creation">
         <title>Creación de Páginas</title>
-        <para>Las páginas en un documento <acronym>PDF</acronym> están representadas como
-            instancias <classname>Zend_Pdf_Page</classname> en
-                <classname>Zend_Pdf</classname>.</para>
+        <para>
+            Las páginas en un documento
+            <acronym>PDF</acronym>
+            están representadas como
+            instancias
+            <classname>Zend_Pdf_Page</classname>
+            en
+            <classname>Zend_Pdf</classname>
+            .
+        </para>
 
-        <para>Las páginas <acronym>PDF</acronym> o bien son cargadas desde una <acronym>PDF</acronym> ya existente o
-            creadas usando la <acronym>API</acronym>
-            <classname>Zend_Pdf</classname>.</para>
+        <para>
+            Las páginas
+            <acronym>PDF</acronym>
+            o bien son cargadas desde una
+            <acronym>PDF</acronym>
+            ya existente o
+            creadas usando la
+            <acronym>API</acronym>
+            <classname>Zend_Pdf</classname>
+            .
+        </para>
 
-        <para>Se pueden crear nuevas páginas instanciando directamente al
-            objeto <classname>Zend_Pdf_Page</classname> o llamando al método
-                <methodname>Zend_Pdf::newPage()</methodname>, que devuelve un
-            objeto <classname>Zend_Pdf_Page</classname>.
-                <methodname>Zend_Pdf::newPage()</methodname> crea una página que
+        <para>
+            Se pueden crear nuevas páginas instanciando directamente al
+            objeto
+            <classname>Zend_Pdf_Page</classname>
+            o llamando al método
+            <methodname>Zend_Pdf::newPage()</methodname>
+            , que devuelve un
+            objeto
+            <classname>Zend_Pdf_Page</classname>
+            .
+            <methodname>Zend_Pdf::newPage()</methodname>
+            crea una página que
             ya está agregada a un documento. Las páginas no agregadas no pueden
-            ser utilizadas con múltiples documentos <acronym>PDF</acronym>, pero son algo más
-            eficientes. <footnote>
+            ser utilizadas con múltiples documentos
+            <acronym>PDF</acronym>
+            , pero son algo más
+            eficientes.
+            <footnote>
                 <para>Es una limitación de la versión actual de Zend Framework. Será
-                    eliminada en futuras versiones. Pero las páginas no
-                    agregadas siempre dan mejor resultado (más óptimo) para
+                    eliminada en
+                    futuras versiones. Pero las páginas no
+                    agregadas siempre dan mejor resultado (más
+                    óptimo) para
                     compartir páginas entre los documentos.</para>
             </footnote>
-       </para>
+        </para>
 
-        <para>El método <methodname>Zend_Pdf::newPage()</methodname> y el
-            constructor <classname>Zend_Pdf_Page</classname> toman los mismos
+        <para>
+            El método
+            <methodname>Zend_Pdf::newPage()</methodname>
+            y el
+            constructor
+            <classname>Zend_Pdf_Page</classname>
+            toman los mismos
             parámetros que especifican el tamaño de la página. Pueden tomar el
             tamaño de la página ($x, $y) en puntos (1/72 pulgadas) o una
-            constante predefinida representando un tipo de página: <itemizedlist>
+            constante predefinida
+            representando un tipo de página:
+            <itemizedlist>
                 <listitem>
                     <para>Zend_Pdf_Page::SIZE_A4</para>
                 </listitem>
@@ -46,14 +80,22 @@
                     <para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para>
                 </listitem>
             </itemizedlist>
-       </para>
+        </para>
 
-        <para>Las páginas del documento se almacenados en el atributo público
-                <varname>$pages</varname> de la clase
-                <classname>Zend_Pdf</classname>. El atributo posee un array de
-            objetos <classname>Zend_Pdf_Page</classname> y define completamente
+        <para>
+            Las páginas del documento se almacenados en el atributo público
+            <varname>$pages</varname>
+            de la clase
+            <classname>Zend_Pdf</classname>
+            . El atributo posee un array de
+            objetos
+            <classname>Zend_Pdf_Page</classname>
+            y define completamente
             las instancias y el orden de las páginas. Este array puede
-            manipularse como cualquie otro array <acronym>PHP</acronym>:</para>
+            manipularse como cualquie otro array
+            <acronym>PHP</acronym>
+            :
+        </para>
 
         <example id="zend.pdf.pages.example-1">
             <title>Administración de Páginas de un Documento PDF.</title>
@@ -77,9 +119,14 @@ unset($pdf->pages[$id]);
 
     <sect2 id="zend.pdf.pages.cloning">
         <title>Clonado de Páfinas.</title>
-        <para>La página <acronym>PDF</acronym> existente puede ser clonada creando un nuevo objeto
-                <classname>Zend_Pdf_Page</classname> con una página existente
-            como parámetro:</para>
+        <para>
+            La página
+            <acronym>PDF</acronym>
+            existente puede ser clonada creando un nuevo objeto
+            <classname>Zend_Pdf_Page</classname>
+            con una página existente
+            como parámetro:
+        </para>
 
         <example id="zend.pdf.pages.example-2">
             <title>Clonando una Página Existente.</title>
@@ -109,10 +156,14 @@ unset($pdf->pages[$templatePageIndex]);
             plantilla.</para>
 
         <caution>
-            <para>Importante! La página clonada comparte algunos recursos de
-                <acronym>PDF</acronym> con una página plantilla, la que puede ser utilizada sólo en
-                el mismo documento como una página plantilla. El documento
-                modificado pueden guardarse como uno nuevo.</para>
+            <para>
+                Importante! La página clonada comparte algunos recursos de
+                <acronym>PDF</acronym>
+                con una página plantilla, la que puede ser utilizada sólo en
+                el mismo documento como
+                una página plantilla. El documento
+                modificado pueden guardarse como uno nuevo.
+            </para>
         </caution>
     </sect2>
 </sect1>

+ 173 - 70
documentation/manual/es/module_specs/Zend_Pdf-Properties.xml

@@ -1,15 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17227 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17227 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.pdf.info">
     <!-- @todo review and revise upon completion of refactoring -->
     <title>Información del Documento y Metadatos.</title>
-    <para>Un documento <acronym>PDF</acronym> puede incluir información general como el título del documento, autor,
-        la creación y modificación de fechas.</para>
-    <para>Históricamente, esta información se almacena usando una estructura especial de
-        Información. Esta estructura está disponible para lectura y la escritura como una array
-        asociativo utilizando propiedades públicas <methodname>properties</methodname> de objetos
-            <classname>Zend_Pdf</classname>: <programlisting language="php"><![CDATA[
+    <para>
+        Un documento
+        <acronym>PDF</acronym>
+        puede incluir información general como el título del documento, autor,
+        la creación y
+        modificación de fechas.
+    </para>
+    <para>
+        Históricamente, esta información se almacena usando una estructura especial de
+        Información.
+        Esta estructura está disponible para lectura y la escritura como una array
+        asociativo
+        utilizando propiedades públicas
+        <methodname>properties</methodname>
+        de objetos
+        <classname>Zend_Pdf</classname>
+        :
+        <programlisting language="php"><![CDATA[
 $pdf = Zend_Pdf::load($pdfPath);
 
 echo $pdf->properties['Title'] . "\n";
@@ -18,137 +30,228 @@ echo $pdf->properties['Author'] . "\n";
 $pdf->properties['Title'] = 'New Title.';
 $pdf->save($pdfPath);
 ]]></programlisting>
-   </para>
-    <para>Las siguientes claves están definidas por v1.4 <acronym>PDF</acronym> (Acrobat 5) estándar: <itemizedlist>
+    </para>
+    <para>
+        Las siguientes claves están definidas por v1.4
+        <acronym>PDF</acronym>
+        (Acrobat 5) estándar:
+        <itemizedlist>
             <listitem>
                 <para>
-                    <emphasis>Title</emphasis> - string, opcional, el título del documento.</para>
+                    <emphasis>Title</emphasis>
+                    - string, opcional, el título del documento.
+                </para>
             </listitem>
             <listitem>
                 <para>
-                    <emphasis>Author</emphasis> - string, opcional, el nombre de la persona que creó
-                    el documento.</para>
+                    <emphasis>Author</emphasis>
+                    - string, opcional, el nombre de la persona que creó
+                    el documento.
+                </para>
             </listitem>
             <listitem>
                 <para>
-                    <emphasis>Subject</emphasis> - string, opcional, el tema del documento.</para>
+                    <emphasis>Subject</emphasis>
+                    - string, opcional, el tema del documento.
+                </para>
             </listitem>
             <listitem>
                 <para>
-                    <emphasis>Keywords</emphasis> - string, opcional, las palabras clave asociadas
-                    con el documento.</para>
+                    <emphasis>Keywords</emphasis>
+                    - string, opcional, las palabras clave asociadas
+                    con el documento.
+                </para>
             </listitem>
             <listitem>
                 <para>
-                    <emphasis>Creator</emphasis> - string, opcional, si el documento se convirtió
-                    desde otro formato a <acronym>PDF</acronym>, el nombre de la aplicación (por ejemplo, Adobe
-                    FrameMaker ®) que creó el documento original a partir del cual se convirtió.
-               </para>
+                    <emphasis>Creator</emphasis>
+                    - string, opcional, si el documento se convirtió
+                    desde otro formato a
+                    <acronym>PDF</acronym>
+                    , el nombre de la aplicación (por ejemplo, Adobe
+                    FrameMaker ®) que creó el
+                    documento original a partir del cual se convirtió.
+                </para>
             </listitem>
             <listitem>
                 <para>
-                    <emphasis>Producer</emphasis> - string, opcional, si el documento se convirtió
-                    desde otro formato a <acronym>PDF</acronym>, el nombre de la aplicación (por ejemplo, Acrobat
-                    Distiller), que lo convirtió a <acronym>PDF</acronym>.</para>
+                    <emphasis>Producer</emphasis>
+                    - string, opcional, si el documento se convirtió
+                    desde otro formato a
+                    <acronym>PDF</acronym>
+                    , el nombre de la aplicación (por ejemplo, Acrobat
+                    Distiller), que lo convirtió a
+                    <acronym>PDF</acronym>
+                    .
+                </para>
             </listitem>
             <listitem>
                 <para>
-                    <emphasis>CreationDate</emphasis> - string, opcional, la fecha y la hora en que
-                    el documento fue creado, en la forma siguiente: "D:YYYYMMDDHHmmSSOHH'mm'", en la
-                    que: <itemizedlist>
+                    <emphasis>CreationDate</emphasis>
+                    - string, opcional, la fecha y la hora en que
+                    el documento fue creado, en la
+                    forma siguiente: "D:YYYYMMDDHHmmSSOHH'mm'", en la
+                    que:
+                    <itemizedlist>
                         <listitem>
                             <para>
-                                <emphasis>YYYY</emphasis> es el año.</para>
+                                <emphasis>YYYY</emphasis>
+                                es el año.
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>MM</emphasis> es el mes.</para>
+                                <emphasis>MM</emphasis>
+                                es el mes.
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>DD</emphasis> es el día (01–31).</para>
+                                <emphasis>DD</emphasis>
+                                es el día (01–31).
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>HH</emphasis> es la hora (00–23).</para>
+                                <emphasis>HH</emphasis>
+                                es la hora (00–23).
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>mm</emphasis> es el minuto (00–59).</para>
+                                <emphasis>mm</emphasis>
+                                es el minuto (00–59).
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>SS</emphasis> es el segundo (00–59).</para>
+                                <emphasis>SS</emphasis>
+                                es el segundo (00–59).
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>O</emphasis> es la relación de la hora local a la hora
-                                universal (UT), identificado por uno de los caracteres +, -, o Z
-                                (véase más adelante).</para>
+                                <emphasis>O</emphasis>
+                                es la relación de la hora local a la hora
+                                universal (UT),
+                                identificado por uno de los caracteres +, -, o Z
+                                (véase más
+                                adelante).
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>HH</emphasis> seguido de ' es el valor absoluto de la
-                                posición de la UT en horas (00-23).</para>
+                                <emphasis>HH</emphasis>
+                                seguido de ' es el valor absoluto de la
+                                posición de la UT en horas
+                                (00-23).
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>mm</emphasis> seguido de ' es el valor absoluto de la
-                                posición de la UT en minutos (00-59).</para>
+                                <emphasis>mm</emphasis>
+                                seguido de ' es el valor absoluto de la
+                                posición de la UT en minutos
+                                (00-59).
+                            </para>
                         </listitem>
-                    </itemizedlist> El carácter apóstrofe (') después de HH mm es parte de la
-                    sintaxis. Todos los campos después del año son opcionales. (El prefijo D:,
-                    aunque también opcional, se recomienda fuertemente.) Los valores por defecto
-                    para MM y DD son 01, y todos los demás valores numéricos de los campos son cero
-                    por defecto. Un signo más (+) como el valor del campo O significa que la hora
-                    local es más tarde que la UT, un signo menos (-) que la hora local es anterior a
-                    la UT, y la letra Z que la hora local es igual a la UT. Si no se especifica la
-                    información UT, la relación del tiempo especificado para UT se considera
-                    desconocida. Ya sea que la zona horaria se conozca o no, el resto de la fecha
-                    debe estar especificada en la hora local.</para>
+                    </itemizedlist>
+                    El carácter apóstrofe (') después de HH mm es parte de la
+                    sintaxis. Todos los
+                    campos después del año son opcionales. (El prefijo D:,
+                    aunque también opcional,
+                    se recomienda fuertemente.) Los valores por defecto
+                    para MM y DD son 01, y todos
+                    los demás valores numéricos de los campos son cero
+                    por defecto. Un signo más (+)
+                    como el valor del campo O significa que la hora
+                    local es más tarde que la UT, un
+                    signo menos (-) que la hora local es anterior a
+                    la UT, y la letra Z que la hora
+                    local es igual a la UT. Si no se especifica la
+                    información UT, la relación del
+                    tiempo especificado para UT se considera
+                    desconocida. Ya sea que la zona horaria
+                    se conozca o no, el resto de la fecha
+                    debe estar especificada en la hora local.
+                </para>
                 <para>Por ejemplo, el 23 de diciembre de 1998, a las 7:52 PM, hora estándar del
                     Pacífico de EE.UU., está representado por el string "D:199812231952-08'00'".
                </para>
             </listitem>
             <listitem>
                 <para>
-                    <emphasis>ModDate</emphasis> - string, opcional, la fecha y la hora en que el
-                    documento fue modificado mas recientemente, de la misma forma que
-                        <emphasis>CreationDate</emphasis>.</para>
+                    <emphasis>ModDate</emphasis>
+                    - string, opcional, la fecha y la hora en que el
+                    documento fue modificado mas
+                    recientemente, de la misma forma que
+                    <emphasis>CreationDate</emphasis>
+                    .
+                </para>
             </listitem>
             <listitem>
                 <para>
-                    <emphasis>Trapped</emphasis> - booleano, opcional, indica si el documento ha
-                    sido modificado para incluir la captura de información. <itemizedlist>
+                    <emphasis>Trapped</emphasis>
+                    - booleano, opcional, indica si el documento ha
+                    sido modificado para incluir la
+                    captura de información.
+                    <itemizedlist>
                         <listitem>
                             <para>
-                                <emphasis>true</emphasis> - El documento ha sido capturado; no se
-                                necesitan más capturas.</para>
+                                <emphasis>true</emphasis>
+                                - El documento ha sido capturado; no se
+                                necesitan más capturas.
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>false</emphasis> - El documento aún no ha sido capturado;
-                                cualquier captura todavía debe ser hecha.</para>
+                                <emphasis>false</emphasis>
+                                - El documento aún no ha sido capturado;
+                                cualquier captura todavía
+                                debe ser hecha.
+                            </para>
                         </listitem>
                         <listitem>
                             <para>
-                                <emphasis>null</emphasis> - O bien se desconoce si el documento ha
-                                sido capturado o que lo ha sido en parte pero no completamente
-                                capturado, y alguna captura adicional puede ser necesaria.</para>
+                                <emphasis>null</emphasis>
+                                - O bien se desconoce si el documento ha
+                                sido capturado o que lo ha
+                                sido en parte pero no completamente
+                                capturado, y alguna captura
+                                adicional puede ser necesaria.
+                            </para>
                         </listitem>
                     </itemizedlist>
-               </para>
+                </para>
             </listitem>
         </itemizedlist>
-   </para>
+    </para>
 
-    <para>Desde <acronym>PDF</acronym> v 1.6 los metadatos se pueden almacenar en el documento <acronym>XML</acronym>
-        especial adjunto al <acronym>PDF</acronym> (XMP - <ulink url="http://www.adobe.com/products/xmp/">Extensible
-            Metadata Platform</ulink>).</para>
+    <para>
+        Desde
+        <acronym>PDF</acronym>
+        v 1.6 los metadatos se pueden almacenar en el documento
+        <acronym>XML</acronym>
+        especial adjunto al
+        <acronym>PDF</acronym>
+        (XMP -
+        <ulink url="http://www.adobe.com/products/xmp/">Extensible
+            Metadata Platform</ulink>
+        ).
+    </para>
 
-    <para>Este documento <acronym>XML</acronym> se pueden recuperar y adjuntar al <acronym>PDF</acronym> con los
-        métodos <methodname>Zend_Pdf::getMetadata()</methodname> y
-            <methodname>Zend_Pdf::setMetadata($metadata)</methodname>: <programlisting language="php"><![CDATA[
+    <para>
+        Este documento
+        <acronym>XML</acronym>
+        se pueden recuperar y adjuntar al
+        <acronym>PDF</acronym>
+        con los
+        métodos
+        <methodname>Zend_Pdf::getMetadata()</methodname>
+        y
+        <methodname>Zend_Pdf::setMetadata($metadata)</methodname>
+        :
+        <programlisting language="php"><![CDATA[
 $pdf = Zend_Pdf::load($pdfPath);
 $metadata = $pdf->getMetadata();
 $metadataDOM = new DOMDocument();
@@ -168,7 +271,7 @@ $titleNode->nodeValue = 'New title';
 $pdf->setMetadata($metadataDOM->saveXML());
 $pdf->save($pdfPath);
 ]]></programlisting>
-   </para>
+    </para>
 
     <para>Las propiedades comunes del documento se duplican en la estructura de Info y el documento
         Metadata (si se presentan). Ahora es responsabilidad del usuario la aplicación para

+ 26 - 12
documentation/manual/es/module_specs/Zend_Pdf-Save.xml

@@ -1,25 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17227 -->
-<!-- Reviewed: no -->
+    <!-- EN-Revision: 17227 -->
+    <!-- Reviewed: no -->
 <sect1 id="zend.pdf.save">
     <title>Guardar Cambios a Documentos PDF</title>
-    <para>Hay dos métodos que guardan los cambios a los documentos
-            <acronym>PDF</acronym>: los métodos son
-            <methodname>Zend_Pdf::save()</methodname> y
-            <methodname>Zend_Pdf::render()</methodname>.</para>
+    <para>
+        Hay dos métodos que guardan los cambios a los documentos
+        <acronym>PDF</acronym>
+        : los métodos son
+        <methodname>Zend_Pdf::save()</methodname>
+        y
+        <methodname>Zend_Pdf::render()</methodname>
+        .
+    </para>
 
     <para>
         <classname>Zend_Pdf::save($filename, $updateOnly = false)</classname>
-        guarda el documento <acronym>PDF</acronym> en un archivo. Si $updateOnly
+        guarda el documento
+        <acronym>PDF</acronym>
+        en un archivo. Si $updateOnly
         es verdadero, sólo entonces el nuevo segmento del archivo
-            <acronym>PDF</acronym> se agrega al archivo. De lo contrario, el
-        archivo es sobreescrito.</para>
+        <acronym>PDF</acronym>
+        se agrega al archivo. De lo contrario, el
+        archivo es sobreescrito.
+    </para>
 
     <para>
-        <classname>Zend_Pdf::render($newSegmentOnly = false)</classname> regresa
-        el documento <acronym>PDF</acronym> como un string. Si $newSegmentOnly
+        <classname>Zend_Pdf::render($newSegmentOnly = false)</classname>
+        regresa
+        el documento
+        <acronym>PDF</acronym>
+        como un string. Si $newSegmentOnly
         es verdadero, entonces sólo el nuevo segmento del archivo
-            <acronym>PDF</acronym> es devuelto.</para>
+        <acronym>PDF</acronym>
+        es devuelto.
+    </para>
 
     <example id="zend.pdf.save.example-1">
         <title>Guardando Documentos PDF</title>

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor