Sfoglia il codice sorgente

Add news files and update files

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@15307 44c647ce-9c0f-0410-b52a-842ac1e357ba
benjamin-gonzales 16 anni fa
parent
commit
1083f92c7f
23 ha cambiato i file con 1011 aggiunte e 1033 eliminazioni
  1. 13 13
      documentation/manual/es/module_specs/Zend_Acl-Advanced.xml
  2. 25 25
      documentation/manual/es/module_specs/Zend_Acl-Refining.xml
  3. 46 46
      documentation/manual/es/module_specs/Zend_Acl.xml
  4. 122 122
      documentation/manual/es/module_specs/Zend_Amf-Server.xml
  5. 8 8
      documentation/manual/es/module_specs/Zend_Amf.xml
  6. 158 165
      documentation/manual/es/module_specs/Zend_Auth.xml
  7. 2 2
      documentation/manual/es/module_specs/Zend_Cache-Introduction.xml
  8. 3 3
      documentation/manual/es/module_specs/Zend_Captcha.xml
  9. 7 7
      documentation/manual/es/module_specs/Zend_Config-TheoryOfOperation.xml
  10. 18 18
      documentation/manual/es/module_specs/Zend_Config_Xml.xml
  11. 11 11
      documentation/manual/es/module_specs/Zend_Controller-QuickStart.xml
  12. 9 9
      documentation/manual/es/module_specs/Zend_Date-Introduction.xml
  13. 19 19
      documentation/manual/es/module_specs/Zend_Db_Adapter.xml
  14. 146 146
      documentation/manual/es/module_specs/Zend_Db_Select.xml
  15. 9 9
      documentation/manual/es/module_specs/Zend_Db_Statement.xml
  16. 42 57
      documentation/manual/es/module_specs/Zend_Db_Table_Row.xml
  17. 152 149
      documentation/manual/es/module_specs/Zend_Form-Advanced.xml
  18. 121 121
      documentation/manual/es/module_specs/Zend_Form-Elements.xml
  19. 1 1
      documentation/manual/es/module_specs/Zend_Form-StandardDecorators.xml
  20. 69 71
      documentation/manual/es/module_specs/Zend_Form-StandardElements.xml
  21. 1 1
      documentation/manual/es/module_specs/Zend_Loader.xml
  22. 1 2
      documentation/manual/es/module_specs/Zend_Validate-Set.xml
  23. 28 28
      documentation/manual/es/module_specs/Zend_XmlRpc_Client.xml

+ 13 - 13
documentation/manual/es/module_specs/Zend_Acl-Advanced.xml

@@ -81,12 +81,12 @@ class CleanIPAssertion implements Zend_Acl_Assert_Interface
         </programlisting>
 
         <para>
-            Una vez la clase de aserción esta disponible, el desarrollador puede 
-            suministrar una instancia de la clase de aserción cuando asigna reglas 
+            Una vez la clase de aserción esta disponible, el desarrollador puede
+            suministrar una instancia de la clase de aserción cuando asigna reglas
             condicionales. Una regla que es creada con una aserción
             sólo se aplica cuando el método de la aserción devuelve true.
         </para>
-        
+       
         <programlisting role="php"><![CDATA[
 $acl = new Zend_Acl();
 $acl->allow(null, null, null, new CleanIPAssertion());
@@ -94,16 +94,16 @@ $acl->allow(null, null, null, new CleanIPAssertion());
         </programlisting>
 
         <para>
-            El código anterior crea una regla condicional que permite el acceso a 
-            todos los privilegios sobre todo, por todo el mundo, excepto cuando la IP 
-            de quien hace la petición está en la "lista negra". Si una petición 
+            El código anterior crea una regla condicional que permite el acceso a
+            todos los privilegios sobre todo, por todo el mundo, excepto cuando la IP
+            de quien hace la petición está en la "lista negra". Si una petición
             viene desde una IP que no está considerada "limpia", entonces la regla no
-            se aplica. Dado que la regla se aplica a todos los roles, todos los 
-            recursos, y todos los privilegios, una IP "no limpia" daría lugar a una 
+            se aplica. Dado que la regla se aplica a todos los roles, todos los
+            recursos, y todos los privilegios, una IP "no limpia" daría lugar a una
             negación de acceso. Éste es un caso especial, sin embargo, y debería ser
-            entendido que en todos los otros casos (por ejemplo, cuando un rol 
-            específico, recurso, o privilegio está especificado por la regla), 
-            una aserción fallida provoca que la regla no se aplique, y otras reglas 
+            entendido que en todos los otros casos (por ejemplo, cuando un rol
+            específico, recurso, o privilegio está especificado por la regla),
+            una aserción fallida provoca que la regla no se aplique, y otras reglas
             deberían ser usadas para determinar si el acceso está permitido o
             denegado.
         </para>
@@ -111,10 +111,10 @@ $acl->allow(null, null, null, new CleanIPAssertion());
         <para>
             El método
             <code>assert()</code>
-            de un objeto aserción es pasado a la ACL, regla,  recurso, y privilegio 
+            de un objeto aserción es pasado a la ACL, regla,  recurso, y privilegio
       para el cual una consulta de autorización (por ejemplo,
             <code>isAllowed()</code>
-            ) se aplica, con el fin de proporcionar un contexto para que la clase de 
+            ) se aplica, con el fin de proporcionar un contexto para que la clase de
       aserción determine sus condiciones cuando fuera necesario.
         </para>
 

+ 25 - 25
documentation/manual/es/module_specs/Zend_Acl-Refining.xml

@@ -36,7 +36,7 @@
             'staff':
         </para>
 
-        <programlisting role="php"><![CDATA[ 
+        <programlisting role="php"><![CDATA[
  // El nuevo grupo de Marketing hereda los permisos de Staff
  $acl->addRole(new Zend_Acl_Role('marketing'), 'staff'); ]]>
         </programlisting>
@@ -48,17 +48,17 @@
             noticias"). Ahora añadimos estos recursos:
         </para>
 
-        <programlisting role="php"><![CDATA[ 
+        <programlisting role="php"><![CDATA[
 // Crear recursos para las reglas
  // newsletter
  $acl->add(new Zend_Acl_Resource('newsletter'));
- 
+
  // news
  $acl->add(new Zend_Acl_Resource('news'));
- 
+
  // Últimas Noticias
  $acl->add(new Zend_Acl_Resource('latest'), 'news');
- 
+
  // anuncio de noticias
  $acl->add(new Zend_Acl_Resource('announcement'), 'news'); ]]>
         </programlisting>
@@ -68,17 +68,17 @@
             estas normas más específicas en ámbitos de la ACL:
         </para>
 
-        <programlisting role="php"><![CDATA[ // 
+        <programlisting role="php"><![CDATA[ //
  Marketing debe ser capaz de archivar y publicar boletines informativos y
  // las últimas noticias
  $acl->allow('marketing',
  array('newsletter', 'latest'),
  array('publish', 'archive'));
- 
+
  // Staff (y marketing, por herencia), se le denega el permiso a
  // revisar las últimas noticias
  $acl->deny('staff', 'latest', 'revise');
- 
+
  // Todos (incluyendo los administradores) tienen permiso denegado para
  // archivar anuncios y noticias
  $acl->deny(null, 'announcement', 'archive'); ]]>
@@ -89,38 +89,38 @@
             cambios:
         </para>
 
-        <programlisting role="php"><![CDATA[ 
+        <programlisting role="php"><![CDATA[
  echo $acl->isAllowed('staff', 'newsletter', 'publish') ?
  "allowed" : "denied";
  // denegado
- 
+
  echo $acl->isAllowed('marketing', 'newsletter', 'publish') ?
  "allowed" : "denied";
- // permitido    
- 
+ // permitido   
+
  echo $acl->isAllowed('staff', 'latest', 'publish') ?
  "allowed" : "denied";
  // denegado
- 
+
  echo $acl->isAllowed('marketing', 'latest', 'publish') ?
  "allowed" : "denied";
- // permitido    
- 
+ // permitido   
+
  echo $acl->isAllowed('marketing', 'latest', 'archive') ?
  "allowed" : "denied";
- // permitido    
- 
+ // permitido   
+
  echo $acl->isAllowed('marketing', 'latest', 'revise') ?
  "allowed" : "denied";
  // denegado
- 
+
  echo $acl->isAllowed('editor', 'announcement', 'archive') ?
  "allowed" : "denied";
  // denegado
- 
+
  echo $acl->isAllowed('administrator', 'announcement', 'archive') ?
  "allowed" : "denied";
- // denegado 
+ // denegado
  ]]>
         </programlisting>
 
@@ -139,16 +139,16 @@
         </para>
 
         <programlisting role="php"><![CDATA[
-// Elimina la prohibición de leer las últimas noticias de staff (y marketing, 
+// Elimina la prohibición de leer las últimas noticias de staff (y marketing,
 // por herencia)
 $acl->removeDeny('staff', 'latest', 'revise');
 
 echo $acl->isAllowed('marketing', 'latest', 'revise') ?
- "allowed" : "denied"; 
-// permitido 
+ "allowed" : "denied";
+// permitido
 
-// Elimina la autorización para publicar y archivar los boletines 
-// marketing 
+// Elimina la autorización para publicar y archivar los boletines
+// marketing
 $acl->removeAllow('marketing',
                   'newsletter',
                   array('publish', 'archive'));

+ 46 - 46
documentation/manual/es/module_specs/Zend_Acl.xml

@@ -1,7 +1,7 @@
 <sect1 id="zend.acl.introduction">
     <title>Introducción</title>
     <para>
-        Zend_Acl provee la implementación de un sistema simple y
+        <classname>Zend_Acl</classname> provee la implementación de un sistema simple y
         flexible de Listas de Control de Acceso (ACL, por sus siglas en
         inglés) para la administración de privilegios. En general, una
         aplicación puede utilizar las ACL para controlar el acceso a
@@ -47,22 +47,22 @@
     <sect2 id="zend.acl.introduction.resources">
         <title>Acerca de los Recursos</title>
         <para>
-            En Zend_Acl, crear un recurso es muy sencillo. Zend_Acl
+            En <classname>Zend_Acl</classname>, crear un recurso es muy sencillo. <classname>Zend_Acl</classname>
             proporciona el
-            <code>Zend_Acl_Resource_Interface</code>
+            <classname>Zend_Acl_Resource_Interface</classname>
             para facilitar a los desarrolladores la creacción de
             recursos. Una clase solo necesita implementar su interfaz,
             la cual consiste en un método único,
             <code>getResourceId()</code>
-            , para que Zend_Acl considere el objeto como un recurso.
+            , para que <classname>Zend_Acl</classname> considere el objeto como un recurso.
             Adicionalmente,
-            <code>Zend_Acl_Resource</code>
-            se incluye con Zend_Acl como una implementación principal de
-            recursos para los desarrolladores para extenderla hasta
+            <classname>Zend_Acl_Resource</classname>
+            es proporcionado por <classname>Zend_Acl</classname> como un recurso básico de
+            aplicación  para que los desarrolladores puedan extenderla hasta
             donde lo deseen.
         </para>
         <para>
-            Zend_Acl provee un estructura de árbol a la cual pueden ser
+            <classname>Zend_Acl</classname> provee un estructura de árbol a la cual pueden ser
             agregados múltiples recursos (o "Áreas con Controles de
             Acceso").Ya que los recursos son almacenados en esta
             estructura de árbol, estos pueden ser organizados desde lo
@@ -76,14 +76,14 @@
             podría asignar la regla a la ciudad, en lugar de asignar la
             misma regla a cada edificio. Algunos edificios pueden
             necesitar excepciones a la regla, sin embargo, y esto es
-            fácil de hacer en Zend_Acl asignando esta excepción a
+            fácil de hacer en <classname>Zend_Acl</classname> asignando esta excepción a
             cada edificio que necesite una excepción a la regla. Un
             recurso sólo puede heredar de un recurso padre, aunque este
             recurso padre puede tener a la vez su propio recurso padre,
             y así; sucesivamente.
         </para>
         <para>
-            Zend_Acl también soporta privilegios sobre recursos (ej.
+            <classname>Zend_Acl</classname> también soporta privilegios sobre recursos (ej.
             "crear","leer","actualizar", "borrar"), y el desarrollador
             puede asignar reglas que afecten o a todos los privilegios o
             a privilegios específicos sobre un recurso.
@@ -94,21 +94,21 @@
         <title>Acerca de las Reglas</title>
         <para>
             Al igual que los recursos, la creación de un rol
-            también es muy simple. Zend_Acl proporciona
-            <code>Zend_Acl_Role_Interface</code>
+            también es muy simple. <classname>Zend_Acl</classname> proporciona
+           <classname>Zend_Acl_Role_Interface</classname>
             para facilitar a los desarrolladores la creación de
             roles. Una clase solo necesita la implementación de su
             interfaz, la cual consiste en un método único,
             <code>getRoleId()</code>
-            , para que Zend_Acl considere que el objeto es un Rol.
+            , para que <classname>Zend_Acl</classname> considere que el objeto es un Rol.
             Adicionalmente,
-            <code>Zend_Acl_Role</code>
-            está incluido con Zend_Acl como una implementación principal
+           <classname>Zend_Acl_Role</classname>
+            está incluido con <classname>Zend_Acl</classname> como una implementación principal
             del rol para que los desarrolladores la extiendan hasta
             donde lo deseen.
         </para>
         <para>
-            En Zend_Acl, un Rol puede heredar de otro o más roles. Esto
+            En <classname>Zend_Acl</classname>, un Rol puede heredar de otro o más roles. Esto
             es para soportar herencia de reglas entre roles. Por ejemplo,
             un Rol de usuario, como "sally", puede estar bajo uno o más
             roles padre, como "editor" y "administrador". El
@@ -121,7 +121,7 @@
             Dado que la habilidad de herencia desde múltiples roles es
             muy util, múltiples herencias tambien introduce cierto grado
             de complejidad. El siguiente ejemplo ilustra la condición de
-            ambiguedad y como Zend_Acl soluciona esto.
+            ambiguedad y como <classname>Zend_Acl</classname> soluciona esto.
         </para>
         <example
             id="zend.acl.introduction.roles.example.multiple_inheritance">
@@ -139,7 +139,7 @@
                 " es colocado y hereda de los otros tres roles. El orden en
                 el cual estos roles aparecen en el array
                 <code>$parents</code>
-                es importante. Cuando es necesario, Zend_Acl busca por
+                es importante. Cuando es necesario, <classname>Zend_Acl</classname> busca por
                 reglas de acceso definidas no solo para el rol
                 solicitado (aquí, "
                 <code>unUsuario</code>
@@ -153,18 +153,18 @@
             </para>
             <programlisting role="php"><![CDATA[<?php
 require_once 'Zend/Acl.php';
-$acl = new Zend_Acl();
+$acl = new <classname>Zend_Acl</classname>();
 
 require_once 'Zend/Acl/Role.php';
-$acl->addRole(new Zend_Acl_Role('invitado'))
-    ->addRole(new Zend_Acl_Role('miembro'))
-    ->addRole(new Zend_Acl_Role('admin'));
+$acl->addRole(new <classname>Zend_Acl</classname>_Role('invitado'))
+    ->addRole(new <classname>Zend_Acl</classname>_Role('miembro'))
+    ->addRole(new <classname>Zend_Acl</classname>_Role('admin'));
 
 $parents = array('invitado', 'miembro', 'admin');
-$acl->addRole(new Zend_Acl_Role('unUsuario'), $parents);
+$acl->addRole(new <classname>Zend_Acl</classname>_Role('unUsuario'), $parents);
 
 require_once 'Zend/Acl/Resource.php';
-$acl->add(new Zend_Acl_Resource('unRecurso'));
+$acl->add(new <classname>Zend_Acl</classname>_Resource('unRecurso'));
 
 $acl->deny('invitado', 'unRecurso');
 $acl->allow('miembro', 'unRecurso');
@@ -177,7 +177,7 @@ echo $acl->isAllowed('unUsuario', 'unRecurso') ? 'permitido' : 'denegado';]]>
                 <code>unUsuario</code>
                 " y "
                 <code>unRecurso</code>
-                ", Zend_Acl debe buscar por reglas que puedan estar
+                ", <classname>Zend_Acl</classname> debe buscar por reglas que puedan estar
                 definidas para roles "
                 <code>unUsuario</code>
                 " hereda. Primero, el rol "
@@ -185,7 +185,7 @@ echo $acl->isAllowed('unUsuario', 'unRecurso') ? 'permitido' : 'denegado';]]>
                 " es visitado, y no hay regla de acceso definida
                 para éste. Luego, el rol "
                 <code>miembro</code>
-                " es visitado, y Zend_Acl encuentra que aquí hay una
+                " es visitado, y <classname>Zend_Acl</classname> encuentra que aquí hay una
                 regla especificando que "
                 <code>miembro</code>
                 " tiene permiso para acceder a "
@@ -193,7 +193,7 @@ echo $acl->isAllowed('unUsuario', 'unRecurso') ? 'permitido' : 'denegado';]]>
                 ".
             </para>
             <para>
-                Así, Zend_Acl va a seguir examinando las reglas definidas
+                Así, <classname>Zend_Acl</classname> va a seguir examinando las reglas definidas
                 para otros roles padre, sin embargo, encontraría que "
                 <code>invitado</code>
                 " tiene el acceso denegado a "
@@ -207,7 +207,7 @@ echo $acl->isAllowed('unUsuario', 'unRecurso') ? 'permitido' : 'denegado';]]>
                 heredadas de diferentes roles padre.
             </para>
             <para>
-                Zend_Acl resuelve esta ambiguedad completando la
+                <classname>Zend_Acl</classname> resuelve esta ambiguedad completando la
                 consulta cuando encuentra la primera regla que es
                 directamente aplicable a la consulta. En este caso, dado
                 que el rol "
@@ -244,13 +244,13 @@ echo $acl->isAllowed('unUsuario', 'unRecurso') ? 'permitido' : 'denegado';]]>
         <programlisting role="php"><![CDATA[<?php
 require_once 'Zend/Acl.php';
 
-$acl = new Zend_Acl();]]>
+$acl = new <classname>Zend_Acl</classname>();]]>
         </programlisting>
 
         <note>
             <para>
                 Hasta que un desarrollador especifique una regla
-                "permitido", Zend_Acl deniega el acceso a cada privilegio
+                "permitido", <classname>Zend_Acl</classname> deniega el acceso a cada privilegio
                 sobre cada recurso para cada rol.
             </para>
         </note>
@@ -318,9 +318,9 @@ $acl = new Zend_Acl();]]>
 
         <para>
             Para este ejemplo, se usa
-            <code>Zend_Acl_Role</code>
+           <classname>Zend_Acl_Role</classname>
             , pero cualquier objeto que implemente
-            <code>Zend_Acl_Role_Interface</code>
+           <classname>Zend_Acl</classname>_Role_Interface</code>
             es admisible. Estos grupos pueden ser agragados al registro
             de roles de la siguiente manera:
         </para>
@@ -328,27 +328,27 @@ $acl = new Zend_Acl();]]>
         <programlisting role="php"><![CDATA[<?php
 require_once 'Zend/Acl.php';
 
-$acl = new Zend_Acl();
+$acl = new <classname>Zend_Acl</classname>();
 
-// Agregar grupos al registro de roles usando Zend_Acl_Role
+// Agregar grupos al registro de roles usando <classname>Zend_Acl</classname>_Role
 require_once 'Zend/Acl/Role.php';
 
 // Invitado no hereda controles de acceso
-$rolInvitado = new Zend_Acl_Role('invitado');
+$rolInvitado = new <classname>Zend_Acl</classname>_Role('invitado');
 $acl->addRole($rolInvitado);
 
 // Personal hereda de Invitado
-$acl->addRole(new Zend_Acl_Role('personal'), $rolInvitado);
+$acl->addRole(new <classname>Zend_Acl</classname>_Role('personal'), $rolInvitado);
 
 /* alternativamente, lo de arriba puede ser escrito así:
-$rolInvitado = $acl->addRole(new Zend_Acl_Role('personal'), 'invitado');
+$rolInvitado = $acl->addRole(new <classname>Zend_Acl</classname>_Role('personal'), 'invitado');
 //*/
 
 // Editor hereda desde personal
-$acl->addRole(new Zend_Acl_Role('editor'), 'personal');
+$acl->addRole(new <classname>Zend_Acl</classname>_Role('editor'), 'personal');
 
 // Administrador no hereda controles de acceso
-$acl->addRole(new Zend_Acl_Role('administrador'));]]>
+$acl->addRole(new <classname>Zend_Acl</classname>_Role('administrador'));]]>
         </programlisting>
 
     </sect2>
@@ -362,7 +362,7 @@ $acl->addRole(new Zend_Acl_Role('administrador'));]]>
             a los recursos. Tenga en cuenta que no definiremos ningún
             recurso en particular para este ejemplo, el cual está
             simplificado para ilustrar que las reglas se aplican a todos
-            los recursos. Zend_Acl proporciona una forma práctica por la
+            los recursos. <classname>Zend_Acl</classname> proporciona una forma práctica por la
             cual las reglas solo necesitan ser asignadas de lo general a
             lo especifico, minimizando el número de reglas necesarias,
             porque los recursos y roles heredan reglas que están
