Browse Source

A title contains tags delete DOC-ES

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@19955 44c647ce-9c0f-0410-b52a-842ac1e357ba
benjamin-gonzales 16 years ago
parent
commit
88a5c57434

+ 144 - 320
documentation/manual/es/module_specs/Zend_Acl.xml

@@ -4,202 +4,108 @@
 <sect1 id="zend.acl.introduction">
 <sect1 id="zend.acl.introduction">
     <title>Introducción</title>
     <title>Introducción</title>
     <para>
     <para>
-        <classname>Zend_Acl</classname>
-        provee la implementación de un sistema
-        simple y flexible de Listas de Control de Acceso
-        (
-        <acronym>ACL</acronym>
-        , por sus siglas en inglés) para la
-        administración de privilegios. En general, una aplicación
-        puede utilizar
-        las
-        <acronym>ACL</acronym>
-        para controlar el acceso a ciertos objetos
-        protegidos, que son requeridos por otros objetos.
-    </para>
-    <para>
-        Para los propósitos de esta documentación:
-     </para>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    Un
-                    <emphasis>recurso</emphasis>
-                    es un objeto al cual el
-                    acceso esta controlado.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Un
-                    <emphasis>rol</emphasis>
-                    es un objeto que puede
-                    solicitar acceso a un recurso.
-                </para>
-            </listitem>
-        </itemizedlist>
-        <para>
-        En términos generales,
-        <emphasis> Los roles solicitan
-            acceso a los recursos </emphasis>
-        . Por ejemplo, si una persona
-        solicita acceso a un automóvil, entonces la persona se
-        convierte en el
-        rol solicitante, y el automóvil en el recurso, puesto que el acceso al
-        automóvil puede no estar disponible a cualquiera.
-    </para>
-
-    <para>
-        A través de la especificación y uso de Listas de Control de Acceso
-        (
-        <acronym>ACL</acronym>
-        ), una aplicación puede controlar cómo los
-        objetos solicitantes (roles) han obtenido acceso a
-        objetos protegidos
-        (recursos).
-    </para>
+        <classname>Zend_Acl</classname> provee la implementación de un sistema
+        simple y flexible de Listas de Control de Acceso (
+            <acronym>ACL</acronym> , por sus siglas en inglés) para la
+        administración de privilegios. En general, una aplicación puede utilizar
+        las <acronym>ACL</acronym> para controlar el acceso a ciertos objetos
+        protegidos, que son requeridos por otros objetos. </para>
+    <para> Para los propósitos de esta documentación: </para>
+    <itemizedlist>
+        <listitem>
+            <para> Un <emphasis>recurso</emphasis> es un objeto al cual el
+                acceso esta controlado. </para>
+        </listitem>
+        <listitem>
+            <para> Un <emphasis>rol</emphasis> es un objeto que puede solicitar
+                acceso a un recurso. </para>
+        </listitem>
+    </itemizedlist>
+    <para> En términos generales, <emphasis> Los roles solicitan acceso a los
+            recursos </emphasis> . Por ejemplo, si una persona solicita acceso a
+        un automóvil, entonces la persona se convierte en el rol solicitante, y
+        el automóvil en el recurso, puesto que el acceso al automóvil puede no
+        estar disponible a cualquiera. </para>
+
+    <para> A través de la especificación y uso de Listas de Control de Acceso (
+            <acronym>ACL</acronym> ), una aplicación puede controlar cómo los
+        objetos solicitantes (roles) han obtenido acceso a objetos protegidos
+        (recursos). </para>
 
 
     <sect2 id="zend.acl.introduction.resources">
     <sect2 id="zend.acl.introduction.resources">
         <title>Acerca de los Recursos</title>
         <title>Acerca de los Recursos</title>
-        <para>
-            En
-            <classname>Zend_Acl</classname>
-            , crear un recurso es muy
-            sencillo.
-            <classname>Zend_Acl</classname>
-            proporciona el
-            <classname>Zend_Acl_Resource_Interface</classname>
-            para
+        <para> En <classname>Zend_Acl</classname> , crear un recurso es muy
+            sencillo. <classname>Zend_Acl</classname> proporciona el
+                <classname>Zend_Acl_Resource_Interface</classname> para
             facilitar a los desarrolladores la creación de recursos. Una clase
             facilitar a los desarrolladores la creación de recursos. Una clase
-            solo necesita
-            implementar su interfaz, la cual consiste en un método
-            único,
-            <methodname>getResourceId()</methodname>
-            , para que
-            <classname>Zend_Acl</classname>
-            considere el objeto como un
-            recurso. Adicionalmente,
-            <classname>Zend_Acl_Resource</classname>
-            es
-            proporcionado por
-            <classname>Zend_Acl</classname>
-            como un recurso
+            solo necesita implementar su interfaz, la cual consiste en un método
+            único, <methodname>getResourceId()</methodname> , para que
+                <classname>Zend_Acl</classname> considere el objeto como un
+            recurso. Adicionalmente, <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
             básico de aplicación para que los desarrolladores puedan extenderla
-            hasta
-            donde lo deseen.
-        </para>
+            hasta donde lo deseen. </para>
         <para>
         <para>
-            <classname>Zend_Acl</classname>
-            provee un estructura de árbol a la
-            cual pueden ser agregados múltiples recursos (o "Áreas
-            con Controles
+            <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 Acceso").Ya que los recursos son almacenados en esta estructura
-            de árbol,
-            estos pueden ser organizados desde lo general (hacia la
-            raíz del árbol) a lo específico
-            (hacia las ramas del árbol).
-            Consultas sobre un recurso específico buscarán
-            automáticamente, en
+            de árbol, estos pueden ser organizados desde lo general (hacia la
+            raíz del árbol) a lo específico (hacia las ramas del árbol).
+            Consultas sobre un recurso específico buscarán automáticamente, en
             la jerarquía del recurso, reglas asignadas a recursos anteriores a
             la jerarquía del recurso, reglas asignadas a recursos anteriores a
             los que el recurso actual haga referencia, permitiendo la herencia
             los que el recurso actual haga referencia, permitiendo la herencia
-            simple de reglas. Por
-            ejemplo, si una regla por defecto se aplica a
-            cada edificio en una ciudad, uno
-            simplemente podría asignar la regla
-            a la ciudad, en lugar de asignar la misma regla a
-            cada edificio.
+            simple de reglas. Por ejemplo, si una regla por defecto se aplica a
+            cada edificio en una ciudad, uno simplemente 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
             Algunos edificios pueden necesitar excepciones a la regla, sin
-            embargo, y
-            esto es fácil de hacer en
-            <classname>Zend_Acl</classname>
+            embargo, y esto es fácil de hacer en <classname>Zend_Acl</classname>
             asignando esta excepción a cada edificio que necesite una excepción
             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>
+            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>
         <para>
-            <classname>Zend_Acl</classname>
-            también soporta privilegios sobre
-            recursos (ejemplo. "crear","leer","actualizar",
-            "borrar"), y el
+            <classname>Zend_Acl</classname> también soporta privilegios sobre
+            recursos (ejemplo. "crear","leer","actualizar", "borrar"), y el
             desarrollador puede asignar reglas que afecten o a todos los
             desarrollador puede asignar reglas que afecten o a todos los
-            privilegios o
-            a privilegios específicos sobre un recurso.
-        </para>
+            privilegios o a privilegios específicos sobre un recurso. </para>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.acl.introduction.roles">
     <sect2 id="zend.acl.introduction.roles">
         <title>Acerca de las Reglas</title>
         <title>Acerca de las Reglas</title>
-        <para>
-            Al igual que los recursos, la creación de un rol también es muy
-            simple.
-            <classname>Zend_Acl</classname>
-            proporciona
-            <classname>Zend_Acl_Role_Interface</classname>
-            para facilitar a
+        <para> Al igual que los recursos, la creación de un rol 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
             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,
             implementación de su interfaz, la cual consiste en un método único,
-            <methodname>getRoleId()</methodname>
-            , para que
-            <classname>Zend_Acl</classname>
-            considere que el objeto es un
-            Rol. Adicionalmente,
-            <classname>Zend_Acl_Role</classname>
-            está
-            incluido con
-            <classname>Zend_Acl</classname>
-            como una implementación
+                <methodname>getRoleId()</methodname> , para que
+                <classname>Zend_Acl</classname> considere que el objeto es un
+            Rol. Adicionalmente, <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
             principal del rol para que los desarrolladores la extiendan hasta
-            donde lo deseen.
-        </para>
-        <para>
-            En
-            <classname>Zend_Acl</classname>
-            , un Rol puede heredar de otro
-            o más roles. Esto es para soportar herencia de reglas
-            entre roles.
+            donde lo deseen. </para>
+        <para> 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
             Por ejemplo, un Rol de usuario, como "sally", puede estar bajo uno o
-            más
-            roles padre, como "editor" y "administrador". El desarrollador
-            puede asignar reglas a
-            "editor" y "administrador" por separado, y
-            "sally" puede heredar tales reglas de ambos,
-            sin tener que asignar
-            reglas directamente a "sally".
-        </para>
-        <para>
-            Dado que la habilidad de herencia desde múltiples roles es muy
-            útil, múltiples herencias
-            también introduce cierto grado de
-            complejidad. El siguiente ejemplo ilustra la condición
-            de ambiguedad
-            y como
-            <classname>Zend_Acl</classname>
-            soluciona esto.
-        </para>
+            más roles padre, como "editor" y "administrador". El desarrollador
+            puede asignar reglas a "editor" y "administrador" por separado, y
+            "sally" puede heredar tales reglas de ambos, sin tener que asignar
+            reglas directamente a "sally". </para>
+        <para> Dado que la habilidad de herencia desde múltiples roles es muy
+            útil, múltiples herencias también introduce cierto grado de
+            complejidad. El siguiente ejemplo ilustra la condición de ambiguedad
+            y como <classname>Zend_Acl</classname> soluciona esto. </para>
         <example id="zend.acl.introduction.roles.example.multiple_inheritance">
         <example id="zend.acl.introduction.roles.example.multiple_inheritance">
             <title>Herencia Múlltiple entre Roles</title>
             <title>Herencia Múlltiple entre Roles</title>
-            <para>
-                El siguiente código define tres roles principales -
-                "invitado", "miembro", y "admin"
-                - de los cuales otros roles
-                pueden heredar. Entonces, un rol identificado como
-                "unUsuario"
+            <para> El siguiente código define tres roles principales -
+                "invitado", "miembro", y "admin" - de los cuales otros roles
+                pueden heredar. Entonces, un rol identificado como "unUsuario"
                 es colocado y hereda de los otros tres roles. El orden en el
                 es colocado y hereda de los otros tres roles. El orden en el
-                cual estos
-                roles aparecen en el array
-                <varname>$parents</varname>
-                es importante. Cuando es
-                necesario,
-                <classname>Zend_Acl</classname>
-                busca por reglas de
+                cual estos roles aparecen en el array
+                    <varname>$parents</varname> es importante. Cuando es
+                necesario, <classname>Zend_Acl</classname> busca por reglas de
                 acceso definidas no solo para el rol solicitado (aquí,
                 acceso definidas no solo para el rol solicitado (aquí,
                 "unUsuario"), sino también sobre los roles heredados (aquí,
                 "unUsuario"), sino también sobre los roles heredados (aquí,
-                "invitado", "miembro", y
-                "admin"):
-            </para>
+                "invitado", "miembro", y "admin"): </para>
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
 require_once 'Zend/Acl.php';
 require_once 'Zend/Acl.php';
 $acl = new Zend_Acl();
 $acl = new Zend_Acl();
@@ -220,86 +126,47 @@ $acl->allow('miembro', 'unRecurso');
 
 
 echo $acl->isAllowed('unUsuario', 'unRecurso') ? 'permitido' : 'denegado';
 echo $acl->isAllowed('unUsuario', 'unRecurso') ? 'permitido' : 'denegado';
 ]]></programlisting>
 ]]></programlisting>
