ソースを参照

UPDATE FILES [DOC-ES]

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@19597 44c647ce-9c0f-0410-b52a-842ac1e357ba
benjamin-gonzales 16 年 前
コミット
47398ff297
31 ファイル変更1445 行追加1425 行削除
  1. 1 1
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-Session.xml
  2. 2 1
      documentation/manual/es/module_specs/Zend_Application-AvailableResources.xml
  3. 53 16
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml
  4. 16 19
      documentation/manual/es/module_specs/Zend_Auth_Adapter_Http.xml
  5. 2 2
      documentation/manual/es/module_specs/Zend_Config_Ini.xml
  6. 1 1
      documentation/manual/es/module_specs/Zend_Controller-ActionHelpers-AutoComplete.xml
  7. 144 184
      documentation/manual/es/module_specs/Zend_Controller-Exceptions.xml
  8. 1 1
      documentation/manual/es/module_specs/Zend_Controller-Migration.xml
  9. 252 236
      documentation/manual/es/module_specs/Zend_Controller-Request.xml
  10. 95 68
      documentation/manual/es/module_specs/Zend_Controller-Router-Route-Chain.xml
  11. 29 37
      documentation/manual/es/module_specs/Zend_Controller-Router-Route-Hostname.xml
  12. 92 126
      documentation/manual/es/module_specs/Zend_Controller-Router-Route-Regex.xml
  13. 35 41
      documentation/manual/es/module_specs/Zend_Controller-Router-Route-Static.xml
  14. 136 187
      documentation/manual/es/module_specs/Zend_Controller-Router-Route.xml
  15. 50 19
      documentation/manual/es/module_specs/Zend_Controller-Router.xml
  16. 110 124
      documentation/manual/es/module_specs/Zend_Date-Introduction.xml
  17. 6 6
      documentation/manual/es/module_specs/Zend_Db_Adapter.xml
  18. 5 4
      documentation/manual/es/module_specs/Zend_Db_Profiler-Firebug.xml
  19. 178 179
      documentation/manual/es/module_specs/Zend_Db_Profiler.xml
  20. 193 129
      documentation/manual/es/module_specs/Zend_Db_Select.xml
  21. 9 9
      documentation/manual/es/module_specs/Zend_Db_Statement.xml
  22. 6 6
      documentation/manual/es/module_specs/Zend_Db_Table-Relationships.xml
  23. 1 1
      documentation/manual/es/module_specs/Zend_Db_Table_Row.xml
  24. 4 4
      documentation/manual/es/module_specs/Zend_Form-QuickStart.xml
  25. 1 1
      documentation/manual/es/module_specs/Zend_Json-Introduction.xml
  26. 1 1
      documentation/manual/es/module_specs/Zend_Pdf-Create.xml
  27. 4 4
      documentation/manual/es/module_specs/Zend_Pdf-Introduction.xml
  28. 5 5
      documentation/manual/es/module_specs/Zend_Pdf-Pages.xml
  29. 7 7
      documentation/manual/es/module_specs/Zend_Pdf-Properties.xml
  30. 5 5
      documentation/manual/es/module_specs/Zend_Pdf-Save.xml
  31. 1 1
      documentation/manual/es/module_specs/Zend_Validate-WritingValidators.xml

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

@@ -47,7 +47,7 @@
         <title>Configuración de recursos de la Sesión Ejemplo</title>
 
         <para>
-            A continuación el snippet INI nos muestra cómo configurar el recurso
+            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>.

+ 2 - 1
documentation/manual/es/module_specs/Zend_Application-AvailableResources.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 18622 -->
+<!-- EN-Revision: 19555 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.application.available-resources" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Plugins de Recursos Disponibles</title>
@@ -10,6 +10,7 @@
     <xi:include href="Zend_Application-AvailableResources-Db.xml"/>
     <xi:include href="Zend_Application-AvailableResources-Frontcontroller.xml"/>
     <xi:include href="Zend_Application-AvailableResources-Layout.xml"/>
+    <xi:include href="Zend_Application-AvailableResources-Log.xml" />
     <xi:include href="Zend_Application-AvailableResources-Modules.xml"/>
     <xi:include href="Zend_Application-AvailableResources-Navigation.xml"/>
     <xi:include href="Zend_Application-AvailableResources-Router.xml"/>

+ 53 - 16
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml

@@ -1,24 +1,61 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15718 -->
+<!-- EN-Revision: 19571 -->
 <!-- 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>.
+        <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>
 
-        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, o simplemente utilizar esta clase y proporcionar una
-        lista de los plugins de recursos a utilizar.
-    </para>
+    <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>
+            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>
+            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> example:
+        </para>
+        
+        <programlisting language="ini"><![CDATA[
+appnamespace = "Application"
+]]></programlisting>
+        
+        <para>
+            Or in <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
+            "Application".
+        </para>
+        
+        <para>
+            Alternately, you can simply define the <varname>$_appNamespace</varname> property of your
+            bootstrap class with the appropriate value:
+        </para>
+        
+        <programlisting language="php"><![CDATA[
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
+{
+    protected $_appNamespace = 'Application';
+}
+]]></programlisting>
+    </sect3>
 </sect2>

+ 16 - 19
documentation/manual/es/module_specs/Zend_Auth_Adapter_Http.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 17597 -->
+<!-- EN-Revision: 19483 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.auth.adapter.http">
 
@@ -48,7 +48,7 @@
 
 
         <para> Hay algunas características notables del
-            <acronym>RFC-2617</acronym> no implementadas todavía: </para>
+                <acronym>RFC-2617</acronym> no implementadas todavía: </para>
         <itemizedlist>
             <listitem>
                 <para> Seguimiento "nonce", que permitiría un gran apoyo, y un
@@ -132,12 +132,13 @@
                             </emphasis>
                         </entry>
                         <entry>Si, cuando
-                                <methodname>'accept_schemes'</methodname>
+                                <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>
+                        <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>
                     </row>
                     <row>
                         <entry>
@@ -146,7 +147,7 @@
                             </emphasis>
                         </entry>
                         <entry>Si, cuando
-                                <methodname>'accept_schemes'</methodname>
+                                <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>
@@ -207,13 +208,11 @@
                     <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>
