Quellcode durchsuchen

DOC-ES
Update Files

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

benjamin-gonzales vor 16 Jahren
Ursprung
Commit
3081950764

+ 18 - 18
documentation/manual/es/module_specs/Zend_Application-TheoryOfOperation.xml

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15103 -->
+<!-- EN-Revision: 16169 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.application.theory-of-operation">
     <title>Teoría de Operación</title>
 
     <para>
-        Obtener una aplicación MVC configurada y lista para funcionar 
+        Obtener una aplicación <acronym>MVC</acronym> configurada y lista para funcionar 
         requiere de un porcentaje cada vez mayor de código que disponga
         de más características, tales como: Establecer la base de datos,
         configurar la vista y los ayudantes(helpers) de vistas, configurar los layouts,
@@ -17,14 +17,14 @@
         pruebas, un cronjob, o un servicio en linea de comandos.
         Si bien es posible incluir simplemente su script bootstrap,
         a menudo hay inicializaciones que son específicas del entorno,
-        puede que  no necesite el MVC para un cronjob, o simplemente
+        puede que  no necesite el <acronym>MVC</acronym> para un cronjob, o simplemente
         la capa de DB para un servicio script.
     </para>
 
     <para>
         <classname>Zend_Application</classname> pretende hacer esto más fácil
         y promover la reutilización mediante el encapsulamiento del
-        bootstraping en paradigmas de OOP.
+        bootstraping en paradigmas de <acronym>OOP</acronym>.
     </para>
 
     <para>
@@ -101,7 +101,7 @@
         </listitem>
         <listitem>
             <para>
-                Cualquier configuración de php.ini a inicializar
+                Cualquier configuración de <filename>php.ini</filename> a inicializar
             </para>
         </listitem>
         <listitem>
@@ -111,7 +111,7 @@
         </listitem>
         <listitem>
             <para>
-                Pares de recursos prefijo/ruta a usar
+                Pares de recursos prefijo de ruta a usar
             </para>
         </listitem>
         <listitem>
@@ -145,7 +145,7 @@
             <classname>Zend_Application</classname> es ejecutar la solicitud
             del bootstrap. Los bootstraps necesitan mínimamente implementar
             <classname>Zend_Application_Bootstrap_Bootstrapper</classname>,
-            la que define la siguiente API:
+            la que define la siguiente <acronym>API</acronym>:
         </para>
 
          <programlisting language="php"><![CDATA[
@@ -164,7 +164,7 @@ interface Zend_Application_Bootstrap_Bootstrapper
 ]]></programlisting>
 
         <para>
-            Esta API permite aceptar al bootstrap en el entorno y  la
+            Esta <acronym>API</acronym> permite aceptar al bootstrap en el entorno y  la
             configuración desde el objeto de la aplicación, informa la
             responsabilidad de los recursos para los recursos bootstraping,
             luego hace el bootstrap y ejecuta la aplicación.
@@ -198,7 +198,7 @@ interface Zend_Application_Bootstrap_Bootstrapper
                 Para arrancar un único método de recurso, utilizar el método
                 <methodname>bootstrap()</methodname>, y pasarle el nombre del recurso.
                 El nombre será el nombre de método menos el prefijo
-                <methodname>_init</methodname>.
+                <emphasis>_init</emphasis>.
             </para>
 
             <para>
@@ -254,7 +254,7 @@ $bootstrap->bootstrap(array('foo', 'bar));
 
             <para>
                 Para arrancar todos los métodos de recursos, llame a
-                <methodname>code>bootstrap()</methodname> sin argumentos:
+                <methodname>bootstrap()</methodname> sin argumentos:
             </para>
 
              <programlisting language="php"><![CDATA[
@@ -281,7 +281,7 @@ $bootstrap->bootstrap();
                 Si su bootstrap debe ser capaz de utilizar recursos de plugins,
                 necesitará implementar una interfaz adicional,
                 <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>.
-                Esta interfaz define una API para localizar, registrar,
+                Esta interfaz define una <acronym>API</acronym> para localizar, registrar,
                 y cargar recursos de plugins:
             </para>
 
@@ -357,8 +357,8 @@ $application = new Zend_Application(APPLICATION_ENV, array(
 
             <para>
                 Supongamos por ejemplo, que usted tiene recursos de plugins
-                personalizados en <methodname>APPLICATION_PATH/resources/</methodname> y que
-                ellos comparten el prefijo de clase común <methodname>My_Resource</methodname>.
+                personalizados en <filename>APPLICATION_PATH/resources/</filename> y que
+                ellos comparten el prefijo de clase común <classname>My_Resource</classname>.
                 Entonces, debería pasar esa información al objeto aplicación
                 de la siguiente manera:
             </para>
@@ -472,7 +472,7 @@ if (isset($container->view)) {
 ]]></programlisting>
 
             <para>
-                Tenga en cuenta que el registro/contenedor no es global.
+                Tenga en cuenta que el registro y el contenedor no es global.
                 Esto significa que usted necesita acceso al bootstrap a fin de
                 recuperar recursos. <classname>Zend_Application_Bootstrap_Bootstrap</classname>
                 proporciona cierta comodidad para ello: durante las ejecución de
@@ -524,7 +524,7 @@ class FooController extends Zend_Controller_Action
             <para>
                 Como se señaló anteriormente, todos los recursos --
                 ya sean métodos o plugins -- son arrancados llamando a
-                <methodname>bootstrap($resource)</methodname>, dende  <varname>$resource</methodname>
+                <methodname>bootstrap($resource)</methodname>, dende  <varname>$resource</varname>
                 es el nombre de un recurso, un array de recursos,
                 o si se dejó vacío, indica que deberían ejecutarse todos los recursos.
             </para>
@@ -610,7 +610,7 @@ interface Zend_Application_Resource_Resource
 
         <para>
             Como ejemplo, supongamos que tiene una vista común de inicialización
-            que utiliza en sus aplicaciones. Usted tiene un doctype común, CSS
+            que utiliza en sus aplicaciones. Usted tiene un doctype común, <acronym>CSS</acronym>
             y JavaScript, y quiere se capaz de pasar desde un documento base el
             título via configuración. Un recurso tal podría ser como este:
         </para>
@@ -634,7 +634,7 @@ class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
             $title   = '';
             if (array_key_exists('title', $options)) {
                 $title = $options['title'];
-                unset($options['title]);
+                unset($options['title']);
             }
 
             $view = new Zend_View($options);
@@ -645,7 +645,7 @@ class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
 
             $viewRenderer =
                 Zend_Controller_Action_HelperBroker::getStaticHelper(
-                    'ViewRenderer',
+                    'ViewRenderer'
                 );
             $viewRenderer->setView($view);
 

+ 249 - 206
documentation/manual/es/module_specs/Zend_Auth.xml

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

+ 170 - 172
documentation/manual/es/module_specs/Zend_Auth_Adapter_DbTable.xml

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

+ 49 - 50
documentation/manual/es/module_specs/Zend_Auth_Adapter_Digest.xml

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

+ 111 - 134
documentation/manual/es/module_specs/Zend_Auth_Adapter_Http.xml

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