-            <para>
-                Ya que no hay reglas específicamente definidas para el rol
-                "unUsuario" y "unRecurso",
-                <classname>Zend_Acl</classname>
-                debe
+            <para> Ya que no hay reglas específicamente definidas para el rol
+                "unUsuario" y "unRecurso", <classname>Zend_Acl</classname> debe
                 buscar por reglas que puedan estar definidas para roles
                 buscar por reglas que puedan estar definidas para roles
-                "unUsuario" hereda.
-                Primero, el rol "admin" es visitado, y no
-                hay regla de acceso definida para éste.
-                Luego, el rol "miembro"
-                es visitado, y
-                <classname>Zend_Acl</classname>
-                encuentra que
+                "unUsuario" hereda. Primero, el rol "admin" es visitado, y no
+                hay regla de acceso definida para éste. Luego, el rol "miembro"
+                es visitado, y <classname>Zend_Acl</classname> encuentra que
                 aquí hay una regla especificando que "miembro" tiene permiso
                 aquí hay una regla especificando que "miembro" tiene permiso
-                para
-                acceder a "unRecurso".
-            </para>
-            <para>
-                Así,
-                <classname>Zend_Acl</classname>
-                va a seguir examinando
+                para acceder a "unRecurso". </para>
+            <para> Así, <classname>Zend_Acl</classname> va a seguir examinando
                 las reglas definidas para otros roles padre, sin embargo,
                 las reglas definidas para otros roles padre, sin embargo,
                 encontraría que "invitado" tiene el acceso denegado a
                 encontraría que "invitado" tiene el acceso denegado a
-                "unRecurso". Este hecho
-                introduce una ambigüedad debido a que
-                ahora "unUsuario" está tanto denegado como
-                permitido para
+                "unRecurso". Este hecho introduce una ambigüedad debido a que
+                ahora "unUsuario" está tanto denegado como permitido para
                 acceder a "unRecurso", por la razón de tener un conflicto de
                 acceder a "unRecurso", por la razón de tener un conflicto de
-                reglas
-                heredadas de diferentes roles padre.
-            </para>
+                reglas heredadas de diferentes roles padre. </para>
             <para>
             <para>
-                <classname>Zend_Acl</classname>
-                resuelve esta ambigüedad
-                completando la consulta cuando encuentra la primera regla
-                que es
+                <classname>Zend_Acl</classname> resuelve esta ambigüedad
+                completando la consulta cuando encuentra la primera regla que es
                 directamente aplicable a la consulta. En este caso, dado que el
                 directamente aplicable a la consulta. En este caso, dado que el
-                rol "miembro"
-                es examinado antes que el rol "invitado", el
-                código de ejemplo mostraría "permitido".
-            </para>
+                rol "miembro" es examinado antes que el rol "invitado", el
+                código de ejemplo mostraría "permitido". </para>
         </example>
         </example>
         <note>
         <note>
             <para>Cuando se especifican múltiples padres para un Rol, se debe
             <para>Cuando se especifican múltiples padres para un Rol, se debe
-                tener en cuenta que el
-                último padre listado es el primero en ser
-                buscado por reglas aplicables para una
-                solicitud de
+                tener en cuenta que el último padre listado es el primero en ser
+                buscado por reglas aplicables para una solicitud de
                 autorización.</para>
                 autorización.</para>
         </note>
         </note>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.acl.introduction.creating">
     <sect2 id="zend.acl.introduction.creating">
-        <title>
-            Creando las Listas de Control de Acceso
-            (
-            <acronym>ACL</acronym>
-            )
-        </title>
+        <title> Creando las Listas de Control de Acceso (ACL) </title>
 
 
-        <para>
-            Una
-            <acronym>ACL</acronym>
-            puede representar cualquier grupo de
-            objetos físicos o virtuales que desee. Para
-            propósitos de
-            demostración, sin embargo, crearemos un
-            <acronym>ACL</acronym>
-            básico para un Sistema de Administración de Contenido
-            (
-            <acronym>CMS</acronym>
-            ) que mantendrá varias escalas de grupos
-            sobre una amplia variedad de áreas. Para crear
-            un nuevo objeto
-            <acronym>ACL</acronym>
-            , iniciamos la
-            <acronym>ACL</acronym>
-            sin
-            parámetros:
-        </para>
+        <para> Una <acronym>ACL</acronym> puede representar cualquier grupo de
+            objetos físicos o virtuales que desee. Para propósitos de
+            demostración, sin embargo, crearemos un <acronym>ACL</acronym>
+            básico para un Sistema de Administración de Contenido (
+                <acronym>CMS</acronym> ) que mantendrá varias escalas de grupos
+            sobre una amplia variedad de áreas. Para crear un nuevo objeto
+                <acronym>ACL</acronym> , iniciamos la <acronym>ACL</acronym> sin
+            parámetros: </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 require_once 'Zend/Acl.php';
 require_once 'Zend/Acl.php';
@@ -308,48 +175,34 @@ $acl = new Zend_Acl();
 ]]></programlisting>
 ]]></programlisting>
 
 
         <note>
         <note>