@@ -378,15 +378,15 @@ $acl->addRole(new Zend_Acl_Role('administrador'));]]>
         <programlisting role="php"><![CDATA[<?php
 require_once 'Zend/Acl.php';
 
-$acl = new Zend_Acl();
+$acl = new <classname>Zend_Acl</classname>();
 
 require_once 'Zend/Acl/Role.php';
 
-$rolInvitado = new Zend_Acl_Role('invitado');
+$rolInvitado = new <classname>Zend_Acl</classname>_Role('invitado');
 $acl->addRole($rolInvitado);
-$acl->addRole(new Zend_Acl_Role('personal'), $rolInvitado);
-$acl->addRole(new Zend_Acl_Role('editor'), 'personal');
-$acl->addRole(new Zend_Acl_Role('administrador'));
+$acl->addRole(new <classname>Zend_Acl</classname>_Role('personal'), $rolInvitado);
+$acl->addRole(new <classname>Zend_Acl</classname>_Role('editor'), 'personal');
+$acl->addRole(new <classname>Zend_Acl</classname>_Role('administrador'));
 
 // Invitado solo puede ver el contenido
 $acl->allow($rolInvitado, null, 'ver');
@@ -455,7 +455,7 @@ echo $acl->isAllowed('administrador', null, 'actualizar') ?
      "permitido" : "denegado"; // permitido porque administrador tiene permitidos todos los privilegios]]>
         </programlisting>
     </sect2>
-</sect1> 
+</sect1>
 <!--
     vim:se ts=4 sw=4 et:
 -->

+ 122 - 122
documentation/manual/es/module_specs/Zend_Amf-Server.xml

@@ -2,8 +2,8 @@
     <title>Zend_Amf_Server</title>
 
     <para>
-        <code>Zend_Amf_Server</code> proporciona un servidor al estilo RPC para 
-        tramitar solicitudes hechas desde Adobe Flash Player utilizando el protocolo AMF. 
+        <code>Zend_Amf_Server</code> proporciona un servidor al estilo RPC para
+        tramitar solicitudes hechas desde Adobe Flash Player utilizando el protocolo AMF.
         Al igual que todas las clases de servidor, Zend Framework sigue la API de
         SoapServer, proporcionando una interfaz para crear servidores fácil de recordar.
 
@@ -27,7 +27,7 @@ echo $respuesta;
         </programlisting>
 
         <para>
-            Alternativamente, en su lugar puede elegir agregar una función simple como 
+            Alternativamente, en su lugar puede elegir agregar una función simple como
             llamada de retorno:
         </para>
 
@@ -41,8 +41,8 @@ echo $respuesta;
 
         <para>
             También puede combinar y examinar la identidad de varias clases y funciones.
-            Al hacerlo, sugerimos darle un espacio de nombres a cada una para 
-            garantizar que no ocurran colisiones entre nombres de métodos; 
+            Al hacerlo, sugerimos darle un espacio de nombres a cada una para
+            garantizar que no ocurran colisiones entre nombres de métodos;
             puede hacerse simplemente pasando una segunda cadena de argumentos para cualquier <code>addFunction()</code> o
             <code>setClass()</code>:
         </para>
@@ -58,13 +58,13 @@ echo $respuesta;
         </programlisting>
 
         <para>
-        El <code>Zend_Amf_Server</code> también permite cargar servicios 
-        dinámicamente, en función de una ruta de directorio ya suministrada. 
-        Puede añadir al servidor tantos directorios como desee. 
+        El <code>Zend_Amf_Server</code> también permite cargar servicios
+        dinámicamente, en función de una ruta de directorio ya suministrada.
+        Puede añadir al servidor tantos directorios como desee.
         El orden en que se añadan los directorios al servidor será el orden en que
-        se realizarán las búsquedas LIFO en los directorios para coincidir 
+        se realizarán las búsquedas LIFO en los directorios para coincidir
         con la clase.
-        El método <code>addDirectory()</code> realiza la acción de añadir directorios. 
+        El método <code>addDirectory()</code> realiza la acción de añadir directorios.
         </para>
 
         <programlisting role="php"><![CDATA[
@@ -74,19 +74,19 @@ $servidor->addDirectory(dirname(__FILE__) .'/../package/');
         </programlisting>
 
         <para>
-        Cuando se llama a servicios remotos, los nombres de los directorios que 
-        contengan las fuentes pueden tener los delimitadores guión bajo (_) y el punto (.). 
-        Cuando se utilize un guión bajo (_) tanto en PEAR como en Zend Framework, 
-        se respetarán los nombres de clases de acuerdo a las convenciones de nomenclatura. 
-        Esto significa que si usted llama al servicio com_Foo_Bar el servidor 
+        Cuando se llama a servicios remotos, los nombres de los directorios que
+        contengan las fuentes pueden tener los delimitadores guión bajo (_) y el punto (.).
+        Cuando se utilize un guión bajo (_) tanto en PEAR como en Zend Framework,
+        se respetarán los nombres de clases de acuerdo a las convenciones de nomenclatura.
+        Esto significa que si usted llama al servicio com_Foo_Bar el servidor
         buscará el archivo Bar.php en cada una de las rutas incluidas en <code>com/Foo/Bar.php</code>.
-        Si se usa la notación punto para su servicio remoto como <code>com.Foo.Bar</code> 
+        Si se usa la notación punto para su servicio remoto como <code>com.Foo.Bar</code>
         cada ruta incluida deberá tener <code>com/Foo/Bar.php</code> agregado al final
         para autocargar Bar.php.
         </para>
 
         <para>
-            Todos las solicitudes AMF enviadas al script serán manejadas 
+            Todos las solicitudes AMF enviadas al script serán manejadas
             por el servidor, y este devolverá una respuesta AMF.
         </para>
     </example>
@@ -95,9 +95,9 @@ $servidor->addDirectory(dirname(__FILE__) .'/../package/');
         <title>Todos los métodos y las funciones agregadas requieren bloques de documentación (docblocks)</title>
 
         <para>
-            Como todos los demás componentes del servidor en Zend Framework, 
-            debe documentar los métodos de su clase usando PHP docblocks. 
-            Como mínimo, necesita proporcionar anotaciones para cada argumento 
+            Como todos los demás componentes del servidor en Zend Framework,
+            debe documentar los métodos de su clase usando PHP docblocks.
+            Como mínimo, necesita proporcionar anotaciones para cada argumento
             así como para el valor de retorno. Como ejemplos:
         </para>
 
@@ -149,48 +149,48 @@ class Mundo
         </para>
 
         <para>
-            Por ejemplo, digamos que usted ya ha creado su servidor y lo ha 
+            Por ejemplo, digamos que usted ya ha creado su servidor y lo ha
             puesto en el fichero <code>server.php</code> en el directorio raíz (root)
-            de su aplicación, por lo tanto la URI es <code>http://example.com/server.php</code>. 
+            de su aplicación, por lo tanto la URI es <code>http://example.com/server.php</code>.
             En este caso, usted debería modificar su fichero services-config.xml
             poniendo este valor como atributo al punto final del canal uri.
        </para>
         <para>
-             Si nunca ha creado un fichero services-config.xml puede hacerlo 
-             abriendo su proyecto en la ventana del navegador. 
+             Si nunca ha creado un fichero services-config.xml puede hacerlo
+             abriendo su proyecto en la ventana del navegador.
              Haga clic derecho sobre el nombre del proyecto y seleccione 'properties' (propiedades).
              En el cuadro de diálogo 'properties' del proyecto ir al menú ‘Flex Build Path' (Crear ruta Flex),
-             luego en la pestaña ‘Library path’ (ruta de biblioteca) asegúrese 
+             luego en la pestaña ‘Library path’ (ruta de biblioteca) asegúrese
              de que el fichero 'rpc.swc' sea añadido a su ruta de proyectos
-             y pulse Ok (Aceptar) para cerrar la ventana.  
+             y pulse Ok (Aceptar) para cerrar la ventana. 
         </para>
-        <para>          
-            También necesitará indicarle al compilador que debe usar 
-            services-config.xml para encontrar el punto final de RemoteObject. 
-            Para hacerlo, abra de nuevo el panel de propiedades de su proyecto 
+        <para>         
+            También necesitará indicarle al compilador que debe usar
+            services-config.xml para encontrar el punto final de RemoteObject.
+            Para hacerlo, abra de nuevo el panel de propiedades de su proyecto
             haciendo clic en el botón derecho sobre el proyecto en la carpeta del
-            navegador y seleccione 'properties' (propiedades). 
+            navegador y seleccione 'properties' (propiedades).
             Ahora seleccione ‘Flex Compiler' (Compilador Flex) y añada la cadena:
-            -services “services-config.xml". 
-            Presione 'Apply' (Aplicar) y luego en OK para volver a actualizar la opción. 
-            Lo que acaba de hacer es decirle al compilador Flex que busque en el fichero 
+            -services “services-config.xml".
+            Presione 'Apply' (Aplicar) y luego en OK para volver a actualizar la opción.
+            Lo que acaba de hacer es decirle al compilador Flex que busque en el fichero
             services-config.xml aquellas variables que se usarán en tiempo de
-            ejecución por la clase RemotingObject.           
+            ejecución por la clase RemotingObject.          
         </para>
-        <para>         
+        <para>        
             Ahora, para conectarnos a nuestros métodos remotos debemos indicarle a Flex
-            qué fichero de configuración de servicios utilizar. 
-            Por esta razón creamos un nuevo fichero 'services-config.xml' 
-            en la carpeta src del proyecto Flex. 
-            Con click derecho sobre el proyecto y seleccionando 'new'(nuevo) 
-            'File' (fichero), se abrirá una nueva ventana. 
-            Seleccione la carpeta del proyecto y luego nombre el archivo 
-            'services-config.xml' y presione 'finish' (finalizar).          
-        </para>
-        <para>
-            Flex ha creado y abierto el nuevo fichero services-config.xml. 
-            Utilice el siguiente texto de ejemplo para su fichero services-config.xml. 
-            Asegúrese de actualizar su punto final para que concuerde con el servidor. 
+            qué fichero de configuración de servicios utilizar.
+            Por esta razón creamos un nuevo fichero 'services-config.xml'
+            en la carpeta src del proyecto Flex.
+            Con click derecho sobre el proyecto y seleccionando 'new'(nuevo)
+            'File' (fichero), se abrirá una nueva ventana.
+            Seleccione la carpeta del proyecto y luego nombre el archivo
+            'services-config.xml' y presione 'finish' (finalizar).         
+        </para>
+        <para>
+            Flex ha creado y abierto el nuevo fichero services-config.xml.
+            Utilice el siguiente texto de ejemplo para su fichero services-config.xml.
+            Asegúrese de actualizar su punto final para que concuerde con el servidor.
             Asegúrese también de guardar el fichero.
         </para>
 
@@ -223,7 +223,7 @@ class Mundo
         </programlisting>
 
         <para>
-            Hay dos puntos clave en el ejemplo. 
+            Hay dos puntos clave en el ejemplo.
             En primer lugar, pero último en el listado, creamos un canal AMF,
             y especificamos el punto final como la URL a nuestro <code>Zend_Amf_Server</code>:
         </para>
@@ -238,12 +238,12 @@ class Mundo
 
         <para>
             Advierta que a este canal le hemos dado un identificador, "zend-endpoint".
-            El ejemplo crea un servicio cuyo destino hace referencia a este canal, 
+            El ejemplo crea un servicio cuyo destino hace referencia a este canal,
             asignándole también un ID, en este caso es "zend".
         </para>
 
         <para>
-            Dentro de nuestros ficheros Flex MXML, necesitamos vincular un RemoteObject al servicio. 
+            Dentro de nuestros ficheros Flex MXML, necesitamos vincular un RemoteObject al servicio.
             En MXML, esto podría hacerse así:
         </para>
 
@@ -257,9 +257,9 @@ class Mundo
         </programlisting>
 
         <para>
-            Aquí, hemos definido un nuevo objeto remoto identificado por "myservice" 
+            Aquí, hemos definido un nuevo objeto remoto identificado por "myservice"
             vinculado destino de servicio "zend" que hemos definido en el fichero
-            <code>services-config.xml</code>. Entonces invocamos sus métodos en 
+            <code>services-config.xml</code>. Entonces invocamos sus métodos en
             nuestro ActionScript simplemente llamando a "myservice.&lt;method&gt;".
             (En este caso, el código original "RoundTrip" es el nombre de nuestra
             aplicación Flex). Un ejemplo:
@@ -291,18 +291,18 @@ myservice.world.hello("Wade");
         <title>Manejo de errores</title>
 
         <para>
-            Por defecto, todas las excepciones producidas en sus 
-            clases o funciones adjuntas serán capturados y devueltas como 
-            mensajes de error de AMF (AMF ErrorMessages). 
+            Por defecto, todas las excepciones producidas en sus
+            clases o funciones adjuntas serán capturados y devueltas como
+            mensajes de error de AMF (AMF ErrorMessages).
             Sin embargo, el contenido de estos objetos de mensajes de error
             variará dependiendo de si el servidor está o no en modo "producción"
             (el estado por defecto).
         </para>
 
         <para>
-            Cuando se está en modo de producción, únicamente el código de excepción será devuelto. 
+            Cuando se está en modo de producción, únicamente el código de excepción será devuelto.
             Si desactiva el modo de producción, algo que debe hacerse sólo
-            para probar  -- serán devueltos más detalles de la excepción: 
+            para probar  -- serán devueltos más detalles de la excepción:
             el mensaje de excepción (error), línea y backtrace serán adjuntados.
         </para>
 
@@ -330,22 +330,22 @@ $servidor->setProduction(true);
             <para>
                 Sugerimos deshabilitar el modo de producción solo cuando se está
                 en modo de desarrollo.
-                Los mensajes de excepción y los backtraces puede contener información 
-                sensible del sistema, y no desea que se pueda acceder a ellas 
-                desde el exterior. 
-                Aunque AMF es un formato binario, ahora al ser abierta la especificación,  
+                Los mensajes de excepción y los backtraces puede contener información
+                sensible del sistema, y no desea que se pueda acceder a ellas
+                desde el exterior.
+                Aunque AMF es un formato binario, ahora al ser abierta la especificación, 
                 cualquiera puede potencialmente deserializar los datos.
             </para>
         </note>
 
         <para>
-            Un área en la que se debe tener especialmente mucho cuidado son los 
+            Un área en la que se debe tener especialmente mucho cuidado son los
             errores propios de PHP.
             Cuando la directiva INI <code>display_errors</code> está habilitada,
             los errores de PHP de cualquier nivel del reporte actual serán
-            pasados directamente a la salida, y potencialmente se podrían hacer 
+            pasados directamente a la salida, y potencialmente se podrían hacer
             estragos con las respuestas de AMF.
-            Para prevenir estos problemas, sugerimos deshabilitar la directiva 
+            Para prevenir estos problemas, sugerimos deshabilitar la directiva
             <code>display_errors</code> cuando se está en modo de producción.
         </para>
     </sect2>
@@ -355,8 +355,8 @@ $servidor->setProduction(true);
 
         <para>
             En ocasiones es posible que quiera manipular ligeramente el objeto
-            respuesta, es bastante usual querer devolver algunas cebeceras 
-            de mensajes adicionales. Puede hacerlo mediante el método del servidor 
+            respuesta, es bastante usual querer devolver algunas cebeceras
+            de mensajes adicionales. Puede hacerlo mediante el método del servidor
             <code>handle()</code> que devuelve el objeto respuesta.
         </para>
 
@@ -364,8 +364,8 @@ $servidor->setProduction(true);
             <title>Agregar cabeceras de mensaje a la respuesta de AMF</title>
 
             <para>
-                En este ejemplo, añadiremos la cabecera de mensaje (MessageHeader) 
-                "foo" con el valor 'bar' a la respuesta antes de devolverla.            
+                En este ejemplo, añadiremos la cabecera de mensaje (MessageHeader)
+                "foo" con el valor 'bar' a la respuesta antes de devolverla.           
             </para>
 
             <programlisting role="php"><![CDATA[
@@ -381,21 +381,21 @@ echo $respuesta;
         <title>Objetos tipados</title>
 
         <para>
-            Similarmente a SOAP, AMF permite pasar objetos entre cliente y servidor. 
+            Similarmente a SOAP, AMF permite pasar objetos entre cliente y servidor.
             Esto le da una gran flexibilidad y coherencia a ambos entornos.
         </para>
 
         <para>
-            <code>Zend_Amf</code> ofrece tres métodos para mapear ActionScript 
+            <code>Zend_Amf</code> ofrece tres métodos para mapear ActionScript
              y objetos PHP.
         </para>
 
         <itemizedlist>
             <listitem>
                 <para>
-                    Primero, usted puede crear uniones explícitas a nivel del servidor, 
+                    Primero, usted puede crear uniones explícitas a nivel del servidor,
                     utilizando el método <code>setClassMap()</code>.
-                    El primer argumento es el nombre de la clase de ActionScript,  
+                    El primer argumento es el nombre de la clase de ActionScript, 
                     el segundo es el nombre de la clase PHP que lo mapea:
                 </para>
 
@@ -409,7 +409,7 @@ $servidor->setClassMap('ContactVO', 'Contact');
             <listitem>
                 <para>
                     Segundo, en su clase PHP puede ajustar la propiedad como pública
-                    mediante <code>$_explicitType</code>, con el valor 
+                    mediante <code>$_explicitType</code>, con el valor
                     representativo de la clase ActionScript que mapear:
                 </para>
 
@@ -424,7 +424,7 @@ class Contact
 
             <listitem>
                 <para>
-                    Tercero, en un sentido similar, puede definir como público el método                
+                    Tercero, en un sentido similar, puede definir como público el método               
                     <code>getASClassName()</code> dentro de su clase.
                     Este método debe devolver la clase ActionScript apropiada:
                  </para>
@@ -443,13 +443,13 @@ class Contact
         </itemizedlist>
 
         <para>
-            Aunque hemos creado ContactVO en el servidor, 
-            ahora tenemos que hacer su clase correspondiente en AS3  
+            Aunque hemos creado ContactVO en el servidor,
+            ahora tenemos que hacer su clase correspondiente en AS3 
             para que el servidor pueda mapear el objeto.
         </para>
         <para>
-            Haga clic derecho sobre la carpeta src del proyecto Flex y seleccione New -> ActionScript File. 
-            Nombre el fichero como ContactVO y pulse 'finish' (finalizar) para verlo. 
+            Haga clic derecho sobre la carpeta src del proyecto Flex y seleccione New -> ActionScript File.
+            Nombre el fichero como ContactVO y pulse 'finish' (finalizar) para verlo.
             Copie el siguiente código en el fichero para terminar de crear la clase.
         </para>
         <programlisting role="as"><![CDATA[
@@ -472,14 +472,14 @@ package
             </programlisting>
         <para>
             La clase es sintácticamente equivalente a la de PHP del mismo nombre.
-            Los nombres de variables son exactamente los mismos y necesitan estar 
+            Los nombres de variables son exactamente los mismos y necesitan estar
             en el mismo contenedor para trabajar correctamente. Hay
-            dos meta tags AS3 únicos en esta clase. 
+            dos meta tags AS3 únicos en esta clase.
             El primero es vinculable y dispara un evento cuando es actualizada.
-            El segundo es el tag RemoteClass y define que esta clase puede tener 
+            El segundo es el tag RemoteClass y define que esta clase puede tener
             mapeado un objeto remoto con un nombre de alias, en este caso <code>ContactVO</code>
-            Es obligatorio que en esta etiqueta(tag), el valor que se estableció es la clase PHP 
-            sea estrictamente equivalente.               
+            Es obligatorio que en esta etiqueta(tag), el valor que se estableció es la clase PHP
+            sea estrictamente equivalente.              
         </para>
         <programlisting role="as"><![CDATA[
 [Bindable]
@@ -491,8 +491,8 @@ private function getContactHandler(event:ResultEvent):void {
 ]]>
         </programlisting>
         <para>
-            El siguiente resultado del evento debido a la llamada de servicio, 
-            se incorporó instantáneamente a ContactVO de Flex. 
+            El siguiente resultado del evento debido a la llamada de servicio,
+            se incorporó instantáneamente a ContactVO de Flex.
             Cualquier cosa que esté ligada a myContact será actualizada con los
             datos retornados por ContactVO.
         </para>
@@ -503,29 +503,29 @@ private function getContactHandler(event:ResultEvent):void {
 
         <para>
             La conexión a <code>Zend_Amf_Server</code> desde su proyecto Flash
-            es ligeramente distinta a la de Flex. Sin embargo una vez que la conexión 
-            con Flash funcione con <code>Zend_Amf_Server</code> lo hará igual 
-            modo que con Flex. El siguiente ejemplo también puede ser utilizado 
-            desde un fichero Flex AS3. Para nuestra conexión vamos a reutilizar 
+            es ligeramente distinta a la de Flex. Sin embargo una vez que la conexión
+            con Flash funcione con <code>Zend_Amf_Server</code> lo hará igual
+            modo que con Flex. El siguiente ejemplo también puede ser utilizado
+            desde un fichero Flex AS3. Para nuestra conexión vamos a reutilizar
             la misma configuracion <code>Zend_Amf_Server</code> junto a la clase Mundo.
         </para>
         <para>
-            Abra Flash CS y cree un nuevo fichero Flash (ActionScript 3). 
-            Nombre al documento como ZendExample.fla y guárdelo en una carpeta 
-            que utilizará para este ejemplo. Cree una nuevo fichero AS3 en el mismo 
+            Abra Flash CS y cree un nuevo fichero Flash (ActionScript 3).
+            Nombre al documento como ZendExample.fla y guárdelo en una carpeta
+            que utilizará para este ejemplo. Cree una nuevo fichero AS3 en el mismo
             directorio y llámelo Main.as. Abra ambos ficheros con su editor.
             Ahora vamos a conectar las dos ficheros a través de la clase documento.
-            Seleccione ZendExample y haga clic en el escenario. 
+            Seleccione ZendExample y haga clic en el escenario.
             Desde el panel del escenario cambie la propiedad de la clase Document a Main.
-            Esto vincula al fichero Main.as con la interfaz de usuario en ZendExample.fla. 
+            Esto vincula al fichero Main.as con la interfaz de usuario en ZendExample.fla.
             Cuando ejecute el fichero ZendExample de Flash se ejecutará ahora
-            la clase Main.as. 
+            la clase Main.as.
             El paso siguiente será añadir ActionScript para hacer una lamada AMF.
         </para>
         <para>
-            Ahora vamos a hacer una clase Main(principal) para que podamos enviar 
-            los datos al servidor y mostrar el resultado. 
-            Copie el código siguiente en su fichero Main.as y luego vamos a recorrer 
+            Ahora vamos a hacer una clase Main(principal) para que podamos enviar
+            los datos al servidor y mostrar el resultado.
+            Copie el código siguiente en su fichero Main.as y luego vamos a recorrer
             el código para describir cuál es el papel de cada elemento.
         </para>
         <programlisting role="as"><![CDATA[
@@ -565,10 +565,10 @@ package {
 
 
         <para>
-            Primero tenemos que importar dos bibliotecas de ActionScript que realizan 
-            la mayor parte del trabajo. La primera es NetConnection que actúa como un 
-            tubo bidireccional entre el cliente y el servidor. 
-            La segunda es un objeto Responder que maneja los valores de retorno desde 
+            Primero tenemos que importar dos bibliotecas de ActionScript que realizan
+            la mayor parte del trabajo. La primera es NetConnection que actúa como un
+            tubo bidireccional entre el cliente y el servidor.
+            La segunda es un objeto Responder que maneja los valores de retorno desde
             el servidor, y que están relacionados con el éxito o el fracaso de la llamada.
        </para>
         <programlisting role="as"><![CDATA[
@@ -577,7 +577,7 @@ import flash.net.Responder;
 ]]>
         </programlisting>
         <para>
-            En la clase necesitaremos tres variables para representar a NetConnection, 
+            En la clase necesitaremos tres variables para representar a NetConnection,
             Responder, y la URL del gateway a nuestra instalación <code>Zend_Amf_Server</code>.
         </para>
         <programlisting role="as"><![CDATA[
@@ -587,9 +587,9 @@ private var responder:Responder;
 ]]>
         </programlisting>
         <para>
-            En el constructor Main creamos un Responder(respondedor) y una nueva conexión al 
-            punto final de <code>Zend_Amf_Server</code>. El respondedor define dos 
-            diferentes métodos para manejar la respuesta desde el servidor. 
+            En el constructor Main creamos un Responder(respondedor) y una nueva conexión al
+            punto final de <code>Zend_Amf_Server</code>. El respondedor define dos
+            diferentes métodos para manejar la respuesta desde el servidor.
             Por simplicidad los hemos llamado onResult y onFault.
         </para>
         <programlisting role="as"><![CDATA[
@@ -599,9 +599,9 @@ connection.connect(gateway);
 ]]>
         </programlisting>
         <para>
-            La función onComplete se ejecuta tan pronto como la construcción 
-            ha concluido, enviando los datos al servidor. 
-            Necesitamos añadir una línea más que hace una llamada a la función  
+            La función onComplete se ejecuta tan pronto como la construcción
+            ha concluido, enviando los datos al servidor.
+            Necesitamos añadir una línea más que hace una llamada a la función 
             <code>Zend_Amf_Server</code> Mundo->hola.
         </para>
         <programlisting role="as"><![CDATA[
@@ -609,11 +609,11 @@ connection.call("Mundo.hola", responder, params);
 ]]>
         </programlisting>
         <para>
-            Cuando creamos la variable responder hemos definido las funciones onResult y onFault 
-            para manejar la respuesta proveniente del servidor. 
-            Hemos añadido la función OnResult para el resultado exitoso desde el servidor. 
-            Cada vez que se ejecuta apropiadamente el manejo de conexión con el 
-            servidor, el manejador de eventos llama esta función.  
+            Cuando creamos la variable responder hemos definido las funciones onResult y onFault
+            para manejar la respuesta proveniente del servidor.
+            Hemos añadido la función OnResult para el resultado exitoso desde el servidor.
+            Cada vez que se ejecuta apropiadamente el manejo de conexión con el
+            servidor, el manejador de eventos llama esta función. 
         </para>
         <programlisting role="as"><![CDATA[
 private function onResult(result:Object):void {
@@ -623,9 +623,9 @@ private function onResult(result:Object):void {
 ]]>
         </programlisting>
         <para>
-            La función onFault, se llama si hubo una respuesta nula desde el servidor. 
-            Esto ocurre cuando hay un error en el servidor, la URL al servidor es inválida, 
-            el servicio remoto o método no existe o cualquier otra cuestión 
+            La función onFault, se llama si hubo una respuesta nula desde el servidor.
+            Esto ocurre cuando hay un error en el servidor, la URL al servidor es inválida,
+            el servicio remoto o método no existe o cualquier otra cuestión
             relacionada con la conexión.
         </para>
         <programlisting role="as"><![CDATA[
@@ -636,10 +636,10 @@ private function onFault(fault:Object):void {
         </programlisting>
         <para>
             La inclusión de ActionScript para realizar la conexión remota ha finalizado.
-            Al ejecutar el fichero ZendExample, se establece una conexión con Zend_Amf. 
-            En resumen, se han añadido las variables requeridas para abrir una conexión 
-            con el servidor remoto, se han definido qué métodos se deben utilizar cuando su aplicación 
-            recibe una respuesta desde el servidor, y finalmente se han mostrado los datos de salida 
+            Al ejecutar el fichero ZendExample, se establece una conexión con Zend_Amf.
+            En resumen, se han añadido las variables requeridas para abrir una conexión
+            con el servidor remoto, se han definido qué métodos se deben utilizar cuando su aplicación
+            recibe una respuesta desde el servidor, y finalmente se han mostrado los datos de salida
             devueltos a través de trace().
         </para>
 

+ 8 - 8
documentation/manual/es/module_specs/Zend_Amf.xml

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

+ 158 - 165
documentation/manual/es/module_specs/Zend_Auth.xml

@@ -1,61 +1,57 @@
-<sect1 id="zend.auth.introduction">
-
-    <title>Introduction</title>
-
+<sect1 id="zend.auth.introduction">
+<?xml version="1.0" encoding="UTF-8"?>
+    <title>Introducción</title>
     <para>
-        Zend_Auth provides an API for authentication and includes concrete authentication adapters for
-        common use case scenarios.
+        Zend_Auth provee una API para autenticación e incluye adaptadores concretos de autenticación para
+        escenarios de casos de uso común.
     </para>
-
     <para>
-        Zend_Auth is concerned only with <emphasis role="strong">authentication</emphasis> and not with
-        <emphasis role="strong">authorization</emphasis>. Authentication is loosely defined as determining
-        whether an entity actually is what it purports to be (i.e., identification), based on some set of
-        credentials. Authorization, the process of deciding whether to allow an entity access to, or to
-        perform operations upon, other entities is outside the scope of Zend_Auth. For more information about
-        authorization and access control with the Zend Framework, please see
-        <link linkend="zend.acl">Zend_Acl</link>.
+        Zend_Auth es concerniente sólo con <emphasis role="strong">autenticación</emphasis> y no con
+        <emphasis role="strong">autorización</emphasis>. Autenticación es vagamente definido como: determinar
+        si una entidad realmente es lo que pretende ser (o sea, identificación), basandose en un grupo de
+    credenciales. Autorización, el proceso de decidir si se permite a una entidad: acceso a, o el
+    realizar operaciones en, otras entidades esta fuera del alcance de Zend_Auth. Para más información sobre
+    autorización y control de acceso con Zend Framework, por favor vea
+    <link linkend="zend.acl">Zend_Acl</link>.
     </para>
-
     <note>
         <para>
-            The <code>Zend_Auth</code> class implements the Singleton pattern - only one instance of the class is
-            available - through its static <code>getInstance()</code> method. This means that using the <code>new</code>
-            operator and the <code>clone</code> keyword will not work with the <code>Zend_Auth</code> class; use
-            <code>Zend_Auth::getInstance()</code> instead.
+            La clase <code>Zend_Auth</code> implementa el patrón Singleton - sólo una instancia de la clase está
+            disponible - a través de su método estático <code>getInstance()</code>. Esto significa que usar el operador <code>new</code>
+            y la keyword <code>clone</code> no va a funcionar con la clase <code>Zend_Auth</code> : use
+            <code>Zend_Auth::getInstance()</code> en su lugar.
         </para>
     </note>
-
     <sect2 id="zend.auth.introduction.adapters">
 
-        <title>Adapters</title>
+        <title>Adaptadores</title>
 
         <para>
-            A Zend_Auth adapter is used to authenticate against a particular type of authentication service,
-            such as LDAP, RDBMS, or file-based storage. Different adapters are likely to have vastly different
-            options and behaviors, but some basic things are common among authentication adapters. For example,
-            accepting authentication credentials (including a purported identity), performing queries against the
-            authentication service, and returning results are common to Zend_Auth adapters.
+            Un adaptador Zend_Auth es usado para autenticar en contra de un tipo particular de servicio de autenticación,
+            como LDAP, RDBMS, o almacenamiento basado en ficheros. Diferentes adaptadores pueden tener opciones y compotamientos
+            muy diferentes, pero algunas cosas básicas son comunes entre los adaptadores de autenticación. Por ejemplo,
+            aceptar credenciales de autenticación (incluyendo una identidad supuesta), realizar consultas ante el
+            servicio de autenticación, y regresar resultados, son comunes para los adaptadores Zend_Auth.
         </para>
 
         <para>
-            Each Zend_Auth adapter class implements <code>Zend_Auth_Adapter_Interface</code>. This interface defines one
-            method, <code>authenticate()</code>, that an adapter class must implement for performing an authentication
-            query. Each adapter class must be prepared prior to calling <code>authenticate()</code>. Such adapter
-            preparation includes setting up credentials (e.g., username and password) and defining values for adapter-
-            specific configuration options, such as database connection settings for a database table adapter.
+            Cada clase adaptadora Zend_Auth implementa <code>Zend_Auth_Adapter_Interface</code>. Esta interface define un
+            metodo, <code>authenticate()</code>, que la clase adaptadora debe implementar para realizar una peticion de
+            autenticación. Cada clase adaptadora debe ser preparada antes de llamar a <code>authenticate()</code>. Esta preparación
+            del adaptador incluye la creación de credenciales (p.ej. nombre de usuario y contraseña) y la definición de valores para opciones
+            de configuración especificos del adaptador, como valores de coneccion a base de datos para un adaptador de tabla de base de datos.
         </para>
 
         <para>
-            The following is an example authentication adapter that requires a username and password to be set
-            for authentication. Other details, such as how the authentication service is queried, have been
-            omitted for brevity:
-
+            El siguente ejemplo es un adaptador de autenticación que requiere que un nombre de usuario y contraseña sean especificados
+            para la autenticación. Otros detalles, como la forma de realizar peticiones al servicio de autenticación, han sido
+            omitídos por brevedad:
+           
             <programlisting role="php"><![CDATA[
 class MyAuthAdapter implements Zend_Auth_Adapter_Interface
 {
     /**
-     * Sets username and password for authentication
+     * Establece nombre de usuario y contraseña para autenticacón
      *
      * @return void
      */
@@ -65,10 +61,10 @@ class MyAuthAdapter implements Zend_Auth_Adapter_Interface
     }
 
     /**
-     * Performs an authentication attempt
+     * Realiza un intento de autenticación
      *
-     * @throws Zend_Auth_Adapter_Exception If authentication cannot
-     *                                     be performed
+     * @throws Zend_Auth_Adapter_Exception Si la autenticación no puede
+     *                                     ser realizada
      * @return Zend_Auth_Result
      */
     public function authenticate()
@@ -79,62 +75,62 @@ class MyAuthAdapter implements Zend_Auth_Adapter_Interface
 ]]>
             </programlisting>
 
-            As indicated in its docblock, <code>authenticate()</code> must return an instance of
-            <code>Zend_Auth_Result</code> (or of a class derived from <code>Zend_Auth_Result</code>). If for some
-            reason performing an authentication query is impossible, <code>authenticate()</code> should throw
-            an exception that derives from <code>Zend_Auth_Adapter_Exception</code>.
+            Como se ha indicado en su docblock, <code>authenticate()</code> debe regresar una instancia de
+            <code>Zend_Auth_Result</code> (o de una clase derivada de <code>Zend_Auth_Result</code>). Si por alguna
+            razón es imposible realizar una petición de autenticación, <code>authenticate()</code> debería arrojar
+            una excepción que se derive de <code>Zend_Auth_Adapter_Exception</code>.
         </para>
 
     </sect2>
 
     <sect2 id="zend.auth.introduction.results">
 
-        <title>Results</title>
+        <title>Resultados</title>
 
         <para>
-            Zend_Auth adapters return an instance of <code>Zend_Auth_Result</code> with
-            <code>authenticate()</code> in order to represent the results of an authentication attempt. Adapters
-            populate the <code>Zend_Auth_Result</code> object upon construction, so that the following four methods
-            provide a basic set of user-facing operations that are common to the results of Zend_Auth adapters:
+            Los adaptadores Zend_Auth regresan una instancia de <code>Zend_Auth_Result</code> con
+            <code>authenticate()</code> para representar el resultado de un intento de autenticación. Los adaptadores
+            llenan el objeto <code>Zend_Auth_Result</code> en cuanto se construye, así que los siguientes cuatro métodos
+            proveen un grupo básico de operaciones "frente al usuario" que son comunes a los resultados de adaptadores Zend_Auth:
             <itemizedlist>
                 <listitem>
                     <para>
-                        <code>isValid()</code> - returns true if and only if the result represents a
-                        successful authentication attempt
+                        <code>isValid()</code> - regresa true si y solo si el resultado representa un
+                        intento de autenticación exitoso
                     </para>
                 </listitem>
                 <listitem>
                     <para>
-                        <code>getCode()</code> - returns a <code>Zend_Auth_Result</code> constant identifier for
-                        determining the type of authentication failure or whether success has occurred. This may be
-                        used in situations where the developer wishes to distinguish among several authentication
-                        result types. This allows developers to maintain detailed authentication result statistics,
-                        for example. Another use of this feature is to provide specific, customized messages to
-                        users for usability reasons, though developers are encouraged to consider the risks of
-                        providing such detailed reasons to users, instead of a general authentication failure
-                        message. For more information, see the notes below.
+                        <code>getCode()</code> - regresa una constante identificadora <code>Zend_Auth_Result</code> para
+                        determinar el tipo de fallo en la autenticación o si ha sido exitosa. Este puede ser usado
+                        en situaciones cuando el desarrollador desea distinguir entre varios tipos de resultados
+                        de autenticación. Esto permite a los desarrolladores, por ejemplo, mantener estadísticas
+                        detalladas de los resultados de autenticación. Otro uso de esta característica es: proporcionar
+                        al usuario mensajes específicos detallados por razones de usabilidad, aunque los desarrolladores
+                        son	exhortados a considerar el riesgo de proporcionar tales detalles a los usuarios, en vez de
+                        un mensaje general de fallo en la autenticación. Para más información, vea las siguientes notas:
                     </para>
                 </listitem>
                 <listitem>
                     <para>
-                        <code>getIdentity()</code> - returns the identity of the authentication attempt
+                        <code>getIdentity()</code> - regresa la identidad del intento de autenticación
                     </para>
                 </listitem>
                 <listitem>
                     <para>
-                        <code>getMessages()</code> - returns an array of messages regarding a failed
-                        authentication attempt
+                        <code>getMessages()</code> - regresa un arreglo de mensajes pertinentes a un fallido
+                        intento de autenticación
                     </para>
                 </listitem>
             </itemizedlist>
         </para>
 
         <para>
-            A developer may wish to branch based on the type of authentication result in order to perform more
-            specific operations. Some operations developers might find useful are locking accounts after too many
-            unsuccessful password attempts, flagging an IP address after too many nonexistent identities are
-            attempted, and providing specific, customized authentication result messages to the user. The following
-            result codes are available:
+            El desarrollador podría desear ramificar basado en el tipo de resultado de la autenticación a fin de
+            realizar operaciones mas específicas. Algunas operaciones que los desarrolladores podrían encontrar útiles
+            son: bloquear cuentas despues de varios intentos fallidos de ingresar una contraseña, marcar una dirección IP
+            despues de que ha intentado muchas identidades no existentes, y porporcionar al usuario mensajes especificos
+            resultados de la autenticación. Los siguientes codigos de resultado están disponibles:
 
             <programlisting role="php"><![CDATA[
 Zend_Auth_Result::SUCCESS
@@ -149,28 +145,28 @@ Zend_Auth_Result::FAILURE_UNCATEGORIZED
         </para>
 
         <para>
-            The following example illustrates how a developer may branch on the result code:
+            El siguiente ejemplo ilustra como un desarrollador podría ramificar basado en el código resultado:
 
             <programlisting role="php"><![CDATA[
-// inside of AuthController / loginAction
+// debtri de AuthController / loginAction
 $result = $this->_auth->authenticate($adapter);
 
 switch ($result->getCode()) {
 
     case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
-        /** do stuff for nonexistent identity **/
+        /** realiza algo para identidad inexistente **/
         break;
 
     case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
-        /** do stuff for invalid credential **/
+        /** realiza algo para credencial invalida **/
         break;
 
     case Zend_Auth_Result::SUCCESS:
-        /** do stuff for successful authentication **/
+        /** realiza algo para autenticación exitosa **/
         break;
 
     default:
-        /** do stuff for other failure **/
+        /** realiza algo para otras fallas **/
         break;
 }
 ]]>
@@ -182,40 +178,38 @@ switch ($result->getCode()) {
 
     <sect2 id="zend.auth.introduction.persistence">
 
-        <title>Identity Persistence</title>
+        <title>Persistencia de Identidad</title>
 
         <para>
-            Authenticating a request that includes authentication credentials is useful per se, but it is also
-            important to support maintaining the authenticated identity without having to present the
-            authentication credentials with each request.
+            Autenticar una petición que incluye credenciales de autenticación es util por sí mismo, pero también
+            es importante el soportar mantener la identidad autenticada sin tener que presentar las credenciales
+            de autenticación con cada petición.
         </para>
 
         <para>
-            HTTP is a stateless protocol, however, and techniques such as cookies and sessions have been
-            developed in order to facilitate maintaining state across multiple requests in server-side web
-            applications.
+            HTTP es un protocolo sin estado, sin embargo, se han desarrollado técnicas como las cookies y sesiones
+            a fin de facilitar mantener el estado a través de multiples peticiones en aplicaciones web del lado del servidor.
         </para>
 
         <sect3 id="zend.auth.introduction.persistence.default">
 
-            <title>Default Persistence in the PHP Session</title>
+            <title>Persistencia por Defecto en la Sesión PHP</title>
 
             <para>
-                 By default, <code>Zend_Auth</code> provides persistent storage of the identity from a successful
-                 authentication attempt using the PHP session. Upon a successful authentication attempt,
-                 <code>Zend_Auth::authenticate()</code> stores the identity from the authentication result into
-                 persistent storage. Unless configured otherwise, <code>Zend_Auth</code> uses a storage class named
-                 <code>Zend_Auth_Storage_Session</code>, which, in turn, uses
-                 <link linkend="zend.session">Zend_Session</link>. A custom class may instead be used by providing an
-                 object that implements <code>Zend_Auth_Storage_Interface</code> to
-                 <code>Zend_Auth::setStorage()</code>.
+                 Por defecto, <code>Zend_Auth</code> provee almacenamiento persistente de la identidad desde un intento
+                 de autenticación exitoso usando la sesión PHP. En un intento de autenticación exitoso,
+                 <code>Zend_Auth::authenticate()</code> almacena la identidad del resultado de autenticación en
+                 almacenamiento persistente. A menos que se configure diferente, <code>Zend_Auth</code> usa una clase de
+                 almacenamiento llamada <code>Zend_Auth_Storage_Session</code>, la cual, a su vez usa
+                 <link linkend="zend.session">Zend_Session</link>. Una clase diferente podría ser utilizada mediante
+                 proveer un objeto que implemente <code>Zend_Auth_Storage_Interface</code> a <code>Zend_Auth::setStorage()</code>
             </para>
 
             <note>
                 <para>
-                    If automatic persistent storage of the identity is not appropriate for a particular use case, then
-                    developers may forgo using the <code>Zend_Auth</code> class altogether, instead using an adapter
-                    class directly.
+                    Si el automático almacenamiento persistente de la identidad no es apropiado para un caso en particular,
+                    entonces los desarrolladores podrían dejar de usar la clase <code>Zend_Auth</code> al mismo tiempo,
+                    utilizando en su lugar una clase adaptadora directamente.
                 </para>
             </note>
 
@@ -224,25 +218,25 @@ switch ($result->getCode()) {
                 <title>Modifying the Session Namespace</title>
 
                 <para>
-                    <code>Zend_Auth_Storage_Session</code> uses a session namespace of <code>'Zend_Auth'</code>. This
-                    namespace may be overridden by passing a different value to the constructor of
-                    <code>Zend_Auth_Storage_Session</code>, and this value is internally passed along to the constructor
-                    of <code>Zend_Session_Namespace</code>. This should occur before authentication is attempted, since
-                    <code>Zend_Auth::authenticate()</code> performs the automatic storage of the identity.
+                    <code>Zend_Auth_Storage_Session</code> usa un espacionombre (namespace) de sesión <code>'Zend_Auth'</code>.
+                    Este espacio-nombre podría ser OVERRIDDEN al pasar un valor diferente al contructor de
+                    <code>Zend_Auth_Storage_Session</code>, y este valor es pasado internamente al constructor de
+                    <code>Zend_Session_Namespace</code>. Esto debería ocurrir antes de que se intente la autenticación, ya que
+                    <code>Zend_Auth::authenticate()</code> realiza el almacenamiento automático de la identidad.
 
                     <programlisting role="php"><![CDATA[
-// Save a reference to the Singleton instance of Zend_Auth
+// Almacena una referencia a la instancia Singleton de Zend_Auth
 $auth = Zend_Auth::getInstance();
 
-// Use 'someNamespace' instead of 'Zend_Auth'
-$auth->setStorage(new Zend_Auth_Storage_Session('someNamespace'));
+// Usa 'unEspacionombre' en lugar de 'Zend_Auth'
+$auth->setStorage(new Zend_Auth_Storage_Session('unEspacionombre'));
 
 /**
  * @todo Set up the auth adapter, $authAdapter
  */
 
-// Authenticate, saving the result, and persisting the identity on
-// success
+// Autenticar, almacenando el resultado, y persistiendo la identidad en
+// suceso
 $result = $auth->authenticate($authAdapter);
 ]]>
                     </programlisting>
@@ -255,84 +249,83 @@ $result = $auth->authenticate($authAdapter);
 
         <sect3 id="zend.auth.introduction.persistence.custom">
 
-            <title>Implementing Customized Storage</title>
+            <title>Implementando Almacenamiento Personalizado</title>
 
             <para>
-                Sometimes developers may need to use different identity persistence behavior than that provided by
-                <code>Zend_Auth_Storage_Session</code>. For such cases developers may simply implement
-                <code>Zend_Auth_Storage_Interface</code> and supply an instance of the class to
+                En ocaciones los desarrolladores podrían necesitar usar un diferente comportamiento de persistencia	de identidad
+                que el provisto por <code>Zend_Auth_Storage_Session</code>. Para esos casos los desarrolladores podrían simplemente
+                implementar <code>Zend_Auth_Storage_Interface</code> y suplir una instancia de la clase a
                 <code>Zend_Auth::setStorage()</code>.
             </para>
 
             <example id="zend.auth.introduction.persistence.custom.example">
 
-                <title>Using a Custom Storage Class</title>
+                <title>Usando una Clase de Almacenamiento Personalizada</title>
 
                 <para>
-                    In order to use an identity persistence storage class other than
-                    <code>Zend_Auth_Storage_Session</code>, a developer implements
-                    <code>Zend_Auth_Storage_Interface</code>:
+                    Para poder utilizar una clase de almacenamiento persistente de identidad diferente a
+                    <code>Zend_Auth_Storage_Session</code>, el desarrollador implementa <code>Zend_Auth_Storage_Interface</code>:
 
                     <programlisting role="php"><![CDATA[
 class MyStorage implements Zend_Auth_Storage_Interface
 {
     /**
-     * Returns true if and only if storage is empty
+     * Regresa true si y solo si el almacenamiento esta vacio
      *
-     * @throws Zend_Auth_Storage_Exception If it is impossible to
-     *                                     determine whether storage
-     *                                     is empty
-     * @return boolean
+     * @arroja Zend_Auth_Storage_Exception Si es imposible
+     *                                     determinar si el almacenamiento
+     *                                     esta vacio
+     * @regresa boleano
      */
     public function isEmpty()
     {
         /**
-         * @todo implementation
+         * @por hacer implementación
          */
     }
 
     /**
-     * Returns the contents of storage
+     * Regresa el contenido del almacenamiento
      *
-     * Behavior is undefined when storage is empty.
+     * El comportamiento es indefinido cuando el almacenamiento esta vacio
      *
-     * @throws Zend_Auth_Storage_Exception If reading contents from
-     *                                     storage is impossible
-     * @return mixed
+     * @arroja Zend_Auth_Storage_Exception Si leer contenido de
+     *                                     almacenamiento es imposible
+     * @regresa mixto
      */
     public function read()
     {
         /**
-         * @todo implementation
+         * @por hacer implementación
          */
     }
 
     /**
-     * Writes $contents to storage
+     * Escribe $contents al almacenamiento
      *
-     * @param  mixed $contents
-     * @throws Zend_Auth_Storage_Exception If writing $contents to
-     *                                     storage is impossible
-     * @return void
+     * @parametros mezclado $contents
+     * @arroja Zend_Auth_Storage_Exception Si escribir $contents al
+     *                                     almacenamiento es imposible
+     * @regresa boleano
      */
     public function write($contents)
     {
         /**
-         * @todo implementation
+         * @por hacer implementación
          */
     }
 
     /**
-     * Clears contents from storage
+     * limpia contenidos del almacenamiento
      *
-     * @throws Zend_Auth_Storage_Exception If clearing contents from
-     *                                     storage is impossible
-     * @return void
+     * @arroja Zend_Auth_Storage_Exception Si limpiar contenidos del
+     *                                     almacenamiento es imposible
+     * @regresa void
      */
     public function clear()
     {
         /**
-         * @todo implementation
+         * @por hacer implementación
          */
     }
 }
@@ -342,19 +335,19 @@ class MyStorage implements Zend_Auth_Storage_Interface
                 </para>
 
                 <para>
-                    In order to use this custom storage class, <code>Zend_Auth::setStorage()</code> is invoked before an
-                    authentication query is attempted:
+                    A fin de poder usar esta clase de almacenamiento personalizada, <code>Zend_Auth::setStorage()</code>
+                    es invocada antes de intentar una petición de autenticación:
 
                     <programlisting role="php"><![CDATA[
-// Instruct Zend_Auth to use the custom storage class
+// Instruye Zend_Auth para usar la clase de almacenamiento personalizada
 Zend_Auth::getInstance()->setStorage(new MyStorage());
 
 /**
- * @todo Set up the auth adapter, $authAdapter
+ * @por hacer Configurar el adaptador de autenticación, $authAdapter
  */
 
-// Authenticate, saving the result, and persisting the identity on
-// success
+// Autenticar, almacenando el resultado, y persistiendo la identidad
+// si hay exito
 $result = Zend_Auth::getInstance()->authenticate($authAdapter);
 ]]>
                     </programlisting>
@@ -369,46 +362,46 @@ $result = Zend_Auth::getInstance()->authenticate($authAdapter);
 
     <sect2 id="zend.auth.introduction.using">
 
-        <title>Using Zend_Auth</title>
+        <title>Usando Zend_Auth</title>
 
         <para>
-            There are two provided ways to use Zend_Auth adapters:
+            Hay dos formas provistas de usar adaptadores Zend_Auth:
             <orderedlist>
             <listitem>
                 <para>
-                    indirectly, through <code>Zend_Auth::authenticate()</code>
+                    indirectamente, a través de <code>Zend_Auth::authenticate()</code>
                 </para>
             </listitem>
             <listitem>
                 <para>
-                    directly, through the adapter's <code>authenticate()</code> method
+                    directamente, a través del metodo<code>authenticate()</code> del adaptador
                 </para>
             </listitem>
             </orderedlist>
         </para>
 
         <para>
-            The following example illustrates how to use a Zend_Auth adapter indirectly, through the use of
-            the <code>Zend_Auth</code> class:
+            El siguiente ejemplo ilustra como usar el adaptador Zend_Auth indirectamente, a través
+            del uso de la clase <code>Zend_Auth</code>:
 
             <programlisting role="php"><![CDATA[
-// Get a reference to the singleton instance of Zend_Auth
+// Recibe una referencia a la instancia singleton de Zend_Auth
 $auth = Zend_Auth::getInstance();
 
-// Set up the authentication adapter
+// Configura el adaptador de autenticación
 $authAdapter = new MyAuthAdapter($username, $password);
 
-// Attempt authentication, saving the result
+// Intenta la autenticación, almacenando el resultado
 $result = $auth->authenticate($authAdapter);
 
 if (!$result->isValid()) {
-    // Authentication failed; print the reasons why
+    // Fautenticación fallida: imprime el por que
     foreach ($result->getMessages() as $message) {
         echo "$message\n";
     }
 } else {
-    // Authentication succeeded; the identity ($username) is stored
-    // in the session
+    // Autenticación exitosa, la identidad ($username) es almacenada
+    // en la sesión
     // $result->getIdentity() === $auth->getIdentity()
     // $result->getIdentity() === $username
 }
@@ -417,12 +410,12 @@ if (!$result->isValid()) {
         </para>
 
         <para>
-            Once authentication has been attempted in a request, as in the above example, it is a simple
-            matter to check whether a successfully authenticated identity exists:
+            Una vez que la autenticación ha sido intentada en una petición, como en el ejemplo anterior,
+            es fácil verificar si existe una identidad autenticada exitosamente:
             <programlisting role="php"><![CDATA[
 $auth = Zend_Auth::getInstance();
 if ($auth->hasIdentity()) {
-    // Identity exists; get it
+    // Existe la identidad; obtenla
     $identity = $auth->getIdentity();
 }
 ]]>
@@ -430,8 +423,8 @@ if ($auth->hasIdentity()) {
         </para>
 
         <para>
-            To remove an identity from persistent storage, simply use the <code>clearIdentity()</code> method.
-            This typically would be used for implementing an application "logout" operation:
+            Para remover una identidad del almacenamiento persistente, simplemente usa el metodo <code>clearIdentity()</code>method.
+            Comunmente esto sería usado para implementar una operación "cerrar sesión" en la aplicación:
             <programlisting role="php"><![CDATA[
 Zend_Auth::getInstance()->clearIdentity();
 ]]>
@@ -439,27 +432,27 @@ Zend_Auth::getInstance()->clearIdentity();
         </para>
 
         <para>
-            When the automatic use of persistent storage is inappropriate for a particular use case, a
-            developer may simply bypass the use of the <code>Zend_Auth</code> class, using an adapter class
-            directly. Direct use of an adapter class involves configuring and preparing an adapter object and
-            then calling its <code>authenticate()</code> method. Adapter-specific details are discussed in the
-            documentation for each adapter. The following example directly utilizes
-            <code>MyAuthAdapter</code>:
+            Cuando el uso automático de almacenamiento persistente es inapropiado para un caso en particular,
+            el desarrollador podría simplemente omitir el uso de la clase <code>Zend_Auth</code>, usando una
+            clase adaptadora directamente. El uso directo de una clase adaptadora implica configurar y preparar
+            un objeto adaptador y despues llamar a su metodo <code>authenticate()</code>. Los detalles específicos
+            del adaptador son discutidos en la documentación de cada adaptador. El siguiente ejemplo utiliza
+            directamente <code>MyAuthAdapter</code>:
 
             <programlisting role="php"><![CDATA[
-// Set up the authentication adapter
+// Configura el adaptador de autenticación
 $authAdapter = new MyAuthAdapter($username, $password);
 
-// Attempt authentication, saving the result
+// Intenta la autenticación, almacenando el resultado
 $result = $authAdapter->authenticate();
 
 if (!$result->isValid()) {
-    // Authentication failed; print the reasons why
+    // Autenticación fallida, imprime el porque
     foreach ($result->getMessages() as $message) {
         echo "$message\n";
     }
 } else {
-    // Authentication succeeded
+    // Autenticación exitosa
     // $result->getIdentity() === $username
 }
 ]]>

+ 2 - 2
documentation/manual/es/module_specs/Zend_Cache-Introduction.xml

@@ -158,7 +158,7 @@ $cache = Zend_Cache::factory('Output',
                              $frontendOptions,
                              $backendOptions);
 
-// Pasamos un identificador único al método start() 
+// Pasamos un identificador único al método start()
 if(!$cache->start('mypage')) {
     // salida como de costumbre:
 
@@ -190,7 +190,7 @@ echo 'Esto no estará en caché nunca ('.time().').';
     <note>
         <para>
             Cuando usamos Zend_Cache, ponemos atención a la importación
-            del identificador caché (pasado a 
+            del identificador caché (pasado a
             <code>save()</code>
             y
             <code>start()</code>

+ 3 - 3
documentation/manual/es/module_specs/Zend_Captcha.xml

@@ -7,15 +7,15 @@
         </ulink>
         es el acrónimo de "Completely Automated Public Turing test to
         tell Computers and Humans Apart" (Prueba de Turing pública y
-        automática para diferenciar a máquinas y humanos). Es usado como un 
+        automática para diferenciar a máquinas y humanos). Es usado como un
         desafío-respuesta para asegurar que la información individual suministrada
     viene de un humano y no de un proceso automatizado. Típicamente,
-        un captcha es usado con envío de formularios donde no es necesario que el 
+        un captcha es usado con envío de formularios donde no es necesario que el
     usuario se haya autenticado, pero se desea prevenir el envío de spam.
     </para>
 
     <para>
-        Los Captchas pueden presentarse en multitud de formas, incluyendo 
+        Los Captchas pueden presentarse en multitud de formas, incluyendo
         preguntas lógicas, caracteres trastocados o presentar imágenes y preguntar
         cómo se relacionan. Zend_Captcha intenta proveer una amalgama de backends
         que pueden ser utilizados por separado o en conjunción con

+ 7 - 7
documentation/manual/es/module_specs/Zend_Config-TheoryOfOperation.xml

@@ -5,10 +5,10 @@
     <para>
         Los datos de configuración se hacen accesibles al constructor <code>Zend_Config</code>
         a través de un array asociativo, que puede ser multidimensional, para permitir
-        organizar los datos desde lo general a lo específico. Las clases de adaptador concretas 
-        permiten construir una tabla asociativa para el constructor de <code>Zend_Config</code> 
-        a partir de un sistema de almacenamiento de datos de configuración. Algunos scripts 
-        de usuario pueden proveer esos arrays directamente al constructor Zend_Config, 
+        organizar los datos desde lo general a lo específico. Las clases de adaptador concretas
+        permiten construir una tabla asociativa para el constructor de <code>Zend_Config</code>
+        a partir de un sistema de almacenamiento de datos de configuración. Algunos scripts
+        de usuario pueden proveer esos arrays directamente al constructor Zend_Config,
         sin usar una clase adaptador, lo cual puede ser apropiado en ciertas ocasiones.
     </para>
     <para>
@@ -39,7 +39,7 @@
         <note>
             <para>
                 Es importante no confundir tales modificaciones en memoria con guardar los datos de configuración a un
-                medio de almacenamiento específico. Las herramientas para crear y modificar datos de configuración para 
+                medio de almacenamiento específico. Las herramientas para crear y modificar datos de configuración para
                 distintos medios de almacenamiento están fuera del alcance de <code>Zend_Config</code>.
                 Existen soluciones third-party de código abierto con el propósito de crear y modificar
                 datos de configuración de distintos medios de almacenamiento.
@@ -50,14 +50,14 @@
         Las clases del adaptador heredan de la clase <code>Zend_Config</code> debido a que utilizan su funcionalidad.
     </para>
     <para>
-        La familia de clases <code>Zend_Config</code> permite organizar en secciones 
+        La familia de clases <code>Zend_Config</code> permite organizar en secciones
         los datos de configuración. Los objetos de adaptador <code>Zend_Config</code>
         pueden ser cargados con una sola sección especificada, múltiples secciones especificadas,
         o todas las secciones (si no se especifica ninguna).
     </para>
     <para>
         Las clases del adaptador <code>Zend_Config</code> soportan un modelo de herencia única
-        que permite que los datos de configuración hereden de una sección de datos de configuración a otra. 
+        que permite que los datos de configuración hereden de una sección de datos de configuración a otra.
         Esto es provisto con el fin de reducir o eliminar la necesidad de duplicar datos de configuración por
         distintos motivos. Una sección heredada puede también sobrescribir los valores que hereda de su sección
         padre. Al igual que la herencia de clases PHP, una sección puede heredar de una sección padre,

+ 18 - 18
documentation/manual/es/module_specs/Zend_Config_Xml.xml

@@ -1,17 +1,17 @@
 <sect1 id="zend.config.adapters.xml">
     <title>Zend_Config_Xml</title>
     <para>
-        <code>Zend_Config_Xml</code> permite a los desarrolladores almacenar 
-        datos de configuración en un formato sencillo XML y leerlos a través de 
-        una sintáxis de propiedades de objetos anidados. El elemento raíz del 
-        archivo XML es irrelevante y puede ser nombrado arbitrariamente.          
+        <code>Zend_Config_Xml</code> permite a los desarrolladores almacenar
+        datos de configuración en un formato sencillo XML y leerlos a través de
+        una sintáxis de propiedades de objetos anidados. El elemento raíz del
+        archivo XML es irrelevante y puede ser nombrado arbitrariamente.         
         El primer nivel de elementos XML corresponde con las secciones de datos
-        de configuración. El formato XML admite organización jerárquica a 
-        través del anidamiento de elementos XML bajo los elementos a nivel de 
-        sección. El contenido de un elemento XML a nivel de hoja corresponde al 
+        de configuración. El formato XML admite organización jerárquica a
+        través del anidamiento de elementos XML bajo los elementos a nivel de
+        sección. El contenido de un elemento XML a nivel de hoja corresponde al
         valor de un dato de configuración. La herencia de sección está permitida
         por un atributo XML especial llamado <code>extends</code>, y el valor de
-        este atributo se corresponde con la sección de la cual los datos son 
+        este atributo se corresponde con la sección de la cual los datos son
         heredados por la sección extendida..
     </para>
     <note>
@@ -29,12 +29,12 @@
          Este ejemplo ilustra un uso básico de <code>Zend_Config_Xml</code>
          para cargar datos de configuración de un archivo XML. En este ejemplo
          hay datos de configuración tanto para un sistema de producción como
-         para un sistema de pruebas. Debido a que los datos de configuración del 
+         para un sistema de pruebas. Debido a que los datos de configuración del
          sistema de pruebas son muy similares a los de producción, la sección de
-         pruebas hereda de la sección de producción. En este caso, la decisión 
+         pruebas hereda de la sección de producción. En este caso, la decisión
          es arbitraria y podría haberse escrito a la inversa, con la sección de
-         producción heredando de la sección de pruebas, a pesar de que éste no          
-         sería el caso para situaciones más complejas. Suponga, pues, que los 
+         producción heredando de la sección de pruebas, a pesar de que éste no         
+         sería el caso para situaciones más complejas. Suponga, pues, que los
          datos de configuración siguientes están contenidos
             en <code>/ruta/de/config.xml</code>:
         </para>
@@ -68,7 +68,7 @@
         <para>
             Ahora, asuma que el desarrollador de aplicaciones necesita los datos
             de configuración de la fase de pruebas del archivo XML. Es una tarea
-            sencilla cargar estos datos, especificando el archivo XML y la 
+            sencilla cargar estos datos, especificando el archivo XML y la
             sección de pruebas:
         </para>
         <programlisting role="php"><![CDATA[
@@ -82,11 +82,11 @@ echo $config->database->params->dbname; // muestra "dbname"
     <example id="zend.config.adapters.xml.example.attributes">
         <title>Usando atributos de etiqueta en Zend_Config_Xml</title>
         <para>
-            Zend_Config_Xml también soporta dos formas adicionales de definir 
-            nodos en la configuración.  Ambas hacen uso de atributos. Dado que 
+            Zend_Config_Xml también soporta dos formas adicionales de definir
+            nodos en la configuración.  Ambas hacen uso de atributos. Dado que
             los atributos <code>extends</code> y <code>value</code> son palabras
             reservadas (la última por la segunda manera de usar atributos),
-            pueden no ser utilizadas. 
+            pueden no ser utilizadas.
                   La primera manera de utilizar atributos es añadir atributos en un
             nodo padre, el cual será interpretado como hijo de ese nodo:
         </para>
@@ -108,8 +108,8 @@ echo $config->database->params->dbname; // muestra "dbname"
 </programlisting>
         <para>
         La otra forma no reduce la configuración, sino que permite mantenerla de
-        forma más fácil dado que no es necesario escribir el nombre de la 
-        etiqueta dos veces. Simplemente, cree una etiqueta vacía con el valor en 
+        forma más fácil dado que no es necesario escribir el nombre de la
+        etiqueta dos veces. Simplemente, cree una etiqueta vacía con el valor en
         el atributo <code>value</code>:
         </para>
         <programlisting role="xml"><![CDATA[

+ 11 - 11
documentation/manual/es/module_specs/Zend_Controller-QuickStart.xml

@@ -103,14 +103,14 @@ RewriteRule ^.*$ index.php [NC,L]
 
             <para>
                 La regla de arriba redigirá las peticiones a recuros existentes
-                (enlaces simbólicos existentes, archivos no vacíos, o directorios no vacíos) 
+                (enlaces simbólicos existentes, archivos no vacíos, o directorios no vacíos)
         en consecuencia, y todas las otras peticiones al front controller.
             </para>
 
             <note>
                 <para>
                     Las reglas de arriba pertenecen a Apache. Para ejemplos de reglas
-                    de rewrite para otros servidores web, mire la 
+                    de rewrite para otros servidores web, mire la
                     <link linkend="zend.controller.router.introduction">
                         documentación de router
                     </link>
@@ -126,7 +126,7 @@ RewriteRule ^.*$ index.php [NC,L]
                 El archivo bootstrap es la página a la que todas las peticiones
                 son redirigidas a través de --
                 <code>html/index.php</code>
-                en este caso. Abra el archivo 
+                en este caso. Abra el archivo
                 <code>html/index.php</code>
                 en el editor de su elección y añada lo siguiente:
             </para>
@@ -137,7 +137,7 @@ Zend_Controller_Front::run('/path/to/app/controllers');
             </programlisting>
 
             <para>
-                Esto instanciará y hará un dispatch del front controller, que 
+                Esto instanciará y hará un dispatch del front controller, que
                 redigirá las peticiones a los action controllers.
             </para>
         </sect3>
@@ -164,7 +164,7 @@ Zend_Controller_Front::run('/path/to/app/controllers');
                 <code>index</code>
                 , y si no se suministra un controlador, se asume el controlador
                 <code>index</code>
-                (siguiendo la convención de Apache de apuntar a 
+                (siguiendo la convención de Apache de apuntar a
                 <code>DirectoryIndex</code>
                 automáticamente).
             </para>
@@ -197,7 +197,7 @@ Zend_Controller_Front::run('/path/to/app/controllers');
             </para>
 
             <para>
-                Continuando, creemos ahora un action controller 
+                Continuando, creemos ahora un action controller
                 y un método de acción por defecto. Como se ha dicho antes,
                 el controlador por defecto y la acción llamada son ambos
                 <code>index</code>
@@ -261,9 +261,9 @@ class IndexController extends Zend_Controller_Action
                 <link linkend="zend.controller.quickstart.go.controller">
                     en la sección anterior
                 </link>
-                , los scripts de vista se encuentran en 
+                , los scripts de vista se encuentran en
                 <code>application/views/scripts/</code>
-                ; el view script para el controlador y la acción por defecto 
+                ; el view script para el controlador y la acción por defecto
                 está en
                 <code>application/views/scripts/index/index.phtml</code>
                 . Cree este archivo, y escriba un poco de HTML:
@@ -295,7 +295,7 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                     el plugin 'error handler'
                 </link>. Este plugin espera que exista
                 un controlador para manejar los errores.
-                Por defecto, asume un 
+                Por defecto, asume un
                 <code>ErrorController</code>
                 en el módulo default con un método
                 <code>errorAction</code>
@@ -313,7 +313,7 @@ class ErrorController extends Zend_Controller_Action
             </programlisting>
 
             <para>
-                Asumiendo el sistema de carpetas discutido anteriormente, 
+                Asumiendo el sistema de carpetas discutido anteriormente,
                 este archivo irá en
                 <code>application/controllers/ErrorController.php</code>
                 . También necesitará crear un view script en
@@ -346,7 +346,7 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                 Con su primer controlador y vista, ya puede arrancar su navegador y acceder a su sitio.
                 Asumiendo que
                 <code>example.com</code>
-                es su dominio, cualquiera de las siguientes URLs le llevará a 
+                es su dominio, cualquiera de las siguientes URLs le llevará a
                 la página que acaba de crear:
             </para>
 

+ 9 - 9
documentation/manual/es/module_specs/Zend_Date-Introduction.xml

@@ -85,7 +85,7 @@ date_default_timezone_set('Europe/Berlin');
 
         <para>
             Tenga en cuenta que las zonas horarias <emphasis role="strong">UTC</emphasis> y
-            <emphasis role="strong">GMT</emphasis> no incluyen el cambio de hora de invierno/verano (Daylight Saving Time, DST). 
+            <emphasis role="strong">GMT</emphasis> no incluyen el cambio de hora de invierno/verano (Daylight Saving Time, DST).
             Esto significa que aunque defina a mano que <code>Zend_Date</code> deba trabajar con DST, podría
             ser anulado por las instancias de <code>Zend_Date</code> que han sido fijadas a
             UTC o GMT.
@@ -107,7 +107,7 @@ date_default_timezone_set('Europe/Berlin');
                 </para>
                 <para>
                     <code>Zend_Date</code> aporta una API 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 
+                    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>
@@ -127,13 +127,13 @@ date_default_timezone_set('Europe/Berlin');
                 <para>
                     A pesar de que la documentación de PHP 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," <code>Zend_Date</code> admite un rango
-                    casi ilimitado, con la ayuda de la extensión BCMath. Si BCMath no está disponible, Zend_Date tendrá una 
+                    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 <code>float</code> 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 
+                    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>
@@ -142,12 +142,12 @@ date_default_timezone_set('Europe/Berlin');
                     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 
+                    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 
+                    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 <code>Zend_Date</code> usando la constante 
-                    de especificación de formato 
+                    difieren ligeramente uno de otro, ambos tienen soporte por parte de <code>Zend_Date</code> 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.
@@ -158,7 +158,7 @@ date_default_timezone_set('Europe/Berlin');
                     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 
+                    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 PHP favorito :)
                 </para>
             </listitem>

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

@@ -196,14 +196,14 @@ $db = new Zend_Db_Adapter_Pdo_Mysql(array(
             <example id="zend.db.adapter.connecting.factory.example">
                 <title>Usando el Adaptador del método factory</title>
                 <programlisting role="php"><![CDATA[
-// No necesitamos la siguiente declaración, porque 
-// el archivo Zend_Db_Adapter_Pdo_Mysql será cargado para nosotros por el método  
+// No necesitamos la siguiente declaración, porque
+// el archivo Zend_Db_Adapter_Pdo_Mysql será cargado para nosotros por el método 
 // factory de Zend_Db.
 
 // require_once 'Zend/Db/Adapter/Pdo/Mysql.php';
 
 // carga automaticamente la clase Zend_Db_Adapter_Pdo_Mysql
-// y crea una instancia de la misma 
+// y crea una instancia de la misma
 $db = Zend_Db::factory('Pdo_Mysql', array(
     'host'     => '127.0.0.1',
     'username' => 'webuser',
@@ -223,14 +223,14 @@ $db = Zend_Db::factory('Pdo_Mysql', array(
             de la clase del adaptador con la clave "adapterNamespace" en
             el conjunto de parámetros
             </para>
-        
+       
             <example id="zend.db.adapter.connecting.factory.example2">
                 <title>
                     Usando el método factory para una clase Adaptador
                     personalizada
                 </title>
                 <programlisting role="php"><![CDATA[
-// No tenemos que cargar el archivo de clase Adaptador 
+// No tenemos que cargar el archivo de clase Adaptador
 // porque será cargado para nosotros por el método factory de Zend_Db.
 
 // Automáticamente carga la clase MyProject_Db_Adapter_Pdo_Mysql
@@ -277,7 +277,7 @@ $db = Zend_Db::factory('Pdo_Mysql', array(
 
             <example id="zend.db.adapter.connecting.factory.example1">
                 <title>
-                    Uso del método factory del Adaptador con un objeto Zend_Config            
+                    Uso del método factory del Adaptador con un objeto Zend_Config           
                 </title>
                 <para>
                     En el siguiente ejemplo, un objeto Zend_Config es
@@ -328,7 +328,7 @@ $db = Zend_Db::factory($config->database);
             <title>Parámetros del Adaptador</title>
 
             <para>
-                El siguiente listado explica parámetros comunes reconocidos por 
+                El siguiente listado explica parámetros comunes reconocidos por
                 Adaptador de clases Zend_Db.
             </para>
 
@@ -345,7 +345,7 @@ $db = Zend_Db::factory($config->database);
                 <listitem>
                     <para>
                         <emphasis role="strong">username</emphasis>
-                        : identificador de cuenta para autenticar una conexión al 
+                        : identificador de cuenta para autenticar una conexión al
             servidor RDBMS.
                     </para>
                 </listitem>
@@ -367,8 +367,8 @@ $db = Zend_Db::factory($config->database);
                         <emphasis role="strong">port</emphasis>
                         : algunos servidores RDBMS pueden aceptar conexiones de red
                         sobre un número de puerto específico.
-            El parámetro del puerto le permite especificar el puerto al 
-            que su aplicación PHP se conecta, para que concuerde el puerto            
+            El parámetro del puerto le permite especificar el puerto al
+            que su aplicación PHP se conecta, para que concuerde el puerto           
             configurado en el servidor RDBMS.
                     </para>
                 </listitem>
@@ -386,7 +386,7 @@ $db = Zend_Db::factory($config->database);
                         </emphasis>
                         : este parámetro es un array asociativo de opciones adicionales
                         para una extensión de base de datos dada.
-            un uso típico de este parámetro es establecer atributos 
+            un uso típico de este parámetro es establecer atributos
             de un driver PDO.
                     </para>
                 </listitem>
@@ -396,10 +396,10 @@ $db = Zend_Db::factory($config->database);
                             adapterNamespace
                         </emphasis>
                         : nombre de la parte inicial del nombre de las clase para el
-            adaptador, en lugar de 'Zend_Db_Adapter'. Utilice 
-                        esto si usted necesita usar el método 
+            adaptador, en lugar de 'Zend_Db_Adapter'. Utilice
+                        esto si usted necesita usar el método
                         <code>factory()</code>
-                        para cargar un adaptador de clase de base de datos que no sea 
+                        para cargar un adaptador de clase de base de datos que no sea
             de Zend.
                     </para>
                 </listitem>
@@ -449,16 +449,16 @@ $db = Zend_Db::factory('Db2', $params);
                 <para>
                     Usted puede especificar esta opción por la constante
                     <code>Zend_Db::AUTO_QUOTE_IDENTIFIERS</code>
-                    . Si el valor es 
+                    . Si el valor es
                     <code>true</code>
                     (el predeterminado), los identificadores como nombres de tabla,
           nombres de columna, e incluso los alias son delimitados en la
           sintaxis SQL generada por el Adatador del objeto.
-          Esto hace que sea sencillo utilizar identificadores que contengan 
-          palabras reservadas de SQL, o caracteres especiales. Si el valor es 
+          Esto hace que sea sencillo utilizar identificadores que contengan
+          palabras reservadas de SQL, o caracteres especiales. Si el valor es
                     <code>false</code>
-                    , los identificadores no son delimitados automáticamente. Si 
-                    usted necesita delimitar identificadores, debe hacer usted mismo 
+                    , los identificadores no son delimitados automáticamente. Si
+                    usted necesita delimitar identificadores, debe hacer usted mismo
           utilizando el método
                     <code>quoteIdentifier()</code>
                     .

+ 146 - 146
documentation/manual/es/module_specs/Zend_Db_Select.xml

@@ -1,4 +1,4 @@
-<sect1 id="zend.db.select">
+<sect1 id="zend.db.select">
 
     <title>Zend_Db_Select</title>
 
@@ -9,21 +9,21 @@
         <para>
             El objeto Zend_Db_Select object representa una declaración de consulta
             <code>SELECT</code> de SQL. La clase tiene métodos para agregar partes
-            individuales a la consulta. Puedes especificar algunas partes de la consulta
+            individuales a la consulta. Se pueden especificar algunas partes de la consulta
             usando los métodos en PHP y sus estructuras de datos, y la clase forma la sintaxis
-            SLQ correcta. Despues de construir la consulta, puedes ejecutarla como si
+            SLQ correcta. Después de construir la consulta, puede ejecutarla como si
             se hubiera escrito como un string.
         </para>
 
         <para>
-            El valor entregado por Zend_Db_Select incluye:
+            Las posibilidades de Zend_Db_Select incluyen:
         </para>
 
         <itemizedlist>
             <listitem>
                 <para>
                     Métodos Orientados a objetos para especificar consultas SQL
-                    de manera pieza-a-pieza;
+                    pieza-a-pieza;
                 </para>
             </listitem>
 
@@ -45,7 +45,7 @@
             <listitem>
                 <para>
                     Entrecomillado de identificadores y valores, para ayudar a reducir el
-                    riesgo de ataque de inyección SQL.
+                    riesgo de ataque por inyección SQL.
                 </para>
             </listitem>
         </itemizedlist>
@@ -54,8 +54,8 @@
             El uso de Zend_Db_Select no es obligatorio. Para consultas SELECT muy simples,
             es usualmente más simple especificar la consulta completa como un string
             y ejecutarla usando un método del Adapter como <code>query()</code> o
-            <code>fetchAll()</code>. Usar Zend_Db_Select es util si se necesita ensamblar
-            una consulta SELECT proceduralmente, o basado en condiciones lógicas en
+            <code>fetchAll()</code>. Usar Zend_Db_Select es útil si se necesita ensamblar
+            una consulta SELECT proceduralmente, o basada en condiciones lógicas en
             la aplicación.
         </para>
 
@@ -66,7 +66,7 @@
         <title>Creando un Objeto Select</title>
 
         <para>
-            Puedes crear un a instancia del objeto Zend_Db_Select usando el método
+            Se puede crear una instancia del objeto Zend_Db_Select usando el método
             <code>select()</code> de un objeto Zend_Db_Adapter_Abstract.
         </para>
 
@@ -105,8 +105,8 @@ $select = new Zend_Db_Select($db);
 
         <title>Construyendo consultas Select</title>
 
-        <para>Cuando se construye una consulta, puede agregar clausulas a esta, una por una.
-            Hay un método separado para agregar cada al objeto Zend_Db_Select.</para>
+        <para>Cuando se construye una consulta, puede agregar cláusulas a ésta, una por una.
+            Hay un método separado para agregar cada una al objeto Zend_Db_Select.</para>
 
         <example id="zend.db.select.building.example">
 
@@ -129,9 +129,9 @@ $select->order( ...specify sorting criteria... );
 
         </example>
 
-        <para>También puede utilizar la mayoría de los métodos del objeto Zend_Db_Select con una 
-            interfaz fluida. Una interfaz fluida significa que cada método retorna una referencia
-            al objeto que se ha llamado, así puedes llamar inmediatamente a otro método.</para>
+        <para>También puede utilizar la mayoría de los métodos del objeto Zend_Db_Select con una
+        interfaz fluida. Una interfaz fluida significa que cada método devuelve una referencia
+            al objeto que se ha llamado, así se puede llamar inmediatamente a otro método.</para>
 
         <example id="zend.db.select.building.example-fluent">
 
@@ -148,7 +148,7 @@ $select = $db->select()
         </example>
 
         <para>Los ejemplos en esta sección muestran el uso de la interfaz fluída, pero también
-            puedes usar la interfaz no-fluída en todos los casos. A menudo es necesario
+            se puede usar la interfaz no-fluída en todos los casos. A menudo es necesario
             utilizar la interfaz no-fluída, por ejemplo, si su aplicación necesita realizar
             cierta lógica antes de añadir una cláusula a la consulta.</para>
 
@@ -157,10 +157,10 @@ $select = $db->select()
             <title>Agregando una cláusula FROM</title>
 
             <para>
-                Especifica la tabla para esta consulta usando el método <code>from()</code>.
-                Puedes especificar el nombre de la tabla  como un simple string. Zend_Db_Select
-                aplica el identificador entrecomillando el nombre de la tabla, así puedes
-                usar caracteres especiales.
+                Especifique la tabla para esta consulta usando el método <code>from()</code>.
+                Se puede especificar el nombre de la tabla como un string. Zend_Db_Select
+                aplica el identificador entrecomillando el nombre de la tabla, así puede
+                utilizar caracteres especiales.
             </para>
 
             <example id="zend.db.select.building.from.example">
@@ -180,21 +180,21 @@ $select = $db->select()
             </example>
 
             <para>
-                Puedes especificar un nombre correlacionado (también llamado a veces
-                "alias de tabla") para una tabla. En lugar de un simple string, se usa un
-                array asociativo que mapee el nombre de la correlación con el nombre de la tabla.
-                En otras cláusulas de consulta SQL, se usa esta correlación de nombre.
-                si su consulta se une con más de una tabla, Zend_Db_Select generatiza una
+                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, utilice nombre de correlación.
+                Si su consulta se une con más de una tabla, Zend_Db_Select genera una
                 correlación unica de nombres basados en el nombre de la tabla, para una tabla
-                a la cual no se le espicifique un nombre correlacionado.
+                a la cual no se le espicifique un nombre de correlación.
             </para>
 
             <example id="zend.db.select.building.from.example-cname">
 
-                <title>Ejemplo especificando una tabla con nombre correlacionado</title>
+                <title>Ejemplo especificando una tabla con nombre de correlación</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p.*
 //   FROM "products" AS p
 
@@ -207,7 +207,7 @@ $select = $db->select()
 
             <para>
                 Algunos RDBMS apoyan el uso de un especificador de esquema para una tabla.
-                Puedes especificar el nombre de la tabla como
+                Puede especificar el nombre de la tabla como
                 "<code>nombreDeEsquema.nombre DeTabla</code>", donde Zend_Db_Select entrecomillará
                 cada parte individualmente, o tambien puedes especificar el nombre de esquema
                 por separado. Un nombre de esquema especificado en el nombre de la tabla toma
@@ -220,7 +220,7 @@ $select = $db->select()
                 <title>Ejemplo especificando un nombre de esquema</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT *
 //   FROM "myschema"."products"
 
@@ -243,32 +243,32 @@ $select = $db->select()
             <title>Agregando Columnas</title>
 
             <para>
-                En el segundo argumento del método <code>from()</code>, puedes especificar
-                las columnas a seleccionar desde la respectiva tabla.
-                Si no especificas columns, por defecto será "<code>*</code>",
+                En el segundo argumento del método <code>from()</code>, puede especificar
+                las columnas que seleccionar desde la tabla respectiva.
+                Si no especifica columnas, por defecto será "<code>*</code>",
                 el comodín SQL para "todas las columnas".
             </para>
 
             <para>
-                Puedes listar las columnas en un simple array de strings, o en un
+                Puede listar las columnas en un simple array de strings, o en un
                 array asociativo mapeando los alias de columnas a su nombre de tabla.
-                Si solo se especifica una columna en la consulta y no necesitas especificar un
-                alias de columna, puedes listarla solo con un string plano de lugar de un array.
+                Si solo se especifica una columna en la consulta y no necesita especificar un
+                alias de columna, puede listarla solo con un string en lugar de un array.
             </para>
 
             <para>
                 Si se entrega un array vacío como el argumento de las tablas, no se incluirán
                 columnas en el resultado. Vea un
-                <link linkend="zend.db.select.building.join.example-no-columns">codigo de ejemplo</link>
-                bajo la sección del método <code>join()</code>.
+                <link linkend="zend.db.select.building.join.example-no-columns">código de ejemplo</link>
+                en la sección del método <code>join()</code>.
             </para>
 
             <para>
                 Puedes especificar el nombre de columna como
                 "<code>nombreCorrelacionado.nombreDeColumna</code>".
-                Zend_Db_Select entrecomullará cada parte individualmente. Si no especificas
-                un nombre correlacionado para una columna, se usará el nombre correlacionado
-                para la tabla nombrada en el actual método <code>from()</code>.
+                Zend_Db_Select entrecomillará cada parte individualmente. Si no especifica
+                un nombre de correlación para una columna, se usará el nombre de correlación
+                para la tabla nombrada en el método actual <code>from()</code>.
             </para>
 
             <example id="zend.db.select.building.columns.example">
@@ -284,7 +284,7 @@ $select = $db->select()
              ->from(array('p' => 'products'),
                     array('product_id', 'product_name'));
 
-// Construir la misma consulta, especificando nombres correlacionados:
+// Construir la misma consulta, especificando nombres de correlación
 //   SELECT p."product_id", p."product_name"
 //   FROM "products" AS p
 
@@ -312,12 +312,12 @@ $select = $db->select()
 
             <para>
                 Las columnas en consultas SQL a veces son expresiones, no simples columnas
-                de una tabla. Las expresiones no deberían tener nombres correlacionados o entrecomillado aplicado.
-                Si sus columnas contienen parentesis, Zend_Db_Select las reconoce como una expresión.
+                de una tabla. Las expresiones no deberían tener nombres de correlación o entrecomillado aplicado.
+                Si sus columnas contienen paréntesis, Zend_Db_Select las reconoce como una expresión.
             </para>
 
             <para>
-                Tambien puedes crear un objeto de tipo Zend_Db_Expr explícitamente, para prevenir
+                Tambien puede crear un objeto de tipo Zend_Db_Expr explícitamente, para prevenir
                 que el string sea tratado como columna. Zend_Db_Expr es una clase mínima, que contiene
                 un simple string. Zend_Db_Select reconoce el objeto de tipo Zend_Db_Expr y
                 lo convierte de vuelta en el string, pero no le aplica ninguna alteración,
@@ -328,8 +328,8 @@ $select = $db->select()
 
                 <para>
                     El Uso de Zend_Db_Expr para nombres de columnas no es necesario si
-                    la expresión de la columna contiene parentesis; Zend_Db_Select reconoce
-                    y trata el string como expresión, saltándose el entrcomillado y la
+                    la expresión de la columna contiene paréntesis; Zend_Db_Select reconoce
+                    y trata el string como expresión, saltándose el entrecomillado y la
                     correlación de nombres.
                 </para>
 
@@ -340,7 +340,7 @@ $select = $db->select()
                 <title>Ejemplos especificando columnas que contienen expresiones</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p."product_id", LOWER(product_name)
 //   FROM "products" AS p
 // Una expresion con parentesis implicitamente se transforma en
@@ -350,7 +350,7 @@ $select = $db->select()
              ->from(array('p' => 'products'),
                     array('product_id', 'LOWER(product_name)'));
 
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p."product_id", (p.cost * 1.08) AS cost_plus_tax
 //   FROM "products" AS p
 
@@ -360,7 +360,7 @@ $select = $db->select()
                           'cost_plus_tax' => '(p.cost * 1.08)')
                    );
 
-// Construye esta consulta usando Zend_Db_Expr explícitamente:
+// Construya esta consulta usando Zend_Db_Expr explícitamente:
 //   SELECT p."product_id", p.cost * 1.08 AS cost_plus_tax
 //   FROM "products" AS p
 
@@ -408,7 +408,7 @@ $select = $db->select()
                 <title>Ejemplo de entrecomillado de columnas en una expresión</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta, entrecomillando el nombre
+// Construya esta consulta, entrecomillando el nombre
 // especial de la columna llamada "from" en la expresión:
 //   SELECT p."from" + 10 AS origin
 //   FROM "products" AS p
@@ -483,7 +483,7 @@ $select = $db->select()
                 <title>Ejemplo del método join()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p."product_id", p."product_name", l.*
 //   FROM "products" AS p JOIN "line_items" AS l
 //     ON p.product_id = l.product_id
@@ -533,7 +533,7 @@ $select = $db->select()
                 <title>Ejemplo especificando ninguna columna</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p."product_id", p."product_name"
 //   FROM "products" AS p JOIN "line_items" AS l
 //     ON p.product_id = l.product_id
@@ -556,7 +556,7 @@ $select = $db->select()
 
             <para>
                 SQL tiene muchos tipos de uniones. Vea una lista a continuación para los métodos
-                que soportan cada tipo de unión en Zend_Db_Select.
+                que soporta cada tipo de unión en Zend_Db_Select.
             </para>
 
             <itemizedlist>
@@ -568,9 +568,9 @@ $select = $db->select()
                     </para>
 
                     <para>
-                        Esta es el tipo de unión más comun. Las filas de cada tabla son comparadas
+                        Éste es el tipo de unión más comun. Las filas de cada tabla son comparadas
                         usando la condición de unión especificada. El resultado incluye solo las filas
-                        que satisfacen la condición. El resultado puede ser vacio si no hay filas que
+                        que satisfacen la condición. El resultado puede ser vacío si no hay filas que
                         satisfagan la condición.
                     </para>
 
@@ -586,10 +586,10 @@ $select = $db->select()
                     </para>
 
                     <para>
-                        Todas las filas de tabla a la izquierda del operando son incluídas,
+                        Todas las filas de tabla a la izquierda del operando son incluidas,
                         pareando las filas de la tabla a la derecha del operando,
                         y las columnas de la tabla a la derecha del operando son rellenadas con
-                        NULLs si no existen filas que calcen con la tabla a la izquierda.
+                        NULLs si no existen filas que coincidan con la tabla a la izquierda.
                     </para>
 
                     <para>
@@ -604,16 +604,16 @@ $select = $db->select()
                     </para>
 
                     <para>
-                        Unión exterior por la derecha es un complemento de la unión exterior por la
-                        izquierda. Todas las filas de la tabla a la derecha del operando son incluídos,
-                        pareando las filas de la tabla a la izquierda del operando incluídos, y las
+                        Unión exterior por la derecha es el complementario de la unión exterior por la
+                        izquierda. Todas las filas de la tabla a la derecha del operando son incluidas,
+                        pareando las filas de la tabla a la izquierda del operando incluidas, y las
                         columnas de la tabla a la izquierda del operando son rellenadas con NULLs si
-                        no existen filas que calcen con la tabla de la derecha.
+                        no existen filas que coincidan con la tabla de la derecha.
                     </para>
 
                     <para>
-                        Algunos RDBMS no soportan'este tipo de join, pero en general, cualquier unión
-                        por la derecha puede representarse por una unión por la derecha invirtiendo
+                        Algunos RDBMS 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>
                 </listitem>
@@ -627,9 +627,9 @@ $select = $db->select()
                     <para>
                         Una unión externa total es como una combinación de una unión exterior por
                         la izquierda y una unión exterior por la derecha.
-                        Todas las filas de ambas tablas son incluídas, vinculadas entre sí
-                        en la  misma fila si estos satisfacen la condición de unión, y en otro
-                        caso se vinculan con valores nulos en lugar de columnas de la otra tabla.
+                        Todas las filas de ambas tablas son incluidas, vinculadas entre sí
+                        en la  misma fila si satisfacen la condición de unión, y en otro
+                        caso, se vinculan con valores nulos en lugar de columnas de la otra tabla.
                     </para>
 
                     <para>
@@ -648,7 +648,7 @@ $select = $db->select()
                         es pareada con cada una en la 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 una
+                        Puede filtrar el conjunto de resultados con el uso de condiciones en un
                         cláusula WHERE; de esta forma una unión cruzada es similar a la antigua
                         sintaxis de unión en SQL-89.
                     </para>
@@ -680,10 +680,10 @@ $select = $db->select()
             </itemizedlist>
 
             <para>
-                Además de los métodos de unión, puedes simplificar las consultas
+                Además de los métodos de unión, puede simplificar las consultas
                 usando métodos JoinUsing. En vez de proveer una condición completa a la unión,
-                simplemente pasas el nombre de columna en la que se hará la uninón y
-                el objeto Zend_Db_Select completa la condición por ti.
+                simplemente pase el nombre de columna en la que se hará la unión y
+                el objeto Zend_Db_Select completa la condición.
             </para>
 
             <example id="zend.db.select.building.joinusing.example">
@@ -691,7 +691,7 @@ $select = $db->select()
                 <title>Ejemplo de método joinUsing()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT *
 //   FROM "table1"
 //   JOIN "table2"
@@ -708,7 +708,7 @@ $select = $db->select()
 
             <para>
                 Cada uno de los métodos aplicables para uniones en el componente
-                Zend_Db_Select tiene su correspondiente método 'usando'.
+                Zend_Db_Select tiene su correspondiente método 'using' (usando)
             </para>
 
             <itemizedlist>
@@ -756,7 +756,7 @@ $select = $db->select()
                 <title>Ejemplo del método where()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT product_id, product_name, price
 //   FROM "products"
 //   WHERE price > 100.00
@@ -773,7 +773,7 @@ $select = $db->select()
 
                 <para>
                     No se aplica entrecomillado en una expresión dada en el método <code>where()</code> u
-                    <code>orWhere()</code>. Si tienes nombres de columnas que necesitan ser entrecomillada,
+                    <code>orWhere()</code>. Si tiene nombres de columnas que necesitan ser entrecomillados,
                     debe usar el método <code>quoteIdentifier()</code> para formar el string de la condición.
                 </para>
 
@@ -781,15 +781,15 @@ $select = $db->select()
 
             <para>
                 El segundo argumento del método <code>where()</code> es opcional.
-                Es un valor a sustituir en la expresión. Zend_Db_Select entrecomilla el valor
-                y sustituye por un signo de interrogación ("<code>?</code>") en la expresión.
+                Es un valor para sustituir en la expresión. Zend_Db_Select entrecomilla el valor
+                y lo sustituye por un signo de interrogación ("<code>?</code>") en la expresión.
             </para>
 
             <para>
-                Este método acepta solo un parámetro. Si tienes una expresión
-                en la cual necesitas sustituir multiples variables, deberás formar
+                Este método acepta solo un parámetro. Si tiene una expresión
+                en la cual necesita sustituir múltiples variables, deberá formar
                 el string manualmente, interpolando variables y realizando entrecomillado
-                tu mismo.
+                manualmente.
             </para>
 
             <example id="zend.db.select.building.where.example-param">
@@ -797,7 +797,7 @@ $select = $db->select()
                 <title>Ejemplo de parámetro en el método where()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT product_id, product_name, price
 //   FROM "products"
 //   WHERE (price > 100.00)
@@ -814,17 +814,17 @@ $select = $db->select()
             </example>
 
             <para>
-                Puedes invocar el método <code>where()</code> multiples veces en el mismo objeto
-                Zend_Db_Select. La consulta resultante combina los multiples terminos
-                juntos usando <code>AND</code> entre ellos.
+                Puede invocar el método <code>where()</code> múltiples veces en el mismo objeto
+                Zend_Db_Select. La consulta resultante combina los términos multiples
+                usando <code>AND</code> entre ellos.
             </para>
 
             <example id="zend.db.select.building.where.example-and">
 
-                <title>Ejemplo de multiples métodos where()</title>
+                <title>Ejemplo de métodos where() múltiples</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT product_id, product_name, price
 //   FROM "products"
 //   WHERE (price > 100.00)
@@ -844,9 +844,9 @@ $select = $db->select()
             </example>
 
             <para>
-                Si necesitas combinar terminos juntos uando <code>OR</code>, use el método
-                <code>orWhere()</code>. Este mñetodo se usa del mismo modo que el método
-                <code>where()</code>, excepto que el termino especificado es precedido por
+                Si necesita combinar terminos usando<code>OR</code>, use el método
+                <code>orWhere()</code>. Este método se usa del mismo modo que el método
+                <code>where()</code>, excepto que el término especificado es precedido por
                 <code>OR</code>, en lugar de <code>AND</code>.
             </para>
 
@@ -855,7 +855,7 @@ $select = $db->select()
                 <title>Ejemplo del método orWhere()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT product_id, product_name, price
 //   FROM "products"
 //   WHERE (price < 100.00)
@@ -876,17 +876,17 @@ $select = $db->select()
 
             <para>
                 Zend_Db_Select automáticamente pone paréntesis alrededor de cada expresión
-                que especifiques usandp el método <code>where()</code> u <code>orWhere()</code>.
+                que especifique usando el método <code>where()</code> u <code>orWhere()</code>.
                 Esto ayuda a asegurar que la precedencia del operador Booleano no cause resultados
                 inesperados.
             </para>
 
             <example id="zend.db.select.building.where.example-parens">
 
-                <title>Ejemplos de Expresiones Booleanas con parentesis</title>
+                <title>Ejemplos de Expresiones Booleanas con paréntesis</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT product_id, product_name, price
 //   FROM "products"
 //   WHERE (price < 100.00 OR price > 500.00)
@@ -908,9 +908,9 @@ $select = $db->select()
 
             <para>
                 En el ejemplo anterior, los resultados deberían ser diferentes sin paréntesis,
-                porque <code>AND</code> tiene alta precedencia respecto a <code>OR</code>.
+                porque <code>AND</code> tiene precedencia más alta respecto a <code>OR</code>.
                 Zend_Db_Select aplica el parentesis con un efecto tal que la expresión en sucesivas
-                llamadas al método <code>where()</code> vincule más estrechamente el <code>AND</code>
+                llamadas al método <code>where()</code> vincula de forma más fuerte el <code>AND</code>
                 que combina las expresiones.
             </para>
 
@@ -928,7 +928,7 @@ $select = $db->select()
             </para>
 
             <para>
-                En Zend_Db_Select, puedes especificar la(s) columna(s) a usar para el
+                En Zend_Db_Select, puede especificar la(s) columna(s) que usar para el
                 cálculo de grupos de filas usando el método <code>group()</code>.
                 El argumento de este método es una columna o un array de columnas
                 que se usarán en la cláusula <code>GROUP BY</code>.
@@ -936,10 +936,10 @@ $select = $db->select()
 
             <example id="zend.db.select.building.group.example">
 
-                <title>Ejemplo del método groups group()</title>
+                <title>Ejemplo del método group()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p."product_id", COUNT(*) AS line_items_per_product
 //   FROM "products" AS p JOIN "line_items" AS l
 //     ON p.product_id = l.product_id
@@ -958,8 +958,8 @@ $select = $db->select()
             </example>
 
             <para>
-                Como el array de columnas del método <code>from()</code>, peudes usar
-                correlación de nombres en el string de nombre de columna, y la conlumna será
+                Como el array de columnas del método <code>from()</code>, se puede usar
+                correlación de nombres en el string de nombre de columna, y la columna será
                 entrecomillada como un identificador, salvo que el string contenga paréntesis
                 o sea un objeto de tipo Zend_Db_Expr.
             </para>
@@ -980,14 +980,14 @@ $select = $db->select()
             </para>
 
             <para>
-                En Zend_Db_Select, puedes especificar condiciones para restringir
+                En Zend_Db_Select, puede especificar condiciones para restringir
                 grupos usando el método <code>having()</code>. Su uso es similar al
                 del método <code>where()</code>. 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 invocaciones al método
-                <code>having()</code> son combinados usando el operador Booleano
-                <code>AND</code>, o el operador <code>OR</code> si usas el método
+                <code>having()</code> son combinadas usando el operador Booleano
+                <code>AND</code>, o el operador <code>OR</code> si usa el método
                 <code>orHaving()</code>.
             </para>
 
@@ -996,7 +996,7 @@ $select = $db->select()
                 <title>Ejemplo del método having()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p."product_id", COUNT(*) AS line_items_per_product
 //   FROM "products" AS p JOIN "line_items" AS l
 //     ON p.product_id = l.product_id
@@ -1020,8 +1020,8 @@ $select = $db->select()
 
                 <para>
                     No se aplica entrecomillado a expresiones dadas al método <code>having()</code> u
-                    <code>orHaving()</code>. Si tienes nombres de columnas que deban ser
-                    entrecomillados, deberás usar <code>quoteIdentifier()</code> para
+                    <code>orHaving()</code>. Si tiene nombres de columnas que deban ser
+                    entrecomillados, deberá usar <code>quoteIdentifier()</code> para
                     formar el string de la condición.
                 </para>
 
@@ -1038,17 +1038,17 @@ $select = $db->select()
                 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 identicos.
-                El orden por defecto es del menor valor al mayor valor. Puedes también
+                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 <code>DESC</code> despues de la columna.
+                la palabra clave <code>DESC</code> después de la columna.
             </para>
 
             <para>
-                En Zend_Db_Select, puedes usar el método el método <code>order()</code>
+                En Zend_Db_Select, puede usar el método <code>order()</code>
                 para especificar una columna o un array de columnas por el cual ordenar.
                 Cada elemento del array es un string nombrando la columna. Opcionalmente con la
-                palabra reservada <code>ASC</code> o <code>DESC</code> siguiendola, deparada
+                palabra reservada <code>ASC</code> o <code>DESC</code> siguiendola, separada
                 por un espacio.
             </para>
 
@@ -1063,7 +1063,7 @@ $select = $db->select()
                 <title>Ejemplo del método order()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p."product_id", COUNT(*) AS line_items_per_product
 //   FROM "products" AS p JOIN "line_items" AS l
 //     ON p.product_id = l.product_id
@@ -1093,16 +1093,16 @@ $select = $db->select()
             <para>
                 Algunos RDBMS extienden una consulta SQL con una cláusula conocida como <code>LIMIT</code>.
                 Esta cláusuala reduce el número de filas en el resultado a no más de un número
-                especificado. También puedes especificar saltar el número de filas antes
+                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
-                progresivas páginas de salida.
+                páginas progresivas de salida.
             </para>
 
             <para>
-                En Zend_Db_Select, puedes usar el método <code>limit()</code> para especificar
-                la cantidad de filas y el número de filas a saltar. El primer argumento es
-                el método es el número de filas deseado. El segundo argument es el númerp de filas a saltar.
+                En Zend_Db_Select, puede usar el método <code>limit()</code> para especificar
+                la cantidad de filas y el número de filas que saltar. El primer argumento es
+                el método es el número de filas deseado. El segundo argument es el número de filas que saltar.
             </para>
 
             <example id="zend.db.select.building.limit.example">
@@ -1110,7 +1110,7 @@ $select = $db->select()
                 <title>Ejemplo del método limit()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p."product_id", p."product_name"
 //   FROM "products" AS p
 //   LIMIT 10, 20
@@ -1128,7 +1128,7 @@ $select = $db->select()
 
                 <para>
                     La sintaxis de <code>LIMIT</code> no está soportada por todos los RDBMS brands.
-                    Algunos RDBMS requieren diferente sintaxis para soportar una funcionalidad simialr.
+                    Algunos RDBMS requieren diferente sintaxis para soportar una funcionalidad similar
                     Cada clase Zend_Db_Adapter_Abstract incluye un método
                     para producir el SQL apropiado para cada RDBMS.
                 </para>
@@ -1136,12 +1136,12 @@ $select = $db->select()
             </note>
 
             <para>
-                Use el método <code>limitPage()</code> como un modo alternativa de
-                especificar la cantidad de filas y compensación.
+                Use el método <code>limitPage()</code> como un modo alternativo de
+                especificar la cantidad de filas y el offset.
                 Este método permite limitar el conjunto resultado a una serie de subconjuntos
                 de tamaño fijo de filas del total del resultado de la consulta.
-                En otras palabras, puedes especificar el tamaño de una "página" de resultados,
-                y el número ordinal de la página simple donde se espera que retorne la consulta.
+                En otras palabras, puede especificar el tamaño de una "página" de resultados,
+                y el número ordinal de la página simple donde se espera que devuelva la consulta.
                 El número de página es el primer argumento del método <code>limitPage()</code>,
                 y la longitud de la página es el segundo argumento.
                 Ambos son argumentos requeridos; no tienen valores por omisión.
@@ -1152,7 +1152,7 @@ $select = $db->select()
                 <title>Ejemplo del método limitPage()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p."product_id", p."product_name"
 //   FROM "products" AS p
 //   LIMIT 10, 20
@@ -1182,7 +1182,7 @@ $select = $db->select()
                 <title>Ejemplo del método distinct()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT DISTINCT p."product_name"
 //   FROM "products" AS p
 
@@ -1210,7 +1210,7 @@ $select = $db->select()
                 <title>Example of forUpdate() method</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT FOR UPDATE p.*
 //   FROM "products" AS p
 
@@ -1231,7 +1231,7 @@ $select = $db->select()
         <title>Ejecutando consultas Select</title>
 
         <para>
-            Esta sección se describe como ejecutar una consulta representada por
+            En esta sección se describe cómo ejecutar una consulta representada por
              un objeto Zend_Db_Select.
         </para>
 
@@ -1240,13 +1240,13 @@ $select = $db->select()
             <title>Ejecutando Consultas SelectExecuting desde el Adaptador de Base de Datos</title>
 
             <para>
-                Puedes ejecutar la consulta representada por el objeto Zend_Db_Select pasandolo
+                Puede ejecutar la consulta representada por el objeto Zend_Db_Select pasándolo
                 como primer argumento al método <code>query()</code> de un objeto Zend_Db_Adapter_Abstract.
                 Use objetos Zend_Db_Select en lugar de un string de consulta.
             </para>
 
             <para>
-                El método <code>query()</code> retorna un objeto de tipo
+                El método <code>query()</code> devuelve un objeto de tipo
                 Zend_Db_Statement o PDOStatement, dependiendo del tipo de adaptador.
             </para>
 
@@ -1273,8 +1273,8 @@ $result = $stmt->fetchAll();
 
             <para>
                 Como alternativa al uso del método <code>query()</code> del objeto adaptador,
-                puedes usar el método <code>query()</code> del objeto Zend_Db_Select. Ambos
-                métodos retornan un objeto de tipo Zend_Db_Statement o PDOStatement, dependiendo
+                puede usar el método <code>query()</code> del objeto Zend_Db_Select. Ambos
+                métodos devuelven un objeto de tipo Zend_Db_Statement o PDOStatement, dependiendo
                 del tipo de adaptador.
             </para>
 
@@ -1300,7 +1300,7 @@ $result = $stmt->fetchAll();
             <title>Convertiendo un Objeto Select a un String SQL</title>
 
             <para>
-                Si necesitas acceder a una represantación en un string de la
+                Si necesita acceder a una represantación en un string de la
                 consulta SQL correspondiente al objeto Zend_Db_Select,
                 use el método <code>__toString()</code>.
             </para>
@@ -1316,7 +1316,7 @@ $select = $db->select()
 $sql = $select->__toString();
 echo "$sql\n";
 
-// The output is the string:
+// La salida es el string:
 //   SELECT * FROM "products"
 ]]>
                 </programlisting>
@@ -1341,9 +1341,9 @@ echo "$sql\n";
             <title>Obtener Partes de un Objeto Select</title>
 
             <para>
-                El método <code>getPart()</code> retorna una representación de
-                una parte de su consulta SQL. Por ejemplo, puedes usar este
-                método para retornar un array de expresiones para la cláusula
+                El método <code>getPart()</code> 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
                 <code>WHERE</code>, o el array de columnas (o expresiones de
                 columnas) que estan en la lista del <code>SELECT</code>, o los
                 valores de la cantidad y comienzo para la cláusula
@@ -1360,8 +1360,8 @@ echo "$sql\n";
 
             <para>
                 El único argumento del método <code>getPart()</code> es un
-                string que identifica que parte del la consulta Select va a
-                retornar. Por ejemplo, el string <code>'from'</code> identifica
+                string que identifica qué parte del la consulta Select va a
+                devolver. Por ejemplo, el string <code>'from'</code> identifica
                 la parte del objeto Select que almacena la información de las
                 tablas de la cláusula <code>FROM</code>, incluyendo uniones de
                 tablas.
@@ -1370,7 +1370,7 @@ echo "$sql\n";
             <para>
                 La clase Zend_Db_Select define constantes que puedes usar para
                 las partes de la consulta SQL.
-                Puedes usar estas definiciones de constantes, o los strings
+                Puede usar estas definiciones de constantes, o los strings
                 literales.
             </para>
 
@@ -1449,10 +1449,10 @@ $select = $db->select()
              ->from('products')
              ->order('product_id');
 
-// Puedes especificar un string string literal para especificar la parte
+// Puede especificar un string literal para especificar la parte
 $orderData = $select->getPart( 'order' );
 
-// Puedes usar una constante para especificar la misma parte
+// Puede usar una constante para especificar la misma parte
 $orderData = $select->getPart( Zend_Db_Select::ORDER );
 
 // El valor de retorno puede ser una estructura en un array, no un string.
@@ -1472,22 +1472,22 @@ print_r( $orderData );
             <para>
                 El método <code>reset()</code> permite limpiar una parte
                 específica de la consulta SQL, o limpia todas las partes de la
-                consulta SQL si omites el argumento.
+                consulta SQL si omite el argumento.
             </para>
 
             <para>
-                El argumento es opcional. Puedes especificar la parte de la
+                El argumento es opcional. Puede especificar la parte de la
                 consulta que será limpiada, usando los mismos strings que usa el
                 argumento del método <code>getPart()</code>. La parte de la
-                consulta que especifiques se reestablecerá a su estado por
+                consulta que especifique se reestablecerá a su estado por
                 omisión.
             </para>
 
             <para>
-                Si omites el parámetro, <code>reset()</code> cambia todas las
+                Si omite el parámetro, <code>reset()</code> 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 un nuevo
-                objeto, como si acabases de instanciarlo.
+                objeto, como si acabase de instanciarlo.
             </para>
 
             <example id="zend.db.select.other.reset.example">
@@ -1495,7 +1495,7 @@ print_r( $orderData );
                 <title>Ejemplo del método reset()</title>
 
                 <programlisting role="php"><![CDATA[
-// Construye esta consulta:
+// Construya esta consulta:
 //   SELECT p.*
 //   FROM "products" AS p
 //   ORDER BY "product_name"

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

@@ -8,7 +8,7 @@
         <xref linkend="zend.db.adapter" />, puede usarse un objeto de declaración
         para obtener más opciones al ejecutar consultas y devolver conjuntos de
         resultados. Esta sección describe cómo obtener una instancia de un
-        objeto de declaración y como usar sus métodos.
+        objeto de declaración y cómo usar sus métodos.
     </para>
 
     <para>
@@ -43,7 +43,7 @@ $stmt = $db->query(
 
         <para>
             El objeto de declaración corresponde a una declaración SQL que ha
-            sido preparada, y ejecutada una vez con valores vinculados
+            sido preparada y ejecutada una vez con valores vinculados
             especificados.
             Si la declaración fue una consulta SELECT u otro tipo de declaración
             que devuelve un conjunto de resultados, ahora estará lista para
@@ -51,7 +51,7 @@ $stmt = $db->query(
         </para>
 
         <para>
-            Puede crear una declaración con su constructor, pero este es un
+            Puede crear una declaración con su constructor, pero éste es un
             uso menos típico. No hay un método factory para crear el objeto,
             así que es necesario cargar una clase de declaración específica y llamar a su constructor.
             Pase el objeto Adaptador como el primer parámetro, y un string
@@ -138,15 +138,15 @@ $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.
-
+         
             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
             Zend_Db_Statement, pero no puede llamar a los métodos que extraen
-            filas de resultados desde este.
+            filas de resultados desde éste.
         </para>
 
         <sect3 id="zend.db.statement.fetching.fetch">
@@ -163,7 +163,7 @@ $stmt->execute(array(':reporter' => 'goofy', ':status' => 'FIXED'));
                 <listitem>
                     <para>
                         <emphasis role="strong">Estilo de Extracción</emphasis>
-                        es el primer parámetro.  Éste controla la estructura
+                        es el primer parámetro. Éste controla la estructura
                         en la que será devuelta la fila.
                         Vea <xref linkend="zend.db.adapter.select.fetch-mode" />
                         para la descripción de un valor válido los
@@ -300,7 +300,7 @@ echo $rows[0][0];
                 Para devolver una única columna de la siguiente fila del
                 conjunto de resultados, use <code>fetchColumn()</code>. El
                 parámetro opcional es el índice de la columna (integer), y por
-                defecto es 0.  Este método devuelve un valor escalar, o
+                defecto es 0. Este método devuelve un valor escalar, o
                 <code>false</code> si todas las filas del conjunto de resultados
                 han sido extraídas.
             </para>
@@ -341,7 +341,7 @@ $bug_status = $stmt->fetchColumn(2);
                 <code>fetchObject()</code>.  Este método tiene 2 parámetros
                 opcionales. El primer parámetro es un string con el nombre de
                 la clase del objeto que devolver; por defecto será 'stdClass'. El segundo
-                parámetro es un array de valores que serán pasados al
+                parámetro es un array de valores que será pasado al
                 constructor de la clase.
             </para>
 

+ 42 - 57
documentation/manual/es/module_specs/Zend_Db_Table_Row.xml

@@ -1,4 +1,6 @@
-<sect1 id="zend.db.table.row">
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.db.table.row">
 
     <title>Zend_Db_Table_Row</title>
 
@@ -7,14 +9,14 @@
         <title>Introduction</title>
 
         <para>
-            Zend_Db_Table_Row is a class that contains an individual row of a Zend_Db_Table object.
+            <classname>Zend_Db_Table_Row</classname> is a class that contains an individual row of a <classname>Zend_Db_Table</classname> object.
             When you run a query against a Table class, the result is returned in a set of
-            Zend_Db_Table_Row objects. You can also use this object to create new rows and add them
+            <classname>Zend_Db_Table_Row</classname> objects. You can also use this object to create new rows and add them
             to the database table.
         </para>
 
         <para>
-            Zend_Db_Table_Row is an implementation of the <ulink
+            <classname>Zend_Db_Table_Row</classname> is an implementation of the <ulink
             url="http://www.martinfowler.com/eaaCatalog/rowDataGateway.html">Row Data Gateway</ulink>
             pattern.
         </para>
@@ -26,9 +28,9 @@
         <title>Fetching a Row</title>
 
         <para>
-            Zend_Db_Table_Abstract provides methods <code>find()</code> and
-            <code>fetchAll()</code>, which each return an object of type Zend_Db_Table_Rowset, and
-            the method <code>fetchRow()</code>, which returns an object of type Zend_Db_Table_Row.
+            <classname>Zend_Db_Table_Abstract</classname> provides methods <code>find()</code> and
+            <code>fetchAll()</code>, which each return an object of type <classname>Zend_Db_Table_Rowset</classname>, and
+            the method <code>fetchRow()</code>, which returns an object of type <classname>Zend_Db_Table_Row</classname>.
         </para>
 
         <example id="zend.db.table.row.read.example">
@@ -38,13 +40,12 @@
             <programlisting role="php"><![CDATA[
 $bugs = new Bugs();
 $row = $bugs->fetchRow($bugs->select()->where('bug_id = ?', 1));
-]]>
-            </programlisting>
+]]></programlisting>
 
         </example>
 
         <para>
-            A Zend_Db_Table_Rowset object contains a collection of Zend_Db_Table_Row objects. See
+            A <classname>Zend_Db_Table_Rowset</classname> object contains a collection of <classname>Zend_Db_Table_Row</classname> objects. See
             <xref linkend="zend.db.table.rowset" />.
         </para>
 
@@ -56,8 +57,7 @@ $row = $bugs->fetchRow($bugs->select()->where('bug_id = ?', 1));
 $bugs = new Bugs();
 $rowset = $bugs->fetchAll($bugs->select()->where('bug_status = ?', 1));
 $row = $rowset->current();
-]]>
-            </programlisting>
+]]></programlisting>
 
         </example>
 
@@ -66,7 +66,7 @@ $row = $rowset->current();
             <title>Reading column values from a row</title>
 
             <para>
-                Zend_Db_Table_Row_Abstract provides accessor methods so you can reference columns
+                <classname>Zend_Db_Table_Row_Abstract</classname> provides accessor methods so you can reference columns
                 in the row as object properties.
             </para>
 
@@ -80,21 +80,20 @@ $row = $bugs->fetchRow($bugs->select()->where('bug_id = ?', 1));
 
 // Echo the value of the bug_description column
 echo $row->bug_description;
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
             <note>
 
                 <para>
-                    Earlier versions of Zend_Db_Table_Row mapped these column accessors to the
+                    Earlier versions of <classname>Zend_Db_Table_Row</classname> mapped these column accessors to the
                     database column names using a string transformation called
                     <emphasis>inflection</emphasis>.
                 </para>
 
                 <para>
-                    Currently, Zend_Db_Table_Row does not implement inflection. Accessed property
+                    Currently, <classname>Zend_Db_Table_Row</classname> does not implement inflection. Accessed property
                     names need to match the spelling of the column names as they appear in your
                     database.
                 </para>
@@ -129,8 +128,7 @@ foreach ($rowArray as $column => $value) {
     echo "Column: $column\n";
     echo "Value:  $value\n";
 }
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -147,7 +145,7 @@ foreach ($rowArray as $column => $value) {
             <title>Fetching data from related tables</title>
 
             <para>
-                The Zend_Db_Table_Row_Abstract class provides methods for fetching rows and rowsets
+                The <classname>Zend_Db_Table_Row_Abstract</classname> class provides methods for fetching rows and rowsets
                 from related tables. See <xref linkend="zend.db.table.relationships" /> for more
                 information on table relationships.
             </para>
@@ -188,8 +186,7 @@ $row->bug_status = 'FIXED';
 
 // UPDATE the row in the database with new values
 $row->save();
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -220,8 +217,7 @@ $newRow->bug_status = 'NEW';
 
 // INSERT the new row to the database
 $newRow->save();
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -245,8 +241,7 @@ $newRow = $bugs->createRow($data);
 
 // INSERT the new row to the database
 $newRow->save();
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -254,7 +249,7 @@ $newRow->save();
 
                 <para>
                     The <code>createRow()</code> method was called <code>fetchNew()</code> in
-                    earlier releases of Zend_Db_Table. You are encouraged to use the new method
+                    earlier releases of <classname>Zend_Db_Table</classname>. You are encouraged to use the new method
                     name, even though the old name continues to work for the sake of backward
                     compatibility.
                 </para>
@@ -268,7 +263,7 @@ $newRow->save();
             <title>Changing values in multiple columns</title>
 
             <para>
-                Zend_Db_Table_Row_Abstract provides the <code>setFromArray()</code> method to
+                <classname>Zend_Db_Table_Row_Abstract</classname> provides the <code>setFromArray()</code> method to
                 enable you to set several columns in a single row at once, specified in an
                 associative array that maps the column names to values. You may find this method
                 convenient for setting values both for new rows and for rows you need to update.
@@ -293,8 +288,7 @@ $newRow->setFromArray($data);
 
 // INSERT the new row to the database
 $newRow->save();
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -319,8 +313,7 @@ $row = $bugs->fetchRow('bug_id = 1');
 
 // DELETE this row
 $row->delete();
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -341,7 +334,7 @@ $row->delete();
             It is often convenient to save the contents of a database row to be used later.
             <emphasis>Serialization</emphasis> is the name for the operation that converts an
             object into a form that is easy to save in offline storage (for example, a file).
-            Objects of type Zend_Db_Table_Row_Abstract are serializable.
+            Objects of type <classname>Zend_Db_Table_Row_Abstract</classname> are serializable.
         </para>
 
         <sect3 id="zend.db.table.row.serialize.serializing">
@@ -365,8 +358,7 @@ $row = $bugs->fetchRow('bug_id = 1');
 $serializedRow = serialize($row);
 
 // Now you can write $serializedRow to a file, etc.
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -397,8 +389,7 @@ $rowClone = unserialize($serializedRow);
 
 // Now you can use object properties, but read-only
 echo $rowClone->bug_description;
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -426,7 +417,7 @@ echo $rowClone->bug_description;
 
             <para>
                 You can reactivate a disconnected Row, using the <code>setTable()</code> method.
-                The argument to this method is a valid object of type Zend_Db_Table_Abstract, which
+                The argument to this method is a valid object of type <classname>Zend_Db_Table_Abstract</classname>, which
                 you create. Creating a Table object requires a live connection to the database, so
                 by reassociating the Table with the Row, the Row gains access to the database.
                 Subsequently, you can change values in the Row object and save the changes to the
@@ -449,8 +440,7 @@ $rowClone->setTable($bugs);
 // Now you can make changes to the row and save them
 $rowClone->bug_status = 'FIXED';
 $rowClone->save();
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -463,9 +453,9 @@ $rowClone->save();
         <title>Extending the Row class</title>
 
         <para>
-            Zend_Db_Table_Row is the default concrete class that extends
-            Zend_Db_Table_Row_Abstract. You can define your own concrete class for instances of Row
-            by extending Zend_Db_Table_Row_Abstract. To use your new Row class to store results of
+            <classname>Zend_Db_Table_Row</classname> is the default concrete class that extends
+            <classname>Zend_Db_Table_Row_Abstract</classname>. You can define your own concrete class for instances of Row
+            by extending <classname>Zend_Db_Table_Row_Abstract</classname>. To use your new Row class to store results of
             Table queries, specify the custom Row class by name either in the
             <code>$_rowClass</code> protected member of a Table class, or in the array argument of
             the constructor of a Table object.
@@ -492,8 +482,7 @@ class Products extends Zend_Db_Table_Abstract
 // Or specify a custom Row to be used in one
 // instance of a Table class.
 $bugs = new Bugs(array('rowClass' => 'MyRow'));
-]]>
-            </programlisting>
+]]></programlisting>
 
         </example>
 
@@ -522,8 +511,7 @@ class MyApplicationRow extends Zend_Db_Table_Row_Abstract
         $this->_role = new MyRoleClass();
     }
 }
-]]>
-                    </programlisting>
+]]></programlisting>
 
                 </example>
 
@@ -533,7 +521,7 @@ class MyApplicationRow extends Zend_Db_Table_Row_Abstract
 
         <sect3 id="zend.db.table.row.extending.insert-update">
 
-            <title>Defining Custom Logic for Insert, Update, and Delete in Zend_Db_Table_Row</title>
+            <title>Defining Custom Logic for Insert, Update, and Delete in <classname>Zend_Db_Table_Row</classname></title>
 
             <para>
                 The Row class calls protected methods <code>_insert()</code>,
@@ -569,7 +557,7 @@ class MyApplicationRow extends Zend_Db_Table_Row_Abstract
 
                 <para>
                     You need data operations on this table to record the operation to a
-                    Zend_Log object, but only if the application configuration has enabled this
+                    <classname>Zend_Log</classname> object, but only if the application configuration has enabled this
                     behavior.
                 </para>
 
@@ -593,8 +581,7 @@ if ($loggingEnabled) {
 } else {
     $bugs = new Bugs();
 }
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -637,8 +624,7 @@ class Products extends Zend_Db_Table_Abstract
     protected $_name = 'products';
     protected $_rowClass = 'MyLoggingRow';
 }
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 
@@ -646,7 +632,7 @@ class Products extends Zend_Db_Table_Abstract
 
         <sect3 id="zend.db.table.row.extending.inflection">
 
-            <title>Define Inflection in Zend_Db_Table_Row</title>
+            <title>Define Inflection in <classname>Zend_Db_Table_Row</classname></title>
 
             <para>
                 Some people prefer that the table class name match a table name in the RDBMS by
@@ -654,7 +640,7 @@ class Products extends Zend_Db_Table_Abstract
             </para>
 
             <para>
-                Zend_Db classes do not implement inflection by default. See
+                <classname>Zend_Db</classname> classes do not implement inflection by default. See
                 <xref linkend="zend.db.table.extending.inflection" /> for an explanation of this
                 policy.
             </para>
@@ -698,8 +684,7 @@ $row = $bugs->fetchNew();
 // transformation function to change it into the
 // native representation.
 $row->bugDescription = 'New description';
-]]>
-                </programlisting>
+]]></programlisting>
 
             </example>
 

+ 152 - 149
documentation/manual/es/module_specs/Zend_Form-Advanced.xml

@@ -2,8 +2,8 @@
     <title>Uso avanzado de Zend_Form</title>
 
     <para>
-        <code>Zend_Form</code> tiene una riqueza de funcionalidad, has a wealth of functionality, muchas de ellas diregidas
-        a expertos desarroladores. Este capítulo tiene por objeto al documento algunas de estas
+        <code>Zend_Form</code> tiene una funcional riqueza, muchas de ellas dirigidas
+        a expertos desarroladores. Este capítulo esta dirigido a documentar algunas de las
         funcionalidades con ejemplos y casos de uso.
     </para>
 
@@ -11,12 +11,12 @@
         <title>Notación de array</title>
 
         <para>
-            Muchos desarroladores experimentados les gusta agrupar elementos de formulario
-            usando notación de array en los nombres de elementos. Por ejemplo, si se tiene
-            dos direcciones que se desea capturar, un envio y una dirección de facturación,
-            se puede tener elementos identicos; agrupandolos en un array se puede
-            asegurar que son capturados por separado. Toma el siguiente fomrulario
-            por ejemplo:
+        	Muchos desarroladores web experimentados les gusta agrupar relacionados elementos de formulario
+        	usando notación de array en los nombres del elemento. Por ejemplo, si se tiene
+        	dos direcciones que se desea capturar, un envio y una dirección de facturación,
+        	se puede tener elementos idénticos; agrupandolos en un array se puede
+        	asegurar que son capturados por separado. Notese el siguiente formulario
+        	por ejemplo:
         </para>
 
         <programlisting role="html"><![CDATA[
@@ -73,9 +73,13 @@
 </programlisting>
 
         <para>
-            En este ejemplo, la facturación y la dirección de envío contienen algunos
-            campos identicos, eso significa uno puede sobre escribir al otro. Nosotros podemos
-            resolver esta solución usando una notación de array:
+        	En este ejemplo, la facturación y la dirección de envío contienen algunos
+        	campos idénticos, eso significa uno puede sobre escribir al otro. Nosotros podemos
+        	resolver esta solución usando una notación de array:
+        
+        	In this example, the billing and shipping address contain some
+            identical fields, which means one would overwrite the other. We can
+            solve this solution using array notation:
         </para>
 
         <programlisting role="html"><![CDATA[
@@ -142,101 +146,100 @@
 </programlisting>
 
         <para>
-            In the above sample, we now get separate addresses. In the submitted
-            form, we'll now have three elements, the 'save' element for the
-            submit, and then two arrays, 'shipping' and 'billing', each with
-            keys for their various elements.
+        	En el ejemplo anterior, obtenemos separadas direcciones. En el formulario
+        	sometido, ahora tenemos tres elementos, 'guardar' elemento para someterlo,
+        	y dos arrays, 'envio' y 'cuenta', cada uno con
+        	llaves para los variados elementos.
         </para>
 
         <para>
-            <code>Zend_Form</code> attempts to automate this process with its
-            <link linkend="zend.form.forms.subforms">sub forms</link>. By
-            default, sub forms render using the array notation as shown in the
-            previous HTML form listing, complete with ids. The array name is
-            based on the sub form name, with the keys based on the elements
-            contained in the sub form. Sub forms may be nested arbitrarily deep,
-            and this will create nested arrays to reflect the structure.
-            Additionally, the various validation routines in
-            <code>Zend_Form</code> honor the array structure, ensuring that your
-            form validates correctly, no matter how arbitrarily deep you nest
-            your sub forms. You need do nothing to benefit from this; this
-            behaviour is enabled by default.
+        	<code>Zend_Form</code> intenta automatizar este proceso con los
+            <link linkend="zend.form.forms.subforms">sub formularios</link>. Por
+            defecto, los sub formularios son generados usando la notación de array como se muestra
+            en el anterior formulario HTML listado completo con identificadores. El nombre del array 
+            esta basado en el nombre del sub formulario, con las llaves basados en los elementos
+            contenidos  en el sub formulario. Los sub formularios pueder ser anidados arbitrariamente,
+            y esto puede crear arrays anidados que reflejan la estructura.
+            Adicionalmente, las validaciones rutinarias en
+            <code>Zend_Form</code> respetan la estructura del array, asegurando que sus
+            formularios sean validados correctamente, no importa cuan arbitrariamente anidados esten los
+            sub formularios. No se necesita hacer nada para beneficiarse; éste
+            comportamiento esta activo por defecto.           
         </para>
 
         <para>
-            Additionally, there are facilities that allow you to turn on array
-            notation conditionally, as well as specify the specific array to
-            which an element or collection belongs:
+        	Adicionalmente, existen facilidades que le permiten activar condicionalmente la notación
+        	de un array, así como también especificar el específico array al
+        	cual un elemento o coleccion pertenece:
         </para>
 
         <itemizedlist>
             <listitem>
                 <para>
-                    <code>Zend_Form::setIsArray($flag)</code>: By setting the
-                    flag true, you can indicate that an entire form should be
-                    treated as an array. By default, the form's name will be
-                    used as the name of the array, unless
-                    <code>setElementsBelongTo()</code> has been called. If the
-                    form has no specified name, or if
-                    <code>setElementsBelongTo()</code> has not been set, this
-                    flag will be ignored (as there is no array name to which
-                    the elements may belong).
+                	<code>Zend_Form::setIsArray($flag)</code>: Definiendo la
+                	bandera a verdadero, se puede indicar que un entero formulario deberia ser
+                	tratado como un array. Por defecto, el nombre del formulario será
+                	usado como el nombre del array, a no ser que
+                    <code>setElementsBelongTo()</code> haya sido llamado. si el
+                    formulario no tiene un específico nombre, o si
+                    <code>setElementsBelongTo()</code> no ha sido definido, esta bandera
+                    será ignorada (como no hay nombre del array al cual
+                    los elementos puedan pertenecer).                   
                 </para>
 
                 <para>
-                    You may determine if a form is being treated as an array
-                    using the <code>isArray()</code> accessor.
+                	Se deberá determinar si un formulario esta siendo tratado como un array
+                	usando el acceso <code>isArray()</code>.
                 </para>
             </listitem>
 
             <listitem><para>
-                    <code>Zend_Form::setElementsBelongTo($array)</code>:
-                    Using this method, you can specify the name of an array to
-                    which all elements of the form belong. You can determine the
-                    name using the <code>getElementsBelongTo()</code> accessor.
+            		<code>Zend_Form::setElementsBelongTo($array)</code>:
+                    Usando este método, se puede especificar el nombre de un array al
+                    cual todos los elementos del formulario pertenecen. Se puede determinar el
+                    nombre usando el accesor <code>getElementsBelongTo()</code>.                   
             </para></listitem>
         </itemizedlist>
 
         <para>
-            Additionally, on the element level, you can specify individual
-            elements may belong to particular arrays using
-            <code>Zend_Form_Element::setBelongsTo()</code> method.
-            To discover what this value is -- whether set explicitly or
-            implicitly via the form -- you may use the
-            <code>getBelongsTo()</code> accessor.
+        	Adicionalmente, sobre el nivel del elemento, se puede especificar
+        	elementos individuales que puedan pertenecer a arrays particulares usando
+            el método <code>Zend_Form_Element::setBelongsTo()</code>.
+            Para descubrir el valor que tiene -- sea o no sea definido explicitamente o
+            implicitamente a través del formulario -- se puede usar el
+            acceso <code>getBelongsTo()</code>.
         </para>
     </sect2>
 
     <sect2 id="zend.form.advanced.multiPage">
-        <title>Multi-Page Forms</title>
+        <title>Formularioss Multi-Página</title>
 
         <para>
-            Currently, Multi-Page forms are not officially supported in
-            <code>Zend_Form</code>; however, most support for implementing them
-            is available and can be utilized with a little extra tooling.
+        	Actualmente, los formularios multi-página no son oficialmente soportados in
+            <code>Zend_Form</code>; sin embargo, mas soporte para implementarlos
+            esta disponible y puede ser utilizado con una pequeña ayuda.
         </para>
 
         <para>
-            The key to creating a multi-page form is to utilize sub forms, but
-            to display only one such sub form per page. This allows you to
-            submit a single sub form at a time and validate it, but not process
-            the form until all sub forms are complete.
+        	La clave para crear fomrularios multi-página es utilizar sub formularios, pero
+        	solo para desplegar un solo sub formulario por página. Esto le permite
+        	someter un solo sub formulario a la vez y validarlo, pero no procesar
+        	el formulario hasta que todos los sub formularios esten completos.
         </para>
 
         <example id="zend.form.advanced.multiPage.registration">
-            <title>Registration Form Example</title>
-
+            <title>Ejemplo de formulario registración</title>
             <para>
-                Let's use a registration form as an example. For our purposes,
-                we want to capture the desired username and password on the
-                first page, then the user's metadata -- given name, family name,
-                and location -- and finally allow them to decide what mailing
-                lists, if any, they wish to subscribe to.
+            	Vamos a usar un formulario registración como un ejemplo. para nuestros propósitos,
+            	nosotros queremos capturar el nombre del usuario y la contraseña en la
+            	primera página, despues la información del usuario -- nombre, apellido,
+            	y ubicación -- y finalmente prmitirles decidir que lista de correo,
+            	si ellos desean suscribirse.
             </para>
 
             <para>
-                First, let's create our own form, and define several sub forms
-                within it:
+            	Primero, vamos a crear nuestro propio formulario, y definir varios subformularios
+            	dentro del mismo:
             </para>
 
             <programlisting role="php"><![CDATA[
@@ -244,7 +247,7 @@ class My_Form_Registration extends Zend_Form
 {
     public function init()
     {
-        // Create user sub form: username and password
+        // Crea un sub formulario usuario: username y password
         $user = new Zend_Form_SubForm();
         $user->addElements(array(
             new Zend_Form_Element_Text('username', array(
@@ -270,7 +273,7 @@ class My_Form_Registration extends Zend_Form
             )),
         ));
 
-        // Create demographics sub form: given name, family name, and
+        // Crea un sub formulario de datos demográficos : given name, family name, y
         // location
         $demog = new Zend_Form_SubForm();
         $demog->addElements(array(
@@ -306,7 +309,7 @@ class My_Form_Registration extends Zend_Form
             )),
         ));
 
-        // Create mailing lists sub form
+        // Crea un sub fomulario de de correos
         $listOptions = array(
             'none'        => 'No lists, please',
             'fw-general'  => 'Zend Framework General List',
@@ -330,7 +333,7 @@ class My_Form_Registration extends Zend_Form
             )),
         ));
 
-        // Attach sub forms to main form
+        // Adjuntando los sub formlarios al formulario principal
         $this->addSubForms(array(
             'user'  => $user,
             'demog' => $demog,
@@ -342,13 +345,13 @@ class My_Form_Registration extends Zend_Form
             </programlisting>
 
             <para>
-                Note that there are no submit buttons, and that we have done
-                nothing with the sub form decorators -- which means that by
-                default they will be displayed as fieldsets. We will need to be
-                able to override these as we display each individual sub form,
-                and add in submit buttons so we can actually process them --
-                which will also require action and method properties. Let's add
-                some scaffolding to our class to provide that information:
+            	Note que hay botones de sometimiento, y que ni hemos hecho
+            	nada con el decorador de sub formularios -- lo que significa que por
+            	defecto serán desplegados como campos. Necesitaremos hacer
+            	algo con ellos mientras desplegamos cada sub formulario indivisualmente,
+            	y adicionar botones demanera que podamos actualmente procesarlos --
+            	el cual requerira las propiedades acción y método. vamos adicionar
+            	algunos scaffolding a nuestras clases para proveer esa información:
             </para>
 
             <programlisting role="php"><![CDATA[
@@ -357,7 +360,7 @@ class My_Form_Registration extends Zend_Form
     // ...
 
     /**
-     * Prepare a sub form for display
+     * Prepara un sub formulario para mostrar
      *
      * @param  string|Zend_Form_SubForm $spec
      * @return Zend_Form_SubForm
@@ -396,7 +399,7 @@ class My_Form_Registration extends Zend_Form
     }
 
     /**
-     * Add a submit button to an individual sub form
+     * Añade un Boton de envio(submit) a cada sub formulario
      *
      * @param  Zend_Form_SubForm $subForm
      * @return My_Form_Registration
@@ -415,7 +418,7 @@ class My_Form_Registration extends Zend_Form
     }
 
     /**
-     * Add action and method to sub form
+     * Añade el method y el action a cada sub formulario
      *
      * @param  Zend_Form_SubForm $subForm
      * @return My_Form_Registration
@@ -431,19 +434,20 @@ class My_Form_Registration extends Zend_Form
             </programlisting>
 
             <para>
-                Next, we need to add some scaffolding in our action controller,
-                and have several considerations.  First, we need to make sure we
-                persist form data between requests, so that we can determine
-                when to quit.  Second, we need some logic to determine what form
-                segments have already been submitted, and what sub form to
-                display based on that information.  We'll use
-                <code>Zend_Session_Namespace</code> to persist data, which will
-                also help us answer the question of which form to submit.
+            	Siguiente, necesitamos adicionar scaffolding en nuestro controlador acción,
+            
+            	y tener muchas consideraciones. Primero, necesitamos asegurar que
+            	persiste la información del formulario entre los requerimientos, de esa manera determinar
+            	cuadno terminar. Segundo, necesitamos alguna lógica para determinar que segmentos
+            	del formulario han sido sometidos, y que sub formulario
+            	desplegar de acuerdo a la información. Usaremos
+                <code>Zend_Session_Namespace</code> para persistir la información, el cual
+                nos ayudará a responder la pregunta de cual formulario someter.
             </para>
 
             <para>
-                Let's create our controller, and add a method for retrieving a
-                form instance:
+            	Vamos a crear nuestro controlador, y adicionar un método para recuperar un
+            	formulario instanciado:
             </para>
 
             <programlisting role="php"><![CDATA[
@@ -463,13 +467,13 @@ class RegistrationController extends Zend_Controller_Action
             </programlisting>
 
             <para>
-                Now, let's add some functionality for determining which form to
-                display. Basically, until the entire form is considered valid,
-                we need to continue displaying form segments. Additionally, we
-                likely want to make sure they're in a particular order: user,
-                demog, and then lists. We can determine what data has been
-                submitted by checking our session namespace for particular keys
-                representing each subform.
+            	Ahora, vamos adicionar algunas funcionalidades para determinar cual formulario
+            	desplegar. Basicamente, hasta que el entero formulario sea considerado válido,
+            	necesitamos continuar desplegando segmentos de formulario. Adicionalmente,
+            	queremos asegurar que estan en un orden particular: usuario,
+            	demog, y despues las listas. Podemos determinar que información ha sido
+            	sometida verificando nuestra sesión namespace para claves particulares
+            	representando cada sub formulario.
             </para>
 
             <programlisting role="php"><![CDATA[
@@ -481,7 +485,7 @@ class RegistrationController extends Zend_Controller_Action
     protected $_session;
 
     /**
-     * Get the session namespace we're using
+     * Obtiene el namespace de la sesión que estamos usando
      *
      * @return Zend_Session_Namespace
      */
@@ -496,7 +500,7 @@ class RegistrationController extends Zend_Controller_Action
     }
 
     /**
-     * Get a list of forms already stored in the session
+     * Obtiene la lista de Formularios que ya estan almacenados en la sesión
      *
      * @return array
      */
@@ -511,7 +515,7 @@ class RegistrationController extends Zend_Controller_Action
     }
 
     /**
-     * Get list of all subforms available
+     * Obtiene la lista de todos los subformularios disponibles
      *
      * @return array
      */
@@ -521,7 +525,7 @@ class RegistrationController extends Zend_Controller_Action
     }
 
     /**
-     * What sub form was submitted?
+     * Que sub formulario se envio?
      *
      * @return false|Zend_Form_SubForm
      */
@@ -545,7 +549,7 @@ class RegistrationController extends Zend_Controller_Action
     }
 
     /**
-     * Get the next sub form to display
+     * Obtiene el siguiente sub formulario para mostratlo
      *
      * @return Zend_Form_SubForm|false
      */
@@ -567,30 +571,30 @@ class RegistrationController extends Zend_Controller_Action
             </programlisting>
 
             <para>
-                The above methods allow us to use notations such as "<code>$subForm =
-                    $this-&gt;getCurrentSubForm();</code>" to retrieve the current
-                sub form for validation, or "<code>$next =
-                    $this-&gt;getNextSubForm();</code>" to get the next one to
-                display.
+            	El método de arriba nos permite usar notaciones tal como "<code>$subForm =
+                    $this-&gt;getCurrentSubForm();</code>" recuperar el actual
+                sub formulario para la validación, o "<code>$next =
+                    $this-&gt;getNextSubForm();</code>" obtener el siguiente para
+                desplegar.
             </para>
 
             <para>
-                Now, let's figure out how to process and display the various sub
-                forms. We can use <code>getCurrentSubForm()</code> to determine
-                if any sub forms have been submitted (false return values
-                indicate none have been displayed or submitted), and
-                <code>getNextSubForm()</code> to retrieve a form to display. We
-                can then use the form's <code>prepareSubForm()</code> method to
-                ensure the form is ready for display.
+            	Ahora, vamos a encontrar la manera para procesar y desplegar varios
+            	sub formularios. pdemos usar <code>getCurrentSubForm()</code> para determianr
+            	si algún sub formulario ha sido sometido (falso retorna ningún valor
+            	ha sido desplegado o sometido), y
+                <code>getNextSubForm()</code> recupera el formulario a desplegar. Podemos
+                entonces usar el método del formulario <code>prepareSubForm()</code> para asegurar
+                que el formulario esta listo para desplegar.
             </para>
 
             <para>
-                When we have a form submission, we can validate the sub form,
-                and then check to see if the entire form is now valid. To do
-                these tasks, we'll need additional methods that ensure that
-                submitted data is added to the session, and that when validating
-                the form entire, we validate against all segments from the
-                session:
+            	Cuando tenemos un formulario sometido, podemos validar el sub formulario,
+            	y luego verificar si el entero formulario es válido ahora. Para hacer
+            	esas tareas, necesitamos métodos adicionales que aseguren que la
+            	información sometida es adicionada a la sesión, y que cuando validamos
+            	el entero formulario, nosotros validamos contra todos los segmentos de
+            	la sesión:
             </para>
 
             <programlisting role="php"><![CDATA[
@@ -599,7 +603,7 @@ class RegistrationController extends Zend_Controller_Action
     // ...
 
     /**
-     * Is the sub form valid?
+     * Es válido el sub formulario ?
      *
      * @param  Zend_Form_SubForm $subForm
      * @param  array $data
@@ -618,7 +622,7 @@ class RegistrationController extends Zend_Controller_Action
     }
 
     /**
-     * Is the full form valid?
+     * Es válido todo el formulario?
      *
      * @return bool
      */
@@ -636,9 +640,9 @@ class RegistrationController extends Zend_Controller_Action
             </programlisting>
 
             <para>
-                Now that we have the legwork out of the way, let's build the
-                actions for this controller. We'll need a landing page for the
-                form, and then a 'process' action for processing the form.
+            	Ahora que tenemos el trabajo preparado, vamos a construir las
+            	acciones para este controlador. Necesitaremos una página landing
+            	para el formulario, y luego un 'proceso' acción para procesar el formulario.
             </para>
 
             <programlisting role="php"><![CDATA[
@@ -648,8 +652,8 @@ class RegistrationController extends Zend_Controller_Action
 
     public function indexAction()
     {
-        // Either re-display the current page, or grab the "next"
-        // (first) sub form
+        // volver a mostrar la página actual, o mostrar el "siguiente"
+        // (primer) sub formulario
         if (!$form = $this->getCurrentSubForm()) {
             $form = $this->getNextSubForm();
         }
@@ -674,7 +678,7 @@ class RegistrationController extends Zend_Controller_Action
             return $this->render('index');
         }
 
-        // Valid form!
+        // Formulario Válido!
         // Render information in a verification page
         $this->view->info = $this->getSessionNamespace();
         $this->render('verification');
@@ -684,34 +688,34 @@ class RegistrationController extends Zend_Controller_Action
             </programlisting>
 
             <para>
-                As you'll notice, the actual code for processing the form is
-                relatively simple. We check to see if we have a current sub form
-                submission, and if not, we go back to the landing page. If we do
-                have a sub form, we attempt to validate it, redisplaying it if
-                it fails. If the sub form is valid, we then check to see if the
-                form is valid, which would indicate we're done; if not, we
-                display the next form segment. Finally, we display a
-                verification page with the contents of the session.
+            	Como se ha notado, el código actual para procesar el formulario es
+            	relativamente simple. Verificamos si tenemos un actual sub formulario
+            	sometido y si no, retornamos a la página landing. Si tenemos
+            	un sub formulario, intentaremos validarlo, redesplagandolo si tiene
+            	fallas. Si el sub formulario es válido, entonces verificaremos si
+            	el formulario es válido, lo que debería indicar hemos terminado; si no,
+            	desplegaremos el siguiente segmento del formulario. Finalmente, desplegaremos una
+            	página de verificación con el contenido de la sesión.
             </para>
 
             <para>
-                The view scripts are very simple:
+            	La vista de scripts son muy simples:
             </para>
 
             <programlisting role="php"><![CDATA[
 <? // registration/index.phtml ?>
-<h2>Registration</h2>
+<h2>registro</h2>
 <?= $this->form ?>
 
 <? // registration/verification.phtml ?>
-<h2>Thank you for registering!</h2>
+<h2>Gracias por Registrarse!</h2>
 <p>
-    Here is the information you provided:
+    Aquí está la información que nos ha proporcionado:
 </p>
 
 <?
-// Have to do this construct due to how items are stored in session
-// namespaces
+// Tienen que construir esto con los items que estan almacenados en los namespaces
+// de la sesión
 foreach ($this->info as $info):
     foreach ($info as $form => $data): ?>
 <h4><?= ucfirst($form) ?>:</h4>
@@ -733,11 +737,10 @@ endforeach ?>
             </programlisting>
 
             <para>
-                Upcoming releases of Zend Framework will include components to
-                make multi page forms simpler by abstracting the session and
-                ordering logic. In the meantime, the above example should serve
-                as a reasonable guideline on how to accomplish this task for
-                your site.
+            	Próximas novedades de Zend Framework incluirán componentes
+            	para hacer formularios multi páginas mas simple extrayendo la sesión y
+            	el lógico orden. Mientras tanto, el ejemplo de arriba debería servir
+            	como guia razonable en como alcanzar la tarea para su sitio.
             </para>
         </example>
     </sect2>

+ 121 - 121
documentation/manual/es/module_specs/Zend_Form-Elements.xml

@@ -2,9 +2,9 @@
     <title>Creando elementos de formulario usando Zend_Form_Element</title>
 
     <para>
-        Un formulario esta compuesto de elementos, que normalmente corresponden 
+        Un formulario esta compuesto de elementos, que normalmente corresponden
         al  elemento HTML input. <code>Zend_Form_Element</code> encapsula
-        elementos de formulario individualmente, con las siguientes áreas de 
+        elementos de formulario individualmente, con las siguientes áreas de
         responsabilidad:
     </para>
 
@@ -20,7 +20,7 @@
         </listitem>
 
         <listitem><para>
-            filtrado (¿cómo es escapado y normalizado el elemento para su 
+            filtrado (¿cómo es escapado y normalizado el elemento para su
             validación y/o salida?
         </para></listitem>
 
@@ -36,9 +36,9 @@
 
     <para>
         La clase base, <code>Zend_Form_Element</code>, funciona por defecto para
-        varios casos, pero es mejor extender la clase para elementos con fines 
-        especiales de uso común. Adicionalmente, Zend Framework contiene un 
-        número de elementos XHTML estándar; puede leer de ellos <link linkend="zend.form.standardElements">en el capítulo Elementos
+        varios casos, pero es mejor extender la clase para elementos con fines
+        especiales de uso común. Adicionalmente, Zend Framework contiene un
+        número de elementos XHTML estándar; puede leer de ellos <link linkend="zend.form.standarElements">en el capítulo Elementos
         Estándares</link>
     </para>
 
@@ -48,8 +48,8 @@
         <para>
             <code>Zend_Form_Element</code> hace uso de <link linkend="zend.loader.pluginloader">Zend_Loader_PluginLoader</link>
             para permitir a los desarrolladores especificar ubicaciones de
-            validadores, filtros y decoradores alternos. Cada uno tiene su 
-            propio cargador de plugin asociado a él y métodos de acceso 
+            validadores, filtros y decoradores alternos. Cada uno tiene su
+            propio cargador de plugin asociado a él y métodos de acceso
             generales usados para su recuperación y modificación.
         </para>
 
@@ -60,7 +60,7 @@
         </para>
 
         <para>
-            Los métodos usados para interactuar con los cargadores de plugin son 
+            Los métodos usados para interactuar con los cargadores de plugin son
             los siguientes:
         </para>
 
@@ -84,7 +84,7 @@
                 <code>$type</code>. Si <code>$type</code> es null, se intentará
                 agregar la ruta a todos los cargadores, añadiendo el prefijo a
                 cada "_Validate", "_Filter" y "_Decorator"; y agregandole
-                "Validate/", "Filter/" y "Decorator/" a la ruta. Si tiene todas 
+                "Validate/", "Filter/" y "Decorator/" a la ruta. Si tiene todas
                 sus clases extras para elementos de formulario dentro de
                 una jerarquía común, este método es conveniente para establecer
                 el prefijo para todas ellas.
@@ -111,14 +111,14 @@
                 Un uso común de los plugins es proveer reemplazos para las
                 clases estándares. Por ejemplo, si desea proveer una implementación diferente
                  del decorador 'Label' -- por ejemplo, para
-                añadir siempre dos puntos -- puede crear su  propio decorador 
-                'Label' con su propio prefijo de clase, y entonces añadirlo a su 
+                añadir siempre dos puntos -- puede crear su  propio decorador
+                'Label' con su propio prefijo de clase, y entonces añadirlo a su
                 prefijo de ruta.
             </para>
 
             <para>
-                Comencemos con un decorador de etiqueta personalizado. Le 
-                daremos el prefijo "My_Decorator", y la clase estará en el 
+                Comencemos con un decorador de etiqueta personalizado. Le
+                daremos el prefijo "My_Decorator", y la clase estará en el
                 archivo "My/Decorator/Label.php".
             </para>
 
@@ -186,8 +186,8 @@ $form->addElementPrefixPath('My_Decorator', 'My/Decorator/', 'decorator');
 
             <para>
                 Con esta ruta añadida, cuando agregue un decorador, la ruta
-                'My/Decorator' será consultada primero en búsqueda de la 
-                existencia del decorador en este lugar. Como resultado, 
+                'My/Decorator' será consultada primero en búsqueda de la
+                existencia del decorador en este lugar. Como resultado,
                 'My_Decorator_Label' ahora será utilizado cuando el decorador
                 'Label' sea requerido.
             </para>
@@ -227,7 +227,7 @@ $filtered = $element->getValue();
             </para></listitem>
 
             <listitem><para>
-                proveyendo un nombre de filtro – el correspondiente nombre 
+                proveyendo un nombre de filtro – el correspondiente nombre
                 corto o completo de la clase
             </para></listitem>
         </itemizedlist>
@@ -252,7 +252,7 @@ $element->addFilter('alnum');
         <para>
             Los nombres cortos son típicamente el nombre del filtro sin el
             prefijo. En el caso predeterminado, esto se refiere a sin el prefijo
-            'Zend_Filter_'. Además, la primera letra no necesita estar en 
+            'Zend_Filter_'. Además, la primera letra no necesita estar en
             mayúscula.
         </para>
 
@@ -260,8 +260,8 @@ $element->addFilter('alnum');
             <title>Usando clases de filtros personalizados</title>
 
             <para>
-                Si tiene su propio conjunto de clases de filtro, puede 
-                informarle de ellas a <code>Zend_Form_Element</code> usando 
+                Si tiene su propio conjunto de clases de filtro, puede
+                informarle de ellas a <code>Zend_Form_Element</code> usando
                 <code>addPrefixPath()</code>. Por ejemplo, si tiene filtros
                 con el prefijo 'My_Filter', puede indicárselo a
                 <code>Zend_Form_Element</code> de la siguiente manera:
@@ -289,7 +289,7 @@ $unfiltered = $element->getUnfilteredValue();
         </programlisting>
 
         <para>
-            Para mayor información sobre filtros, vea la <link linkend="zend.filter.introduction">documentación de 
+            Para mayor información sobre filtros, vea la <link linkend="zend.filter.introduction">documentación de
                 Zend_Filter</link>.
         </para>
 
@@ -352,7 +352,7 @@ $unfiltered = $element->getUnfilteredValue();
             </para></listitem>
 
             <listitem><para>
-                proveyendo un nombre de validador – el correspondiente nombre 
+                proveyendo un nombre de validador – el correspondiente nombre
                 corto o completo de clase
             </para></listitem>
         </itemizedlist>
@@ -385,8 +385,8 @@ $element->addValidator('alnum');
             <title>Usando clases de validación personalizadas</title>
 
             <para>
-                Si tiene su propio conjunto de clases de validación, puede 
-                informarle de ellas a <code>Zend_Form_Element</code> usando 
+                Si tiene su propio conjunto de clases de validación, puede
+                informarle de ellas a <code>Zend_Form_Element</code> usando
                 <code>addPrefixPath()</code>. Por ejemplo, si tiene validadores
                 con el prefijo 'My_Validator', puede indicárselo a
                 <code>Zend_Form_Element</code> de la siguiente manera:
@@ -414,9 +414,9 @@ $element->addValidator('alnum', true);
         </programlisting>
 
         <para>
-            Si está usando la cadena nombre para añadir el validador, y la clase 
+            Si está usando la cadena nombre para añadir el validador, y la clase
             del validador acepta argumentos para su constructor, puede pasarlos
-            a el tercer parámetro de <code>addValidator()</code> como un 
+            a el tercer parámetro de <code>addValidator()</code> como un
             array:
         </para>
 
@@ -427,7 +427,7 @@ $element->addValidator('StringLength', false, array(6, 20));
 
         <para>
             Los argumentos pasados de esta manera deben estar en el orden en el
-            cual son definidos en el constructor. El ejemplo de arriba 
+            cual son definidos en el constructor. El ejemplo de arriba
             instanciará la clase <code>Zend_Validate_StringLenth</code> con los
             parámetros <code>$min</code> y <code>$max</code>:
         </para>
@@ -442,21 +442,21 @@ $validator = new Zend_Validate_StringLength(6, 20);
 
             <para>
                 Algunos desarrolladores querrán estipular mensajes de error
-                personalizados para un validador. El argumento 
-                <code>$options</code> de 
-                <code>Zend_Form_Element::addValidator()</code> le permite 
-                hacerlo proporcionando la clave 'messages' y estableciendolos en 
-                un array de pares clave/valor para especificar las plantillas 
-                de mensaje. Necesitará conocer los códigos de error de los 
+                personalizados para un validador. El argumento
+                <code>$options</code> de
+                <code>Zend_Form_Element::addValidator()</code> le permite
+                hacerlo proporcionando la clave 'messages' y estableciendolos en
+                un array de pares clave/valor para especificar las plantillas
+                de mensaje. Necesitará conocer los códigos de error de los
                 diferentes tipos de error de un validador en particular.
             </para>
 
             <para>
                 Una opción mejor es usar <code>Zend_Translate_Adapter</code>
-                con su formulario. Los códigos de error son automáticamente 
-                pasados al adaptador por el decorador Errors por defecto; puede 
-                especificar su propias cadenas de mensaje de error mediante la 
-                creación de traducciones para los varios códigos de error de 
+                con su formulario. Los códigos de error son automáticamente
+                pasados al adaptador por el decorador Errors por defecto; puede
+                especificar su propias cadenas de mensaje de error mediante la
+                creación de traducciones para los varios códigos de error de
                 sus validadores.
             </para>
         </note>
@@ -464,7 +464,7 @@ $validator = new Zend_Validate_StringLength(6, 20);
         <para>
             Puede también establecer varios validadores a la vez, usando
             <code>addValidators()</code>. Su uso básico es pasar una matriz de
-            arrays, donde cada array contenga de 1 a 3 valores, 
+            arrays, donde cada array contenga de 1 a 3 valores,
             correspondientes al constructor de <code>addValidator()</code>:
         </para>
 
@@ -478,7 +478,7 @@ $element->addValidators(array(
         </programlisting>
 
         <para>
-            Si quiere ser más detallado o explícito, puede utilizar las claves 
+            Si quiere ser más detallado o explícito, puede utilizar las claves
             'validator', 'breakChainOnFailure', y 'options' en el array:
         </para>
 
@@ -511,10 +511,10 @@ element.validators.strlen.options.max = 20
 </programlisting>
 
         <para>
-            Note que cada elemento tiene una clave, la necesite o no; esta es 
-            una limitación del uso de archivos de configuración -- pero también 
-            ayuda a hacer más explicito el para qué son usados los argumentos. 
-            Sólo recuerde que cualesquiera opciones del validador deben ser 
+            Note que cada elemento tiene una clave, la necesite o no; esta es
+            una limitación del uso de archivos de configuración -- pero también
+            ayuda a hacer más explicito el para qué son usados los argumentos.
+            Sólo recuerde que cualesquiera opciones del validador deben ser
             especificadas en orden.
         </para>
 
@@ -536,9 +536,9 @@ if ($element->isValid($value)) {
             <title>Validación operando en valores filtrados</title>
 
             <para>
-                <code>Zend_Form_Element::isValid()</code> siempre filtra los 
+                <code>Zend_Form_Element::isValid()</code> siempre filtra los
                 valores antes de la validación a través de la cadena de filtros.
-                Vea <link linkend="zend.form.elements.filters">la sección de 
+                Vea <link linkend="zend.form.elements.filters">la sección de
                 filtros</link> para más información.
             </para>
         </note>
@@ -549,15 +549,15 @@ if ($element->isValid($value)) {
             <para>
                 <code>Zend_Form_Element::isValid()</code> soporta un argumento
                 adicional, <code>$context</code>.
-                <code>Zend_Form::isValid()</code> pasa todo el conjunto de datos 
-                procesados a <code>$context</code> cuando valida un formulario, 
-                y <code>Zend_Form_Element::isValid()</code>, a su vez, lo pasa a 
-                cada validador. Esto significa que puede escribir validadores 
-                que son conscientes de los datos pasados a otros elementos del 
+                <code>Zend_Form::isValid()</code> pasa todo el conjunto de datos
+                procesados a <code>$context</code> cuando valida un formulario,
+                y <code>Zend_Form_Element::isValid()</code>, a su vez, lo pasa a
+                cada validador. Esto significa que puede escribir validadores
+                que son conscientes de los datos pasados a otros elementos del
                 formulario. Como ejemplo, considere un formulario de registro
-                estándar que tiene campos para la contraseña y la confirmación 
-                de la contraseña; una validación sería que los dos campos 
-                coincidan. Este validador puede tener un aspecto como el 
+                estándar que tiene campos para la contraseña y la confirmación
+                de la contraseña; una validación sería que los dos campos
+                coincidan. Este validador puede tener un aspecto como el
                 siguiente:
             </para>
 
@@ -594,14 +594,14 @@ class My_Validate_PasswordConfirmation extends Zend_Validate_Abstract
         </note>
 
         <para>
-            Los validadores son procesados en orden. Cada validador es 
+            Los validadores son procesados en orden. Cada validador es
             procesado, a menos que un validador creado con un valor true para
-            <code>breakChainOnFailure</code> falle su validación. Asegúrese de 
+            <code>breakChainOnFailure</code> falle su validación. Asegúrese de
             especificar sus validadores en un orden razonable.
         </para>
 
         <para>
-            Después de una validación fallida, puede recuperar los códigos y 
+            Después de una validación fallida, puede recuperar los códigos y
             mensajes de error de la cadena del validador:
         </para>
 
@@ -613,14 +613,14 @@ $messages = $element->getMessages();
 
         <para>
             (Nota: los mensajes de error retornados son un array asociativo de
-            pares código / mensaje de error.) 
+            pares código / mensaje de error.)
         </para>
 
         <para>
             En adición a los validadores, puede especificar que un elemento es
             necesario, usando <code>setRequired(true)</code>. Por defecto, esta
-            bandera es false, lo que significa que pasará su cadena de  
-            validadores si ningún valor es pasado a <code>isValid()</code>. 
+            bandera es false, lo que significa que pasará su cadena de 
+            validadores si ningún valor es pasado a <code>isValid()</code>.
             Puede modificar este comportamiento en un número de maneras:
         </para>
 
@@ -628,12 +628,12 @@ $messages = $element->getMessages();
             <listitem>
                 <para>
                     Por defecto, cuando un elemento es requerido, una bandera,
-                    'allowEmpty', también es true. Esto quiere decir que si un 
-                    valor empty es evaluado pasándolo a <code>isValid()</code>, 
+                    'allowEmpty', también es true. Esto quiere decir que si un
+                    valor empty es evaluado pasándolo a <code>isValid()</code>,
                     los validadores serán saltados. Puede intercalar esta
-                    bandera usando el método de acceso 
-                    <code>setAllowEmpty($flag)</code>; cuando la bandera es 
-                    false, si un valor es pasado, los validadores seguirán 
+                    bandera usando el método de acceso
+                    <code>setAllowEmpty($flag)</code>; cuando la bandera es
+                    false, si un valor es pasado, los validadores seguirán
                     ejecutándose.
                 </para>
             </listitem>
@@ -642,27 +642,27 @@ $messages = $element->getMessages();
                 <para>
                     Por defecto, si un elemento es requerido, pero no contiene
                     un validador 'NotEmpty', <code>isValid()</code> añadirá uno
-                    en la cima de la pila, con la bandera 
-                    <code>breakChainOnFailure</code> establecido. Esto hace que 
-                    la bandera requerida tenga un significado semántico: si 
-                    ningún valor es pasado, inmediatamente invalidamos el envío 
-                    y se le notifica al usuario, e impedimos que otros 
-                    validadores se ejecuten en lo que ya sabemos son datos 
+                    en la cima de la pila, con la bandera
+                    <code>breakChainOnFailure</code> establecido. Esto hace que
+                    la bandera requerida tenga un significado semántico: si
+                    ningún valor es pasado, inmediatamente invalidamos el envío
+                    y se le notifica al usuario, e impedimos que otros
+                    validadores se ejecuten en lo que ya sabemos son datos
                     inválidos.
                 </para>
 
                 <para>
                     Si no quiere este comportamiento, puede desactivarlo pasando
-                    un valor false a 
+                    un valor false a
                     <code>setAutoInsertNotEmptyValidator($flag)</code>; esto
-                    prevendrá a <code>isValid()</code> de colocar un validador 
+                    prevendrá a <code>isValid()</code> de colocar un validador
                     'NotEmpty' en la cadena de validaciones.
                 </para>
             </listitem>
         </itemizedlist>
 
         <para>
-            Para mayor información sobre validadores, vea la <link linkend="zend.validate.introduction">documentación de 
+            Para mayor información sobre validadores, vea la <link linkend="zend.validate.introduction">documentación de
                 Zend_Validate</link>.
         </para>
 
@@ -672,7 +672,7 @@ $messages = $element->getMessages();
             <para>
                 <code>Zend_Form_Element</code> implementa
                 <code>Zend_Validate_Interface</code>, significando un elemento
-                puede también usarse como un validador en otro, cadenas de 
+                puede también usarse como un validador en otro, cadenas de
                 validación no relacionadas al formulario.
             </para>
         </note>
@@ -684,26 +684,26 @@ $messages = $element->getMessages();
         <itemizedlist>
             <listitem><para>
                     <code>setRequired($flag)</code> y
-                    <code>isRequired()</code> permiten establecer y recuperar el 
-                    estado de la bandera 'required'. Cuando se le asigna un 
+                    <code>isRequired()</code> permiten establecer y recuperar el
+                    estado de la bandera 'required'. Cuando se le asigna un
                     booleano <code>true</code>, esta bandera requiere que el
-                    elemento esté presente en la información procesada por 
+                    elemento esté presente en la información procesada por
                     <code>Zend_Form</code>.
             </para></listitem>
 
             <listitem><para>
                     <code>setAllowEmpty($flag)</code> y
-                    <code>getAllowEmpty()</code> permiten modificar el 
-                    comportamiento de elementos opcionales (p.e., elementos 
-                    donde la bandera required es false). Cuando la bandera  
+                    <code>getAllowEmpty()</code> permiten modificar el
+                    comportamiento de elementos opcionales (p.e., elementos
+                    donde la bandera required es false). Cuando la bandera 
                     'allow empty' es true, valores vacíos no pasarán la cadena
                     de validadores.
             </para></listitem>
 
             <listitem><para>
                     <code>setAutoInsertNotEmptyValidator($flag)</code> permite
-                    especificar si realmente un validador 'NotEmpty' será 
-                    añadido el inicio de la cadena de validaciones cuando un 
+                    especificar si realmente un validador 'NotEmpty' será
+                    añadido el inicio de la cadena de validaciones cuando un
                     elemento es requerido. Por defecto, esta bandera es true.
             </para></listitem>
 
@@ -741,78 +741,78 @@ $messages = $element->getMessages();
 
             <para>
                 Alguna veces, querrá especificar uno o más mensajes de error para
-                usarlos en lugar de los mensajes de error generados por los 
+                usarlos en lugar de los mensajes de error generados por los
                 validadores adjuntos a los elementos. Adicionalmente, algunas
-                veces usted mismo querrá marcar al elemento como inválido. A 
-                partir de 1.6.0, esta funcionalidad es posible vía los 
-                siguientes métodos. 
+                veces usted mismo querrá marcar al elemento como inválido. A
+                partir de 1.6.0, esta funcionalidad es posible vía los
+                siguientes métodos.
             </para>
 
             <itemizedlist>
                 <listitem><para>
-                    <code>addErrorMessage($message)</code>: añade un mensaje de 
-                    error para mostrarlos en forma de errores de validación. Puede 
-                    llamarlo más de una vez, y los nuevos mensajes nuevos son 
+                    <code>addErrorMessage($message)</code>: añade un mensaje de
+                    error para mostrarlos en forma de errores de validación. Puede
+                    llamarlo más de una vez, y los nuevos mensajes nuevos son
                     añadidos a la pila.
                 </para></listitem>
 
                 <listitem><para>
-                    <code>addErrorMessages(array $messages)</code>: añade 
+                    <code>addErrorMessages(array $messages)</code>: añade
                     múltiples mensajes de error para mostrarlos en forma de errores de
                     validación.
                 </para></listitem>
 
                 <listitem><para>
-                    <code>setErrorMessages(array $messages)</code>: añade 
+                    <code>setErrorMessages(array $messages)</code>: añade
                     múltiples mensajes de error para mostrarlos en forma de errores de
-                    validación, sobreescribiendo todos los mensajes de error 
-                    previamente establecidos. 
+                    validación, sobreescribiendo todos los mensajes de error
+                    previamente establecidos.
                 </para></listitem>
 
                 <listitem><para>
-                    <code>getErrorMessages()</code>: recupera la lista de 
+                    <code>getErrorMessages()</code>: recupera la lista de
                     mensajes de error personalizados que fueron definidos.
                 </para></listitem>
 
                 <listitem><para>
-                    <code>clearErrorMessages()</code>: remueve todos los 
+                    <code>clearErrorMessages()</code>: remueve todos los
                     mensajes de error personalizados que hayan sido definidos.
                 </para></listitem>
 
                 <listitem><para>
-                    <code>markAsError()</code>: marca al elemento como que falló 
+                    <code>markAsError()</code>: marca al elemento como que falló
                     la validación.
                 </para></listitem>
 
                 <listitem><para>
-                    <code>hasErrors()</code>: determina si el elemento ha 
+                    <code>hasErrors()</code>: determina si el elemento ha
                     fallado la validación o ha sido marcado como inválido.
                 </para></listitem>
 
                 <listitem><para>
                     <code>addError($message)</code>: añade un mensaje a la pila
-                    de mensaje de error personalizados y marca al elemento como 
+                    de mensaje de error personalizados y marca al elemento como
                     inválido.
                 </para></listitem>
 
                 <listitem><para>
-                    <code>addErrors(array $messages)</code>: añade varios 
-                    mensajes a la pila de mensajes de error personalizados y 
+                    <code>addErrors(array $messages)</code>: añade varios
+                    mensajes a la pila de mensajes de error personalizados y
                     marca al elemento como inválido.
                 </para></listitem>
 
                 <listitem><para>
-                    <code>setErrors(array $messages)</code>: sobreescribe el 
+                    <code>setErrors(array $messages)</code>: sobreescribe el
                     mensaje de error personalizado en la pila con los mensajes
                     previstos y marca al elemento como inválido.
                 </para></listitem>
             </itemizedlist>
 
             <para>
-                Todos los errores establecidos de este modo pueden ser 
-                traducidos. Adicionalmente, puede insertar el marcador "%value%" 
-                para representar el valor del elemento; este valor actual del 
-                elemento será sustituido cuando el mensaje de error sea 
+                Todos los errores establecidos de este modo pueden ser
+                traducidos. Adicionalmente, puede insertar el marcador "%value%"
+                para representar el valor del elemento; este valor actual del
+                elemento será sustituido cuando el mensaje de error sea
                 recuperado.
             </para>
         </sect3>
@@ -835,7 +835,7 @@ $messages = $element->getMessages();
             el uso de "decoradores". Los decoradores son clases simples que tienen
             métodos de acceso al elemento y métodos para generar el contenido. Para
             obtener mayor información sobre cómo trabajan los decoradores, consulte
-            por favor  la sección sobre 
+            por favor  la sección sobre
             <link linkend="zend.form.decorators">Zend_Form_Decorator</link>.
         </para>
 
@@ -850,7 +850,7 @@ $messages = $element->getMessages();
                 usar para general el elemento. El atributo 'helper' del elemento
                 puede usarse para especificar qué auxiliar vista usar. Por
                 defecto, <code>Zend_Form_Element</code> especifica el auxiliar
-                vista 'formText', pero cada subclase especifica diferentes 
+                vista 'formText', pero cada subclase especifica diferentes
                 auxiliares.
             </para></listitem>
 
@@ -932,10 +932,10 @@ $this->addDecorators(array(
             descripción está presente, el decorador 'Description' añadirá
             un párrafo con class 'description' conteniendo el texto descriptivo
             para el contenido agregado. El siguiente decorador, 'HtmlTag',
-            envuelve al elemento, los errores, y la descripción en una etiqueta 
+            envuelve al elemento, los errores, y la descripción en una etiqueta
             HTML &lt;dd&gt;. Finalmente, el último decorador, 'label', recupera
             la etiqueta del elemento y la pasa al auxiliar vista 'FormLabel',
-            envolviéndolo en una etiqueta &lt;dt&gt;; por default el valor es 
+            envolviéndolo en una etiqueta &lt;dt&gt;; por default el valor es
             añadido al inicio del contenido. El resultado de la salida
             básicamente se ve así:
         </para>
@@ -964,8 +964,8 @@ $this->addDecorators(array(
             <para>
                 Internamente, <code>Zend_Form_Element</code> utiliza una clase
                 decorador como mecanismo de búsqueda para la recuperación de
-                decoradores. Como resultado, no puede registrar múltiples 
-                decoradores del mismo tipo; decoradores subsecuentes 
+                decoradores. Como resultado, no puede registrar múltiples
+                decoradores del mismo tipo; decoradores subsecuentes
                 simplemente sobreescribirán aquellos que ya existían.
             </para>
 
@@ -1052,7 +1052,7 @@ $fooBar  = $element->getDecorator('FooBar');
             permitir generar decoradores específicos. <code>__call()</code>
             interceptará métodos que comiencen con el texto 'render' y utilizará
             el resto del nombre del método para buscar un decorador; si se
-            encuentra, entonces será generado <emphasis>sólo ese</emphasis> 
+            encuentra, entonces será generado <emphasis>sólo ese</emphasis>
             decorador. Cualquier argumento pasado al llamado del método será
             usado como contenido para pasar  al método <code>render()</code> del
             decorador. Como ejemplo:
@@ -1098,7 +1098,7 @@ echo $element->renderHtmlTag("This is the html tag content");
 
             <listitem><para>
                 <emphasis>value</emphasis>: El valor del elemento actual. Emplea
-                los métodos de acceso <code>setValue()</code> y 
+                los métodos de acceso <code>setValue()</code> y
                 <code>getValue()</code>.
             </para></listitem>
 
@@ -1106,14 +1106,14 @@ echo $element->renderHtmlTag("This is the html tag content");
                 <emphasis>description</emphasis>: una descripción del elemento;
                 a menudo utilizada para proveer un tooltip o ayuda contextual
                 con javascript describiendo el propósito del elemento. Emplea
-                los métodos de acceso <code>setDescription()</code> y 
+                los métodos de acceso <code>setDescription()</code> y
                 <code>getDescription()</code>.
             </para></listitem>
 
             <listitem><para>
                 <emphasis>required</emphasis>: bandera que indica si un elemento
                 es requerido o no cuando se efectúa la validación del
-                formulario. Emplea los métodos de acceso 
+                formulario. Emplea los métodos de acceso
                 <code>setRequired()</code> y <code>getRequired()</code>. Esta
                 bandera es false por defecto.
             </para></listitem>
@@ -1123,13 +1123,13 @@ echo $element->renderHtmlTag("This is the html tag content");
                 elemento no-requerido (opcional) debe intentar validar o no
                 valores vacíos. Cuando es true, y la bandera required es false,
                 valores vacíos no pasarán la cadena de validación, y se supone
-                verdadero. Emplea los métodos de acceso 
+                verdadero. Emplea los métodos de acceso
                 <code>setAllowEmpty()</code> y <code>getAllowEmpty()</code>.
                 Esta bandera es true por defecto.
             </para></listitem>
 
             <listitem><para>
-                <emphasis>autoInsertNotEmptyValidator</emphasis>: bandera 
+                <emphasis>autoInsertNotEmptyValidator</emphasis>: bandera
                 indicando insertar o no un validador 'NotEmpty' cuando un
                 elemento es requerido. Por defecto, esta bandera es true.
                 Establezca la bandera con
@@ -1179,7 +1179,7 @@ $element->class = 'text;
         </programlisting>
 
         <para>
-            Por defecto, todos los atributos son pasados al auxiliar vista usado 
+            Por defecto, todos los atributos son pasados al auxiliar vista usado
             por el elemento durante la generación, y generados como atributos de
             la etiqueta del elemento.
         </para>
@@ -1190,7 +1190,7 @@ $element->class = 'text;
 
         <para>
             <code>Zend_Form</code> contiene un buen número de elementos
-            estándar; por favor lea el capítulo <link linkend="zend.form.standardElements">Elementos Estándar</link> para
+            estándar; por favor lea el capítulo <link linkend="zend.form.standarElements">Elementos Estándar</link> para
             todos los detalles.
         </para>
     </sect2>
@@ -1315,7 +1315,7 @@ $element->class = 'text;
 
         <itemizedlist>
             <listitem><para>
-                Si 'set' + clave se refiere a un método de 
+                Si 'set' + clave se refiere a un método de
                 <code>Zend_Form_Element</code>, entonces el valor provisto será
                 pasado a el método.
             </para></listitem>
@@ -1406,7 +1406,7 @@ decorators.label.decorator = "Label"
 
         <itemizedlist>
             <listitem><para>
-                Elementos que comparten validadores y/o filtros comunes 
+                Elementos que comparten validadores y/o filtros comunes
             </para></listitem>
 
             <listitem><para>

+ 1 - 1
documentation/manual/es/module_specs/Zend_Form-StandardDecorators.xml

@@ -197,7 +197,7 @@ class Util
             mensajes de error en la parte superior del formulario. El decorador
             FormErrors le permite hacer esto.
         </para>
-
+       
         <para>
             Por defecto, la lista de errores generada tiene el siguiente marcado:
         </para>

+ 69 - 71
documentation/manual/es/module_specs/Zend_Form-StandardElements.xml

@@ -2,11 +2,11 @@
     <title>Elementos Enviados en el Formulario Estandard de Zend Framework</title>
 
     <para>
-        Zend Framework viene con clases de elementos concretos cubriendo la 
-        mayoría de los elementos de los formularios HTML. La mayoría simplemente 
-        especifica una vista de ayuda para usar cuando se decora el elemento, 
+        Zend Framework viene con clases de elementos concretos cubriendo la
+        mayoría de los elementos de los formularios HTML. La mayoría simplemente
+        especifica una vista de ayuda para usar cuando se decora el elemento,
         pero varios ofrecen funcionalidad adicional. La siguiente es una lista
-        de todas las clases, así como también una descripción de la 
+        de todas las clases, así como también una descripción de la
         funcionalidad que ofrecen.
     </para>
 
@@ -36,7 +36,7 @@
 
         <para>
             Después de llenar o validar un formulario, se puede verificar si el
-            botón dado fue clickeado usando el método <code>isChecked()</code>.
+            botón dado fue pulsado usando el método <code>isChecked()</code>.
         </para>
     </sect2>
 
@@ -44,12 +44,12 @@
         <title>Zend_Form_Element_Captcha</title>
 
         <para>
-            Los CAPTCHAs son usados para prevenir el envio automático de 
+            Los CAPTCHAs son usados para prevenir el envio automático de
             formularios por los robots y otros procesos automatizados.
         </para>
 
         <para>
-            The Captcha form element allows you to specify which 
+            The Captcha form element allows you to specify which
             <link linkend="zend.captcha.adapters">Zend_Captcha adapter</link> you
             wish to utilize as a form captcha. It then sets this adapter as a
             validator to the object, and uses a Captcha decorator for rendering
@@ -69,9 +69,9 @@ $element->addPrefixPath('My_Captcha', 'My/Captcha/', 'captcha');
         </programlisting>
 
         <para>
-            Los Captcha entonces pueden ser cargados usando el método 
-            <code>setCaptcha()</code>, el cual puede tomar una instancia 
-            cualquiera de captcha instance, o el nombre corto del adaptador 
+            Los Captcha entonces pueden ser cargados usando el método
+            <code>setCaptcha()</code>, el cual puede tomar una instancia
+            cualquiera de captcha instance, o el nombre corto del adaptador
             captcha:
         </para>
 
@@ -86,7 +86,7 @@ $element->setCaptcha('Dumb');
 
         <para>
             Si desea cargar sus elementos configuración, especifique la clave
-            'captcha' con un array conteniendo la clave 'captcha', o            
+            'captcha' con un array conteniendo la clave 'captcha', o           
             ambas claves 'captcha' y 'captchaOptions':
         </para>
 
@@ -116,17 +116,17 @@ $element = new Zend_Form_Element_Captcha('foo', array(
 
         <para>
             El decorador usado es determinado consultando el adaptador captcha.
-            Por defecto, es usado el 
+            Por defecto, es usado el
             <link linkend="zend.form.standardDecorators.captcha">Captcha
-            decorator</link>, pero un adaptadpr puede especificar uno                
+            decorator</link>, pero un adaptador puede especificar uno               
             diferente vía su método<code>getDecorator()</code>.
         </para>
 
         <para>
             Como ha notado, el adaptador captcha actúa él mismo como un validador
-            para el elemento. Adicionalmente, el validador NotEmpty validator 
-            no es usado y el elemento es marcado como requerido. Enla mayoría de
-            los casos, usted no necesitará hacer nada más para tener un captcha 
+            para el elemento. Adicionalmente, el validador NotEmpty
+            no es usado y el elemento es marcado como requerido. En la mayoría de
+            los casos, usted no necesitará hacer nada más para tener un captcha
             presente en su formulario.
         </para>
     </sect2>
@@ -135,14 +135,14 @@ $element = new Zend_Form_Element_Captcha('foo', array(
         <title>Zend_Form_Element_Checkbox</title>
 
         <para>
-            Las casillas de verigicación (checkboxes) HTML le permiten devolver 
-            un valor específico, pero básicamente operata como los booleanos: 
-            cuando está marcada, el valor es enviado; cuando no está marcada, no                     se envía nada. Internamente, Zend_Form_Element_Checkbox forza este 
+            Las casillas de verificación (checkboxes) HTML le permiten devolver
+            un valor específico, pero básicamente funcionan como los booleanos:
+            cuando está marcada, el valor es enviado; cuando no está marcada, no                     se envía nada. Internamente, Zend_Form_Element_Checkbox fuerza este
             estado.
         </para>
 
         <para>
-            Por defecto, si la casilla (checkbox) está marcada su valor es '1', 
+            Por defecto, si la casilla (checkbox) está marcada su valor es '1',
             y si no está marcada su valor es '0'.
             You can specify the values to use using the
             <code>setCheckedValue()</code> and <code>setUncheckedValue()</code>
@@ -208,9 +208,9 @@ $form->addElement($element, 'foo');
             </programlisting>
 
             <para>
-                También debe asegurarse de que se ha provisto un tipo de 
+                También debe asegurarse de que se ha provisto un tipo de
                 codificación corecto al formulario; se debe utilizar
-                'multipart/form-data'. Se puede hacer esto estableciendo el 
+                'multipart/form-data'. Se puede hacer esto estableciendo el
                 atributo 'enctype' en el formulario:
             </para>
 
@@ -220,9 +220,9 @@ $form->setAttrib('enctype', 'multipart/form-data');
             </programlisting>
 
             <para>
-                Cuando el atributo ha sido validado exitosamente, usted debe 
-                recibir el archivo para alamacenarlo en el destino final 
-                usando receive(). Adicionalmente puede determinar la 
+                Cuando el atributo ha sido validado exitosamente, usted debe
+                recibir el archivo para almacenarlo en el destino final
+                usando receive(). Adicionalmente, puede determinar la
                 ubicación final usando getFileName():
             </para>
 
@@ -245,7 +245,7 @@ $location = $form->foo->getFileName();
             <title>Ubicaciones Predeterminadas para la Carga de Archivos</title>
 
             <para>
-                Por defecto, los archivos son cargados al directorio temp del 
+                Por defecto, los archivos son cargados al directorio temp del
                 sistema.
             </para>
         </note>
@@ -254,19 +254,19 @@ $location = $form->foo->getFileName();
             <title>Valores de archivo</title>
 
             <para>
-                Dentro de HTTP un elemento file no tiene valor. Por tanto y a 
+                Dentro de HTTP, un elemento file no tiene valor. Por tanto y a
                 causa de razones de seguridad usted solo obtendrá el nombre del
-                archivo cargado llamando  a getValue() y no el destino completo. 
-                si usted necesita la información completa  llame getFileName() y 
-                le retormará el destino y nombre de archivo completo.
+                archivo cargado llamando a getValue() y no el destino completo.
+                si usted necesita la información completa llame a getFileName() y
+                le devolverá el destino y nombre de archivo completo.
             </para>
         </note>
 
         <para>
             <code>Zend_Form_Element_File</code> soporta también archivos
-            múltiples. Para llamar el método <code>setMultiFile($count)</code> 
-            usted puede establecer la cantidad de elementos file que usted desea 
-            crear. Esto le previene de establecer la misma configuración varias 
+            múltiples. Para llamar el método <code>setMultiFile($count)</code>
+            usted puede establecer la cantidad de elementos file que usted desea
+            crear. Esto le previene de establecer la misma configuración varias
             veces.
         </para>
 
@@ -275,7 +275,7 @@ $location = $form->foo->getFileName();
 
             <para>
                 Crear un elemento multi archivo es lo mismo que querer configurar
-                un elemento único. Sólo tiene que llamar a 
+                un elemento único. Sólo tiene que llamar a
                 <code>setMultiFile()</code> adicionalmente después de la creación:
             </para>
 
@@ -296,10 +296,10 @@ $form->addElement($element, 'foo');
             </programlisting>
 
             <para>
-                En su vista usted ahora obtendrá 3 elementos para carga de 
+                En su vista usted ahora obtendrá 3 elementos para carga de
                 archivos idénticos los cuales comparten la misma configuración.
-                para obtener  el conjunto de el número de archivos múltiples 
-                simplemente llame  <code>getMultiFile()</code>.
+                Para obtener el conjunto del número de archivos múltiples
+                simplemente llame a <code>getMultiFile()</code>.
             </para>
 
         </example>
@@ -308,25 +308,25 @@ $form->addElement($element, 'foo');
             <title>Elementos File en Subformularioss</title>
 
             <para>
-                Cuando usted use elementos file in subformularios debería 
+                Cuando usted use elementos file en subformularios debería
                 establecer nombres únicos.
-                Así, cuando usted nombre su elemento file en el subformulario1, 
-                debe darle un nombre diferente el el subformulario2.
+                Así, cuando usted nombre su elemento file en el subformulario1,
+                debe darle un nombre diferente en el subformulario2.
             </para>
 
             <para>
-                Tan pronto como haya dos elementos file nombrados de forma 
+                Tan pronto como haya dos elementos file nombrados de forma
                 idéntica, el segundo elemento no se mostrará o enviará.
             </para>
         </note>
 
         <para>
-            Para limitar el tamaño del archivo, el cual es cargado por el 
-            cliente, debe establecer el tamaño máximo de archivo que el 
-            formulario acepta . Esto limitará eñ tamaño del archivo en el lado 
+            Para limitar el tamaño del archivo, el cual es cargado por el
+            cliente, debe establecer el tamaño máximo de archivo que el
+            formulario acepta . Esto limitará el tamaño del archivo en el lado
             del cliente configurando la opción <code>MAX_FILE_SIZE</code>
-            en el formulario. Tan pronto como establesca este valor usando 
-            el método <code>setMaxFileSize($size)</code>, estó será generado
+            en el formulario. Tan pronto como establezca este valor usando
+            el método <code>setMaxFileSize($size)</code>, será generado
             con el elemento file.
         </para>
 
@@ -346,13 +346,13 @@ $form->addElement($element, 'foo');
             <para>
                 Cuando usted usa elementos file múltiples en los formularios tiene
                 que establecer el <code>MAX_FILE_SIZE</code> una sola vez.
-                 Establecerlo otra vez sobreescribirá el valor previamente 
+                 Establecerlo otra vez sobreescribirá el valor previamente
                  establecido.
             </para>
 
             <para>
-                Note, que usted puede establecer <code>MAX_FILE_SIZE</code> 
-                una sola ves, incluso si usas múltiples formularios.
+                Note que usted puede establecer <code>MAX_FILE_SIZE</code>
+                una sola vez, incluso si usa múltiples formularios.
             </para>
         </note>
     </sect2>
@@ -361,10 +361,9 @@ $form->addElement($element, 'foo');
         <title>Zend_Form_Element_Hidden</title>
 
         <para>
-            Los elementos Hidden simplemente injectan datos que deben ser 
+            Los elementos Hidden simplemente inyectan datos que deben ser
             enviados, pero que el usuario no debe manipular.
-            <code>Zend_Form_Element_Hidden</code> logra esto através del uso de
-            el helper de vista 'formHidden'.
+            <code>Zend_Form_Element_Hidden</code> logra esto a través del uso del helper de vista 'formHidden'.
         </para>
     </sect2>
 
@@ -372,15 +371,15 @@ $form->addElement($element, 'foo');
         <title>Zend_Form_Element_Hash</title>
 
         <para>
-            Este elemento provee protección de ataques desde CSRF sobre 
+            Este elemento provee protección de ataques desde CSRF sobre
             formularios, asegurando que el dato es enviado por la sesión del
-            usuario que generó el formulario y no por un script pillero. 
-            La protección se logra mediante la adición de un elemento hash a             
+            usuario que generó el formulario y no por un script malicioso.
+            La protección se logra mediante la adición de un elemento hash a            
             un formulario y verificandolo cuando el formulario es enviado.
         </para>
 
         <para>
-            El nombre del elemnto hash debe ser único. Se recomienda usar la 
+            El nombre del elemento hash debe ser único. Se recomienda usar la
             opción <literal>salt</literal> para el elemento, dos hashes con
             el mismo nombre y diferentes salts no chocan:
         </para>
@@ -396,17 +395,16 @@ $form->addElement('hash', 'no_csrf_foo', array('salt' => 'unique'));
         </para>
 
         <para>
-            Internamente, el elemento alamacena un identificador único usando
+            Internamente, el elemento almacena un identificador único usando
             <code>Zend_Session_Namespace</code>, y lo comprueba en el momento
-            que se envía (comprueba que el TTL has no espiró). El validador 
+            que se envía (comprueba que el TTL no ha espirado). El validador
             'Identical' entonces es usado para asegurarse que el hash enviado
             marcha con el hash alamacenado.
         </para>
 
         <para>
-            El helper de vista 'formHidden' es usado par generar el elemento 
+            El helper de vista 'formHidden' es usado para generar el elemento
             en el formulario.
-            form.
         </para>
     </sect2>
 
@@ -414,28 +412,28 @@ $form->addElement('hash', 'no_csrf_foo', array('salt' => 'unique'));
         <title>Zend_Form_Element_Image</title>
 
         <para>
-            Las imáagenes pueden ser usadas como elmentos de formulario, y le
-            permite  especificar elementos gráficos como botones de formulario.
+            Las imágenes pueden ser usadas como elementos de formulario, y le
+            permiten especificar elementos gráficos como botones de formulario.
         </para>
 
         <para>
-            Los elementos Image necesitan una imagen fuente. 
+            Los elementos Image necesitan una imagen fuente.
             <code>Zend_Form_Element_Image</code>  le permite especificar esto
             usando el método de acceso <code>setImage()</code>
-            (o clave de configuración 'image'). Opcionalmente, también puede 
+            (o clave de configuración 'image'). Opcionalmente, también puede
             especificar un valor para utilizar al momento de enviar la imagen
-             utilizando  el método de acceso <code>setImageValue()</code> 
+             utilizando  el método de acceso <code>setImageValue()</code>
             (o clave de configuración 'imageValue'). Cuando el valor establecido
-            para el elemento son similares al <code>imageValue</code>, entonces  
+            para el elemento sea igual a <code>imageValue</code>, entonces 
             el método de acceso <code>isChecked()</code> devolverá true.
         </para>
 
         <para>
-            El elemento Image usa el 
-            <link linkend="zend.form.standardDecorators.image">Decorador de 
+            Los elementos Image usan el
+            <link linkend="zend.form.standardDecorators.image">Decorador de
             Imagen </link> para generar (así como el estandard Errors,
             HtmlTag, y decorador Label). Opcionalmente, puede especificar una
-            etiqueta para el decorador <code>Image</code> que luego 
+            etiqueta para el decorador <code>Image</code> que luego
             envuelva al elemento imagen.
         </para>
     </sect2>
@@ -444,8 +442,8 @@ $form->addElement('hash', 'no_csrf_foo', array('salt' => 'unique'));
         <title>Zend_Form_Element_MultiCheckbox</title>
 
         <para>
-            A menudo tiene un conjunto de checkboxes, y desea agrupar los 
-            resultados. Esto es como un 
+            En ocasiones, se tiene un conjunto de checkboxes, y se desea agrupar los
+            resultados. Esto es como un
             <link linkend="zend.form.standardElements.multiselect">Multiselect</link>,
             pero en lugar de estar en una lista desplegable, necesita mostrarlos en pares checkbox/value (casilla de verificación/valor).
         </para>

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

@@ -220,7 +220,7 @@ Zend_Loader::registerAutoload('My_Loader');
         </example>
 
         <para>
-            Se puede eliminar un callback de autoload.
+            Se puede eliminar un callback de autoload. 
             <code>registerAutoload()</code> tiene un segundo parámetro opcional,
             que es <code>true</code> por defecto. Si este parámetro es
             <code>false</code>, el callback de autoload será borrado de la pila

+ 1 - 2
documentation/manual/es/module_specs/Zend_Validate-Set.xml

@@ -79,7 +79,6 @@
     <xi:include href="Zend_Validate-Db.xml">
         <xi:fallback href="../../en/module_specs/Zend_Validate-Db.xml"></xi:fallback>
     </xi:include>
-
     <sect2 id="zend.validate.set.digits">
         <title>Digits</title>
         <para>
@@ -91,7 +90,6 @@
     <xi:include href="Zend_Validate-EmailAddress.xml">
         <xi:fallback href="../../en/module_specs/Zend_Validate-EmailAddress.xml"></xi:fallback>
     </xi:include>
-
     <sect2 id="zend.validate.set.float">
         <title>Float</title>
         <para>
@@ -116,6 +114,7 @@
         </para>
     </sect2>
 
+
     <xi:include href="Zend_Validate-Hostname.xml">
         <xi:fallback href="../../en/module_specs/Zend_Validate-Hostname.xml"></xi:fallback>
     </xi:include>

+ 28 - 28
documentation/manual/es/module_specs/Zend_XmlRpc_Client.xml

@@ -7,8 +7,8 @@
         <para>
             Zend Framework provee soporte para consumo remoto para servicios XML-RPC
             como un cliente en el paquete <code>Zend_XmlRpc_Client</code>
-            . Su mejor característica es la conversión atuomática de tipos 
-            entre PHP y XML-RPC, un servidor de objeto proxy, y acceso a 
+            . Su mejor característica es la conversión automática de tipos
+            entre PHP y XML-RPC, un servidor de objeto proxy, y acceso a
             capacidades de instrospección del servidor.
         </para>
 
@@ -19,15 +19,15 @@
         <title>Method Calls</title>
 
         <para>
-            El constructor de <code>Zend_XmlRpc_Client</code> recibe la 
+            El constructor de <code>Zend_XmlRpc_Client</code> recibe la
             URL del servidor XML-RPC como su primer parámetro.
-            La nueva instacia devuelta pu7ede ser usada para llamar cualquier número de métodos remotos en el punto final.
+            La nueva instacia devuelta puede ser usada para llamar cualquier número de métodos remotos en el punto final.
         </para>
 
         <para>
-            Para llamar un método remoto con el cliente XML-RPC, instáncealo 
-            y usa el método de instancia <code>call()</code> . El código de ejemplo a continuación utiliza una demostración en el servidor XML-RPC en el sitio wed del Zend Framework
-            . Puede utilizarlo para probar o explorar los componentes 
+            Para llamar un método remoto con el cliente XML-RPC, instáncealo
+            y usa el método de instancia <code>call()</code> . El código de ejemplo a continuación utiliza una demostración en el servidor XML-RPC en el sitio web de Zend Framework
+            . Puede utilizarlo para probar o explorar los componentes
             <code>Zend_XmlRpc</code>.
         </para>
 
@@ -44,14 +44,14 @@ echo $client->call('test.sayHello');
         </example>
 
         <para>
-            El valor XML-RPC devuelto desde la llamada al método remoto automáticamente será convertida al tipo nativo PHP equivalente            
+            El valor XML-RPC devuelto desde la llamada al método remoto automáticamente será convertida al tipo nativo PHP equivalente           
 
-            . En el ejemplo anterior, es devuelto un <code>string</code> PHP 
-            y está listo para ser usada inmediatamente.
+            . En el ejemplo anterior, es devuelto un <code>string</code> PHP
+            y está listo para ser usado inmediatamente.
         </para>
 
         <para>
-            El primer parámetro del método <code>call()</code> recibe el nombre del método remoto a llamar. Si el método remoto requiere algún parámetro, este puede ser enviado por el suministro de un segundo, parámetro opcional a <code>call()</code> con un <code>array</code> de
+            El primer parámetro del método <code>call()</code> recibe el nombre del método remoto que llamar. Si el método remoto requiere algún parámetro, éste puede ser enviado por el suministro de un segundo, parámetro opcional a <code>call()</code> con un <code>array</code> de
             valores para pasar el método remoto:
         </para>
 
@@ -65,13 +65,13 @@ $arg2 = 'foo';
 
 $result = $client->call('test.sayHello', array($arg1, $arg2));
 
-// $result es un tipo nativo PHP 
+// $result es un tipo nativo PHP
 ]]>
             </programlisting>
         </example>
 
         <para>
-            si el método remoto no requiere parámetros,  este parámetro opcional 
+            si el método remoto no requiere parámetros,  este parámetro opcional
             podrá ser excluido o se puede pasar un <code>array()</code>
             vacío. El array de parámeters para el método repoto puede contener tipos nativos PHPs, objetos <code>Zend_XmlRpc_Value</code>
             , o una combinación de estos.
@@ -89,23 +89,23 @@ $result = $client->call('test.sayHello', array($arg1, $arg2));
     <sect2 id="zend.xmlrpc.value.parameters">
         <title>Tipos y Conversiones</title>
         <para>
-            Algunas llamadas a métodos remoto requieren parámetros.  Estos son 
+            Algunas llamadas a métodos remoto requieren parámetros. Éstos son
            dados al método <code>call()</code> de <code>Zend_XmlRpc_Client</code>
-            como un array en el segundo parámetro.  Cada parámetro puede ser dado
-            como cualquier tipo nativo PHP ya que este será convertido automáticamente,
-            o como un  objeto que representa un tipo específico de XML-RPC 
+            como un array en el segundo parámetro. Cada parámetro puede ser dado
+            como un tipo nativo PHP, que será convertido automáticamente,
+            o como un  objeto que representa un tipo específico de XML-RPC
             (uno de los objetos  <code>Zend_XmlRpc_Value</code>).
         </para>
 
         <sect3 id="zend.xmlrpc.value.parameters.php-native">
             <title>Tipos Nativos PHP como Parámetro</title>
             <para>
-                Los parámetros pueden ser pasados a <code>call()</code> como variables 
+                Los parámetros pueden ser pasados a <code>call()</code> como variables
                 PHP nativas, ya sea un <code>string</code>,
                 <code>integer</code>, <code>float</code>,
                 <code>boolean</code>, <code>array</code>, o un
                 <code>object</code>. En este caso, cada tipo PHP nativo será
-                autodetectada y convertida en uno de los tipos XML-RPC 
+                autodetectado y convertido en uno de los tipos XML-RPC
                 de acuerdo con esta tabla:
             </para>
 
@@ -448,19 +448,19 @@ try {
             </example>
 
             <para>
-                When the <code>call()</code> method is used to make the
-                request, the <code>Zend_XmlRpc_Client_FaultException</code> will be
-                thrown on fault. A <code>Zend_XmlRpc_Response</code> object
-                containing the fault will also be available by calling
+                Cuando el método <code>call()</code> es usado para realizar la
+                petición, <code>Zend_XmlRpc_Client_FaultException</code> será
+				lanzado como error. Un objeto <code>Zend_XmlRpc_Response</code> conteniendo
+				el error estará disponible llamando a
                 <code>getLastResponse()</code>.
             </para>
 
             <para>
-                When the <code>doRequest()</code> method is used to make the
-                request, it will not throw the exception. Instead, it will
-                return a <code>Zend_XmlRpc_Response</code> object returned
-                will containing the fault. This can be checked with
-                <code>isFault()</code> instance method of
+                Cuando el método <code>doRequest()</code> sea usado para realizar una
+				petición, no lanzará una excepción. En vez de eso, devolverá un objeto
+				<code>Zend_XmlRpc_Response</code> que contendrá el error.
+				Esto puede comprobarse con
+                <code>isFault()</code> método instancia de
                 <code>Zend_XmlRpc_Response</code>.
             </para>
         </sect3>