-                <programlisting><![CDATA[
+                htpasswd de Apache: </para>
+            <programlisting><![CDATA[
 <username>:<realm>:<credentials>\n
 ]]></programlisting>
-                <para>
-                Cada linea consta de tres campos -username, realm, y
+            <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
@@ -222,7 +221,7 @@
                 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[
@@ -234,11 +233,9 @@ $resolver = new Zend_Auth_Adapter_Http_Resolver_File($path);
 $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
-            excepción.
-            </para>
+]]></programlisting>
+            <para> Si la ruta está vacía o no se puede leer, se lanza una
+                excepción. </para>
         </sect3>
 
     </sect2>

+ 2 - 2
documentation/manual/es/module_specs/Zend_Config_Ini.xml

@@ -6,9 +6,9 @@
     <para>
         <classname>Zend_Config_Ini</classname>
         permite a los desarrolladores almacenar datos de configuración
-        en un formato de datos INI 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 INI se especializa en proveer tanto la
+        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

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

@@ -115,7 +115,7 @@ class FooController extends Zend_Controller_Action
     </itemizedlist>
 
     <para>
-        Actualmente, <methodname>AutoComplete</methodname> soporta las bibliotecas AJAX de
+        Actualmente, <methodname>AutoComplete</methodname> soporta las bibliotecas  <acronym>AJAX</acronym> de
         Dojo y Scriptaculous.
     </para>
 

+ 144 - 184
documentation/manual/es/module_specs/Zend_Controller-Exceptions.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- EN-Revision: 17593 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.controller.exceptions">
     <title>Excepciones MVC</title>
@@ -7,76 +7,71 @@
     <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 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 otras cosas más.
-            Para ayudar a proteger su sitio, por defecto
-            <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> 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
+            otras cosas más. Para ayudar a proteger su sitio, por defecto
+                <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>
     </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 perdidas</para></listitem>
+                    <listitem>
+                        <para>Errores debido a controladores o acciones
+                            perdidas</para>
+                    </listitem>
 
-                    <listitem><para>Errores ocurriendo dentro de controladores de acción</para></listitem>
+                    <listitem>
+                        <para>Errores ocurriendo dentro de controladores de
+                            acción</para>
+                    </listitem>
                 </itemizedlist>
 
-                <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>
+                <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>
 
-                <para>
-                    Este manejador abarcará la mayoría de las situaciones
+                <para> Este manejador abarcará la mayoría de las situaciones
                     excepcionales, y maneja airosamente controladores y acciones
-                    perdidos.
-                </para>
+                    perdidos. </para>
             </listitem>
 
             <listitem>
-                <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 respuesta o utilizando
-                    el plugin de manejo de errores, prefiere manejarlos usted mismo.
-                    Como ejemplo:
+                    <methodname>Zend_Controller_Front::throwExceptions()</methodname>
                 </para>
 
-                 <programlisting language="php"><![CDATA[
+                <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>
+
+                <programlisting language="php"><![CDATA[
 $front->throwExceptions(true);
 try {
     $front->dispatch();
@@ -85,47 +80,43 @@ try {
 }
 ]]></programlisting>
 
-                <para>
-                    Este método es probablemente la forma más fácil de añadir
+                <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>
+                    gama de posibles excepciones a su aplicación de front
+                    controller. </para>
             </listitem>
 
             <listitem>
-                <para><methodname>Zend_Controller_Response_Abstract::renderExceptions()</methodname></para>
-
                 <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.
+                    <methodname>Zend_Controller_Response_Abstract::renderExceptions()</methodname>
                 </para>
+
+                <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>
             </listitem>
 
             <listitem>
                 <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>
-                    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 las excepciones
-                    a través del método <methodname>getException()</methodname>.
-                    Como ejemplo:
-                </para>
-
-                 <programlisting language="php"><![CDATA[
+                    <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>
+                    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
+                    las excepciones a través del método
+                        <methodname>getException()</methodname>. Como ejemplo: </para>
+
+                <programlisting language="php"><![CDATA[
 $front->returnResponse(true);
 $response = $front->dispatch();
 if ($response->isException()) {
@@ -137,14 +128,12 @@ if ($response->isException()) {
 }
 ]]></programlisting>
 
-                <para>
-                    La principal ventaja que este método ofrece por sobre
-                    <classname>Zend_Controller_Front::throwExceptions()</classname>
+                <para> La principal ventaja que este método ofrece por sobre
+                        <classname>Zend_Controller_Front::throwExceptions()</classname>
                     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>
+                    plugin de manejo de errores. </para>
             </listitem>
         </itemizedlist>
     </sect2>
@@ -152,14 +141,12 @@ 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, 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>
+        <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>
 
         <para>Como algunos ejemplos:</para>
 
@@ -168,22 +155,18 @@ if ($response->isException()) {
                 <para>
                     <classname>Zend_Controller_Dispatcher::dispatch()</classname>
                     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>
+                                <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[
+                        <programlisting language="php"><![CDATA[
 $front->setParam('useDefaultControllerAlways', true);
 
 // o
@@ -191,29 +174,26 @@ $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 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 búsqueda.
-                        </para>
+                        <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
+                            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
-                                excepción, y luego redireccionar a una página
-                                genérica de error o a la página de inicio.
-                        </para>
+                            excepción, y luego redireccionar a una página
+                            genérica de error o a la página de inicio. </para>
                     </listitem>
                 </itemizedlist>
             </listitem>
@@ -222,22 +202,20 @@ $dispatcher->setParam('useDefaultControllerAlways', true);
                 <para>
                     <classname>Zend_Controller_Action::__call()</classname>
                     arrojará una
-                    <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>
+                        <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>
 
                 <itemizedlist>
                     <listitem>
-                        <para>
-                            Subclasear <classname>Zend_Controller_Action</classname> y
+                        <para> Subclasear
+                                <classname>Zend_Controller_Action</classname> y
                             anular el método <methodname>__call()</methodname>.
-                            Como ejemplo:
-                        </para>
+                            Como ejemplo: </para>
 
-                         <programlisting language="php"><![CDATA[
+                        <programlisting language="php"><![CDATA[
 class My_Controller_Action extends Zend_Controller_Action
 {
     public function __call($method, $args)
@@ -252,22 +230,19 @@ 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
-                            acción predeterminada en el controlador.
-                        </para>
+                        <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>
-                            y anula el método <methodname>getAction()</methodname>
-                            para verificar si la acción existe.
-                            Como ejemplo:
-                        </para>
+                        <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>
 
-                         <programlisting language="php"><![CDATA[
+                        <programlisting language="php"><![CDATA[
 class My_Controller_Dispatcher extends Zend_Controller_Dispatcher
 {
     public function getAction($request)
@@ -292,57 +267,47 @@ class My_Controller_Dispatcher extends Zend_Controller_Dispatcher
 }
 ]]></programlisting>
 
-                        <para>
-                            El código anterior comprueba para ver que las
+                        <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>
+                            acción por defecto. </para>
 
-                        <para>
-                            Este método es agradable porque puede alterar
+                        <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 pueden despacharse
-                            correctamente, lo que no es muy bueno para la
-                            optimización en un motor de búsqueda.
+                            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>
                     </listitem>
 
                     <listitem>
-                        <para>
-                            Use
-                            <classname>Zend_Controller_Action::preDispatch()</classname>
+                        <para> Use
+                                <classname>Zend_Controller_Action::preDispatch()</classname>
                             o
-                            <classname>Zend_Controller_Plugin_Abstract::preDispatch()</classname>
-                            para identificar acciones inválidas.
-                        </para>
+                                <classname>Zend_Controller_Plugin_Abstract::preDispatch()</classname>
+                            para identificar acciones inválidas. </para>
 
-                        <para>
-                            Subclaseando <classname>Zend_Controller_Action</classname>
-                            y modificando <methodname>preDispatch()</methodname>,
+                        <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
                             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 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 a su manejo de
-                            clases diferentes.
-                        </para>
+                        <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
+                            a su manejo de clases diferentes. </para>
 
-                        <para>
-                            Como ejemplo:
-                        </para>
+                        <para> Como ejemplo: </para>
 
-                         <programlisting language="php"><![CDATA[
+                        <programlisting language="php"><![CDATA[
 class My_Controller_PreDispatchPlugin extends Zend_Controller_Plugin_Abstract
 {
     public function preDispatch(Zend_Controller_Request_Abstract $request)
@@ -370,19 +335,14 @@ class My_Controller_PreDispatchPlugin extends Zend_Controller_Plugin_Abstract
 }
 ]]></programlisting>
 
-                        <para>
-                            En este ejemplo, vamos a consultar para ver si la
+                        <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>
+                            Si no, redireccionamos a la acción predeterminada en
+                            el controlador, y salimos inmediatamente de la
+                            ejecución del script. </para>
                     </listitem>
                 </itemizedlist>
             </listitem>
         </itemizedlist>
     </sect2>
 </sect1>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 1 - 1
documentation/manual/es/module_specs/Zend_Controller-Migration.xml

@@ -562,7 +562,7 @@ $ctrl->dispatch();
         <para>        		
 			Alentamos el uso del objeto Response para agregar contenido y
             cabeceras. Esto permitirá una mayor flexibilidad en el formato de salida intercambiando
-            (por instancias, JSON o XML en lugar de XHTML) en sus aplicaciones.
+            (por instancias, <acronym>JSON</acronym> o <acronym>XML</acronym> en lugar de <acronym>XHTML</acronym>) en sus aplicaciones.
             Por defecto, el envío <methodname> distpach() </methodname> enviará la respuesta, enviando ambas
             cabeceras y enviando cuanlquier contenido. También se puede tener el controlador front 
             retorne la respuesta usando <methodname>returnResponse()</methodname>,

+ 252 - 236
documentation/manual/es/module_specs/Zend_Controller-Request.xml

@@ -1,68 +1,67 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- 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, 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 CLI, o PHP-GTK.
-        </para>
+        <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>
 
         <itemizedlist>
-            <listitem><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></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></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></listitem>
+            <listitem>
+                <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>
+            </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>
+            </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>
+            </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 la solicitud, ruta de la 
-            información, parámetros <methodname>$_GET</methodname> y <methodname>$_POST</methodname>,
-            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> 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
+            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>
     </sect2>
 
     <sect2 id="zend.controller.request.http">
@@ -72,125 +71,122 @@
             <title>Solicitud de acceso a datos</title>
 
             <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 setParam/getParam para determinar o recuperar los parámetros del usuario.
-            </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>
 
             <note>
                 <title>Datos Superglobales</title>
-                <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. GET, 2.
-                    POST, 3. COOKIE, 4. SERVER, 5. ENV.
-                </para>
+                <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>
             </note>
 
-            <para>
-                    Las supergloables específicas pueden ser accedidas usando un método público como
-                    una alternativa. Por ejemplo, el valor original de
-                <methodname>$_POST['user']</methodname> puede ser accedido llamando a 
-                <methodname>getPost('user')</methodname> en la solicitud objeto. Esto 
-                incluye <methodname>getQuery()</methodname> para recuperar elementos
-                <methodname>$_GET</methodname>, y <methodname>getHeader()</methodname> para
-                recuperar la solicitud de los encabezadores (headers).
-            </para>
+            <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>
 
             <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, pero dejan
-                        los datos intactos en la solicitud objeto.
+                <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>
 
             <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>. 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> 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>
+                <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>. El router hace uso de esta 
-                funcionalidad para determinar parámetros correspondientes en la solicitud <acronym>URI</acronym> 
-                a la solicitud objeto.
-            </para>
+            <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>
 
             <note>
                 <title>getParam() Recupera mas que Parámetros de Usuario</title>
 
-                <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 <methodname>GET</methodname>, y finalmente parámetros <methodname>POST</methodname>. 
-                    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>
+                <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
+                    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>
             </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, <methodname>$_SERVER['REDIRECT_URL']</methodname>
-                    contains the <acronym>URI</acronym> you need, not
-                    <methodname>$_SERVER['REQUEST_URI']</methodname>. 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 Http class for your request object:
-                </para>
-
-                 <programlisting language="php"><![CDATA[
+                <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 Http 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> class and simply
-                    modifies the autodiscovery of the request URI. It can be
-                    used as a drop-in replacement.
-                </para>
+                <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>
             </note>
         </sect3>
 
@@ -199,45 +195,45 @@ $front->setRequest($request);
 
             <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 <methodname>index.php</methodname> in a
-                webserver subdirectory named
-                <methodname>/projects/myapp/index.php</methodname>, base <acronym>URL</acronym> (rewrite base)
-                should be set to <methodname>/projects/myapp</methodname>. This string will
+                    <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>
+                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
                 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
-                <methodname>'user/:username'</methodname> will match <acronym>URI</acronym>s like
-                <methodname>http://localhost/projects/myapp/user/martel</methodname> and
-                <methodname>http://example.com/user/martel</methodname>.
-            </para>
+                    <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 match a subdirectory name in a filesystem (even on Windows
+                <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>
             </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 easiest
-                method is to set it in <classname>Zend_Controller_Front</classname>,
-                which will proxy it into the request object. Example usage to
-                set a custom base <acronym>URL</acronym>:
-            </para>
-
-             <programlisting language="php"><![CDATA[
+            <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
+                proxy it into the request object. Example usage to set a custom
+                base <acronym>URL</acronym>: </para>
+
+            <programlisting language="php"><![CDATA[
 /**
  * Dispatch Request with custom base URL with Zend_Controller_Front.
  */
@@ -255,71 +251,96 @@ $response   = $controller->dispatch();
             <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 allow you to get
-                boolean responses when asking if a specific type of request has
-                been made:
-            </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>
 
             <itemizedlist>
-                <listitem><para><methodname>isGet()</methodname></para></listitem>
-                <listitem><para><methodname>isPost()</methodname></para></listitem>
-                <listitem><para><methodname>isPut()</methodname></para></listitem>
-                <listitem><para><methodname>isDelete()</methodname></para></listitem>
-                <listitem><para><methodname>isHead()</methodname></para></listitem>
-                <listitem><para><methodname>isOptions()</methodname></para></listitem>
+                <listitem>
+                    <para>
+                        <methodname>isGet()</methodname>
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>isPost()</methodname>
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>isPut()</methodname>
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>isDelete()</methodname>
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>isHead()</methodname>
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <methodname>isOptions()</methodname>
+                    </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 AJAX requests:
-                <methodname>isXmlHttpRequest()</methodname>. This method looks for an
-                <acronym>HTTP</acronym> request header <methodname>X-Requested-With</methodname> with the value
-                'XMLHttpRequest'; if found, it returns true.
-            </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> 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 Prototype)</para></listitem>
-                <listitem><para>Yahoo! UI Library</para></listitem>
-                <listitem><para>jQuery</para></listitem>
-                <listitem><para>MochiKit</para></listitem>
+                <listitem>
+                    <para>Prototype/Scriptaculous (and libraries derived from
+                        Prototype)</para>
+                </listitem>
+                <listitem>
+                    <para>Yahoo! UI Library</para>
+                </listitem>
+                <listitem>
+                    <para>jQuery</para>
+                </listitem>
+                <listitem>
+                    <para>MochiKit</para>
+                </listitem>
             </itemizedlist>
 
-            <para>
-                Most AJAX libraries allow you to send custom HTTP 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 HTTP 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 abstract
-            class <classname>Zend_Controller_Request_Abstract</classname>. At its most
-            basic, it defines the following methods:
-        </para>
+        <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>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 abstract class Zend_Controller_Request_Abstract
 {
     /**
@@ -403,24 +424,19 @@ 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 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 CLI, o un entorno de PHP-GTK.
-        </para>
+        <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>
     </sect2>
 </sect1>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 95 - 68
documentation/manual/es/module_specs/Zend_Controller-Router-Route-Chain.xml

@@ -1,41 +1,38 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- 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 
-        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>
+        <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>
 
     <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 en 
-            la ruta interior, será seleccionado el controlador de la ruta exterior.
-        </para>
+        <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 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 devolverá una nueva 
-        instancia de <classname>Zend_Controller_Router_Route_Chain</classname>, 
-        teniendo entonces a ambas rutas encadenadas juntas:
-    </para>
-
-     <programlisting language="php"><![CDATA[
+    <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
+        devolverá una nueva instancia de
+            <classname>Zend_Controller_Router_Route_Chain</classname>, teniendo
+        entonces a ambas rutas encadenadas juntas: </para>
+
+    <programlisting language="php"><![CDATA[
 // Crear dos rutas
 $hostnameRoute = new Zend_Controller_Router_Route_Hostname(...);
 $pathRoute     = new Zend_Controller_Router_Route(...);
@@ -49,13 +46,11 @@ $chainedRoute->chain($hostnameRoute)
 $chainedRoute = $hostnameRoute->chain($pathRoute);
 ]]></programlisting>
 
-    <para>
-        Cuando las rutas se encadenan juntas, su separador por defecto es una 
-        barra ('/'). Pueden haber casos cuando quiera tener un separador 
-        diferente:
-    </para>
+    <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[
+    <programlisting language="php"><![CDATA[
 // Crear dos rutas
 $firstRoute  = new Zend_Controller_Router_Route('foo');
 $secondRoute = new Zend_Controller_Router_Route('bar');
@@ -68,20 +63,18 @@ echo $chainedRoute->assemble();
 ]]></programlisting>
 
     <sect4 id="zend.controller.router.routes.chain.config">
-        <title>Encadenar Rutas via <classname>Zend_Config</classname></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 <methodname>chains</methodname>. 
-            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>
+        <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
+            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>
 
         <programlisting language="xml"><![CDATA[
 <routes>
@@ -94,11 +87,13 @@ echo $chainedRoute->assemble();
                 <chains>
                     <index type="Zend_Controller_Router_Route_Static">
                         <route></route>
-                        <defaults module="default" controller="index" action="index" />
+                        <defaults module="default" controller="index"
+                                  action="index" />
                     </index>
                     <imprint type="Zend_Controller_Router_Route_Static">
                         <route>imprint</route>
-                        <defaults module="default" controller="index" action="index" />
+                        <defaults module="default" controller="index"
+                                  action="index" />
                     </imprint>
                 </chains>
             </language>
@@ -119,19 +114,18 @@ echo $chainedRoute->assemble();
 </routes>
 ]]></programlisting>
 
-        <para>
-            Esto se traducirá en las tres rutas <methodname>www-language-index</methodname>,
-            <methodname>www-language-imprint</methodname> y
-            <methodname>users-language-profile</methodname> que sólo concordarán basados 
-            en el nombre y la ruta <methodname>misc</methodname>, que se comparará con 
-            cualquier nombre de host.
-        </para>
+        <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>
 
-        <para>
-            La manera alternativa de crear una ruta encadenada es a través del 
-            parámetro <methodname>chain</methodname>, que sólo puede utilizarse 
-            directamente con el tipo cadena-ruta, y también trabaja en el nivel raíz:
-        </para>
+        <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>
 
         <programlisting language="xml"><![CDATA[
 <routes>
@@ -160,10 +154,8 @@ echo $chainedRoute->assemble();
 </routes>
 ]]></programlisting>
 
-        <para>
-            También puede darle el parámetro a <methodname>chain</methodname> 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>
@@ -179,8 +171,43 @@ echo $chainedRoute->assemble();
     </www-imprint>
 </routes>
 ]]></programlisting>
+        
+        <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>
+        
+        <programlisting language="php"><![CDATA[
+$config = new Zend_Config(array(
+    'chainName' => array(
+        'type'   => 'Zend_Controller_Router_Route_Static',
+        'route'  => 'foo',
+        'chains' => array(
+            'subRouteName' => array(
+                'type'     => 'Zend_Controller_Router_Route_Static',
+                'route'    => 'bar',
+                'defaults' => array(
+                    'module'      => 'module',
+                     'controller' => 'controller',
+                     'action'     => 'action'
+                )
+            )
+        )
+    )
+));
+
+// Set separator before adding config
+$router->setChainNameSeparator('_separator_')
+
+// Add config
+$router->addConfig($config);
+
+// The name of our route now is: chainName_separator_subRouteName
+echo $this->_router->assemble(array(), 'chainName_separator_subRouteName');
+
+// The proof: it echoes /foo/bar
+]]></programlisting>
+        
     </sect4>
 </sect3>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 29 - 37
documentation/manual/es/module_specs/Zend_Controller-Router-Route-Hostname.xml

@@ -1,24 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- 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 
-        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>
+        <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>
 
-    <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
-        <methodname>http://martel.users.example.com</methodname> 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[
+    <programlisting language="php"><![CDATA[
 $hostnameRoute = new Zend_Controller_Router_Route_Hostname(
     ':username.users.example.com',
     array(
@@ -32,29 +30,23 @@ $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 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: <methodname>:username</methodname>. 
-        Las partes estáticas son simplemente texto: <methodname>user</methodname>.
-    </para>
+    <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>
 
-    <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 
-        <methodname>$hostnameRoute->chain($pathRoute);</methodname>. Haciendo esto, 
-        <methodname>$hostnameRoute</methodname> no se modifica, pero devuelve una nueva ruta 
-        (<classname>Zend_Controller_Router_Route_Chain</classname>), que luego 
-        puede ser entregada al router.
-    </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
+        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,
+        pero devuelve una nueva ruta
+            (<classname>Zend_Controller_Router_Route_Chain</classname>), que
+        luego puede ser entregada al router. </para>
 </sect3>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 92 - 126
documentation/manual/es/module_specs/Zend_Controller-Router-Route-Regex.xml

@@ -1,25 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- 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 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, sólo que esta vez usaremos la ruta Regex:
-    </para>
-
-     <programlisting language="php"><![CDATA[
+    <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,
+        sólo que esta vez usaremos la ruta Regex: </para>
+
+    <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
     'archive/(\d+)',
     array(
@@ -30,14 +26,12 @@ $route = new Zend_Controller_Router_Route_Regex(
 $router->addRoute('archive', $route);
 ]]></programlisting>
 
-    <para>
-        Cada sub-patrón regex definido será inyectado al objeto solicitud. 
+    <para> Cada sub-patrón regex definido será inyectado al objeto solicitud.
         Con nuestro ejemplo anterior, después de un matching exitoso
-        <methodname>http://domain.com/archive/2006</methodname>, el valor resultante del 
-        array puede verse como:
-    </para>
+        <filename>http://domain.com/archive/2006</filename>, el valor
+        resultante del array puede verse como: </para>
 
-     <programlisting language="php"><![CDATA[
+    <programlisting language="php"><![CDATA[
 $values = array(
     1            => '2006',
     'controller' => 'archive',
@@ -46,39 +40,34 @@ $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> <methodname>http://domain.com/foo/bar/</methodname>, involucraría al 
-            regex de <methodname>foo/bar</methodname>, y no a <methodname>/foo/bar</methodname>.
-        </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 regulares, y debe 
-            coincidir con el string completo.
-        </para>
+        <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 <methodname>#</methodname> 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> 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>
     </note>
 
-    <para>
-        Puede obtener el contenido de los sub-patrones definidos por la forma habitual:
-    </para>
+    <para> Puede obtener el contenido de los sub-patrones definidos por la forma
+        habitual: </para>
 
-     <programlisting language="php"><![CDATA[
+    <programlisting language="php"><![CDATA[
 public function showAction()
 {
     $request = $this->getRequest();
@@ -87,22 +76,19 @@ public function showAction()
 ]]></programlisting>
 
     <note>
-        <para>
-        Tenga en cuenta que la clave es un entero (1) en lugar de un string ('1').
-        </para>
+        <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 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 solo la parte numérica:
-    </para>
-
-     <programlisting language="php"><![CDATA[
+    <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
+        solo la parte numérica: </para>
+
+    <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
     'archive(?:/(\d+))?',
     array(
@@ -114,17 +100,14 @@ $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 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>
-
-     <programlisting language="php"><![CDATA[
+    <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>
+
+    <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
     'archive/(\d+)',
     array(
@@ -138,11 +121,9 @@ $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[
+    <programlisting language="php"><![CDATA[
 $values = array(
     'year'       => '2006',
     'controller' => 'archive',
@@ -150,14 +131,12 @@ $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 
-        variables o índices de sub-patrones:
-    </para>
+    <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[
+    <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
     'archive/(\d+)',
     array( ... ),
@@ -174,18 +153,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[
+    <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
     'archive/(\d+)/page/(\d+)',
     array( ... ),
@@ -193,13 +169,12 @@ $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> <methodname>http://domain.com/archive/2006/page/10</methodname>  
-        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[
+    <programlisting language="php"><![CDATA[
 $values = array(
     'year'       => '2006',
     2            => 10,
@@ -208,15 +183,13 @@ $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 sprintf() 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[
+    <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
     'archive/(\d+)',
     array( ... ),
@@ -225,21 +198,19 @@ $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. Imagínese que tiene un blog y desea crear URLs 
-        como: <methodname>http://domain.com/blog/archive/01-Using_the_Regex_Router.html</methodname>, 
-        y que tiene que descomponer el último elemento del path 
-        <methodname>01-Using_the_Regex_Router.html</methodname>, en un ID de artículo y 
-        en el título/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>
-
-     <programlisting language="php"><![CDATA[
+    <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>,
+        y que tiene que descomponer el último elemento del path
+            <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>
+
+    <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Regex(
     'blog/archive/(\d+)-(.+)\.html',
     array(
@@ -255,11 +226,6 @@ $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>
-<!--
-vim:se ts=4 sw=4 et:
--->

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

@@ -1,18 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- 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 utilizar rutas estáticas:
-    </para>
+    <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[
+    <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route_Static(
     'login',
     array('controller' => 'auth', 'action' => 'login')
@@ -20,51 +18,47 @@ $route = new Zend_Controller_Router_Route_Static(
 $router->addRoute('login', $route);
 ]]></programlisting>
 
-    <para>
-        La ruta anterior se comparará con una <acronym>URL</acronym> de <methodname>http://domain.com/login</methodname>,
-        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>
+        <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 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>
+        <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>
 
-        <para>
-            Como regla general, siempre proporcione cada uno de los siguientes 
-            valores por defecto:
-        </para>
+        <para> Como regla general, siempre proporcione cada uno de los
+            siguientes valores por defecto: </para>
 
         <itemizedlist>
-            <listitem><para>controller</para></listitem>
-            <listitem><para>action</para></listitem>
-            <listitem><para>module (si ya no está por defecto)</para></listitem>
+            <listitem>
+                <para>controller</para>
+            </listitem>
+            <listitem>
+                <para>action</para>
+            </listitem>
+            <listitem>
+                <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 
-            bootstrapping:
-        </para>
+        <para> Opcionalmente, también puede pasar el parámetro
+            "useDefaultControllerAlways" al front controller durante el
+            bootstrapping: </para>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $front->setParam('useDefaultControllerAlways', true);
 ]]></programlisting>
 
-        <para>
-            Sin embargo, esto es considerado un rodeo; siempre es mejor 
+        <para> Sin embargo, esto es considerado un rodeo; siempre es mejor
             definir explícitamente valores correctos o sanos por defecto.
         </para>
     </note>
 </sect3>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 136 - 187
documentation/manual/es/module_specs/Zend_Controller-Router-Route.xml

@@ -1,27 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- 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 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 apuntar nuestro navegador web a 
-        <methodname>http://domain.com/author/martel</methodname> para ver la información 
-        sobre este muchacho "martel". La ruta para esa funcionalidad podría 
-        parecerse a:
-    </para>
-
-     <programlisting language="php"><![CDATA[
+        <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
+        apuntar nuestro navegador web a
+            <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>
+
+    <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
     'author/:username',
     array(
@@ -33,39 +31,34 @@ $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>. 
-        Las definiciones de ruta consisten en partes estáticas y dinámicas 
-        separadas por el caracter barra ('/'). Las partes estáticas son simples 
-        textos: <methodname>author</methodname>. Las partes dinámicas, llamadas variables, 
-        se marcan anteponiendo dos puntos (:) al nombre de la variable  
-        <methodname>:username</methodname>.
-    </para>
+    <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>
 
     <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 implementaciones futuras se 
-            podría alterar este comportamiento, resultando en probables fallos 
-            escondidos en su código.
-        </para>
+        <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>
     </note>
 
-    <para>
-        Este ejemplo de ruta debería ser coincidente cuando apunta su navegador a
-        <methodname>http://domain.com/author/martel</methodname>, en cuyo caso todas sus 
-        variables se inyectan al objeto <classname>Zend_Controller_Request</classname> 
-        y quedando accesibles en <methodname>ProfileController</methodname>. 
-        Las variables devueltas por este ejemplo pueden ser representadas como 
-        el siguiente array de pares clave/valor:
-    </para>
-
-     <programlisting language="php"><![CDATA[
+    <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>
+
+    <programlisting language="php"><![CDATA[
 $values = array(
     'username'   => 'martel',
     'controller' => 'profile',
@@ -73,16 +66,15 @@ $values = array(
 );
 ]]></programlisting>
 
-    <para>
-        Después, <classname>Zend_Controller_Dispatcher_Standard</classname> 
-        debe invocar al método <methodname>userinfoAction()</methodname> de su clase 
-        <methodname>ProfileController</methodname> (en el módulo por defecto) basado en
-        estos valores. Allí se podrán acceder a todas las variables mediante  
-        los métodos <classname>Zend_Controller_Action::_getParam()</classname> 
-        o <classname>Zend_Controller_Request::getParam()</classname>:
-    </para>
-
-     <programlisting language="php"><![CDATA[
+    <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>
+
+    <programlisting language="php"><![CDATA[
 public function userinfoAction()
 {
     $request = $this->getRequest();
@@ -92,16 +84,13 @@ 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>
-
-     <programlisting language="php"><![CDATA[
+    <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(
     ':module/:controller/:action/*',
     array('module' => 'default')
@@ -112,15 +101,13 @@ $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 parámetro es un array con claves representando los nombres de 
-            variables y con valores como los deseados por defecto:
-        </para>
+        <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>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
     'archive/:year',
     array('year' => 2006)
@@ -128,25 +115,22 @@ $route = new Zend_Controller_Router_Route(
 $router->addRoute('archive', $route);
 ]]></programlisting>
 
-        <para>
-            La ruta de arriba comparará <acronym>URL</acronym>s como
-            <methodname>http://domain.com/archive/2005</methodname> y
-            <methodname>http://example.com/archive</methodname>. 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 la vez ambos están definidos en 
-            <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>
-
-         <programlisting language="php"><![CDATA[
+        <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
+            la vez ambos están definidos en
+                <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>
+
+        <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
     'archive/:year',
     array(
@@ -158,25 +142,21 @@ $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 
-            <methodname>ArchiveController</methodname>.
-        </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 podemos  
-            establecer los requisitos para las variables. 
-            Estas son definidas como partes de una expresión regular:
-        </para>
+        <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>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $route = new Zend_Controller_Router_Route(
     'archive/:year',
     array(
@@ -189,107 +169,85 @@ $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. 
-            <methodname>http://domain.com/archive/2345</methodname>. Una <acronym>URL</acronym> como 
-            <methodname>http://example.com/archive/test</methodname> no se comparará y en su 
-            lugar el control se pasará a la próxima ruta en la cadena.
-        </para>
+        <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>
     </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 
-                    <classname>Zend_Translate</classname>.
-                </para>
+                <para> Ponerlo en el registro con la clave
+                    <methodname>Zend_Translate</methodname>. </para>
             </listitem>
             <listitem>
-                <para>
-                    Setearlo mediante el método estático
-                    <classname>Zend_Controller_Router_Route::setDefaultTranslator()</classname>.
+                <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 
-                    <classname>Zend_Controller_Router_Route::setDefaultLocale()</classname>.
+                <para> Setearlo mediante el método estático
+                        <classname>Zend_Controller_Router_Route::setDefaultLocale()</classname>.
                 </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 <methodname>@locale</methodname> 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 
-            <methodname>@</methodname>, 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 <methodname>:@</methodname>.
-            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>
+        <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.
+            Cuando se acepte, el parámetro traducido de la URL volverá al ID del
+            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 usar 
-                un archivo de idioma separado para los mensajes utilizados en 
-                la ruta.
-            </para>
+            <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>
         </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[
+        <programlisting language="php"><![CDATA[
 // Prepare el traductor
 $translator = new Zend_Translate('array', array(), 'en');
 $translator->addTranslation(array('archive' => 'archiv',
@@ -305,11 +263,9 @@ $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[
+        <programlisting language="php"><![CDATA[
 // Crear la ruta
 $route = new Zend_Controller_Router_Route(
     '@archive',
@@ -327,12 +283,10 @@ $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[
+        <programlisting language="php"><![CDATA[
 // Crear la ruta
 $route = new Zend_Controller_Router_Route(
     ':@controller/:@action/*',
@@ -350,11 +304,9 @@ $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[
+        <programlisting language="php"><![CDATA[
 // Crear la ruta
 $route = new Zend_Controller_Router_Route(
     '@archive/:@mode/:value',
@@ -377,6 +329,3 @@ $route->assemble(array('mode' => 'month', 'value' => '5', '@locale' => 'de'));
 ]]></programlisting>
     </sect4>
 </sect3>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 50 - 19
documentation/manual/es/module_specs/Zend_Controller-Router.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- EN-Revision: 18940 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.controller.router"  xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>El Router Standard</title>
@@ -47,7 +47,7 @@ RewriteRule ^.*$ index.php [NC,L]
 ]]></programlisting>
 
         <para>
-            El router rewrite también puede utilizarse con el IIS webserver (versions &lt;= 7.0) si <ulink
+            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:
@@ -60,11 +60,11 @@ RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.
         <note>
             <title>IIS Isapi_Rewrite</title>
             <para>
-                Cuando se usa IIS, <methodname>$_SERVER['REQUEST_URI']</methodname> puede 
+                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 
-                <methodname>$_SERVER['HTTP_X_REWRITE_URL']</methodname> 
+                <varname>$_SERVER['HTTP_X_REWRITE_URL']</varname> 
                 establecido por la extensión Isapi_Rewrite.
             </para>
         </note>
@@ -159,12 +159,43 @@ $router->addRoute('user',
         </para>
 
         <itemizedlist mark="opencircle">
-            <listitem><para><xref linkend="zend.controller.router.routes.standard" /></para></listitem>
-            <listitem><para><xref linkend="zend.controller.router.routes.static" /></para></listitem>
-            <listitem><para><xref linkend="zend.controller.router.routes.regex" /></para></listitem>
-            <listitem><para><xref linkend="zend.controller.router.routes.hostname" /></para></listitem>
-            <listitem><para><xref linkend="zend.controller.router.routes.chain" /></para></listitem>
-            <listitem><para><xref linkend="zend.controller.router.default-routes" /> *</para></listitem>
+            <listitem>
+                <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>
+            </listitem>
+            <listitem>
+                <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>
+            </listitem>
+            <listitem>
+                <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>
+            </listitem>
         </itemizedlist>
 
         <para>
@@ -232,8 +263,8 @@ $router->addRoute('user',
                 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 
-                <classname>Zend_Controller_Request::getParam()</classname> o
-                <classname>Zend_Controller_Action::_getParam()</classname>.
+                <methodname>Zend_Controller_Request::getParam()</methodname> o
+                <methodname>Zend_Controller_Action::_getParam()</methodname>.
             </para>
         </note>
 
@@ -266,9 +297,9 @@ $router->addRoute('user',
             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            
-            <methodname>module/controller/action</methodname>. Por último, también coincidrá  
+            <filename>module/controller/action</filename>. Por último, también coincidrá  
             con cualquier parámetro adicional agregado a la <acronym>URI</acronym> por defecto -
-            <methodname>controller/action/var1/value1/var2/value2</methodname>.
+            <filename>controller/action/var1/value1/var2/value2</filename>.
         </para>
 
         <para>
@@ -346,9 +377,9 @@ $router->removeDefaultRoutes();
 
         <para>
             El router rewrite puede ser utilizado en subdirectorios (por 
-            ejemplo <methodname>http://domain.com/~user/application-root/</methodname>) 
+            ejemplo <filename>http://domain.com/~user/application-root/</filename>) 
             en cuyo caso la <acronym>URL</acronym> base de la aplicación 
-            (<methodname>/~user/application-root</methodname>) debe ser detectada 
+            (<filename>/user/application-root</filename>) debe ser detectada 
             automáticamente por <classname>Zend_Controller_Request_Http</classname> 
             y usada en consecuencia.
         </para>
@@ -406,7 +437,7 @@ $router->setGlobalParam('lang', 'en');
         </para>
 
         <para>
-            Como ejemplo, considere el siguiente archivo INI:
+            Como ejemplo, considere el siguiente archivo  <acronym>INI</acronym>:
         </para>
 
          <programlisting language="php"><![CDATA[
@@ -431,7 +462,7 @@ routes.archive.map.1 = "year"
 ]]></programlisting>
 
         <para>
-            Entonces el archivo INI puede ser leído por un objeto
+            Entonces el archivo <acronym>INI</acronym> puede ser leído por un objeto
             <classname>Zend_Config</classname> como sigue:
         </para>
 
@@ -443,7 +474,7 @@ $router->addConfig($config, 'routes');
 
         <para>
             En el ejemplo de arriba, le decimos el router que utilice la 
-            sección 'routes' del archivo INI para utilizarlo en sus rutas. 
+            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 

+ 110 - 124
documentation/manual/es/module_specs/Zend_Date-Introduction.xml

@@ -1,97 +1,82 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- 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 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
-        online manual (sincronizado frecuentemente con Subversion)
-        </ulink>
-        .
-    </para>
+    <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
+            online manual (sincronizado frecuentemente con Subversion) </ulink>
+        . </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, 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">
+    <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">
             <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>
-        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>
+        <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>
 
     <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 defecto,
-            configurando la variable de entorno TZ, usando el
-            parametro del php.ini
-            <methodname>date.timezone</methodname>
-            , 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 url="http://unicode.org/cldr/data/diff/supplemental/territory_containment_un_m_49.html">
-                Lista de Identificadores de Zonas Horarias CLDR
-            </ulink>
-            .
-            <example id="zend.date.setdefaulttimezone.example-1">
+        <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
+            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
+                url="http://unicode.org/cldr/data/diff/supplemental/territory_containment_un_m_49.html"
+                > Lista de Identificadores de Zonas Horarias <acronym> CLDR
+                </acronym>
+            </ulink> . <example id="zend.date.setdefaulttimezone.example-1">
                 <title>Configurando una Zona Horaria por Defecto</title>
-                 <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
                 // zona horaria para un estadounidense en California
 date_default_timezone_set('America/Los_Angeles');
 // zona horaria para un alemán en Alemania
 date_default_timezone_set('Europe/Berlin');
 ]]></programlisting>
             </example>
-            <emphasis>¡Al crear instancias de Zend_Date, 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 invierno/verano (Daylight Saving Time, DST), eliminando la necesidad
-            de especificarlo explícitamente.
-        </para>
+            
+            <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>
 
-        <para>
-            Tenga en cuenta que las zonas horarias <emphasis>UTC</emphasis> y
-            <emphasis>GMT</emphasis> no incluyen el cambio de hora de invierno/verano (Daylight Saving Time, DST).
-            Esto significa que aunque defina a mano que <classname>Zend_Date</classname> deba trabajar con DST, podría
-            ser anulado por las instancias de <classname>Zend_Date</classname> que han sido fijadas a
-            UTC o GMT.
-        </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">
@@ -99,76 +84,77 @@ date_default_timezone_set('Europe/Berlin');
         <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>
+            <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>
+                    <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>
+                    <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>
             </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 los nombres localizados de meses y días de la semana.
+                <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> 5.2 indice: "El intervalo de valores admitidos de timestamps es
-                    desde el 13 Dec 1901 20:45:54 GMT al 19 Ene 2038 03:14:07 GMT," <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 servidor.
-                    El tamaño de un float es dependiente de la plataforma, aunque un máximo de ~1.8e308 con una precisión
-                    de cerca de 14 dígitos decimales es un valor habitual (formato 64 bit IEEE)." [
-                    <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 ZF I18n
-                    usan la extensión BCMath, si está disponible.
-                </para>
+                <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
+                    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
+                    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
+                    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
+                    de redondeo de números flotantes pueden introducir errores
+                    en los cálculos. Para evitar estos problemas, los
+                    componentes ZF I18n usan la extensión BCMath, si está
+                    disponible. </para>
             </listitem>
             <listitem>
-                <para>
-                    Soporte para especificaciones de fecha ISO_8601
-                </para>
-                <para>
-                    Las especificaciones de fecha ISO_8601 están aceptadas. Incluso las especificaciones de fecha ISO_8601
-                    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 "Y/m/d" o "Y-m-d H:i:s", de acuerdo con los tokens de formato
-                    PHP date(), use el soporte integrado de Zend_Date para fechas formateadas ISO 8601.
-                </para>
+                <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>
             </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 de luz diurna
-                    para trabajar en su proyecto <acronym>PHP</acronym> favorito :)
-                </para>
+                <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>
             </listitem>
         </itemizedlist>
 
     </sect2>
 
 </sect1>
-<!--
-    vim:se ts=4 sw=4 et:
--->

+ 6 - 6
documentation/manual/es/module_specs/Zend_Db_Adapter.xml

@@ -1293,10 +1293,10 @@ $n = $db->delete('bugs', 'bug_id = 3');
         <title>Quoting Values and Identifiers</title>
 
         <para>
-            When you form SQL queries, often it is the case that you need to
-            include the values of PHP variables in SQL expressions. This is
+            When you form <acronym>SQL</acronym> queries, often it is the case that you need to
+            include the values of PHP variables in <acronym>SQL</acronym> expressions. This is
             risky, because if the value in a PHP string contains certain
-            symbols, such as the quote symbol, it could result in invalid SQL.
+            symbols, such as the quote symbol, it could result in invalid <acronym>SQL</acronym>.
             For example, notice the imbalanced quote characters in the
             following query:
             <programlisting language="php"><![CDATA[
@@ -1365,12 +1365,12 @@ echo $sql;
             </para>
 
             <para>
-                Values may need to be quoted or not quoted according to the SQL
+                Values may need to be quoted or not quoted according to the <acronym>SQL</acronym>
                 datatype context in which they are used. For instance, in some
                 RDBMS brands, an integer value must not be quoted as a string
                 if it is compared to an integer-type column or expression.
-                In other words, the following is an error in some SQL
-                implementations, assuming <code>intColumn</code> has a SQL
+                In other words, the following is an error in some <acronym>SQL</acronym>
+                implementations, assuming <code>intColumn</code> has a <acronym>SQL</acronym>
                 datatype of <constant>INTEGER</constant>
 
                 <programlisting language="php"><![CDATA[

+ 5 - 4
documentation/manual/es/module_specs/Zend_Db_Profiler-Firebug.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- EN-Revision: 17600 -->
 <!-- Reviewed: no -->
 <sect3 id="zend.db.profiler.profilers.firebug">
     <title>Perfilando con Firebug</title>
@@ -12,9 +12,10 @@
 
     <para> Todos los datos son enviados a través del componente
             <classname>Zend_Wildfire_Channel_HttpHeaders</classname> que usa
-        cabeceras HTTP para asegurar que el contenido de la página no sea
-        alterado. Depurar peticiones AJAX que requieren respuestas JSON y
-            <acronym>XML</acronym> es perfectamente posible con este enfoque. </para>
+        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>
 

+ 178 - 179
documentation/manual/es/module_specs/Zend_Db_Profiler.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- EN-Revision: 19484 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.db.profiler" xmlns:xi="http://www.w3.org/2001/XInclude">
 
@@ -10,20 +10,18 @@
         <title>Introducción</title>
 
         <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>
-
-         <programlisting language="php"><![CDATA[
+            <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>
+
+        <programlisting language="php"><![CDATA[
 $params = array(
     'host'     => '127.0.0.1',
     'username' => 'webuser',
@@ -42,72 +40,91 @@ $db->getProfiler()->setEnabled(false);
 $db->getProfiler()->setEnabled(true);
 ]]></programlisting>
 
-        <para>
-            El valor de la opción '<methodname>profiler</methodname>' 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> 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
+            clase de perfilador por defecto del adaptador,
+            <classname>Zend_Db_Profiler</classname>. 
+        
         </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>.
-             <programlisting language="php"><![CDATA[
+        
+           <programlisting language="php"><![CDATA[
 $params['profiler'] = true;
 $db = Zend_Db::factory('PDO_MYSQL', $params);
 ]]></programlisting>
-        </para>
+        
 
-        <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.
-             <programlisting language="php"><![CDATA[
+        <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>
+            
+            <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
+            booleano y la instancia documentada previamente. La clave
+            '<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
+            es instanciada sin argumentos de constructor. La opción
+            '<property>class</property>' es ignorada cuando la opción
+            '<property>instance</property>' está dada. 
         </para>
-
-        <para>
-            El argumento puede ser un array asociativo conteniendo algunas o todas las claves
-            '<methodname>enabled</methodname>', '<methodname>instance</methodname>', y '<methodname>class</methodname>'. Las claves
-            '<methodname>enabled</methodname>' e '<methodname>instance</methodname>' corresponden a los tipos booleano y
-            la instancia documentada previamente. La clave '<methodname>class</methodname>' 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 es instanciada sin argumentos
-            de constructor. La opción '<methodname>class</methodname>' es ignorada cuando la opción
-            '<methodname>instance</methodname>' está dada.
-             <programlisting language="php"><![CDATA[
+            
+            <programlisting language="php"><![CDATA[
 $params['profiler'] = array(
     'enabled' => true,
     'class'   => 'MyProject_Db_Profiler'
 );
 $db = Zend_Db::factory('PDO_MYSQL', $params);
 ]]></programlisting>
+        
+
+        <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
+            siguientes datos: 
+           
         </para>
-
-        <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 "config.ini" puede contener los siguientes datos:
+        
             <programlisting language="ini"><![CDATA[
 [main]
 db.profiler.class   = "MyProject_Db_Profiler"
 db.profiler.enabled = true
-]]></programlisting>
-
-            Esta configuración puede ser aplicada con el siguiente código <acronym>PHP</acronym>:
-
-             <programlisting language="php"><![CDATA[
+]]></programlisting> 
+        
+        <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>
-
-            La propiedad '<methodname>instance</methodname>' debe ser usada como el siguiente ejemplo:
-             <programlisting language="php"><![CDATA[
+]]></programlisting> 
+        <para>
+        La propiedad '<methodname>instance</methodname>' debe ser
+            usada como el siguiente ejemplo: 
+            </para>
+            
+            <programlisting language="php"><![CDATA[
 $profiler = new MyProject_Db_Profiler();
 $profiler->setEnabled(true);
 $configData = array(
@@ -117,8 +134,7 @@ $config = new Zend_Config($configData);
 $params['profiler'] = $config;
 $db = Zend_Db::factory('PDO_MYSQL', $params);
 ]]></programlisting>
-
-        </para>
+        
 
     </sect2>
 
@@ -126,109 +142,100 @@ $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[
+        <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>
+                    <methodname>getTotalNumQueries()</methodname> retorna el
+                    número total de consultas que han sido perfiladas. </para>
             </listitem>
             <listitem>
                 <para>
-                    <methodname>getTotalElapsedSecs()</methodname> retorna el número total
-                    de segundos transcurridos en todas las consultas perfiladas.
-                </para>
+                    <methodname>getTotalElapsedSecs()</methodname> retorna el
+                    número total de segundos transcurridos en todas las
+                    consultas perfiladas. </para>
             </listitem>
             <listitem>
                 <para>
-                    <methodname>getQueryProfiles()</methodname> retorna un array con todos
-                    los perfiles de consultas.
-                </para>
+                    <methodname>getQueryProfiles()</methodname> retorna un array
+                    con todos los perfiles de consultas. </para>
             </listitem>
             <listitem>
                 <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>
+                    <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>
             </listitem>
             <listitem>
                 <para>
-                    <methodname>clear()</methodname> limpia los perfiles de consulta de la pila.
-                </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 proporcionan la
-             capacidad para inspeccionar cada una de las consultas:
-        </para>
+        <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>
 
         <itemizedlist>
             <listitem>
                 <para>
-                    <methodname>getQuery()</methodname> retorna el texto SQL de la consulta.
-                    El texto SQL 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.
+                    <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>
             </listitem>
             <listitem>
                 <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.  Las claves del array
-                    son las posiciones (basado en 1) o indices de parámetros nombrados (string).
-                </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.
+                    Las claves del array son las posiciones (basado en 1) o
+                    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>
+                    <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 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>
+        <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>
 
-         <programlisting language="php"><![CDATA[
+        <programlisting language="php"><![CDATA[
 $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 encontrar
-            la más lenta:
-        </para>
+        <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[
+        <programlisting language="php"><![CDATA[
 $totalTime    = $profiler->getTotalElapsedSecs();
 $queryCount   = $profiler->getTotalNumQueries();
 $longestTime  = 0;
@@ -256,22 +263,21 @@ 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 siguiente método
-            opera en una instancia de <classname>Zend_Db_Profiler</classname>:
-        </para>
+        <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>
 
         <sect3 id="zend.db.profiler.advanced.filtertime">
             <title>Filtrar por tiempo transcurrido en consulta</title>
 
             <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 null al método.
-            </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>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 // Solo perfilar consultas que tardan más de 5 segundos:
 $profiler->setFilterElapsedSecs(5);
 
@@ -284,64 +290,62 @@ $profiler->setFilterElapsedSecs(null);
             <title>Filtrar por tipo de consulta</title>
 
             <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>
+                <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>
 
             <itemizedlist>
                 <listitem>
                     <para>
-                        <classname>Zend_Db_Profiler::CONNECT</classname>: operaciones de
-                        conexión o selección de base de datos.
+                        <constant>Zend_Db_Profiler::CONNECT</constant>:
+                        operaciones de conexión o selección de base de datos.
                     </para>
                 </listitem>
                 <listitem>
                     <para>
-                        <classname>Zend_Db_Profiler::QUERY</classname>: consultas generales
-                        a la base de datos que no calzan con otros tipos.
-                    </para>
+                        <constant>Zend_Db_Profiler::QUERY</constant>:
+                        consultas generales a la base de datos que no calzan con
+                        otros tipos. </para>
                 </listitem>
                 <listitem>
                     <para>
-                        <classname>Zend_Db_Profiler::INSERT</classname>: cualquier consulta
-                        que agrega filas a la base de datos, generalmente un SQL INSERT.
-                    </para>
+                        <constant>Zend_Db_Profiler::INSERT</constant>:
+                        cualquier consulta que agrega filas a la base de datos,
+                        generalmente un <acronym>SQL</acronym> INSERT. </para>
                 </listitem>
                 <listitem>
                     <para>
-                        <classname>Zend_Db_Profiler::UPDATE</classname>: cualquier consulta que
-                        actualice registros existentes, usualmente un SQL UPDATE.
-                    </para>
+                        <constant>Zend_Db_Profiler::UPDATE</constant>:
+                        cualquier consulta que actualice registros existentes,
+                        usualmente un <acronym>SQL</acronym> UPDATE. </para>
                 </listitem>
                 <listitem>
                     <para>
-                        <classname>Zend_Db_Profiler::DELETE</classname>: cualquier consulta
-                        que elimine datos existentes, usualmente un SQL DELETE.
-                    </para>
+                        <constant>Zend_Db_Profiler::DELETE</constant>:
+                        cualquier consulta que elimine datos existentes,
+                        usualmente un <acronym>SQL</acronym> DELETE. </para>
                 </listitem>
                 <listitem>
                     <para>
-                        <classname>Zend_Db_Profiler::SELECT</classname>: cualquier consulta que
-                        retorne datos existentes, usualmente un SQL SELECT.
-                    </para>
+                        <constant>Zend_Db_Profiler::SELECT</constant>:
+                        cualquier consulta que retorne datos existentes,
+                        usualmente un <acronym>SQL</acronym> SELECT. </para>
                 </listitem>
                 <listitem>
                     <para>
-                        <classname>Zend_Db_Profiler::TRANSACTION</classname>: cualquier
-                        operación transaccional, tal como iniciar una transacción, confirmar,
-                        o revertir.
-                    </para>
+                        <constant>Zend_Db_Profiler::TRANSACTION</constant>:
+                        cualquier operación transaccional, tal como iniciar una
+                        transacción, confirmar, o revertir. </para>
                 </listitem>
             </itemizedlist>
 
-            <para>
-                Asi como con <classname>setFilterElapsedSecs()</classname>, puedes remover cualquier filtro
-                existente pasando un <constant>NULL</constant> como único argumento.
-            </para>
+            <para> Asi como con <methodname>setFilterElapsedSecs()</methodname>,
+                puedes remover cualquier filtro existente pasando un
+                    <constant>NULL</constant> como único argumento. </para>
 
-             <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 // Perfilar solo consultas SELECT
 $profiler->setFilterQueryType(Zend_Db_Profiler::SELECT);
 
@@ -362,18 +366,17 @@ $profiler->setFilterQueryType(null);
         <sect3 id="zend.db.profiler.advanced.getbytype">
             <title>Obtener perfiles por tipo de consulta</title>
 
-            <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 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>
-
-             <programlisting language="php"><![CDATA[
+            <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
+                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>
+
+            <programlisting language="php"><![CDATA[
 // Obtiene solo perfiles de consultas SELECT
 $profiles = $profiler->getQueryProfiles(Zend_Db_Profiler::SELECT);
 
@@ -393,16 +396,12 @@ $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 Especializados
-            tratan la información de perfilado de maneras más especificas.
-        </para>
+        <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>
 
-        <xi:include href="Zend_Db_Profiler-Firebug.xml" />
+        <xi:include href="Zend_Db_Profiler-Firebug.xml"/>
 
     </sect2>
 </sect1>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 193 - 129
documentation/manual/es/module_specs/Zend_Db_Select.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- EN-Revision: 19446 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.db.select">
 
@@ -9,13 +9,14 @@
 
         <title>Descripción del Objeto Select</title>
 
-        <para> El objeto Zend_Db_Select object representa una declaración de
-            consulta <methodname>SELECT</methodname> de SQL. La clase tiene
-            métodos para agregar partes individuales a la consulta. Se pueden
-            especificar algunas partes de la consulta usando los métodos en
-                <acronym>PHP</acronym> y sus estructuras de datos, y la clase
-            forma la sintaxis SLQ correcta. Después de construir la consulta,
-            puede ejecutarla como si se hubiera escrito como un string. </para>
+        <para> El objeto <classname>Zend_Db_Select</classname> object representa una declaración de
+            consulta <acronym>SELECT</acronym> de <acronym>SQL</acronym>.
+            La clase tiene métodos para agregar partes individuales a la
+            consulta. Se pueden especificar algunas partes de la consulta usando
+            los métodos en <acronym>PHP</acronym> y sus estructuras de datos, y
+            la clase forma la sintaxis <acronym>SLQ</acronym> correcta. Después de construir la
+            consulta, puede ejecutarla como si se hubiera escrito como un
+            string. </para>
 
         <para> Las posibilidades de <classname>Zend_Db_Select</classname>
             incluyen: </para>
@@ -23,34 +24,36 @@
         <itemizedlist>
             <listitem>
                 <para> Métodos Orientados a objetos para especificar consultas
-                    SQL pieza-a-pieza; </para>
+                        <acronym>SQL</acronym> pieza-a-pieza; </para>
             </listitem>
 
             <listitem>
-                <para> Abstracción de partes de las consultas SQL, independiente
-                    de la Base de datos; </para>
+                <para> Abstracción de partes de las consultas
+                        <acronym>SQL</acronym>, independiente de la Base de
+                    datos; </para>
             </listitem>
 
             <listitem>
                 <para> Entrecomillado automático de identificadores de metadatos
                     en la mayoría de los casos, soportanto identificadores que
-                    contienen palabras reservadas de SQL y caracteres
-                    especiales; </para>
+                    contienen palabras reservadas de <acronym>SQL</acronym> y
+                    caracteres especiales; </para>
             </listitem>
 
             <listitem>
                 <para> Entrecomillado de identificadores y valores, para ayudar
-                    a reducir el riesgo de ataque por inyección SQL. </para>
+                    a reducir el riesgo de ataque por inyección
+                        <acronym>SQL</acronym>. </para>
             </listitem>
         </itemizedlist>
 
         <para> El uso de <classname>Zend_Db_Select</classname> no es
-            obligatorio. Para consultas SELECT muy simples, es usualmente más
+            obligatorio. Para consultas <acronym>SELECT</acronym> muy simples, es usualmente más
             simple especificar la consulta completa como un string y ejecutarla
             usando un método del Adapter como <methodname>query()</methodname> o
                 <methodname>fetchAll()</methodname>. Usar
                 <classname>Zend_Db_Select</classname> es útil si se necesita
-            ensamblar una consulta SELECT proceduralmente, o basada en
+            ensamblar una consulta <acronym>SELECT</acronym> proceduralmente, o basada en
             condiciones lógicas en la aplicación. </para>
 
     </sect2>
@@ -174,7 +177,7 @@ $select = $db->select()
             <para> Puede especificar un nombre de correlación (también llamado a
                 veces "alias de tabla") para una tabla. En lugar de un string,
                 se usa un array asociativo que mapee el nombre de correlación
-                con el nombre de la tabla. En otras cláusulas de consulta SQL,
+                con el nombre de la tabla. En otras cláusulas de consulta  <acronym>SQL</acronym>,
                 utilice nombre de correlación. Si su consulta se une con más de
                 una tabla, <classname>Zend_Db_Select</classname> genera una
                 correlación unica de nombres basados en el nombre de la tabla,
@@ -197,7 +200,7 @@ $select = $db->select()
 
             </example>
 
-            <para> Algunos RDBMS apoyan el uso de un especificador de esquema
+            <para> Algunos <acronym>RDBMS</acronym> apoyan el uso de un especificador de esquema
                 para una tabla. Puede especificar el nombre de la tabla como
                     "<methodname>nombreDeEsquema.nombre DeTabla</methodname>",
                 donde <classname>Zend_Db_Select</classname> entrecomillará cada
@@ -236,8 +239,8 @@ $select = $db->select()
                     <methodname>from()</methodname>, puede especificar las
                 columnas que seleccionar desde la tabla respectiva. Si no
                 especifica columnas, por defecto será
-                    "<methodname>*</methodname>", el comodín SQL para "todas las
-                columnas". </para>
+                    "<methodname>*</methodname>", el comodín
+                    <acronym>SQL</acronym> para "todas las columnas". </para>
 
             <para> Puede listar las columnas en un simple array de strings, o en
                 un array asociativo mapeando los alias de columnas a su nombre
@@ -297,10 +300,10 @@ $select = $db->select()
 
             <title>Agregando una Expresión en las Columns</title>
 
-            <para> Las columnas en consultas SQL a veces son expresiones, no
-                simples columnas de una tabla. Las expresiones no deberían tener
-                nombres de correlación o entrecomillado aplicado. Si sus
-                columnas contienen paréntesis,
+            <para> Las columnas en consultas <acronym>SQL</acronym> a veces son
+                expresiones, no simples columnas de una tabla. Las expresiones
+                no deberían tener nombres de correlación o entrecomillado
+                aplicado. Si sus columnas contienen paréntesis,
                     <classname>Zend_Db_Select</classname> las reconoce como una
                 expresión. </para>
 
@@ -372,19 +375,21 @@ $select = $db->select()
                 ambigüedades, deberías realizar cambios manualmente en el
                 string. </para>
 
-            <para> Si el nombre de su columna es alguna palabra reservada de SQL
-                o contiene caracteres especiales, debería usar el método
+            <para> Si el nombre de su columna es alguna palabra reservada de
+                    <acronym>SQL</acronym> o contiene caracteres especiales,
+                debería usar el método
                     <methodname>quoteIdentifier()</methodname> del Adapdator e
                 interpolar el resultado en un string. El método
                     <methodname>quoteIdentifier()</methodname> usa
-                entrecomillado SQL para delimitar el identificador, the
-                identifier, dejando en claro que es un identificador de tabla o
-                columna y no otra parte de la sintaxis SQL. </para>
+                entrecomillado <acronym>SQL</acronym> para delimitar el
+                identificador, the identifier, dejando en claro que es un
+                identificador de tabla o columna y no otra parte de la sintaxis
+                    <acronym>SQL</acronym>. </para>
 
             <para> Su código es más independiente de la base de datos si se usa
                 el método <methodname>quoteIdentifier()</methodname> en vez de
                 las excribir literalmente las comillas en la cadena, debido a
-                que algunos RDBMS no usan simbolos estándar para entrecomillar
+                que algunos <acronym>RDBMS</acronym> no usan simbolos estándar para entrecomillar
                 identificadores. El método
                     <methodname>quoteIdentifier()</methodname> está diseñado
                 para usar los símbolos apropiados para entrecomillar basado en
@@ -509,7 +514,7 @@ $select = $db->select()
             <para> El tercer argumento <methodname>join()</methodname> es un
                 array de nombres de columnas, como al usar el método
                     <methodname>from()</methodname>. Este es por defecto
-                    "<methodname>*</methodname>", soporta correlación de
+                "<code>*</code>", soporta correlación de
                 nombres, expresiones, y <classname>Zend_Db_Expr</classname> de
                 la misma manera que el array de nombres de columnas en el método
                     <methodname>from()</methodname>. </para>
@@ -563,7 +568,7 @@ $select = $db->select()
                         satisfacen la condición. El resultado puede ser vacío si
                         no hay filas que satisfagan la condición. </para>
 
-                    <para> Todos los RDBMS soportan este tipo de unión. </para>
+                    <para> Todos los <acronym>RDBMS</acronym> soportan este tipo de unión. </para>
                 </listitem>
 
                 <listitem>
@@ -578,7 +583,7 @@ $select = $db->select()
                         derecha del operando son rellenadas con NULLs si no
                         existen filas que coincidan con la tabla a la izquierda. </para>
 
-                    <para> Todos los RDBMS soportan este tipo de unión. </para>
+                    <para> Todos los <acronym>RDBMS</acronym> soportan este tipo de unión. </para>
                 </listitem>
 
                 <listitem>
@@ -595,7 +600,7 @@ $select = $db->select()
                         izquierda del operando son rellenadas con NULLs si no
                         existen filas que coincidan con la tabla de la derecha. </para>
 
-                    <para> Algunos RDBMS no soportan este tipo de join, pero en
+                    <para> Algunos  <acronym>RDBMS</acronym> no soportan este tipo de join, pero en
                         general, cualquier unión por la derecha puede
                         representarse por una unión por la izquierda invirtiendo
                         el orden de las tablas. </para>
@@ -615,7 +620,7 @@ $select = $db->select()
                         vinculan con valores nulos en lugar de columnas de la
                         otra tabla. </para>
 
-                    <para> Algunos RDBMS no soportan este tipo de unión. </para>
+                    <para> Algunos  <acronym>RDBMS</acronym> no soportan este tipo de unión. </para>
                 </listitem>
 
                 <listitem>
@@ -629,13 +634,13 @@ $select = $db->select()
                         segunda tabla. Por lo tanto, el número de filas en el
                         resultado es igual al producto del número de filas en
                         cada tabla. Puede filtrar el conjunto de resultados con
-                        el uso de condiciones en un cláusula WHERE; de esta
+                        el uso de condiciones en un cláusula <constant>WHERE</constant>; de esta
                         forma una unión cruzada es similar a la antigua sintaxis
-                        de unión en SQL-89. </para>
+                        de unión en <acronym>SQL</acronym>-89. </para>
 
                     <para> El método <methodname>joinCross()</methodname> no
                         tiene parámetros para especificar una condición de
-                        unión. Algunos RDBMS no soportan este tipo de unión.
+                        unión. Algunos  <acronym>RDBMS</acronym>S no soportan este tipo de unión.
                     </para>
                 </listitem>
 
@@ -650,7 +655,8 @@ $select = $db->select()
                         es el equivalente de todas las columna(s); comparando
                         las columnas usando desigualdad no es una unión natural.
                         Solo la unión interna natural es soportada por este API,
-                        aun cuando SQL permita una unión externa natural. </para>
+                        aun cuando <acronym>SQL</acronym> permita una unión
+                        externa natural. </para>
 
                     <para> El método <methodname>joinNatural()</methodname> no
                         tiene parámetros para especificar una condición. </para>
@@ -727,9 +733,10 @@ $select = $db->select()
 
             <para> Puede especificar un criterio para restringir las filas de
                 resultado usando el método <methodname>where()</methodname>. El
-                primer argumento de este método es una expresión SQL, y esta
-                expresión es usada como una expresión SQL
-                    <methodname>WHERE</methodname> en la consulta. </para>
+                primer argumento de este método es una expresión
+                    <acronym>SQL</acronym>, y esta expresión es usada como una
+                expresión <acronym>SQL</acronym>
+                <constant>WHERE</constant> en la consulta. </para>
 
             <example id="zend.db.select.building.where.example">
 
@@ -792,11 +799,36 @@ $select = $db->select()
 
             </example>
 
-            <para> Puede invocar el método <methodname>where()</methodname>
-                múltiples veces en el mismo objeto
-                    <classname>Zend_Db_Select</classname>. La consulta
-                resultante combina los términos multiples usando
-                    <methodname>AND</methodname> entre ellos. </para>
+            <para>
+                You can pass an array as the second parameter to the
+                <methodname>where()</methodname> method when using the SQL IN operator.
+            </para>
+            
+            <example id="zend.db.select.building.where.example-array">
+                
+                <title>Example of an array parameter in the where() method</title>
+                
+                <programlisting language="php"><![CDATA[
+// Build this query:
+//   SELECT product_id, product_name, price
+//   FROM "products"
+//   WHERE (product_id IN (1, 2, 3))
+
+$productIds = array(1, 2, 3);
+
+$select = $db->select()
+             ->from('products',
+                    array('product_id', 'product_name', 'price'))
+             ->where('product_id IN (?)', $productIds);
+]]></programlisting>
+                
+            </example>
+            
+            <para>
+                You can invoke the <methodname>where()</methodname> method multiple times on the
+                same <classname>Zend_Db_Select</classname> object. The resulting query combines the
+                multiple terms together using <acronym>AND</acronym> between them.
+            </para>
 
             <example id="zend.db.select.building.where.example-and">
 
@@ -822,12 +854,12 @@ $select = $db->select()
             </example>
 
             <para> Si necesita combinar terminos
-                    usando<methodname>OR</methodname>, use el método
+                usando<acronym>OR</acronym>, use el método
                     <methodname>orWhere()</methodname>. Este método se usa del
                 mismo modo que el método <methodname>where()</methodname>,
                 excepto que el término especificado es precedido por
-                    <methodname>OR</methodname>, en lugar de
-                    <methodname>AND</methodname>. </para>
+                <acronym>OR</acronym>, en lugar de
+                <acronym>AND</acronym>. </para>
 
             <example id="zend.db.select.building.where.example-or">
 
@@ -900,16 +932,17 @@ $select = $db->select()
 
             <title>Agregando una cláusula GROUP BY</title>
 
-            <para> En SQL, la cláusula <methodname>GROUP BY</methodname> permite
-                reducir el número de filas del resultado de una consulta a una
-                fila por cada valor único encontrado en la(s) columna(s)
-                nombrada(s) en la cláusula <methodname>GROUP BY</methodname>. </para>
+            <para> En <acronym>SQL</acronym>, la cláusula <command>GROUP
+                    BY</command> permite reducir el número de filas del
+                resultado de una consulta a una fila por cada valor único
+                encontrado en la(s) columna(s) nombrada(s) en la cláusula
+                <command>GROUP BY</command>. </para>
 
             <para> En <classname>Zend_Db_Select</classname>, puede especificar
                 la(s) columna(s) que usar para el cálculo de grupos de filas
                 usando el método <methodname>group()</methodname>. El argumento
                 de este método es una columna o un array de columnas que se
-                usarán en la cláusula <methodname>GROUP BY</methodname>. </para>
+                usarán en la cláusula <command>GROUP BY</command>. </para>
 
             <example id="zend.db.select.building.group.example">
 
@@ -946,22 +979,24 @@ $select = $db->select()
 
             <title>Agregando una cláusula HAVING</title>
 
-            <para> En SQL, la cláusula <methodname>HAVING</methodname> aplica
-                una condición de restricción en grupos de filas. Es similar a
-                una cláusula <methodname>WHERE</methodname> aplicando una
-                condición de restricción a las filas. Pero las 2 cláusulas son
-                diferentes porque las condiciones <methodname>WHERE</methodname>
-                son aplicadas antes que definan los grupos, mientras que las
-                condiciones <methodname>HAVING</methodname> son aplicadas
+            <para> En <acronym>SQL</acronym>, la cláusula
+                <constant>HAVING</constant> aplica una condición de
+                restricción en grupos de filas. Es similar a una cláusula
+                    <methodname>WHERE</methodname> aplicando una condición de
+                restricción a las filas. Pero las 2 cláusulas son diferentes
+                porque las condiciones <methodname>WHERE</methodname> son
+                aplicadas antes que definan los grupos, mientras que las
+                condiciones <constant>HAVING</constant> son aplicadas
                 después que los grupos son definidos. </para>
 
             <para> En <classname>Zend_Db_Select</classname>, puede especificar
                 condiciones para restringir grupos usando el método
                     <methodname>having()</methodname>. Su uso es similar al del
                 método <methodname>where()</methodname>. El primer agumento es
-                un string conteniendo una expresión SQL. El segundo argumento es
-                un valor que es usado para reemplazar un parámetro marcador de
-                posición en la expresión SQL. Las expresiones dadas en multiples
+                un string conteniendo una expresión <acronym>SQL</acronym>. El
+                segundo argumento es un valor que es usado para reemplazar un
+                parámetro marcador de posición en la expresión
+                    <acronym>SQL</acronym>. Las expresiones dadas en multiples
                 invocaciones al método <methodname>having()</methodname> son
                 combinadas usando el operador Booleano
                     <methodname>AND</methodname>, o el operador
@@ -1009,16 +1044,16 @@ $select = $db->select()
 
             <title>Agregar una cláusula ORDER BY</title>
 
-            <para> En SQL, la cláusula <methodname>ORDER BY</methodname>
-                especifica una o más columnas o expresiones por el cual el
-                resultado de la consulta será ordenado. Si multiples columnas
-                son listadas, las columnas secundarias serán usadas para
-                resolver relaciones; el orden de clasificación es determinado
-                por columnas secundarias si la columna anterior contiene valores
-                idénticos. El orden por defecto es del menor valor al mayor
-                valor. Puede también ordenar de mayor a menor valor para una
-                columna dada en la lista espeificando la palabra clave
-                    <methodname>DESC</methodname> después de la columna. </para>
+            <para> En <acronym>SQL</acronym>, la cláusula <methodname>ORDER
+                    BY</methodname> especifica una o más columnas o expresiones
+                por el cual el resultado de la consulta será ordenado. Si
+                multiples columnas son listadas, las columnas secundarias serán
+                usadas para resolver relaciones; el orden de clasificación es
+                determinado por columnas secundarias si la columna anterior
+                contiene valores idénticos. El orden por defecto es del menor
+                valor al mayor valor. Puede también ordenar de mayor a menor
+                valor para una columna dada en la lista espeificando la palabra
+                clave <methodname>DESC</methodname> después de la columna. </para>
 
             <para> En <classname>Zend_Db_Select</classname>, puede usar el
                 método <methodname>order()</methodname> para especificar una
@@ -1065,14 +1100,14 @@ $select = $db->select()
 
             <title>Agregando una cláusula LIMIT</title>
 
-            <para> Algunos RDBMS extienden una consulta SQL con una cláusula
-                conocida como <methodname>LIMIT</methodname>. Esta cláusuala
-                reduce el número de filas en el resultado a no más de un número
-                especificado. También puede especificar saltar el número de
-                filas antes de empezar la salida. Esta característica hace más
-                fácil tomar un subconjunto de resultados, por ejemplo cuando
-                mostramos los resultados de una consulta en páginas progresivas
-                de salida. </para>
+            <para> Algunos <acronym>RDBMS</acronym> extienden una consulta <acronym>SQL</acronym>
+                con una cláusula conocida como <constant>LIMIT</constant>.
+                Esta cláusuala reduce el número de filas en el resultado a no
+                más de un número especificado. También puede especificar saltar
+                el número de filas antes de empezar la salida. Esta
+                característica hace más fácil tomar un subconjunto de
+                resultados, por ejemplo cuando mostramos los resultados de una
+                consulta en páginas progresivas de salida. </para>
 
             <para> En <classname>Zend_Db_Select</classname>, puede usar el
                 método <methodname>limit()</methodname> para especificar la
@@ -1100,12 +1135,13 @@ $select = $db->select()
 
             <note>
 
-                <para> La sintaxis de <methodname>LIMIT</methodname> no está
-                    soportada por todos los RDBMS brands. Algunos RDBMS
+                <para> La sintaxis de <constant>LIMIT</constant> no está
+                    soportada por todos los <acronym>RDBMS</acronym> brands. Algunos  <acronym>RDBMS</acronym>
                     requieren diferente sintaxis para soportar una funcionalidad
                     similar Cada clase
                         <classname>Zend_Db_Adapter_Abstract</classname> incluye
-                    un método para producir el SQL apropiado para cada RDBMS. </para>
+                    un método para producir el <acronym>SQL</acronym> apropiado
+                    para cada  <acronym>RDBMS</acronym>. </para>
 
             </note>
 
@@ -1146,8 +1182,8 @@ $select = $db->select()
             <title>Agregar el modificador DISTINCT a la consulta</title>
 
             <para> El método <methodname>distinct()</methodname> permite agregar
-                la palabra clave a la consulta <methodname>DISTINCT</methodname>
-                a su consulta SQL. </para>
+                la palabra clave a la consulta <constant>DISTINCT</constant>
+                a su consulta <acronym>SQL</acronym>. </para>
 
             <example id="zend.db.select.building.distinct.example">
 
@@ -1172,8 +1208,8 @@ $select = $db->select()
             <title>Agregar el modificador FOR UPDATE</title>
 
             <para> El método <methodname>forUpdate()</methodname> permite
-                agregar el modificador <methodname>FOR UPDATE</methodname> a su
-                consulta SQL. </para>
+                agregar el modificador <code>FOR UPDATE</code> a su
+                consulta <acronym>SQL</acronym>. </para>
 
             <example id="zend.db.select.building.for-update.example">
 
@@ -1193,6 +1229,31 @@ $select = $db->select()
 
         </sect3>
 
+        <sect3 id="zend.db.select.building.union">
+            <title>Building a UNION Query</title>
+            
+            <para>
+                You can build union queries with <classname>Zend_Db_Select</classname> by passing an array
+                of <classname>Zend_Db_Select</classname> or SQL Query strings into the <methodname>union()</methodname>
+                method. As second parameter you can pass the <constant>Zend_Db_Select::SQL_UNION</constant> or
+                <constant>Zend_Db_Select::SQL_UNION_ALL</constant> constants to specify which type of union you
+                want to perform.
+            </para>
+            
+            <example id="zend.db.select.building.union.example">
+                <title>Example of union() method</title>
+                
+                <programlisting language="php"><![CDATA[
+$sql1 = $db->select();
+$sql2 = "SELECT ...";
+
+$select = $db->select()
+    ->union(array($sql1, $sql2))
+    ->order("id");
+]]></programlisting>
+            </example>
+        </sect3>
+
     </sect2>
 
     <sect2 id="zend.db.select.execute">
@@ -1215,7 +1276,7 @@ $select = $db->select()
                 string de consulta. </para>
 
             <para> El método <methodname>query()</methodname> devuelve un objeto
-                de tipo Zend_Db_Statement o PDOStatement, dependiendo del tipo
+                de tipo <classname>Zend_Db_Statement</classname> o PDOStatement, dependiendo del tipo
                 de adaptador. </para>
 
             <example id="zend.db.select.execute.query-adapter.example">
@@ -1243,7 +1304,7 @@ $result = $stmt->fetchAll();
                     <methodname>query()</methodname> del objeto adaptador, puede
                 usar el método <methodname>query()</methodname> del objeto
                     <classname>Zend_Db_Select</classname>. Ambos métodos
-                devuelven un objeto de tipo Zend_Db_Statement o PDOStatement,
+                devuelven un objeto de tipo <classname>Zend_Db_Statement</classname> o PDOStatement,
                 dependiendo del tipo de adaptador. </para>
 
             <example id="zend.db.select.execute.query-select.example">
@@ -1264,10 +1325,11 @@ $result = $stmt->fetchAll();
 
         <sect3 id="zend.db.select.execute.tostring">
 
-            <title>Convertiendo un Objeto Select a un String SQL</title>
+            <title>Convertiendo un Objeto Select a un String
+                    <acronym>SQL</acronym></title>
 
             <para> Si necesita acceder a una represantación en un string de la
-                consulta SQL correspondiente al objeto
+                consulta <acronym>SQL</acronym> correspondiente al objeto
                     <classname>Zend_Db_Select</classname>, use el método
                     <methodname>__toString()</methodname>. </para>
 
@@ -1306,19 +1368,20 @@ echo "$sql\n";
             <title>Obtener Partes de un Objeto Select</title>
 
             <para> El método <methodname>getPart()</methodname> devuelve una
-                representación de una parte de su consulta SQL. Por ejemplo,
-                puede usar este método para devolver un array de expresiones
-                para la cláusula <methodname>WHERE</methodname>, o el array de
-                columnas (o expresiones de columnas) que estan en la lista del
+                representación de una parte de su consulta
+                    <acronym>SQL</acronym>. Por ejemplo, puede usar este método
+                para devolver un array de expresiones para la cláusula
+                    <methodname>WHERE</methodname>, o el array de columnas (o
+                expresiones de columnas) que estan en la lista del
                     <methodname>SELECT</methodname>, o los valores de la
                 cantidad y comienzo para la cláusula
-                    <methodname>LIMIT</methodname>. </para>
+                <constant>LIMIT</constant>. </para>
 
             <para> El valor de retorno no es un string conteniendo un fragmento
-                de la sintaxis SQL. El valor de retorno es una representación,
-                típicamente un array con una estructura que contiene valores y
-                expresiones. Cada parte de la consulta tiene una estructura
-                diferente. </para>
+                de la sintaxis <acronym>SQL</acronym>. El valor de retorno es
+                una representación, típicamente un array con una estructura que
+                contiene valores y expresiones. Cada parte de la consulta tiene
+                una estructura diferente. </para>
 
             <para> El único argumento del método
                     <methodname>getPart()</methodname> es un string que
@@ -1329,9 +1392,9 @@ echo "$sql\n";
                 uniones de tablas. </para>
 
             <para> La clase <classname>Zend_Db_Select</classname> define
-                constantes que puedes usar para las partes de la consulta SQL.
-                Puede usar estas definiciones de constantes, o los strings
-                literales. </para>
+                constantes que puedes usar para las partes de la consulta
+                    <acronym>SQL</acronym>. Puede usar estas definiciones de
+                constantes, o los strings literales. </para>
 
             <table id="zend.db.select.other.get-part.table">
 
@@ -1348,91 +1411,91 @@ echo "$sql\n";
                     <tbody>
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::DISTINCT</classname>
+                                <constant>Zend_Db_Select::DISTINCT</constant>
                             </entry>
                             <entry>
-                                <classname>'distinct'</classname>
+                                <code>'distinct'</code>
                             </entry>
                         </row>
 
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::FOR_UPDATE</classname>
+                                <constant>Zend_Db_Select::FOR_UPDATE</constant>
                             </entry>
                             <entry>
-                                <classname>'forupdate'</classname>
+                                <code>'forupdate'</code>
                             </entry>
                         </row>
 
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::COLUMNS</classname>
+                                <constant>Zend_Db_Select::COLUMNS</constant>
                             </entry>
                             <entry>
-                                <classname>'columns'</classname>
+                                <code>'columns'</code>
                             </entry>
                         </row>
 
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::FROM</classname>
+                                <constant>Zend_Db_Select::FROM</constant>
                             </entry>
                             <entry>
-                                <classname>'from'</classname>
+                                <code>'from'</code>
                             </entry>
                         </row>
 
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::WHERE</classname>
+                                <constant>Zend_Db_Select::WHERE</constant>
                             </entry>
                             <entry>
-                                <classname>'where'</classname>
+                                <code>'where'</code>
                             </entry>
                         </row>
 
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::GROUP</classname>
+                                <constant>Zend_Db_Select::GROUP</constant>
                             </entry>
                             <entry>
-                                <classname>'group'</classname>
+                                <code>'group'</code>
                             </entry>
                         </row>
 
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::HAVING</classname>
+                                <constant>Zend_Db_Select::HAVING</constant>
                             </entry>
                             <entry>
-                                <classname>'having'</classname>
+                                <code>'having'</code>
                             </entry>
                         </row>
 
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::ORDER</classname>
+                                <constant>Zend_Db_Select::ORDER</constant>
                             </entry>
                             <entry>
-                                <classname>'order'</classname>
+                                <code>'order'</code>
                             </entry>
                         </row>
 
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::LIMIT_COUNT</classname>
+                                <constant>Zend_Db_Select::LIMIT_COUNT</constant>
                             </entry>
                             <entry>
-                                <classname>'limitcount'</classname>
+                                <code>'limitcount'</code>
                             </entry>
                         </row>
 
                         <row>
                             <entry>
-                                <classname>Zend_Db_Select::LIMIT_OFFSET</classname>
+                                <constant>Zend_Db_Select::LIMIT_OFFSET</constant>
                             </entry>
                             <entry>
-                                <classname>'limitoffset'</classname>
+                                <code>'limitoffset'</code>
                             </entry>
                         </row>
                     </tbody>
@@ -1468,8 +1531,9 @@ print_r( $orderData );
             <title>Restableciendo Partes de un Objeto</title>
 
             <para> El método <methodname>reset()</methodname> permite limpiar
-                una parte específica de la consulta SQL, o limpia todas las
-                partes de la consulta SQL si omite el argumento. </para>
+                una parte específica de la consulta <acronym>SQL</acronym>, o
+                limpia todas las partes de la consulta <acronym>SQL</acronym> si
+                omite el argumento. </para>
 
             <para> El argumento es opcional. Puede especificar la parte de la
                 consulta que será limpiada, usando los mismos strings que usa el
@@ -1479,7 +1543,7 @@ print_r( $orderData );
 
             <para> Si omite el parámetro, <methodname>reset()</methodname>
                 cambia todas las partes de la consulta a su estado por omisión.
-                Esto hace que el objeto Zend_Db_Select sea equivalente a crear
+                Esto hace que el objeto <classname>Zend_Db_Select</classname> sea equivalente a crear
                 un nuevo objeto, como si acabase de instanciarlo. </para>
 
             <example id="zend.db.select.other.reset.example">

+ 9 - 9
documentation/manual/es/module_specs/Zend_Db_Statement.xml

@@ -27,10 +27,10 @@
             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
             datos.
-            Este método es un modo general de preparar una declaración SQL.
-            El primer parámetro es un string conteniendo la declaración SQL.
+            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 SQL.
+            vincular posiciones de parámetros en el string <acronym>SQL</acronym>.
         </para>
 
         <example id="zend.db.statement.creating.example1">
@@ -44,7 +44,7 @@ $stmt = $db->query(
         </example>
 
         <para>
-            El objeto de declaración corresponde a una declaración SQL que ha
+            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
@@ -57,7 +57,7 @@ $stmt = $db->query(
             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 SQL como el segundo parámetro.
+            conteniendo la declaración <acronym>SQL</acronym> como el segundo parámetro.
             La declaración es preparada pero no ejecutada.
         </para>
 
@@ -124,7 +124,7 @@ $stmt->execute(array(':reporter' => 'goofy', ':status' => 'FIXED'));
         <para>
             Las declaraciones PDO soportan tanto parámetros posicionales como
             parámetros nombrados, pero no ambos tipos en la misma declaración
-            SQL. Algunas clases <classname>Zend_Db_Statement</classname> para extensiones no-PDO
+            <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>
 
@@ -136,14 +136,14 @@ $stmt->execute(array(':reporter' => 'goofy', ':status' => 'FIXED'));
 
         <para>
             Puede llamar a métodos del objeto de declaración para obtener filas
-            desde declaraciones SQL 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
             producen un conjunto de resultados.
             INSERT, UPDATE, and DELETE son ejemplo de declaraciones que
             no producen un conjunto de resultados.
 
-            Puede ejecutar las últimas declaraciones de SQL usando
+            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>
@@ -176,7 +176,7 @@ $stmt->execute(array(':reporter' => 'goofy', ':status' => 'FIXED'));
                         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 RDBMS.
+                        el  <acronym>RDBMS</acronym>.
                     </para>
                 </listitem>
                 <listitem>

+ 6 - 6
documentation/manual/es/module_specs/Zend_Db_Table-Relationships.xml

@@ -105,7 +105,7 @@ class BugsProducts extends Zend_Db_Table_Abstract
 
             <para>
                 Skip declaration of <methodname>$_dependentTables</methodname> if you use referential integrity
-                constraints in the RDBMS server to implement cascading operations. See
+                constraints in the  <acronym>RDBMS</acronym> server to implement cascading operations. See
                 <xref linkend="zend.db.table.relationships.cascading" /> for more information.
             </para>
 
@@ -152,7 +152,7 @@ class BugsProducts extends Zend_Db_Table_Abstract
             <listitem>
                 <para>
                     <emphasis>refTableClass</emphasis> => The class name of the
-                    parent table. Use the class name, not the physical name of the SQL table.
+                    parent table. Use the class name, not the physical name of the <acronym>SQL</acronym> table.
                 </para>
 
                 <para>
@@ -716,7 +716,7 @@ $products = $bug1234->findProductsViaBugsProductsByBug();
 
             <para>
                 Declaring cascading operations in <classname>Zend_Db_Table</classname> is intended
-                <emphasis>only</emphasis> for RDBMS brands that do not support
+                <emphasis>only</emphasis> for  <acronym>RDBMS</acronym> brands that do not support
                 declarative referential integrity (DRI).
             </para>
 
@@ -727,15 +727,15 @@ $products = $bug1234->findProductsViaBugsProductsByBug();
             </para>
 
             <para>
-                If your RDBMS implements DRI and the <methodname>ON DELETE</methodname> and
+                If your <acronym>RDBMS</acronym> implements DRI and the <methodname>ON DELETE</methodname> and
                 <methodname>ON UPDATE</methodname> clauses, you should declare these clauses in your database
                 schema, instead of using the cascading feature in <classname>Zend_Db_Table</classname>. Declaring
-                cascading DRI rules in the RDBMS is better for database performance, consistency,
+                cascading DRI rules in the  <acronym>RDBMS</acronym> is better for database performance, consistency,
                 and integrity.
             </para>
 
             <para>
-                Most importantly, do not declare cascading operations both in the RDBMS and in your
+                Most importantly, do not declare cascading operations both in the  <acronym>RDBMS</acronym> and in your
                 <classname>Zend_Db_Table</classname> class.
             </para>
 

+ 1 - 1
documentation/manual/es/module_specs/Zend_Db_Table_Row.xml

@@ -652,7 +652,7 @@ 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 RDBMS by
+                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>
 

+ 4 - 4
documentation/manual/es/module_specs/Zend_Form-QuickStart.xml

@@ -324,8 +324,8 @@ $form->addElement('text', 'username', array('order' => 10));
             requerido, la validación se ejecuta contra un valor nulo. </para>
 
         <para> ¿De dónde provienen los datos?. Puede usar
-                <methodname>$_POST</methodname> o
-            <methodname>$_GET</methodname>, o cualquier otra fuente de datos que
+                <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>
 
         <programlisting language="php"><![CDATA[
@@ -336,7 +336,7 @@ if ($form->isValid($_POST)) {
 }
 ]]></programlisting>
 
-        <para> Con solicitudes AJAX, a veces puede ignorar la validación de un
+        <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>,
@@ -508,7 +508,7 @@ class UserController extends Zend_Controller_Action
             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 INI. Primero, vamos a
+            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

+ 1 - 1
documentation/manual/es/module_specs/Zend_Json-Introduction.xml

@@ -16,7 +16,7 @@
         cualquier string arbitrario con formato <acronym>XML</acronym> en un string con formato
         JSON. Este rasgo integral permite a desarrolladores <acronym>PHP</acronym> transformar los
         datos codificados de la empresa en formato <acronym>XML</acronym> a formato JSON antes de
-        enviarlos a las aplicaciones del cliente Ajax basadas en navegadores web. Provee una manera
+        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

+ 1 - 1
documentation/manual/es/module_specs/Zend_Pdf-Create.xml

@@ -10,7 +10,7 @@
         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 PDF. Estos métodos son
+        estáticos para cargar un documento <acronym>PDF</acronym>. Estos métodos son
             <classname>Zend_Pdf::load()</classname> y
             <classname>Zend_Pdf::parse()</classname>. Ambos retornan objetos
             <classname>Zend_Pdf</classname> como resultado o arrojan una

+ 4 - 4
documentation/manual/es/module_specs/Zend_Pdf-Introduction.xml

@@ -4,14 +4,14 @@
 <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 PDF
+    <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 PDF modificando los documentos existentes o generar unos nuevos desde cero.
+        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 PDF V1.4 (Acrobat 5) ahora está soportada.
+                        <para> La carga de documentos <acronym>PDF</acronym> V1.4 (Acrobat 5) ahora está soportada.
                         </para>
                     </footnote>
                 </para>
@@ -42,7 +42,7 @@
                 </para>
             </listitem>
             <listitem>
-                <para> Actualización incremental de archivos PDF. </para>
+                <para> Actualización incremental de archivos <acronym>PDF</acronym>. </para>
             </listitem>
         </itemizedlist>
     </para>

+ 5 - 5
documentation/manual/es/module_specs/Zend_Pdf-Pages.xml

@@ -5,11 +5,11 @@
     <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 PDF están representadas como
+        <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 PDF o bien son cargadas desde una PDF ya existente o
+        <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>
 
@@ -19,7 +19,7 @@
             objeto <classname>Zend_Pdf_Page</classname>.
                 <classname>Zend_Pdf::newPage()</classname> crea una página que
             ya está agregada a un documento. Las páginas no agregadas no pueden
-            ser utilizadas con múltiples documentos PDF, pero son algo más
+            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 ZF. Será
                     eliminada en futuras versiones. Pero las páginas no
@@ -77,7 +77,7 @@ unset($pdf->pages[$id]);
 
     <sect2 id="zend.pdf.pages.cloning">
         <title>Clonado de Páfinas.</title>
-        <para> La página PDF existente puede ser clonada creando un nuevo objeto
+        <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>
 
@@ -110,7 +110,7 @@ unset($pdf->pages[$templatePageIndex]);
 
         <caution>
             <para> Importante! La página clonada comparte algunos recursos de
-                PDF con una página plantilla, la que puede ser utilizada sólo en
+                <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>

+ 7 - 7
documentation/manual/es/module_specs/Zend_Pdf-Properties.xml

@@ -19,7 +19,7 @@ $pdf->properties['Title'] = 'New Title.';
 $pdf->save($pdfPath);
 ]]></programlisting>
     </para>
-    <para> Las siguientes claves están definidas por v1.4 PDF (Acrobat 5) estándar: <itemizedlist>
+    <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>
@@ -41,15 +41,15 @@ $pdf->save($pdfPath);
             <listitem>
                 <para>
                     <emphasis>Creator</emphasis> - string, opcional, si el documento se convirtió
-                    desde otro formato a PDF, el nombre de la aplicación (por ejemplo, Adobe
+                    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 PDF, el nombre de la aplicación (por ejemplo, Acrobat
-                    Distiller), que lo convirtió a PDF. </para>
+                    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>
@@ -142,11 +142,11 @@ $pdf->save($pdfPath);
         </itemizedlist>
     </para>
 
-    <para> Desde PDF v 1.6 los metadatos se pueden almacenar en el documento <acronym>XML</acronym>
-        especial adjunto al PDF (XMP - <ulink url="http://www.adobe.com/products/xmp/">Extensible
+    <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 PDF con los
+    <para> Este documento <acronym>XML</acronym> se pueden recuperar y adjuntar al <acronym>PDF</acronym> con los
         métodos <classname>Zend_Pdf::getMetadata()</classname> y
             <classname>Zend_Pdf::setMetadata($metadata)</classname>: <programlisting language="php"><![CDATA[
 $pdf = Zend_Pdf::load($pdfPath);

+ 5 - 5
documentation/manual/es/module_specs/Zend_Pdf-Save.xml

@@ -3,20 +3,20 @@
 <!-- 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 PDF: los
+    <para> Hay dos métodos que guardan los cambios a los documentos <acronym>PDF</acronym>: los
         métodos son <classname>Zend_Pdf::save()</classname> y
             <classname>Zend_Pdf::render()</classname>. </para>
 
     <para>
         <classname>Zend_Pdf::save($filename, $updateOnly = false)</classname>
-        guarda el documento PDF en un archivo. Si $updateOnly es verdadero, sólo
-        entonces el nuevo segmento del archivo PDF se agrega al archivo. De lo
+        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>
 
     <para>
         <classname>Zend_Pdf::render($newSegmentOnly = false)</classname> regresa
-        el documento PDF como un string. Si $newSegmentOnly es verdadero,
-        entonces sólo el nuevo segmento del archivo PDF es devuelto. </para>
+        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>
 
     <example id="zend.pdf.save.example-1">
         <title>Guardando Documentos PDF</title>

+ 1 - 1
documentation/manual/es/module_specs/Zend_Validate-WritingValidators.xml

@@ -52,7 +52,7 @@
         excepciones, salvo que sea imposible determinar si el valor de entrada
         es válido o no.
         Algunos ejemplos de casos razonables para lanzar una excepción podría ser
-        si un archivo no puede abrirse, que un servidor LDAP no pudiera ser
+        si un archivo no puede abrirse, que un servidor <acronym>LDAP</acronym> no pudiera ser
         contactado, o una conexión a una base de datos no estuviera disponible.
         Estos son casos en los que puede ser necesario determinar el éxito o
         fracaso de la validación.