-            <para>
-                Hasta que un desarrollador especifique una regla"permitido",
-                <classname>Zend_Acl</classname>
-                deniega el acceso a cada
-                privilegio sobre cada recurso para cada rol.
-            </para>
+            <para> Hasta que un desarrollador especifique una regla"permitido",
+                    <classname>Zend_Acl</classname> deniega el acceso a cada
+                privilegio sobre cada recurso para cada rol. </para>
         </note>
         </note>
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.acl.introduction.role_registry">
     <sect2 id="zend.acl.introduction.role_registry">
         <title>Registrando Roles</title>
         <title>Registrando Roles</title>
 
 
-        <para>
-            El Sistema de Administración de Contenido
-            (
-            <acronym>CMS</acronym>
-            ) casi siempre necesita una jerarquía de
-            permisos para determinar la capacidad de
-            identificación de sus
+        <para> El Sistema de Administración de Contenido (
+                <acronym>CMS</acronym> ) casi siempre necesita una jerarquía de
+            permisos para determinar la capacidad de identificación de sus
             usuarios. Puede haber un grupo de 'Invitados' para permitir acceso
             usuarios. Puede haber un grupo de 'Invitados' para permitir acceso
             limitado para demostraciones, un grupo de 'Personal' para la mayoría
             limitado para demostraciones, un grupo de 'Personal' para la mayoría
-            de usuarios del <acronym>CMS</acronym>
-            quienes realizan la mayor parte de operaciones
-            del día a día, un grupo 'Editores' para
-            las responsabilidades de
-            publicación, revisión, archivo y eliminación de contenido, y
-            finalmente un grupo 'Administradores' cuyas tareas pueden incluir
-            todas las de los otros
-            grupos y también el mantenimiento de la
-            información delicada, manejo de usuarios,
-            configuración de los datos
-            básicos y su respaldo/exportación. Este grupo de permisos
-            pueden ser
-            representados en un registro de roles, permitiendo a cada grupo
-            heredar los
-            privilegios de los grupos 'padre', al igual que
-            proporcionando distintos privilegios solo
-            para su grupo individual.
-            Los permisos pueden ser expresados como:
-        </para>
-
-        <table id="zend.acl.introduction.role_registry.table.example_cms_access_controls">
+            de usuarios del <acronym>CMS</acronym> quienes realizan la mayor
+            parte de operaciones del día a día, un grupo 'Editores' para las
+            responsabilidades de publicación, revisión, archivo y eliminación de
+            contenido, y finalmente un grupo 'Administradores' cuyas tareas
+            pueden incluir todas las de los otros grupos y también el
+            mantenimiento de la información delicada, manejo de usuarios,
+            configuración de los datos básicos y su respaldo/exportación. Este
+            grupo de permisos pueden ser representados en un registro de roles,
+            permitiendo a cada grupo heredar los privilegios de los grupos
+            'padre', al igual que proporcionando distintos privilegios solo para
+            su grupo individual. Los permisos pueden ser expresados como: </para>
+
+        <table
+            id="zend.acl.introduction.role_registry.table.example_cms_access_controls">
             <title>Controles de Acceso para un CMS de ejemplo</title>
             <title>Controles de Acceso para un CMS de ejemplo</title>
             <tgroup cols="3">
             <tgroup cols="3">
                 <thead>
                 <thead>
@@ -384,17 +237,11 @@ $acl = new Zend_Acl();
             </tgroup>
             </tgroup>
         </table>
         </table>
 
 
-        <para>
-            Para este ejemplo, se usa
-            <classname>Zend_Acl_Role</classname>
-            ,
+        <para> Para este ejemplo, se usa <classname>Zend_Acl_Role</classname> ,
             pero cualquier objeto que implemente
             pero cualquier objeto que implemente
-            <classname>Zend_Acl_Role_Interface</classname>
-            es admisible.
+                <classname>Zend_Acl_Role_Interface</classname> es admisible.
             Estos grupos pueden ser agregados al registro de roles de la
             Estos grupos pueden ser agregados al registro de roles de la
-            siguiente
-            manera:
-        </para>
+            siguiente manera: </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 require_once 'Zend/Acl.php';
 require_once 'Zend/Acl.php';
@@ -427,36 +274,25 @@ $acl->addRole(new Zend_Acl_Role('administrador'));
     <sect2 id="zend.acl.introduction.defining">
     <sect2 id="zend.acl.introduction.defining">
         <title>Definiendo Controles de Acceso</title>
         <title>Definiendo Controles de Acceso</title>
 
 
-        <para>
-            Ahora que la
-            <acronym>ACL</acronym>
-            contiene los roles
+        <para> Ahora que la <acronym>ACL</acronym> contiene los roles
             relevantes, se pueden establecer reglas que definan cómo los roles
             relevantes, se pueden establecer reglas que definan cómo los roles
             pueden acceder a los recursos. Tenga en cuenta que no definiremos
             pueden acceder 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.
-            <classname>Zend_Acl</classname>
-            proporciona una forma
+            ningún recurso en particular para este ejemplo, el cual está
+            simplificado para ilustrar que las reglas se aplican a todos los
+            recursos. <classname>Zend_Acl</classname> proporciona una forma
             práctica por la cual las reglas solo necesitan ser asignadas de lo
             práctica por la cual las reglas solo necesitan ser asignadas de lo
             general a lo especifico, minimizando el número de reglas necesarias,
             general a lo especifico, minimizando el número de reglas necesarias,
-            porque los recursos
-            y roles heredan reglas que están definidas en
-            sus padres.
-        </para>
-
-                <note>
-            <para>In general, <classname>Zend_Acl</classname> obeys a given rule if and only if a more
-                specific rule does not apply.
-            </para>
+            porque los recursos y roles heredan reglas que están definidas en
+            sus padres. </para>
+
+        <note>
+            <para>In general, <classname>Zend_Acl</classname> obeys a given rule
+                if and only if a more specific rule does not apply. </para>
         </note>
         </note>
 
 
-        <para>Consecuentemente, podemos definir un grupo razonablemente
-            complejo de reglas con un
-            mínimo de código. Para aplicar estos
-            permisos básicos como están definidos arriba:</para>
+        <para>Consecuentemente, podemos definir un grupo razonablemente complejo
+            de reglas con un mínimo de código. Para aplicar estos permisos
+            básicos como están definidos arriba:</para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 require_once 'Zend/Acl.php';
 require_once 'Zend/Acl.php';
@@ -490,32 +326,20 @@ $acl->allow('editor', null, array('publicar', 'archivar', 'eliminar'));
 $acl->allow('administrador');
 $acl->allow('administrador');
 ]]></programlisting>
 ]]></programlisting>
 
 
-        <para>
-            El valor
-            <constant>NULL</constant>
-            en las llamadas de
-            <methodname>allow()</methodname>
-            es usado para indicar que las
-            reglas de permiso se aplican a todos los recursos.
-        </para>
+        <para> El valor <constant>NULL</constant> en las llamadas de
+                <methodname>allow()</methodname> es usado para indicar que las
+            reglas de permiso se aplican a todos los recursos. </para>
 
 
     </sect2>
     </sect2>
 
 
     <sect2 id="zend.acl.introduction.querying">
     <sect2 id="zend.acl.introduction.querying">
         <title>Consultando la ACL</title>
         <title>Consultando la ACL</title>
 
 
-        <para>
-            Ahora tenemos una
-            <acronym>ACL</acronym>
-            flexible que puede ser
-            usada para determinar qué solicitantes tienen permisos para
-            realizar
+        <para> Ahora tenemos una <acronym>ACL</acronym> flexible que puede ser
+            usada para determinar qué solicitantes tienen permisos para realizar
             funciones a través de la aplicación web. Ejecutar consultas es la
             funciones a través de la aplicación web. Ejecutar consultas es la
-            forma más
-            simple de usar el método
-            <methodname>isAllowed()</methodname>
-            :
-        </para>
+            forma más simple de usar el método
+                <methodname>isAllowed()</methodname> : </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 echo $acl->isAllowed('invitado', null, 'ver') ?
 echo $acl->isAllowed('invitado', null, 'ver') ?

File diff suppressed because it is too large
+ 228 - 528
documentation/manual/es/module_specs/Zend_Amf-Server.xml


+ 177 - 358
documentation/manual/es/module_specs/Zend_Controller-Router.xml

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

+ 27 - 48
documentation/manual/es/module_specs/Zend_Db_Profiler-Firebug.xml

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

File diff suppressed because it is too large
+ 239 - 528
documentation/manual/es/module_specs/Zend_Db_Select.xml


+ 142 - 284
documentation/manual/es/module_specs/Zend_Db_Statement.xml

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

+ 115 - 253
documentation/manual/es/module_specs/Zend_Dojo-Data.xml

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

+ 106 - 214
documentation/manual/es/module_specs/Zend_Validate-WritingValidators.xml

@@ -6,108 +6,62 @@
     <title>Escribiendo Validadores</title>
     <title>Escribiendo Validadores</title>
 
 
     <para>
     <para>
-        <classname>Zend_Validate</classname>
-        provee un conjunto de validadores que suelen necesitarse,
-        pero inevitablemente, los
-        desarrolladores quiere escribir sus propios
-        validadores personalizados para sus necesidades
-        particulares.
-        La tarea de escribir un validador personalizado se describe en esta sección.
-    </para>
+        <classname>Zend_Validate</classname> provee un conjunto de validadores
+        que suelen necesitarse, pero inevitablemente, los desarrolladores quiere
+        escribir sus propios validadores personalizados para sus necesidades
+        particulares. La tarea de escribir un validador personalizado se
+        describe en esta sección. </para>
 
 
     <para>
     <para>
-        <classname>Zend_Validate_Interface</classname>
-        define tres métodos, isValid(),
-        getMessages(), y getErrors(), que pueden ser implementadas
-        por clases de usuario
-        a fin de crear objetos de validación personalizados.
-        Un objeto que
-        implementa una interfaz
-        <classname>Zend_Validate_Interface</classname>
-        puede añadirse a una cadena de validación con
-        <methodname>Zend_Validate::addValidator()</methodname>
-        .
-        Tales objetos también pueden ser usados con
-        <link linkend="zend.filter.input">
+        <classname>Zend_Validate_Interface</classname> define tres métodos,
+        isValid(), getMessages(), y getErrors(), que pueden ser implementadas
+        por clases de usuario a fin de crear objetos de validación
+        personalizados. Un objeto que implementa una interfaz
+            <classname>Zend_Validate_Interface</classname> puede añadirse a una
+        cadena de validación con
+            <methodname>Zend_Validate::addValidator()</methodname> . Tales
+        objetos también pueden ser usados con <link linkend="zend.filter.input">
             <classname>Zend_Filter_Input</classname>
             <classname>Zend_Filter_Input</classname>
-        </link>
-        .
-    </para>
+        </link> . </para>
 
 
-    <para>
-        De la descripción anterior de
-        <classname>Zend_Validate_Interface</classname>
-        , podrá inferir
-        que las clases de validación que proporciona Zend Framework devuelven un
+    <para> De la descripción anterior de
+            <classname>Zend_Validate_Interface</classname> , podrá inferir que
+        las clases de validación que proporciona Zend Framework devuelven un
         valor booleano para cuando un valor se valida satisfactoriamente o no.
         valor booleano para cuando un valor se valida satisfactoriamente o no.
-        También proporcionan
-        información sobre
-        <emphasis>por qué</emphasis>
-        un valor falló en la validación.
-        La disponibilidad de las razones para los fracasos de
-        validación puede ser
-        valiosa para una aplicación por diversos motivos, tales como
-        proporcionar
-        estadísticas para análisis de usabilidad.
-    </para>
-
-    <para>
-        La funcionalidad de los mensajes de validación básica de fallos están
-        implementados en
-        <classname>Zend_Validate_Abstract</classname>
-        .
-        A fin de incluir esta funcionalidad al crear una clase de validación,
-        simplemente extienda
-        <classname>Zend_Validate_Abstract</classname>
-        .
-        En la extensión de la clase deberá aplicar la lógica del método
-        <methodname>isValid()</methodname>
-        y definir las variables y plantillas de mensajes
-        que correspondan a los tipos de fallos de
-        validación que puedan suceder.
-        Si falla un valor en su test de validación, entonces
-        <methodname>isValid()</methodname>
-        deberá devolver
-        <constant>FALSE</constant>
-        .
-        Si el valor pasa su test de validación, entonces
-        <methodname>isValid()</methodname>
-        deberá devolver
-        <constant>TRUE</constant>
-        .
-    </para>
-
-    <para>
-        En general, el método
-        <methodname>isValid()</methodname>
-        no debería arrojar
-        excepciones, salvo que sea imposible determinar si el valor de entrada
-        es
-        válido o no.
-        Algunos ejemplos de casos razonables para lanzar una excepción podría ser
-        si un
-        archivo no puede abrirse, que un servidor
-        <acronym>LDAP</acronym>
-        no pudiera ser
-        contactado, o una conexión a una base de datos no estuviera disponible.
-        Estos
-        son casos en los que puede ser necesario determinar el éxito o
-        fracaso de la validación.
-    </para>
+        También proporcionan información sobre <emphasis>por qué</emphasis> un
+        valor falló en la validación. La disponibilidad de las razones para los
+        fracasos de validación puede ser valiosa para una aplicación por
+        diversos motivos, tales como proporcionar estadísticas para análisis de
+        usabilidad. </para>
+
+    <para> La funcionalidad de los mensajes de validación básica de fallos están
+        implementados en <classname>Zend_Validate_Abstract</classname> . A fin
+        de incluir esta funcionalidad al crear una clase de validación,
+        simplemente extienda <classname>Zend_Validate_Abstract</classname> . En
+        la extensión de la clase deberá aplicar la lógica del método
+            <methodname>isValid()</methodname> y definir las variables y
+        plantillas de mensajes que correspondan a los tipos de fallos de
+        validación que puedan suceder. Si falla un valor en su test de
+        validación, entonces <methodname>isValid()</methodname> deberá devolver
+            <constant>FALSE</constant> . Si el valor pasa su test de validación,
+        entonces <methodname>isValid()</methodname> deberá devolver
+            <constant>TRUE</constant> . </para>
+
+    <para> En general, el método <methodname>isValid()</methodname> no debería
+        arrojar excepciones, salvo que sea imposible determinar si el valor de
+        entrada es válido o no. Algunos ejemplos de casos razonables para lanzar
+        una excepción podría ser si un archivo no puede abrirse, que un servidor
+            <acronym>LDAP</acronym> no pudiera ser contactado, o una conexión a
+        una base de datos no estuviera disponible. Estos son casos en los que
+        puede ser necesario determinar el éxito o fracaso de la validación. </para>
 
 
     <example id="zend.validate.writing_validators.example.simple">
     <example id="zend.validate.writing_validators.example.simple">
 
 
         <title>Crear una Clase de Validación sencilla</title>
         <title>Crear una Clase de Validación sencilla</title>
 
 
-        <para>
-            El siguiente ejemplo demuestra cómo podría escribirse un sencillo
-            validador
-            personalizado.
-            En este caso las reglas de validación son simplemente que el valor
-            de
-            entrada debe ser de punto flotante.
-
-            <programlisting language="php"><![CDATA[
+        <para> El siguiente ejemplo demuestra cómo podría escribirse un sencillo
+            validador personalizado. En este caso las reglas de validación son
+            simplemente que el valor de entrada debe ser de punto flotante. <programlisting language="php"><![CDATA[
 class MyValid_Float extends Zend_Validate_Abstract
 class MyValid_Float extends Zend_Validate_Abstract
 {
 {
     const FLOAT = 'float';
     const FLOAT = 'float';
@@ -128,62 +82,46 @@ class MyValid_Float extends Zend_Validate_Abstract
         return true;
         return true;
     }
     }
 }
 }
-]]></programlisting>
-
-            La clase define una plantilla para su único mensaje de fallo de
-            validación, que incluye
-            el mágico parámetro
-            <emphasis>%value%</emphasis>
-            .
-            La llamada a
-            <methodname>_setValue()</methodname>
-            prepara al objeto para insertar
-            automáticamente en el mensaje de fallo al valor probado,
-            si éste
-            falla en la validación.
-            La llamada a
-            <methodname>_error()</methodname>
-            sigue las pistas para establecer
-            una razón por el fracaso de la validación.
-            Dado que esta
-            clase sólo define un mensaje de fallo, no es necesario
-            darle a
-            <methodname>_error()</methodname>
-            el nombre de la plantilla del mensaje
-            de fallo.
-        </para>
+]]></programlisting> La clase define una plantilla para su único mensaje de
+            fallo de validación, que incluye el mágico parámetro
+                <emphasis>%value%</emphasis> . La llamada a
+                <methodname>_setValue()</methodname> prepara al objeto para
+            insertar automáticamente en el mensaje de fallo al valor probado, si
+            éste falla en la validación. La llamada a
+                <methodname>_error()</methodname> sigue las pistas para
+            establecer una razón por el fracaso de la validación. Dado que esta
+            clase sólo define un mensaje de fallo, no es necesario darle a
+                <methodname>_error()</methodname> el nombre de la plantilla del
+            mensaje de fallo. </para>
 
 
     </example>
     </example>
 
 
     <example id="zend.validate.writing_validators.example.conditions.dependent">
     <example id="zend.validate.writing_validators.example.conditions.dependent">
 
 
-        <title>Escribiendo una Clase de Validación habiendo Condiciones Dependientes </title>
-        <para>
-            El siguiente ejemplo muestra un conjunto de reglas de validación
-            más complejo, donde es
-            necesario que el valor de entrada ser numérico
-            y dentro del límite de un rango de valores
-            mínimos y máximos.
-            Un valor de entrada podría fallar en la validación exactamente por una
-            de las siguientes razones:
-</para>
+        <title>Escribiendo una Clase de Validación habiendo Condiciones
+            Dependientes </title>
+        <para> El siguiente ejemplo muestra un conjunto de reglas de validación
+            más complejo, donde es necesario que el valor de entrada ser
+            numérico y dentro del límite de un rango de valores mínimos y
+            máximos. Un valor de entrada podría fallar en la validación
+            exactamente por una de las siguientes razones: </para>
 
 
         <itemizedlist>
         <itemizedlist>
             <listitem>
             <listitem>
                 <para>El valor de entrada no es numérico.</para>
                 <para>El valor de entrada no es numérico.</para>
             </listitem>
             </listitem>
             <listitem>
             <listitem>
-                <para>El valor de entrada es menor que el valor mínimo permitido.</para>
+                <para>El valor de entrada es menor que el valor mínimo
+                    permitido.</para>
             </listitem>
             </listitem>
             <listitem>
             <listitem>
-                <para>El valor de entrada es mayor que el valor máximo permitido.</para>
+                <para>El valor de entrada es mayor que el valor máximo
+                    permitido.</para>
             </listitem>
             </listitem>
         </itemizedlist>
         </itemizedlist>
 
 
-        <para>
-            Estas razones en el fallo de validación, son traducidas a las definiciones en la
-            clase:
-        </para>
+        <para> Estas razones en el fallo de validación, son traducidas a las
+            definiciones en la clase: </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 class MyValid_NumericBetween extends Zend_Validate_Abstract
 class MyValid_NumericBetween extends Zend_Validate_Abstract
@@ -230,64 +168,38 @@ class MyValid_NumericBetween extends Zend_Validate_Abstract
 }
 }
 ]]></programlisting>
 ]]></programlisting>
 
 
-        <para>
-            Las propiedades públicas
-            <varname>$minimum</varname>
-            y
-            <varname>$maximum</varname>
-            se han establecido para proporcionar los límites mínimo y máximo,
-            respectivamente, de un
-            valor a validar.
+        <para> Las propiedades públicas <varname>$minimum</varname> y
+                <varname>$maximum</varname> se han establecido para proporcionar
+            los límites mínimo y máximo, respectivamente, de un valor a validar.
             La clase también define dos variables de mensajes que corresponden a
             La clase también define dos variables de mensajes que corresponden a
-            las
-            propiedades públicas y permiten usar
-            <property>min</property>
-            y
-            <property>max</property>
-            en plantillas de mensajes como parámetros mágicos, al igual que con
-            <property>
-                value
-            </property>
-                .
-        </para>
-
-        <para>
-
-            Tenga en cuenta que si cualquiera de las comprobaciones de validación
-            falla en
-            <methodname>isValid()</methodname>
-            , ya está preparado un mensaje apropiado,
-            y el método inmediatamente devuelve
-            <constant>FALSE</constant>
-            .
-            Estas reglas de validación son por lo tanto secuencialmente dependientes.
-            Es decir, si
-            uno de los tests falla, no hay necesidad de poner a
-            prueba las posteriores reglas de
-            validación.
-            Sin embargo, esta necesidad no será el caso.
-            El siguiente ejemplo ilustra cómo
-            escribir una clase con reglas de
-            validación independientes, donde el objeto validación
-            puede devolver
+            las propiedades públicas y permiten usar <property>min</property> y
+                <property>max</property> en plantillas de mensajes como
+            parámetros mágicos, al igual que con <property> value </property> . </para>
+
+        <para> Tenga en cuenta que si cualquiera de las comprobaciones de
+            validación falla en <methodname>isValid()</methodname> , ya está
+            preparado un mensaje apropiado, y el método inmediatamente devuelve
+                <constant>FALSE</constant> . Estas reglas de validación son por
+            lo tanto secuencialmente dependientes. Es decir, si uno de los tests
+            falla, no hay necesidad de poner a prueba las posteriores reglas de
+            validación. Sin embargo, esta necesidad no será el caso. El
+            siguiente ejemplo ilustra cómo escribir una clase con reglas de
+            validación independientes, donde el objeto validación puede devolver
             múltiples razones por las cuales fracasó un intento de validación en
             múltiples razones por las cuales fracasó un intento de validación en
-            particular.
-        </para>
+            particular. </para>
 
 
     </example>
     </example>
 
 
-    <example id="zend.validate.writing_validators.example.conditions.independent">
+    <example
+        id="zend.validate.writing_validators.example.conditions.independent">
 
 
-        <title>Validación con Condiciones Independientes, Múltiples Razones del Fracaso</title>
-        <para>
-            Considere escribir una clase de validación y control de
-            contraseñas - cuando es
-            necesario que un usuario elija una
-            contraseña que cumple determinados criterios para
-            ayudar a tener
-            cuentas de usuario seguras. Supongamos que la seguridad de la contraseña
-            aplica criterios que fuerzan a lo siguiente:
-</para>
+        <title>Validación con Condiciones Independientes, Múltiples Razones del
+            Fracaso</title>
+        <para> Considere escribir una clase de validación y control de
+            contraseñas - cuando es necesario que un usuario elija una
+            contraseña que cumple determinados criterios para ayudar a tener
+            cuentas de usuario seguras. Supongamos que la seguridad de la
+            contraseña aplica criterios que fuerzan a lo siguiente: </para>
 
 
         <itemizedlist>
         <itemizedlist>
             <listitem>
             <listitem>
@@ -304,10 +216,7 @@ class MyValid_NumericBetween extends Zend_Validate_Abstract
             </listitem>
             </listitem>
         </itemizedlist>
         </itemizedlist>
 
 
-        <para>
-            La siguiente clase implementa estos criterios de validación:
-
-            <programlisting language="php"><![CDATA[
+        <para> La siguiente clase implementa estos criterios de validación: <programlisting language="php"><![CDATA[
 class MyValid_PasswordStrength extends Zend_Validate_Abstract
 class MyValid_PasswordStrength extends Zend_Validate_Abstract
 {
 {
     const LENGTH = 'length';
     const LENGTH = 'length';
@@ -351,34 +260,17 @@ class MyValid_PasswordStrength extends Zend_Validate_Abstract
         return $isValid;
         return $isValid;
     }
     }
 }
 }
-]]></programlisting>
-
-            Las cuatro pruebas de criterio en
-            <methodname>isValid()</methodname>
-            no devuelven
-            inmediatamente
-            <constant>FALSE</constant>
-            .
-            Esto permite a la clase de validación a proporcionar
-            <emphasis role="bold">todas</emphasis>
-            las razones por las que la contraseña de entrada no cumplió los requisitos
-            de validación.
-            Si, por ejemplo, un usuario ingresara el string "
-            <methodname>#$%</methodname>
-            "
-            como contraseña,
-            <methodname>isValid()</methodname>
-            causaría que los cuatro
+]]></programlisting> Las cuatro pruebas de criterio en
+                <methodname>isValid()</methodname> no devuelven inmediatamente
+                <constant>FALSE</constant> . Esto permite a la clase de
+            validación a proporcionar <emphasis role="bold">todas</emphasis> las
+            razones por las que la contraseña de entrada no cumplió los
+            requisitos de validación. Si, por ejemplo, un usuario ingresara el
+            string " <methodname>#$%</methodname> " como contraseña,
+                <methodname>isValid()</methodname> causaría que los cuatro
             mensajes de fracaso de validación sean devueltos por un llamado
             mensajes de fracaso de validación sean devueltos por un llamado
-            posterior
-            a
-            <methodname>getMessages()</methodname>
-            .
-        </para>
+            posterior a <methodname>getMessages()</methodname> . </para>
 
 
     </example>
     </example>
 
 
 </sect1>
 </sect1>
-    <!--
-vim:se ts=4 sw=4 et:
--->

+ 159 - 316
documentation/manual/es/module_specs/Zend_Validate.xml

@@ -5,43 +5,28 @@
 
 
     <title>Introducción</title>
     <title>Introducción</title>
 
 
-    <para>
-        Cuando se necesita validar algún tipo de dato, el componente
-        <classname>Zend_Validate</classname>
-        ofrece un conjunto de validadores,
-        como así también un sencillo mecanismo de encadenado de
-        validaciones por el cual
-        múltiples validadores pueden aplicarse a un dato en un orden
-        definido por el usuario.
-    </para>
+    <para> Cuando se necesita validar algún tipo de dato, el componente
+            <classname>Zend_Validate</classname> ofrece un conjunto de
+        validadores, como así también un sencillo mecanismo de encadenado de
+        validaciones por el cual múltiples validadores pueden aplicarse a un
+        dato en un orden definido por el usuario. </para>
 
 
     <sect2 id="zend.validate.introduction.definition">
     <sect2 id="zend.validate.introduction.definition">
 
 
         <title>¿Qué es un validador?</title>
         <title>¿Qué es un validador?</title>
 
 
-        <para>
-            Un validador examina su entrada con respecto a algunos requerimientos
-            y produce un
-            resultado booleano si la entrada valida satisfactoriamente
-            con los requisitos. Si la
-            entrada no cumple los requisitos,
-            un validador también podrá proporcionar información
-            adicional
-            sobre que requisito(s) no son satisfechos.
-       </para>
+        <para> Un validador examina su entrada con respecto a algunos
+            requerimientos y produce un resultado booleano si la entrada valida
+            satisfactoriamente con los requisitos. Si la entrada no cumple los
+            requisitos, un validador también podrá proporcionar información
+            adicional sobre que requisito(s) no son satisfechos. </para>
 
 
-        <para>
-            Por ejemplo, una aplicación web podría requerir que un usuario ingrese
-            su nombre, de
-            entre seis y doce caracteres de longitud y
-            que sólo puede contener caracteres
-            alfanuméricos.
-            Se puede usar un validador para asegurar que los usuarios cumplan
-            estos
-            requisitos.
-            Si el nombre de usuario elegido no cumple con uno o ambos de los requisitos,
-            sería útil saber cuál de estos requisitos no se cumple.
-       </para>
+        <para> Por ejemplo, una aplicación web podría requerir que un usuario
+            ingrese su nombre, de entre seis y doce caracteres de longitud y que
+            sólo puede contener caracteres alfanuméricos. Se puede usar un
+            validador para asegurar que los usuarios cumplan estos requisitos.
+            Si el nombre de usuario elegido no cumple con uno o ambos de los
+            requisitos, sería útil saber cuál de estos requisitos no se cumple. </para>
 
 
     </sect2>
     </sect2>
 
 
@@ -49,74 +34,41 @@
 
 
         <title>Uso básico de validadores</title>
         <title>Uso básico de validadores</title>
 
 
-        <para>
-            Habiendo definido la validación de esta manera, Zend Framework nos proporciona el
-            fundamento
-            para
-            <classname>Zend_Validate_Interface</classname>
-            que define dos métodos,
-            <methodname>isValid()</methodname>
-            y
-            <methodname>getMessages()</methodname>
-            .
-            El método
-            <methodname>isValid()</methodname>
-            realiza la validación del valor,
-            devolviendo
-            <constant>TRUE</constant>
-            si y sólo si el valor pasa contra el criterio de
-            validación.
-        </para>
-
-        <para>
-            Si
-            <methodname>isValid()</methodname>
-            devuelve
-            <constant>FALSE</constant>
-            , la función
-            <methodname>getMessages()</methodname>
-            devuelve un array de mensajes explicando
-            el motivo(s) del fracaso de la validación. Las
-            claves del array son
-            strings cortos que identifican las razones por las cuales fracasó
-            la
-            validación, y los valores del array son los correspondientes mensajes
-            para ser leídos por
-            un ser humano.
-            Las claves y los valores son dependientes de la clase; cada clase de
-            validación
-            define su propio conjunto de mensajes de validación fallidas y las
-            claves
-            únicas que las identifican.
-            Cada clase tiene también una definición constante
-            que hace
-            corresponder a cada identificador con una causa del fallo
-            de validación.
-        </para>
+        <para> Habiendo definido la validación de esta manera, Zend Framework
+            nos proporciona el fundamento para
+                <classname>Zend_Validate_Interface</classname> que define dos
+            métodos, <methodname>isValid()</methodname> y
+                <methodname>getMessages()</methodname> . El método
+                <methodname>isValid()</methodname> realiza la validación del
+            valor, devolviendo <constant>TRUE</constant> si y sólo si el valor
+            pasa contra el criterio de validación. </para>
+
+        <para> Si <methodname>isValid()</methodname> devuelve
+                <constant>FALSE</constant> , la función
+                <methodname>getMessages()</methodname> devuelve un array de
+            mensajes explicando el motivo(s) del fracaso de la validación. Las
+            claves del array son strings cortos que identifican las razones por
+            las cuales fracasó la validación, y los valores del array son los
+            correspondientes mensajes para ser leídos por un ser humano. Las
+            claves y los valores son dependientes de la clase; cada clase de
+            validación define su propio conjunto de mensajes de validación
+            fallidas y las claves únicas que las identifican. Cada clase tiene
+            también una definición constante que hace corresponder a cada
+            identificador con una causa del fallo de validación. </para>
 
 
         <note>
         <note>
-            <para>
-                El método
-                <methodname>getMessages()</methodname>
-                devuelve información del fracaso
-                de la validación sólo para la llamada más reciente a
-                <methodname>isValid()</methodname>
-                .
-                Cada llamada a
-                <methodname>isValid()</methodname>
-                borra los mensajes y errores
-                causados por una llamada anterior
-                <methodname>isValid()</methodname>
-                , porque es
-                probable que cada llamada a
-                <methodname>isValid()</methodname>
-                se refiera al valor de una entrada diferente.
-            </para>
+            <para> El método <methodname>getMessages()</methodname> devuelve
+                información del fracaso de la validación sólo para la llamada
+                más reciente a <methodname>isValid()</methodname> . Cada llamada
+                a <methodname>isValid()</methodname> borra los mensajes y
+                errores causados por una llamada anterior
+                    <methodname>isValid()</methodname> , porque es probable que
+                cada llamada a <methodname>isValid()</methodname> se refiera al
+                valor de una entrada diferente. </para>
         </note>
         </note>
 
 
-        <para>
-            El siguiente ejemplo ilustra la validación de una dirección de e-mail:
-</para>
+        <para> El siguiente ejemplo ilustra la validación de una dirección de
+            e-mail: </para>
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $validator = new Zend_Validate_EmailAddress();
 $validator = new Zend_Validate_EmailAddress();
 
 
@@ -136,51 +88,31 @@ if ($validator->isValid($email)) {
 
 
         <title>Personalizar los mensajes</title>
         <title>Personalizar los mensajes</title>
 
 
-        <para>
-            Para validar las clases se proporciona un método
-            <methodname>setMessage()</methodname>
-            con el que se puede especificar el formato de un mensaje devuelto por
-            <methodname>getMessages()</methodname>
-            en caso de fallo de validación.
-            El primer argumento de este método es un string que contiene el mensaje
-            de error. Usted puede incluir tokens en este array que serán sustituidos
-            con datos relevantes al validador. El token
-            <emphasis>%value%</emphasis>
-            es aceptado
-            por todos los validadores, que es sustituido por el valor que pasó a
-            <methodname>isValid()</methodname>
-            . Cada clase de validación, puede dar apoyo a otros
-            tokens en base a cada caso. Por ejemplo,
-            <emphasis>%max%</emphasis>
-                es un token
-                apoyado por
-                <classname>Zend_Validate_LessThan</classname>
-                .
-                El método
-                <methodname>getMessageVariables()</methodname>
-                devuelve un array de tokens
-                variables aceptados por el validador.
-        </para>
-
-        <para>
-            El segundo argumento opcional es un string que identifica la plantilla
-            de mensajes que se
-            establecerá en caso del fracaso de la validación,
-            lo que es útil cuando una clase de
-            validación define más de una causa para
-            el fallo.
-            Si omite el segundo argumento,
-            <methodname>setMessage()</methodname>
-            asume que el
-            mensaje que especifique debe ser utilizado por la plantilla del
-            primer
-            mensaje que declaró en la clase de validación.
-            Muchas clases de validación sólo definen
-            una plantilla de mensaje de
-            error, así que no hay necesidad de especificar el cambio de
-            plantilla
-            de mensaje.
-        </para>
+        <para> Para validar las clases se proporciona un método
+                <methodname>setMessage()</methodname> con el que se puede
+            especificar el formato de un mensaje devuelto por
+                <methodname>getMessages()</methodname> en caso de fallo de
+            validación. El primer argumento de este método es un string que
+            contiene el mensaje de error. Usted puede incluir tokens en este
+            array que serán sustituidos con datos relevantes al validador. El
+            token <emphasis>%value%</emphasis> es aceptado por todos los
+            validadores, que es sustituido por el valor que pasó a
+                <methodname>isValid()</methodname> . Cada clase de validación,
+            puede dar apoyo a otros tokens en base a cada caso. Por ejemplo,
+                <emphasis>%max%</emphasis> es un token apoyado por
+                <classname>Zend_Validate_LessThan</classname> . El método
+                <methodname>getMessageVariables()</methodname> devuelve un array
+            de tokens variables aceptados por el validador. </para>
+
+        <para> El segundo argumento opcional es un string que identifica la
+            plantilla de mensajes que se establecerá en caso del fracaso de la
+            validación, lo que es útil cuando una clase de validación define más
+            de una causa para el fallo. Si omite el segundo argumento,
+                <methodname>setMessage()</methodname> asume que el mensaje que
+            especifique debe ser utilizado por la plantilla del primer mensaje
+            que declaró en la clase de validación. Muchas clases de validación
+            sólo definen una plantilla de mensaje de error, así que no hay
+            necesidad de especificar el cambio de plantilla de mensaje. </para>
 
 
         <para>
         <para>
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
@@ -200,12 +132,9 @@ if (!$validator->isValid('word')) {
 ]]></programlisting>
 ]]></programlisting>
         </para>
         </para>
 
 
-        <para>
-            Puede establecer varios mensajes usando el método
-            <methodname>setMessages()</methodname>
-            .
-            Su argumento es un array que contiene pares de clave/mensaje.
-        </para>
+        <para> Puede establecer varios mensajes usando el método
+                <methodname>setMessages()</methodname> . Su argumento es un
+            array que contiene pares de clave/mensaje. </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $validator = new Zend_Validate_StringLength(array('min' => 8, 'max' => 12));
 $validator = new Zend_Validate_StringLength(array('min' => 8, 'max' => 12));
@@ -218,24 +147,15 @@ $validator->setMessages( array(
 ));
 ));
 ]]></programlisting>
 ]]></programlisting>
 
 
-        <para>
-            Incluso, si su aplicación requiere una mayor flexibilidad para informar
-            los fallos de
-            validación, puede acceder a las propiedades por el
-            mismo nombre, tal como los tokens de
-            mensajes apoyados por una determinada
-            clase de validación.
-            La propiedad
-            <methodname>value</methodname>
-            siempre está disponible en un validador;
-            es el valor que especificó en el argumento de
-            <methodname>isValid()</methodname>
-            .
-            En cada clase de validación se puede dar apoyo a otras propiedades
-            basándose en el
-            esquema de caso por caso.
-
-            <programlisting language="php"><![CDATA[
+        <para> Incluso, si su aplicación requiere una mayor flexibilidad para
+            informar los fallos de validación, puede acceder a las propiedades
+            por el mismo nombre, tal como los tokens de mensajes apoyados por
+            una determinada clase de validación. La propiedad
+                <methodname>value</methodname> siempre está disponible en un
+            validador; es el valor que especificó en el argumento de
+                <methodname>isValid()</methodname> . En cada clase de validación
+            se puede dar apoyo a otras propiedades basándose en el esquema de
+            caso por caso. <programlisting language="php"><![CDATA[
 $validator = new Zend_Validate_StringLength(8, 12);
 $validator = new Zend_Validate_StringLength(8, 12);
 
 
 if (!validator->isValid('word')) {
 if (!validator->isValid('word')) {
@@ -254,97 +174,56 @@ if (!validator->isValid('word')) {
 
 
     <sect2 id="zend.validate.introduction.static">
     <sect2 id="zend.validate.introduction.static">
 
 
-        <title>
-            Utilizando el método estático
-            <methodname>is()</methodname>
+        <title> Utilizando el método estático is()
         </title>
         </title>
 
 
-        <para>
-            Si es inconveniente cargar una clase de validación y crear una
-            instancia del validador,
-            puede usar el método estático
-            <methodname>Zend_Validate::is()</methodname>
-            como un estilo alternativo de invocación.
-            El primer argumento de este método es el valor
-            de una entrada de datos
-            que usted pasaría al método
-            <methodname>isValid()</methodname>
-            .
-            El segundo argumento es un string, que corresponde al nombre base
-            de la clase de
-            validación, relativo al nombre de espacio
-            <classname>Zend_Validate</classname>
-            .
-            El método
-            <methodname>is()</methodname>
-            carga automáticamente la clase, crea una
-            instancia y aplica el método
-            <methodname>isValid()</methodname>
-            a la entrada de datos.
-
-            <programlisting language="php"><![CDATA[
+        <para> Si es inconveniente cargar una clase de validación y crear una
+            instancia del validador, puede usar el método estático
+                <methodname>Zend_Validate::is()</methodname> como un estilo
+            alternativo de invocación. El primer argumento de este método es el
+            valor de una entrada de datos que usted pasaría al método
+                <methodname>isValid()</methodname> . El segundo argumento es un
+            string, que corresponde al nombre base de la clase de validación,
+            relativo al nombre de espacio <classname>Zend_Validate</classname> .
+            El método <methodname>is()</methodname> carga automáticamente la
+            clase, crea una instancia y aplica el método
+                <methodname>isValid()</methodname> a la entrada de datos. <programlisting language="php"><![CDATA[
 if (Zend_Validate::is($email, 'EmailAddress')) {
 if (Zend_Validate::is($email, 'EmailAddress')) {
     // Si, el email parece ser válido
     // Si, el email parece ser válido
 }
 }
 ]]></programlisting>
 ]]></programlisting>
-
         </para>
         </para>
 
 
-        <para>
-            Si el validador lo necesita, también puede pasar un array de constructores de
-            argumentos.
-
-            <programlisting language="php"><![CDATA[
+        <para> Si el validador lo necesita, también puede pasar un array de
+            constructores de argumentos. <programlisting language="php"><![CDATA[
 if (Zend_Validate::is($value, 'Between', array('min' => 1, 'max' => 12))) {
 if (Zend_Validate::is($value, 'Between', array('min' => 1, 'max' => 12))) {
     // Si, $value está entre 1 y 12
     // Si, $value está entre 1 y 12
 }
 }
 ]]></programlisting>
 ]]></programlisting>
-
-        </para>
-
-        <para>
-            El método
-            <methodname>is()</methodname>
-            devuelve un valor booleano, lo mismo que
-            el método
-            <methodname>isValid()</methodname>
-            . Cuando se utiliza el método estático
-            <methodname>is()</methodname>
-            , no están disponibles los mensajes de fracaso de
-            validación.
-        </para>
-
-        <para>
-            El uso estático puede ser conveniente para invocar un validador ad-hoc
-            (hecho
-            especialmente), pero si tiene la necesidad de ejecutar el validador para múltiples
-            entradas, es más eficiente usar métodos no estáticos, creando una
-            instancia del objeto
-            validador y llamando a su método
-            <methodname>isValid()</methodname>
-            .
         </para>
         </para>
 
 
-        <para>
-            También la clase
-            <classname>Zend_Filter_Input</classname>
-            le permite crear
-            ejemplos y ejecutar múltiples filtros y clases de validadores por
-            demanda, para procesar juegos de datos de entrada. Ver
-            <xref linkend="zend.filter.input"/>
-            .
-        </para>
+        <para> El método <methodname>is()</methodname> devuelve un valor
+            booleano, lo mismo que el método <methodname>isValid()</methodname>
+            . Cuando se utiliza el método estático <methodname>is()</methodname>
+            , no están disponibles los mensajes de fracaso de validación. </para>
+
+        <para> El uso estático puede ser conveniente para invocar un validador
+            ad-hoc (hecho especialmente), pero si tiene la necesidad de ejecutar
+            el validador para múltiples entradas, es más eficiente usar métodos
+            no estáticos, creando una instancia del objeto validador y llamando
+            a su método <methodname>isValid()</methodname> . </para>
+
+        <para> También la clase <classname>Zend_Filter_Input</classname> le
+            permite crear ejemplos y ejecutar múltiples filtros y clases de
+            validadores por demanda, para procesar juegos de datos de entrada.
+            Ver <xref linkend="zend.filter.input"/> . </para>
         <sect3 id="zend.validate.introduction.static.namespaces">
         <sect3 id="zend.validate.introduction.static.namespaces">
 
 
             <title>Namespaces</title>
             <title>Namespaces</title>
 
 
-            <para>
-                When working with self defined validators you can give a forth parameter
-                to
-                <methodname>Zend_Validate::is()</methodname>
-                which is the namespace
-                where your validator can be found.
-            </para>
+            <para> When working with self defined validators you can give a
+                forth parameter to <methodname>Zend_Validate::is()</methodname>
+                which is the namespace where your validator can be found. </para>
 
 
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
 if (Zend_Validate::is($value, 'MyValidator', array('min' => 1, 'max' => 12),
 if (Zend_Validate::is($value, 'MyValidator', array('min' => 1, 'max' => 12),
@@ -354,15 +233,11 @@ if (Zend_Validate::is($value, 'MyValidator', array('min' => 1, 'max' => 12),
 ]]></programlisting>
 ]]></programlisting>
 
 
             <para>
             <para>
-                <classname>Zend_Validate</classname>
-                allows also to set namespaces as default.
-                This means that you can set them once in
-                your bootstrap and have not to give
-                them again for each call of
-                <methodname>Zend_Validate::is()</methodname>
-                . The
-                following code snippet is identical to the above one.
-            </para>
+                <classname>Zend_Validate</classname> allows also to set
+                namespaces as default. This means that you can set them once in
+                your bootstrap and have not to give them again for each call of
+                    <methodname>Zend_Validate::is()</methodname> . The following
+                code snippet is identical to the above one. </para>
 
 
             <programlisting language="php"><![CDATA[
             <programlisting language="php"><![CDATA[
 Zend_Validate::setDefaultNamespaces(array('FirstNamespace', 'SecondNamespace'));
 Zend_Validate::setDefaultNamespaces(array('FirstNamespace', 'SecondNamespace'));
@@ -375,30 +250,25 @@ if (Zend_Validate::is($value, 'OtherValidator', array('min' => 1, 'max' => 12))
 }
 }
 ]]></programlisting>
 ]]></programlisting>
 
 
-            <para>
-                For your convinience there are following methods which allow the handling of
-                namespaces:
-            </para>
+            <para> For your convinience there are following methods which allow
+                the handling of namespaces: </para>
 
 
             <itemizedlist>
             <itemizedlist>
                 <listitem>
                 <listitem>
                     <para>
                     <para>
                         <emphasis>
                         <emphasis>
                             <methodname>Zend_Validate::getDefaultNamespaces()</methodname>
                             <methodname>Zend_Validate::getDefaultNamespaces()</methodname>
-                        </emphasis>
-                        :
-                        Returns all set default namespaces as array.
-                    </para>
+                        </emphasis> : Returns all set default namespaces as
+                        array. </para>
                 </listitem>
                 </listitem>
 
 
                 <listitem>
                 <listitem>
                     <para>
                     <para>
                         <emphasis>
                         <emphasis>
                             <methodname>Zend_Validate::setDefaultNamespaces()</methodname>
                             <methodname>Zend_Validate::setDefaultNamespaces()</methodname>
-                        </emphasis>
-                        :
-                        Sets new default namespaces and overrides any previous set. It accepts
-                        either a string for a single namespace of an array for multiple namespaces.
+                        </emphasis> : Sets new default namespaces and overrides
+                        any previous set. It accepts either a string for a
+                        single namespace of an array for multiple namespaces.
                     </para>
                     </para>
                 </listitem>
                 </listitem>
 
 
@@ -406,22 +276,18 @@ if (Zend_Validate::is($value, 'OtherValidator', array('min' => 1, 'max' => 12))
                     <para>
                     <para>
                         <emphasis>
                         <emphasis>
                             <methodname>Zend_Validate::addDefaultNamespaces()</methodname>
                             <methodname>Zend_Validate::addDefaultNamespaces()</methodname>
-                        </emphasis>
-                        :
-                        Adds additional namespaces to already set ones. It accepts either a string
-                        for a single namespace of an array for multiple namespaces.
-                    </para>
+                        </emphasis> : Adds additional namespaces to already set
+                        ones. It accepts either a string for a single namespace
+                        of an array for multiple namespaces. </para>
                 </listitem>
                 </listitem>
 
 
                 <listitem>
                 <listitem>
                     <para>
                     <para>
                         <emphasis>
                         <emphasis>
                             <methodname>Zend_Validate::hasDefaultNamespaces()</methodname>
                             <methodname>Zend_Validate::hasDefaultNamespaces()</methodname>
-                        </emphasis>
-                        :
-                        Returns true when one or more default namespaces are set, and false when no
-                        default namespaces are set.
-                    </para>
+                        </emphasis> : Returns true when one or more default
+                        namespaces are set, and false when no default namespaces
+                        are set. </para>
                 </listitem>
                 </listitem>
             </itemizedlist>
             </itemizedlist>
         </sect3>
         </sect3>
@@ -431,17 +297,12 @@ if (Zend_Validate::is($value, 'OtherValidator', array('min' => 1, 'max' => 12))
 
 
         <title>Translating messages</title>
         <title>Translating messages</title>
 
 
-        <para>
-            Validate classes provide a
-            <methodname>setTranslator()</methodname>
-            method with
-            which you can specify a instance of
-            <classname>Zend_Translate</classname>
-            which
-            will translate the messages in case of a validation failure. The
-            <methodname>getTranslator()</methodname>
-            method returns the set translator instance.
-        </para>
+        <para> Validate classes provide a
+                <methodname>setTranslator()</methodname> method with which you
+            can specify a instance of <classname>Zend_Translate</classname>
+            which will translate the messages in case of a validation failure.
+            The <methodname>getTranslator()</methodname> method returns the set
+            translator instance. </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $validator = new Zend_Validate_StringLength(array('min' => 8, 'max' => 12));
 $validator = new Zend_Validate_StringLength(array('min' => 8, 'max' => 12));
@@ -454,20 +315,13 @@ $translate = new Zend_Translate(
 $validator->setTranslator($translate);
 $validator->setTranslator($translate);
 ]]></programlisting>
 ]]></programlisting>
 
 
-        <para>
-            With the static
-            <methodname>setDefaultTranslator()</methodname>
-            method you can set
-            a instance of
-            <classname>Zend_Translate</classname>
-            which will be used for all
+        <para> With the static <methodname>setDefaultTranslator()</methodname>
+            method you can set a instance of
+                <classname>Zend_Translate</classname> which will be used for all
             validation classes, and can be retrieved with
             validation classes, and can be retrieved with
-            <methodname>getDefaultTranslator()</methodname>
-            .
-            This prevents you from setting a translator manually for all validator classes,
-            and
-            simplifies your code.
-        </para>
+                <methodname>getDefaultTranslator()</methodname> . This prevents
+            you from setting a translator manually for all validator classes,
+            and simplifies your code. </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $translate = new Zend_Translate(
 $translate = new Zend_Translate(
@@ -479,22 +333,17 @@ Zend_Validate::setDefaultTranslator($translate);
 ]]></programlisting>
 ]]></programlisting>
 
 
         <note>
         <note>
-            <para>
-                When you have set an application wide locale within your registry, then this
-                locale will be used as default translator.
-           </para>
+            <para> When you have set an application wide locale within your
+                registry, then this locale will be used as default translator.
+            </para>
         </note>
         </note>
 
 
-        <para>
-            Sometimes it is necessary to disable the translator within a validator.
-            To archive this
-            you can use the
-            <methodname>setDisableTranslator()</methodname>
-            method,
-            which accepts a boolean parameter, and
-            <methodname>translatorIsDisabled()</methodname>
-            to get the set value.
-        </para>
+        <para> Sometimes it is necessary to disable the translator within a
+            validator. To archive this you can use the
+                <methodname>setDisableTranslator()</methodname> method, which
+            accepts a boolean parameter, and
+                <methodname>translatorIsDisabled()</methodname> to get the set
+            value. </para>
 
 
         <programlisting language="php"><![CDATA[
         <programlisting language="php"><![CDATA[
 $validator = new Zend_Validate_StringLength(array('min' => 8, 'max' => 12));
 $validator = new Zend_Validate_StringLength(array('min' => 8, 'max' => 12));
@@ -503,16 +352,10 @@ if (!$validator->isTranslatorDisabled()) {
 }
 }
 ]]></programlisting>
 ]]></programlisting>
 
 
-        <para>
-            It is also possible to use a translator instead of setting own messages with
-            <methodname>setMessage()</methodname>
-            . But doing so, you should keep in mind, that the
-            translator works also on messages you
-            set your own.
-        </para>
+        <para> It is also possible to use a translator instead of setting own
+            messages with <methodname>setMessage()</methodname> . But doing so,
+            you should keep in mind, that the translator works also on messages
+            you set your own. </para>
 
 
     </sect2>
     </sect2>
 </sect1>
 </sect1>
-    <!--
-vim:se ts=4 sw=4 et:
--->

Some files were not shown because too many files changed in this diff