Просмотр исходного кода

new Files

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@15308 44c647ce-9c0f-0410-b52a-842ac1e357ba
benjamin-gonzales 16 лет назад
Родитель
Сommit
c77e144dc7
24 измененных файлов с 2981 добавлено и 0 удалено
  1. 78 0
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-Db.xml
  2. 116 0
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-Frontcontroller.xml
  3. 101 0
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-Modules.xml
  4. 72 0
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-Session.xml
  5. 35 0
      documentation/manual/es/module_specs/Zend_Application-AvailableResources-View.xml
  6. 16 0
      documentation/manual/es/module_specs/Zend_Application-AvailableResources.xml
  7. 268 0
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Application.xml
  8. 23 0
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml
  9. 288 0
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_BootstrapAbstract.xml
  10. 125 0
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrapper.xml
  11. 137 0
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_ResourceBootstrapper.xml
  12. 99 0
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Resource_Resource.xml
  13. 94 0
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Resource_ResourceAbstract.xml
  14. 18 0
      documentation/manual/es/module_specs/Zend_Application-CoreFunctionality.xml
  15. 243 0
      documentation/manual/es/module_specs/Zend_Application-Examples.xml
  16. 13 0
      documentation/manual/es/module_specs/Zend_Application-Introduction.xml
  17. 413 0
      documentation/manual/es/module_specs/Zend_Application-QuickStart.xml
  18. 651 0
      documentation/manual/es/module_specs/Zend_Application-TheoryOfOperation.xml
  19. 132 0
      documentation/manual/es/module_specs/Zend_Config_Writer.xml
  20. 15 0
      documentation/manual/es/module_specs/Zend_Dom.xml
  21. 14 0
      documentation/manual/es/module_specs/Zend_Test.xml
  22. 7 0
      documentation/manual/es/module_specs/Zend_Tool_Framework-CliTool.xml
  23. 7 0
      documentation/manual/es/module_specs/Zend_Tool_Framework-WritingProviders.xml
  24. 16 0
      documentation/manual/es/module_specs/Zend_Tool_Project-Internals.xml

+ 78 - 0
documentation/manual/es/module_specs/Zend_Application-AvailableResources-Db.xml

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

+ 116 - 0
documentation/manual/es/module_specs/Zend_Application-AvailableResources-Frontcontroller.xml

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

+ 101 - 0
documentation/manual/es/module_specs/Zend_Application-AvailableResources-Modules.xml

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.available-resources.modules">
+    <title>Zend_Application_Resource_Modules</title>
+
+    <para>
+        <classname>Zend_Application_Resource_Modules</classname> se utiliza
+        para inicializar sus módulos de aplicación. Si su módulo tiene un
+        archivo <code>Bootstrap.php</code> en su raíz, y contiene una clase
+        llamada <code>Module_Bootstrap</code> (donde "Module" es el nombre del
+        módulo), entonces usará esa clase para arrancar el módulo.
+    </para>
+
+    <para>
+        Por defecto, se creará una instancia de
+        <classname>Zend_Application_Module_Autoloader</classname> para el
+        módulo, utilizando el nombre del módulo y del directorio para
+        inicializarlo.
+    </para>
+
+    <note>
+        <title>Dependencia de recursos del Front Controller</title>
+
+        <para>
+            El recurso Modules tiene una dependencia de
+            <link linkend="zend.application.available-resources.frontcontroller">
+            Front Controller resource</link>. Usted puede, por supuesto,
+            proporcionar su propia sustitución de ese recurso mediante un
+            recurso personalizado de la clase Front Controller o un método
+            inicializador de la clase -- tan largo como se quiera siempre que
+            el plugin del recurso de la clase termine en "Frontcontroller"
+            o el método inicializador se llame "_initFrontController"
+            (case insensible).
+        </para>
+    </note>
+
+    <example id="zend.application.available-resources.modules.configExample">
+        <title>Configurando Módulos</title>
+        <para>
+            Usted puede especificar una configuración específica de un mósulo
+            utilizando el nombre del módulo como un prefijo/sub-sección en su
+            archivo de configuración.
+        </para>
+
+        <para>
+            Por ejemplo, supongamos que su aplicación tiene un mósulo "noticias".
+            Los siguientes son ejemplos de INI y XML que muestran la
+            configuración de recursos en ese módulo.
+        </para>
+
+        <programlisting role="ini"><![CDATA[
+[production]
+news.resources.db.adapter = "pdo_mysql"
+news.resources.db.params.host = "localhost"
+news.resources.db.params.username = "webuser"
+news.resources.db.params.password = "XXXXXXX"
+news.resources.db.params.dbname = "news"
+news.resources.layout.layout = "news.phtml"
+]]></programlisting>
+
+        <programlisting role="xml"><![CDATA[
+<?xml version="1.0"?>
+<config>
+    <production>
+        <news>
+            <resources>
+                <db>
+                    <adapter>pdo_mysql</adapter>
+                    <params>
+                        <host>localhost</host>
+                        <username>webuser</username>
+                        <password>XXXXXXX</password>
+                        <dbname>news</dbname>
+                    </params>
+                    <isDefaultAdapter>true</isDefaultAdapter>
+                </db>
+            </resources>
+        </news>
+    </production>
+</config>
+]]></programlisting>
+    </example>
+
+    <example id="zend.application.available-resources.modules.retrieveBootstrapExample">
+        <title>Recuperando el bootstrap de un módulo específico</title>
+
+        <para>
+            En ocasiones, puede que necesite para recuperar el objeto bootstrap 
+            de un módulo específico -- tal vez para ejecutar discretos
+            métodos bootstrap ,o a recoger el cargador automático con el fin de
+            configurarlo. Esto puede hacerse utilizando el método
+            <code>getExecutedBootstraps()</code> de los recursos de Módulo. 
+        </para>
+
+        <programlisting role="php"><![CDATA[
+$resource = $bootstrap->getPluginResource('modules');
+$moduleBootstraps = $resource->getExecutedBootstraps();
+$newsBootstrap = $moduleBootstraps['news'];
+]]></programlisting>
+    </example>
+</sect2>

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

@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.available-resources.session">
+    <title>Zend_Application_Resource_Session</title>
+
+    <para>
+        <classname>Zend_Application_Resource_Session</classname> le permite
+        configurar <classname>Zend_Session</classname> y opcionalmente
+        inicializar una sesión SaveHandler.
+    </para>
+
+    <para>
+        Para establecer un manejador de sesiones, simplemente pasar al recurso
+        la clave opcional <code>saveHandler</code> (case insensible). El valor
+        de esta opción puede ser uno de los siguientes:
+    </para>
+
+    <itemizedlist>
+        <listitem><para>
+            <code>string</code>: un string indicando una clase implementando
+            <classname>Zend_Session_SaveHandler_Interface</classname> que
+            debería ser instanciada.
+        </para></listitem>
+
+        <listitem><para>
+            <code>array</code>: un array con las claves "class" y,
+            opcionalmente, "options", indicando la clase que implementa
+            <classname>Zend_Session_SaveHandler_Interface</classname> que
+            debería ser instanciada y una variedad de opciones para proporcionar
+            a su constructor.
+        </para></listitem>
+
+        <listitem><para>
+            <classname>Zend_Session_SaveHandler_Interface</classname>: un objeto
+            implementando esta interfaz.
+        </para></listitem>
+    </itemizedlist>
+
+    <para>
+        Pasando cualquier otra opción de claves será pasado a
+        <classname>Zend_Session::setOptions()</classname> para configurar
+        <classname>Zend_Session</classname>.
+    </para>
+
+    <example id="zend.application.available-resources.session.configExample">
+        <title>Configuración de recursos de la Sesión Ejemplo</title>
+
+        <para>
+            A continuación el snippet INI nos muestra cómo configurar el recurso
+            para sesiones. Se establecen varias opciones
+            <classname>Zend_Session</classname>, como también configura una
+            instancia <classname>Zend_Session_SaveHandler_Db</classname>.
+        </para>
+
+        <programlisting role="ini"><![CDATA[
+resources.session.save_path = APPLICATION_PATH "/../data/session"
+resources.session.use_only_cookies = true
+resources.session.remember_me_seconds = 864000
+resources.session.saveHandler.class = "Zend_Session_SaveHandler_Db"
+resources.session.saveHandler.options.name = "session"
+resources.session.saveHandler.options.primary.session_id = "session_id"
+resources.session.saveHandler.options.primary.save_path = "save_path"
+resources.session.saveHandler.options.primary.name = "name"
+resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
+resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
+resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
+resources.session.saveHandler.options.modifiedColumn = "modified"
+resources.session.saveHandler.options.dataColumn = "session_data"
+resources.session.saveHandler.options.lifetimeColumn = "lifetime"
+]]></programlisting>
+    </example>
+</sect2>

+ 35 - 0
documentation/manual/es/module_specs/Zend_Application-AvailableResources-View.xml

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

+ 16 - 0
documentation/manual/es/module_specs/Zend_Application-AvailableResources.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.application.available-resources" xmlns:xi="http://www.w3.org/2001/XInclude">
+    <title>Plugins de Recursos Disponibles</title>
+
+    <para>
+        Aquí encontrará documentación del tipo API sobre todos los recursos de plugins 
+        disponibles por defecto en <classname>Zend_Application</classname>.
+    </para>
+
+    <xi:include href="Zend_Application-AvailableResources-Db.xml" />
+    <xi:include href="Zend_Application-AvailableResources-Frontcontroller.xml" />
+    <xi:include href="Zend_Application-AvailableResources-Modules.xml" />
+    <xi:include href="Zend_Application-AvailableResources-Session.xml" />
+    <xi:include href="Zend_Application-AvailableResources-View.xml" />
+</sect1>

+ 268 - 0
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Application.xml

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

+ 23 - 0
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrap.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.bootstrap-bootstrap">
+    <title>Zend_Application_Bootstrap_Bootstrap</title>
+
+    <para>
+        <classname>Zend_Application_Bootstrap_Bootstrap</classname> es una
+        implementación concreta de
+        <link linkend="zend.application.core-functionality.bootstrap-bootstrapabstract">Zend_Application_Bootstrap_BootstrapAbstract</link>.
+
+        Su principal característica es que registra el <link
+        linkend="zend.application.available-resources.frontcontroller">recurso
+        Front Controller</link>, y que el método <code>run()</code> primero
+        comprueba esté definido un módulo por defecto y luego despacha el
+        front controller.
+    </para>
+
+    <para>
+        En muchos casos, usted quisiera extender esta clase por sus necesidades
+        de bootstrapping, o simplemente utilizar esta clase y proporcionar una
+        lista de los plugins de recursos a utilizar.
+    </para>
+</sect2>

+ 288 - 0
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_BootstrapAbstract.xml

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

+ 125 - 0
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_Bootstrapper.xml

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

+ 137 - 0
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Bootstrap_ResourceBootstrapper.xml

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

+ 99 - 0
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Resource_Resource.xml

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.resource-resource">
+    <title>Zend_Application_Resource_Resource</title>
+
+    <para>
+        <classname>Zend_Application_Resource_Resource</classname> es una
+        interfaz para recursos de plugin utilizados con clases bootstrap implementando
+        <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>.
+        Se espera que los recursos de plugins permitan la configuración,
+        estar enterados del bootstrap, y aplicar un patrón de estrategia para la
+        inicialización de recursos.
+    </para>
+
+    <table id="zend.application.core-functionality.resource-resource.api">
+        <title>Zend_Application_Resource_Resource Interface</title>
+        <tgroup cols="4">
+            <thead>
+                <row>
+                    <entry>Método</entry>
+                    <entry>Valor de Retorno</entry>
+                    <entry>Parámetros</entry>
+                    <entry>Descripción</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><code>__construct($options = null)</code></entry>
+                    <entry><code>void</code></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <code>$options</code>: <emphasis>opcional</emphasis>.
+                            Opciones con las cuales establecer el estado de los recursos.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        El constructor debería permitir pasar opciones con las
+                        cuales inicializar el estado.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><code>setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap)</code></entry>
+                    <entry><classname>Zend_Application_Resource_Resource</classname></entry>
+                    <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$bootstrap</code>: <emphasis>requerido</emphasis>.
+                                Padre del bootstrap inicializando este recurso.
+                            </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Debería permitir registrar el objeto padre del bootstrap.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><code>getBootstrap()</code></entry>
+                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Recuperar la instancia del bootstrap registrado.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><code>setOptions(array $options)</code></entry>
+                    <entry><classname>Zend_Application_Resource_Resource</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <code>$options</code>: <emphasis>requerido</emphasis>.
+                            Opciones con las cuales establecer el estado.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Establecer el estado del recurso.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><code>getOptions()</code></entry>
+                    <entry><code>array</code></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Recuperar opciones registradas.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><code>init()</code></entry>
+                    <entry><code>mixed</code></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Patrón de estrategia: ejecute inicialización de los recursos.
+                    </para></entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect2>

+ 94 - 0
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality-Resource_ResourceAbstract.xml

@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.resource-resourceabstract">
+    <title>Zend_Application_Resource_ResourceAbstract</title>
+
+    <para>
+        <classname>Zend_Application_Resource_ResourceAbstract</classname> es una clase abstracta
+        implementando <link linkend="zend.application.core-functionality.resource-resource">Zend_Application_Resource_Resource</link>,
+        y es un buen punto de partida para crear sus propios recursos de plugin
+        personalizados.
+    </para>
+
+    <para>
+        Nota: esta clase abstracta no implementa el método <code>init()</code>;
+        esto se deja para la definición de extensiones concretas de la clase.
+    </para>
+
+    <table id="zend.application.core-functionality.resource-resourceabstract.api">
+        <title>Zend_Application_Resource_ResourceAbstract Methods</title>
+        <tgroup cols="4">
+            <thead>
+                <row>
+                    <entry>Método</entry>
+                    <entry>Valor de Retorno</entry>
+                    <entry>Parámetros</entry>
+                    <entry>Descripción</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><code>__construct($options = null)</code></entry>
+                    <entry><code>void</code></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <code>$options</code>: <emphasis>opcional</emphasis>.
+                            Opciones con las cuales establecer el estado del recurso.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        El constructor debería permitir pasar opciones con las
+                        cuales inicializar el estado.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><code>setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap)</code></entry>
+                    <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
+                    <entry><itemizedlist>
+                            <listitem><para>
+                                <code>$bootstrap</code>: <emphasis>requerido</emphasis>.
+                                Padre del bootstrap inicializando este recurso.
+                            </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Debería permitir registrar el objeto padre del bootstrap.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><code>getBootstrap()</code></entry>
+                    <entry><classname>Zend_Application_Bootstrap_Bootstrapper</classname></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Recuperar la instancia registrada del bootstrap.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><code>setOptions(array $options)</code></entry>
+                    <entry><classname>Zend_Application_Resource_ResourceAbstract</classname></entry>
+                    <entry><itemizedlist>
+                        <listitem><para>
+                            <code>$options</code>: <emphasis>requerido</emphasis>.
+                            Opciones con las cuales establecer el estado.
+                        </para></listitem>
+                    </itemizedlist></entry>
+                    <entry><para>
+                        Establecer el estado del recurso.
+                    </para></entry>
+                </row>
+
+                <row>
+                    <entry><code>getOptions()</code></entry>
+                    <entry><code>array</code></entry>
+                    <entry>N/A</entry>
+                    <entry><para>
+                        Recuperar opciones registradas.
+                    </para></entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect2>
+

+ 18 - 0
documentation/manual/es/module_specs/Zend_Application-CoreFunctionality.xml

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

+ 243 - 0
documentation/manual/es/module_specs/Zend_Application-Examples.xml

@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.application.examples">
+    <title>Ejemplos</title>
+
+    <para>
+        La propia clase Bootstrap suelen ser bastante mínima; a menudo,
+        será simplemente un talón vacío ampliando la clase base bootstrap:
+    </para>
+
+    <programlisting role="php"><![CDATA[
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
+{
+}
+]]>
+    </programlisting>
+
+    <para>
+        Con el archivo de configuración coresspondiente:
+    </para>
+
+    <programlisting role="ini"><![CDATA[
+; APPLICATION_PATH/configs/application.ini
+[production]
+bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
+bootstrap.class = "Bootstrap"
+resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
+
+[development : testing]
+[development : production]
+]]></programlisting>
+
+    <para>
+        Sin embargo, si debiera ser necesaria un inicialización personalizada,
+        usted tiene dos opciones. En primer lugar, usted puede escribir métodos
+        prefijados con <code>_init</code> para especificar códigos distintos de
+        arranque. Estos métodos pueden ser llamados por bootstrap(), y también
+        pueden ser llamados como si fueran métodos públicos:
+        <code>bootstrap&lt;resource&gt;()</code>. Deben aceptar opcionalmente un
+        array de opciones.
+    </para>
+
+    <para>
+        Si su método recurso devuelve un valor, será almacenado en un contenedor
+        en el bootstrap. Esto puede ser útil cuando diferentes recursos necesitan
+        interactuar (como un recurso inyectándose a sí mismo en otro).
+        Luego, el método <code>getResource()</code> puede ser utilizado para
+        recuperar esos valores.
+    </para>
+
+    <para>
+        El siguiente ejemplo muestra un recurso de método para inicializar el
+        objeto solicitado. Hace uso del segimiento de la dependencia
+        (que depende del recurso Front Controller), obteniendo un recurso
+        desde el bootstrap y devolver el valor para almacenar en el bootstrap.
+    </para>
+
+    <programlisting role="php"><![CDATA[
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
+{
+    protected function _initRequest(array $options = array())
+    {
+        // Garantizar que la instancia de front controller esté presente, y buscarla
+
+        $this->bootstrap('FrontController');
+        $front = $this->getResource('FrontController');
+
+        // Inicializar el objeto requerido
+        $request = new Zend_Controller_Request_Http();
+        $request->setBaseUrl('/foo');
+
+        // Agregarlo al front controller
+        $front->setRequest($request);
+
+        // Bootstrap guardará este valor en la clave 'request' de su contenedor
+        return $request;
+    }
+}
+]]>
+    </programlisting>
+
+    <para>
+        Nótese en este ejemplo la llamada a <code>bootstrap()</code>;
+        esto asegura que el front controller ha sido inicializado antes de
+        llamar a este método. Esa llamada puede desencadenar tanto un recurso u
+        otro método de la clase.
+    </para>
+
+    <para>
+        La otra opción es usar plugins de recursos, estos son objetos que
+        realizan inicializaciones específicas, y pueden ser especificados:
+    </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>
+                Cuando se instancia un onbeto de Zend_Application
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Durante la inicialización del objeto bootstrap (arranque)
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Habilitándolos explícitamente a través del método de llamada
+                al objeto bootstrap
+            </para>
+        </listitem>
+    </itemizedlist>
+
+    <para>
+        Los recursos de plugins implementan
+        <classname>Zend_Application_Bootstrap_Resource</classname>, que define
+        simplemente que permitirán la inyección del llamador y opciones,
+        y que tienen un método <code>init()</code> method.
+        Como ejemplo, un recurso de una Vista (View) personalizada de bootstrap
+        podría ser como lo siguiente:
+    </para>
+
+    <programlisting role="php"><![CDATA[
+class My_Bootstrap_Resource_View
+    extends Zend_Application_Resource_ResourceAbstract
+{
+    public function init()
+    {
+        $view = new Zend_View($this->getOptions());
+        Zend_Dojo::enableView($view);
+
+        $view->doctype('XHTML1_STRICT');
+        $view->headTitle()->setSeparator(' - ')->append('My Site');
+        $view->headMeta()->appendHttpEquiv('Content-Type',
+                                           'text/html; charset=utf-8');
+
+        $view->dojo()->setDjConfigOption('parseOnLoad', true)
+                     ->setLocalPath('/js/dojo/dojo.js')
+                     ->registerModulePath('../spindle', 'spindle')
+                     ->addStylesheetModule('spindle.themes.spindle')
+                     ->requireModule('spindle.main')
+                     ->disable();
+
+        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
+            'ViewRenderer'
+        );
+        $viewRenderer->setView($view);
+
+        return $view;
+    }
+}
+]]>
+    </programlisting>
+
+    <para>
+        Para decirle al bootstrap que utilice éste, usted tendría que proveer
+        ya sea el nombre de la clase de los recursos, o una combinación del
+        path de un prefijo de carga del plugin y el nombre corto del recurso
+        (por ejemplo, "view"):
+    </para>
+
+    <programlisting role="php"><![CDATA[
+$application = new Zend_Application(
+    APPLICATION_ENV,
+    array(
+        'resources' => array(
+            'My_Bootstrap_Resource_View' => array(), // full class name; OR
+            'view' => array(),                       // short name
+
+            'FrontController' => array(
+                'controllerDirectory' => APPLICATION_PATH . '/controllers',
+            ),
+        ),
+
+        // For short names, define resource paths:
+        'resourcePaths = array(
+            'My_Bootstrap_Resource' => 'My/Bootstrap/Resource',
+        )
+    )
+);
+]]>
+    </programlisting>
+
+    <para>
+        Los recursos puede llamar a otros recursos e inicializadores accediendo
+        al bootstrap padre:
+    </para>
+
+    <programlisting role="php"><![CDATA[
+class My_Bootstrap_Resource_Layout
+    extends Zend_Application_Resource_ResourceAbstract
+{
+    public function init()
+    {
+        // ensure view is initialized...
+        $this->getBootstrap()->bootstrap('view');
+
+        // Get view object:
+        $view = $this->getBootstrap()->getResource('view');
+
+        // ...
+    }
+}
+]]>
+    </programlisting>
+
+    <para>
+        En el uso normal, usted podría instanciar la aplicación, arrancarla,
+        y ejecutarla:
+    </para>
+
+    <programlisting role="php"><![CDATA[
+$application = new Zend_Application(...);
+$application->bootstrap()
+            ->run();
+]]>
+    </programlisting>
+
+    <para>
+        Para un script personalizado, podría necesitar simplemente
+        inicializar recursos específicos:
+    </para>
+
+    <programlisting role="php"><![CDATA[
+$application = new Zend_Application(...);
+$application->getBootstrap()->bootstrap('db');
+
+$service = new Zend_XmlRpc_Server();
+$service->setClass('Foo');  // uses database...
+echo $service->handle();
+]]>
+    </programlisting>
+
+    <para>
+        En lugar de utilizar el método <code>bootstrap()</code> para llamar
+        a los métodos internos o recursos, también puede usar sobrecarga:
+    </para>
+
+    <programlisting role="php"><![CDATA[
+$application = new Zend_Application(...);
+$application->getBootstrap()->bootstrapDb();
+]]>
+    </programlisting>
+</sect1>

+ 13 - 0
documentation/manual/es/module_specs/Zend_Application-Introduction.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.application.introduction">
+    <title>Introducción</title>
+
+    <para>
+        <classname>Zend_Application</classname> ofrece un motor de bootstrap
+        para aplicaciones que proporcionan recursos reutilizables,
+        -- clases de bootstrap comunes y basadas en módulos -- y comprobación de
+        dependencias. También se ocupa de establecer el entorno de PHP
+        e introduce la autocarga (autoloading) por defecto.
+    </para>
+</sect1>

+ 413 - 0
documentation/manual/es/module_specs/Zend_Application-QuickStart.xml

@@ -0,0 +1,413 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.application.quick-start">
+    <title>Inicio Rápido con Zend_Application</title>
+
+    <para>
+        Hay dos caminos para iniciarse con
+        <classname>Zend_Application</classname>, y dependen de cómo inicia su
+        proyecto. En cada caso, usted siempre comienza con la creación de la
+        clase <code>Bootstrap</code>, y un archivo de configuración asociado.
+    </para>
+
+    <para>
+        Si usted planea utilizar <classname>Zend_Tool</classname> para crear su
+        proyecto, continúe leyendo abajo. Si usted va añadiendo
+        <classname>Zend_Application</classname> a un proyecto existente,
+        usted querrá <link linkend="zend.application.quick-start.manual">saltearse hacia adelante</link>.
+    </para>
+
+    <sect2 id="zend.application.quick-start.zend-tool">
+        <title>Usando Zend_Tool</title>
+
+        <para>
+            La forma más rápida para comenzar a utilizar
+            <classname>Zend_Application</classname> es usar
+            <classname>Zend_Tool</classname> para generar su proyecto.
+            Esto también creará su clase y archivo <code>Bootstrap</code>.
+        </para>
+
+        <para>
+            Para crear un proyecto, ejecute el comando <code>zf</code> (en sistemas *nix):
+        </para>
+
+        <programlisting role="sh"><![CDATA[
+% zf create project newproject
+]]></programlisting>
+
+        <para>
+            O el comando <code>zf.bat</code> en Windows:
+        </para>
+
+        <programlisting role="dos"><![CDATA[
+C:> zf.bat create project newproject
+]]></programlisting>
+
+        <para>
+            Ambos crearán una estructura del proyecto que luce como lo siguiente:
+        </para>
+
+        <programlisting role="text"><![CDATA[
+newproject
+|-- application
+|   |-- Bootstrap.php
+|   |-- configs
+|   |   `-- application.ini
+|   |-- controllers
+|   |   |-- ErrorController.php
+|   |   `-- IndexController.php
+|   |-- models
+|   `-- views
+|       |-- helpers
+|       `-- scripts
+|           |-- error
+|           |   `-- error.phtml
+|           `-- index
+|               `-- index.phtml
+|-- library
+|-- public
+|   `-- index.php
+`-- tests
+    |-- application
+    |   `-- bootstrap.php
+    |-- library
+    |   `-- bootstrap.php
+    `-- phpunit.xml
+]]></programlisting>
+
+        <para>
+            En el diagrama de arriba, su arranque(bootstrap) está en
+            <code>newproject/application/Bootstrap.php</code>, y al principio
+            se vería así:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+class Bootstrap extends Zend_Application_Bootstrap_BootstrapAbstract
+{
+}
+]]></programlisting>
+
+        <para>
+            Usted también notará que se ha creado un archivo de configuración,
+            <code>newproject/application/configs/application.ini</code>.
+            Tiene los siguientes contenidos:
+        </para>
+
+        <programlisting role="dosini"><![CDATA[
+[production]
+phpSettings.display_startup_errors = 0
+phpSettings.display_errors = 0
+includePaths.library = APPLICATION_PATH "/../library"
+bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
+bootstrap.class = "Bootstrap"
+resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
+
+[staging : production]
+
+[testing : production]
+phpSettings.display_startup_errors = 1
+phpSettings.display_errors = 1
+
+[development : production]
+phpSettings.display_startup_errors = 1
+phpSettings.display_errors = 1
+]]></programlisting>
+
+        <para>
+            Todos los settings en este archivo de configuración son para
+            su uso con <classname>Zend_Application</classname>
+            y su bootstrap.
+        </para>
+
+        <para>
+            Otro archivo de interés es <code>newproject/public/index.php</code>,
+            el cual invoca a
+            <classname>Zend_Application</classname> y lo despacha.
+        </para>
+
+        <programlisting role="php"><![CDATA[
+<?php
+// Define el path al directorio de la aplicación
+defined('APPLICATION_PATH')
+    || define('APPLICATION_PATH',
+              realpath(dirname(__FILE__) . '/../application'));
+
+// Define el medio ambiente de la aplicación
+defined('APPLICATION_ENV')
+    || define('APPLICATION_ENV',
+              (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
+                                         : 'production'));
+
+/** Zend_Application */
+require_once 'Zend/Application.php';
+
+// Crea la application, el bootstrap, y lo ejecuta
+$application = new Zend_Application(
+    APPLICATION_ENV,
+    APPLICATION_PATH . '/configs/application.ini'
+);
+$application->bootstrap()
+            ->run();
+]]></programlisting>
+
+        <para>
+            Para continuar el inicio rápido, por favor
+            <link linkend="zend.application.quick-start.resources">
+            salte a la sección de Recursos</link>.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.application.quick-start.manual">
+        <title>Añadir Zend_Application a su aplicación</title>
+
+        <para>
+            Los fundamentos de <classname>Zend_Application</classname> son bastante simples:
+        </para>
+
+        <itemizedlist>
+            <listitem><para>
+                Crear un archivo <code>application/Bootstrap.php</code>, con la
+                clase <code>Bootstrap</code>.
+            </para></listitem>
+
+            <listitem><para>
+                Crear un archivo de configuración
+                <code>application/configs/application.ini</code>
+                con la configuración básica necesaria para
+                <classname>Zend_Application</classname>.
+            </para></listitem>
+
+            <listitem><para>
+                Modificar su <code>public/index.php</code> para usar
+                <classname>Zend_Application</classname>.
+            </para></listitem>
+        </itemizedlist>
+
+        <para>
+            Primero, genere su clase <code>Bootstrap</code>. Crear un archivo,
+            <code>application/Bootstrap.php</code>, con los siguientes contenidos:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+<?php
+class Bootstrap extends Zend_Application_Bootstrap_BootstrapAbstract
+{
+}
+]]></programlisting>
+
+        <para>
+            Ahora, debe crear su configuración. Para este tutorial, vamos a
+            usar un estilo de configuración INI; puede, por supuesto,
+            usar un archivo de configuración XML o PHP. Crear el archivo
+            <code>application/configs/application.ini</code>, proporcionando
+            los siguientes contenidos:
+        </para>
+
+        <programlisting role="dosini"><![CDATA[
+[production]
+phpSettings.display_startup_errors = 0
+phpSettings.display_errors = 0
+includePaths.library = APPLICATION_PATH "/../library"
+bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
+bootstrap.class = "Bootstrap"
+resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
+
+[staging : production]
+
+[testing : production]
+phpSettings.display_startup_errors = 1
+phpSettings.display_errors = 1
+
+[development : production]
+phpSettings.display_startup_errors = 1
+phpSettings.display_errors = 1
+]]></programlisting>
+
+        <para>
+            Ahora, modifiquemos su script de gateway,
+            <code>public/index.php</code>. Si el archivo no existe, cree uno;
+            de lo contrario, sustituirlo por el siguiente contenido:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+<?php
+// Define el path al directorio de la aplicación
+defined('APPLICATION_PATH')
+    || define('APPLICATION_PATH',
+              realpath(dirname(__FILE__) . '/../application'));
+
+// Define el medio ambiente de la aplicación
+defined('APPLICATION_ENV')
+    || define('APPLICATION_ENV',
+              (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
+                                         : 'production'));
+
+/** Zend_Application */
+require_once 'Zend/Application.php';
+
+// Crea la aplicación, el bootstrap, y lo ejecuta
+$application = new Zend_Application(
+    APPLICATION_ENV,
+    APPLICATION_PATH . '/configs/application.ini'
+);
+$application->bootstrap()
+            ->run();
+]]></programlisting>
+
+        <para>
+            Usted puede observar que el valor constante del entorno de aplicación
+            busca una variable de entorno "APPLICATION_ENV".
+            Recomendamos este ajuste en el medio ambiente de su servidor web.
+            En Apache, puede configurar esto también en su definición de vhost,
+            o en su archivo <code>.htaccess</code>. Recomendamos el siguiente
+            contenido para su archivo <code>public/.htacces</code>:
+        </para>
+
+        <programlisting role="conf"><![CDATA[
+SetEnv APPLICATION_ENV development
+
+RewriteEngine On
+RewriteCond %{REQUEST_FILENAME} -s [OR]
+RewriteCond %{REQUEST_FILENAME} -l [OR]
+RewriteCond %{REQUEST_FILENAME} -d
+RewriteRule ^.*$ - [NC,L]
+RewriteRule ^.*$ index.php [NC,L]
+
+]]></programlisting>
+
+        <para>
+            En este punto, está listo para comenzar a usar las ventajas de
+            <classname>Zend_Application</classname>.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.application.quick-start.resources">
+        <title>Agregando y Creando Recursos</title>
+
+        <para>
+            Si ha seguido las instrucciones anteriores, entonces su clase de
+            arranque estará utilizando un controlador frontal,
+            y cuando se ejecute, despachará el controlador frontal.
+            Sin embargo, con toda probabilidad, necesitará un poco más de
+            configuración que ésta.
+        </para>
+
+        <para>
+            En esta sección, veremos como añadir dos recursos a su aplicación.
+            En primer lugar, estableceremos los diseños,
+            y luego personalizaremos su objeto de vista.
+        </para>
+
+        <para>
+            Uno de los recursos standard provistos con
+            <classname>Zend_Application</classname> es el recurso "layout".
+            Este recurso espera que usted defina valores de configuración, los
+            que entonces utilizará para configurar su instancia
+            <classname>Zend_Layout</classname>.
+        </para>
+
+        <para>
+            Para usarlo, todo lo que tenemos que hacer es actualizar el
+            archivo de configuración.
+        </para>
+
+        <programlisting role="dosini"><![CDATA[
+[production]
+phpSettings.display_startup_errors = 0
+phpSettings.display_errors = 0
+includePaths.library = APPLICATION_PATH "/../library"
+bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
+bootstrap.class = "Bootstrap"
+resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
+; ADD THE FOLLOWING LINES
+resources.layout.layout = "layout.phtml"
+resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
+
+[staging : production]
+
+[testing : production]
+phpSettings.display_startup_errors = 1
+phpSettings.display_errors = 1
+
+[development : production]
+phpSettings.display_startup_errors = 1
+phpSettings.display_errors = 1
+]]></programlisting>
+
+        <para>
+            Si hasta ahora usted no lo ha hecho, genere el directorio
+            <code>application/layouts/scripts/</code>, y el archivo
+            <code>layout.phtml</code> dentro de ese directorio. Un buen diseño
+            inicial es como sigue
+            (y vincularlo con el recurso vista que cubriremos a continuación):
+        </para>
+
+        <programlisting role="php"><![CDATA[
+<?php echo $this->doctype() ?>
+<html>
+<head>
+    <?php echo $this->headTitle() ?>
+    <?php echo $this->headLink() ?>
+    <?php echo $this->headStyle() ?>
+    <?php echo $this->headScript() ?>
+</head>
+<body>
+    <?php echo $this->layout()->content ?>
+</body>
+</html>
+]]></programlisting>
+
+        <para>
+            En este punto, usted tendrá un diseño ya trabajando.
+        </para>
+
+        <para>
+            Ahora, vamos añadir una vista de recurso personalizada.
+            Cuando se inicializa la vista, queremos establecer el DocType HTML
+            y un valor predeterminado del título para utilizarlo en la cabecera
+            de HTML. Esto puede llevarse a cabo editando su clase
+            <code>Bootstrap</code> para agregar un método.
+        </para>
+
+        <programlisting role="php"><![CDATA[
+<?php
+class Bootstrap extends Zend_Application_Bootstrap_BootstrapAbstract
+{
+    protected function _initView()
+    {
+        // Inicializar la vista
+        $view = new Zend_View();
+        $view->doctype('XHTML1_STRICT');
+        $view->headTitle('My First Zend Framework Application');
+
+        // Agregarla al ViewRenderer
+        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
+            'ViewRenderer'
+        );
+        $viewRenderer->setView($view);
+
+        // Retornarla, de modo que pueda ser almacenada en el arranque (bootstrap)
+
+        return $view;
+    }
+}
+]]></programlisting>
+
+        <para>
+            Este método se ejecuta automáticamente cuando arranca la aplicación,
+            y se asegurará que su vista sea inicializada según sus necesidades
+            de aplicación.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.application.quick-start.next-steps">
+        <title>Próximos pasos con Zend_Application</title>
+
+        <para>
+            Con lo anterior usted comenzó con <classname>Zend_Application</classname>
+            y pudo crear su aplicación bootstrap. Desde aquí, usted debe comenzar a
+            crear sus métodos de recursos, o para la máxima re-usabilidad,
+            clases de recursos de plugin. Y seguir leyendo para aprender más!
+        </para>
+    </sect2>
+</sect1>

+ 651 - 0
documentation/manual/es/module_specs/Zend_Application-TheoryOfOperation.xml

@@ -0,0 +1,651 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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 ha
+        requerido una cantidad de código creciente al disponer de una mayor
+        cantidad de características: estableciendo la base de datos,
+        configurar su vista y los ayudantes de vistas, configurar su diseños,
+        colocando plugins, registrando ayudantes de acción, y mucho más.
+    </para>
+
+    <para>
+        Además, a menudo deseará reutilizar el mismo código para arrancar sus
+        pruebas, un cronjob, o un servicio script.
+        Si bien es posible incluir simplemente su script bootstrap,
+        a menudo hay initializaciones que son específicas del medio ambiente,
+        puede que usted no necesite el MVC 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.
+    </para>
+
+    <para>
+        Zend_Application está dividida en tres áreas:
+    </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>
+                <classname>Zend_Application</classname>: carga el medio
+                ambiente de PHP, incluyendo include_paths y autocarga,
+                e instancia la clase requerida de bootstrap.
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                <classname>Zend_Application_Bootstrap</classname>: suministra
+                interfaces para las clases bootstrap.
+                <classname>Zend_Application_Bootstrap_Bootstrap</classname>
+                ofrece funcionalidad común para la mayoría de las necesidades
+                de bootstrap, incluyendo algoritmos de comprobación de
+                dependencias y la capacidad de cargar recursos de bootstrap
+                por demanda.
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                <classname>Zend_Application_Resource</classname> provee una
+                interfaz para recursos standard de bootstrap que pueden ser
+                cargados por demanda mediante una instancia bootstrap,
+                así como implementaciones de varios recursos por defecto.
+            </para>
+        </listitem>
+    </itemizedlist>
+
+    <para>
+        Los desarrolladores crean una clase de arranque(bootstrap) para sus
+        aplicaciones, extendiendo
+        <classname>Zend_Application_Bootstrap_Bootstrap</classname> o
+        implementando (mínimamente)
+        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>. El punto de entrada
+        (e.g., public/index.php) cargará <classname>Zend_Application</classname>,
+        y la instanciará pasando:
+    </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>
+                El medio ambiente actual
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Opciones para bootstrapping
+            </para>
+        </listitem>
+    </itemizedlist>
+
+    <para>
+        Las opciones de bootstrap incluyen el path hacia el archivo que
+        contiene la clase bootstrap y opcionalmente:
+    </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>
+                Cualquier include_paths extras a establecer
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Cualquier otro namespace de autocarga adicional a registrar
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Cualquier setting de php.ini a inicializar
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                El nombre de clase para la clase bootstrap (si no es "Bootstrap")
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Pares de recursos prefijo/path a usar
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Cualquier recurso a usar (por nombre de clase o nombre corto)
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Path adicional al archivo de configuración a cargar
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                Opciones adicionales de configuración
+            </para>
+        </listitem>
+    </itemizedlist>
+
+    <para>
+        Las opciones puden ser una array, un objeto
+        <classname>Zend_Config</classname>, o el path a un archivo de
+        configuración.
+    </para>
+
+    <sect2 id="zend.application.theory-of-operation.bootstrap">
+        <title>Bootstrapping</title>
+
+        <para>
+            La segunda área de responsabilidad de
+            <classname>Zend_Application</classname> es ejecutar la aplicación
+            bootstrap. Los bootstraps necesitan mínimamente implementar
+            <classname>Zend_Application_Bootstrap_Bootstrapper</classname>,
+            la que define la siguiente API:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+interface Zend_Application_Bootstrap_Bootstrapper
+{
+    public function __construct($application);
+    public function setOptions(array $options);
+    public function getApplication();
+    public function getEnvironment();
+    public function getClassResources();
+    public function getClassResourceNames();
+    public function bootstrap($resource = null);
+    public function run();
+}
+]]></programlisting>
+
+        <para>
+            Esta API permite aceptar al bootstrap el medio ambiente y a la
+            configuración desde el objeto aplicación, informa la
+            responsabilidad de los recursos para los recursos bootstraping,
+            luego hace el bootstrap y ejecuta la aplicación.
+        </para>
+
+        <para>
+            Puede implementar esta interfaz usted mismo, extendiendo
+            <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>,
+            o usar
+            <classname>Zend_Application_Bootstrap_Bootstrap</classname>.
+        </para>
+
+        <para>
+            Además de esta funcionalidad, hay muchas otras áreas de
+            incumbencia con las cuales debe familiarizarse.
+        </para>
+
+        <sect3 id="zend.application.theory-of-operation.bootstrap.resource-methods">
+            <title>Métodos Recursos</title>
+
+            <para>
+                La implementación de
+                <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
+                proporciona una simple convención para definir métodos de
+                recursos de clase. Cualquier método protegido cuyo nombre
+                comience con un prefijo <code>_init</code> será considerado
+                un método de recurso.
+            </para>
+
+            <para>
+                Para arrancar un único método de recurso, utilizar el método
+                <code>bootstrap()</code>, y pasarle el nombre del recurso.
+                El nombre será el nombre de método menos el prefijo
+                <code>_init</code>.
+            </para>
+
+            <para>
+                Para arrancar varios métodos de recursos, pasar un array de
+                nombres. Para bootstrap de todos los métodos de recursos,
+                no pasar nada.
+            </para>
+
+            <para>
+                Tome las siguientes clases bootstrap:
+            </para>
+
+            <programlisting role="php"><![CDATA[
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
+{
+    protected function _initFoo()
+    {
+        // ...
+    }
+
+    protected function _initBar()
+    {
+        // ...
+    }
+
+    protected function _initBaz()
+    {
+        // ...
+    }
+}
+]]></programlisting>
+
+            <para>
+                Para arrancar solo el método <code>_initFoo()</code>, haga lo
+                siguiente:
+            </para>
+
+            <programlisting role="php"><![CDATA[
+$bootstrap->bootstrap('foo');
+]]></programlisting>
+
+            <para>
+                Para arrancar los métodos <code>_initFoo()</code> y
+                <code>_initBar()</code> , haga lo siguiente:
+            </para>
+
+            <programlisting role="php"><![CDATA[
+$bootstrap->bootstrap(array('foo', 'bar));
+]]></programlisting>
+
+            <para>
+                Para arrancar todos los métodos de recursos, llame a
+                code>bootstrap()</code> sin argumentos:
+            </para>
+
+            <programlisting role="php"><![CDATA[
+$bootstrap->bootstrap();
+]]></programlisting>
+        </sect3>
+
+        <sect3 id="zend.application.theory-of-operation.bootstrap.resource-plugins">
+            <title>Bootstraps que usan plugins de recursos</title>
+
+            <para>
+                Para hacer más re-utilizables sus bootstraps, hemos
+                proporcionado la capacidad de impulsar sus recursos dentro de
+                las clases de recursos de plugin. Esto le permite combinar
+                recursos simplemente via configuración. Cubriremos el tema
+                <link
+                linkend="zend.application.theory-of-operation.resources">cómo
+                crear recursos</link> más adelante; en esta sección le
+                mostraremos sólo cómo utilizarlos.
+            </para>
+
+            <para>
+                Si su bootstrap debe ser capaz de utilizar recursos de plugins,
+                necesitará implementar una interfaz adicional,
+                <classname>Zend_Application_Bootstrap_ResourceBootstrapper</classname>.
+                Esta interfaz define una API para localizar, registrar,
+                y cargar recursos de plugins:
+            </para>
+
+        <programlisting role="php"><![CDATA[
+interface Zend_Application_Bootstrap_ResourceBootstrapper
+{
+    public function registerPluginResource($resource, $options = null);
+    public function unregisterPluginResource($resource);
+    public function hasPluginResource($resource);
+    public function getPluginResource($resource);
+    public function getPluginResources();
+    public function getPluginResourceNames();
+    public function setPluginLoader(Zend_Loader_PluginLoader_Interface $loader);
+    public function getPluginLoader();
+}
+]]></programlisting>
+
+            <para>
+                Básicamente los recursos de plugins ofrecen la posibilidad de
+                crear recursos incializadores que puede ser re-utilizados entre
+                aplicaciones. Esto le permite mantener su actual bootstrap
+                relativamente limpio, e introducir nuevos recursos
+                sin necesidad de tocar su propio arranque (bootstrap).
+            </para>
+
+            <para>
+                <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname> (y
+                <classname>Zend_Application_Bootstrap_Bootstrap</classname> por extensión)
+                implementan esta interfaz, que le permite utilizar recursos de
+                plugins.
+            </para>
+
+            <para>
+                Para utilizar recursos de plugins, debe especificarlos en las
+                opciones que pasó al objeto aplicación y/o bootstrap.
+                Estas opciones pueden provenir de un archivo de configuración,
+                o ser pasadas manualmente.
+                Las opciones deberán ser pares de clave/opción, representando
+                con la clave el nombre del recurso. El nombre de recurso será
+                el segmento siguiente al prefijo de clase.
+                Por ejemplo, los recursos que vienen con Zend Framework
+                tienen el prefijo de clase "Zend_Application_Resource_";
+                cualquier cosa que le siga después debe ser el nombre del recurso.
+                Como por ejemplo,
+            </para>
+
+            <programlisting role="php"><![CDATA[
+$application = new Zend_Application(APPLICATION_ENV, array(
+    'resources' => array(
+        'FrontController' => array(
+            'controllerDirectory' => APPLICATION_PATH . '/controllers',
+        ),
+    ),
+));
+]]></programlisting>
+
+            <para>
+                Esto indica que el recurso "Front Controller", debería ser
+                utilizado, con las opciones especificadas.
+            </para>
+
+            <para>
+                Si usted comienza a escribir su propio recurso de plugin,
+                o utilizar recursos de plugin de terceras partes,
+                necesitará decirle a su bootstrap donde encontrarlos.
+                Internamente, el bootstrap utiliza
+                <classname>Zend_Loader_PluginLoader</classname>, de manera tal
+                que sólo necesitará indicar el prefijo de la clase común como
+                pares de path.
+            </para>
+
+            <para>
+                Supongamos por ejemplo, que usted tiene recursos de plugins
+                personalizados en <code>APPLICATION_PATH/resources/</code> y que
+                ellos comparten el prefijo de clase común <code>My_Resource</code>.
+                Entonces, debería pasar esa información al objeto aplicación
+                de la siguiente manera:
+            </para>
+
+            <programlisting role="php"><![CDATA[
+$application = new Zend_Application(APPLICATION_ENV, array(
+    'pluginPaths' => array(
+        'My_Resource' => APPLICATION_PATH . '/resources/',
+    ),
+    'resources' => array(
+        'FrontController' => array(
+            'controllerDirectory' => APPLICATION_PATH . '/controllers',
+        ),
+    ),
+));
+]]></programlisting>
+
+            <para>
+                Ahora usted está habilitado para utilizar los recursos de
+                ese directorio.
+            </para>
+
+            <para>
+                Tal como los métodos de recursos, utilice el método bootstrap()
+                para ejecutar recursos de plugins. También tal como con los
+                métodos de recursos, puede especificar bien un único recurso de
+                plugin, múltiples plugins (vía un array), o todos los plugins.
+                Además, los puede combinar para ejecutar métodos de recursos.
+            </para>
+
+            <programlisting role="php"><![CDATA[
+// Ejecute uno:
+$bootstrap->bootstrap('FrontController');
+
+// Ejecute varios:
+$bootstrap->bootstrap(array('FrontController', 'Foo'));
+
+// Ejecute todos los métodos de recursos y plugins:
+$bootstrap->bootstrap();
+]]></programlisting>
+        </sect3>
+
+        <sect3 id="zend.application.theory-of-operation.bootstrap.registry">
+            <title>Registro de Recursos</title>
+
+            <para>
+                Muchos, si no todos, sus métodos de recursos o plugins
+                inicializarán objetos y, en muchos casos, estos objetos serán
+                necesarios en otros lugares de su aplicación.
+                ¿Cómo se puede acceder a ellos?
+            </para>
+
+            <para>
+                <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
+                ofrece un registro local para estos objetos. Para almacenar sus
+                objetos en ellos, simplemente debe devolverlos desde sus recursos.
+            </para>
+
+            <para>
+                Para máxima flexibilidad, este registro es mencionado
+                internamente como un "contenedor"; el único requisito es que
+                sea un objeto. Los recursos son luego registrados como
+                propiedades nombrados después del nombre del recurso.
+                Por defecto, una instancia de
+                <classname>Zend_Registry</classname> es utilizada, pero
+                también puede especificar cualquier otro objeto que desee.
+                Los métodos <code>setContainer()</code> y <code>getContainer()</code>
+                pueden ser utilizados para manipular el contenedor en si mismo.
+                <code>getResource($resource)</code> puede ser utilizado para
+                recuperar un recurso determinado del contenedor, y
+                <code>hasResource($resource)</code> para verificar si el
+                recurso ha sido efectivamente registrado.
+            </para>
+
+            <para>
+                Como ejemplo, considere una visión básica del recurso:
+            </para>
+
+            <programlisting role="php"><![CDATA[
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
+{
+    protected function _initView()
+    {
+        $view = new Zend_View();
+        // más inicialización...
+
+        return $view;
+    }
+}
+]]></programlisting>
+
+            <para>
+                A continuación, puede comprobarlos y/o traerlos así:
+            </para>
+
+            <programlisting role="php"><![CDATA[
+// Usando el par has/getResource():
+if ($bootstrap->hasResource('view')) {
+    $view = $bootstrap->getResource('view');
+}
+
+// Via el contenedor:
+$container = $bootstrap->getContainer();
+if (isset($container->view)) {
+    $view = $container->view;
+}
+]]></programlisting>
+
+            <para>
+                Tenga en cuenta que el registro/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
+                <code>run()</code> se registra a sí mismo como el "Front
+                Controller" en el parámetro del "bootstrap", que permite
+                buscarlo desde el router, despachador, plugins, y los
+                contoladores de acción.
+            </para>
+
+            <para>
+                Como ejemplo, si quiere tener acceso a los recursos de la
+                vista desde dentro de su controlador de acción, podría
+                hacer lo siguiente:
+            </para>
+
+            <programlisting role="php"><![CDATA[
+class FooController extends Zend_Controller_Action
+{
+    public function init()
+    {
+        $bootstrap = $this->getInvokeArg('bootstrap');
+        $view = $bootstrap->getResource('view');
+        // ...
+    }
+}
+]]></programlisting>
+        </sect3>
+
+        <sect3 id="zend.application.theory-of-operation.bootstrap.dependency-tracking">
+            <title>Localización de las Dependencias</title>
+
+            <para>
+                Además de ejecutar los métodos de recursos métodos y plugins,
+                es necesario garantizar que estos son ejecutados una vez y solo 
+                una vez; esto es lo que se pretende con el bootstrap de una
+                aplicación, y ejecutarlo múltiples veces puede conducir a
+                una sobrecarga de recursos.
+            </para>
+
+            <para>
+                Al mismo tiempo, algunos recursos puede depender de otros
+                que están en ejecución. Para resolver estas dos cuestiones,
+                <classname>Zend_Application_Bootstrap_BootstrapAbstract</classname>
+                proporciona un mecanismo simple pero eficaz para la localización
+                de dependencias.
+            </para>
+
+            <para>
+                Como se señaló anteriormente, todos los recursos --
+                ya sean métodos o plugins -- son arrancados llamando a
+                <code>bootstrap($resource)</code>, dende <code>$resource</code>
+                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>
+
+            <para>
+                Si un recurso depende de otro recurso, debe llamar a
+                <code>bootstrap()</code> dentro de su código para garantizar
+                que ese recurso ha sido ejecutado.
+                Las llamadas subsiguientes a él, serán ignoradas.
+            </para>
+
+            <para>
+                En un método de recursos, esa llamada sería parecida a lo siguiente:
+            </para>
+
+            <programlisting role="php"><![CDATA[
+class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
+{
+    protected function _initRequest()
+    {
+        // Asegurar que el front controller es inicializado
+        $this->bootstrap('FrontController');
+
+        // Recuperar el front controller desde el registro de bootstrap
+        $front = $this->getResource('FrontController');
+
+        $request = new Zend_Controller_Request_Http();
+        $request->setBaseUrl('/foo');
+        $front->setRequest($request);
+
+        // Garantizar que la solicitud es almacenada en el registro de bootstrap
+
+        return $request;
+    }
+}
+]]></programlisting>
+        </sect3>
+    </sect2>
+
+    <sect2 id="zend.application.theory-of-operation.resources">
+        <title>Plugins de Recursos</title>
+
+        <para>
+            <link linkend="zend.application.theory-of-operation.bootstrap.resource-plugins">Como se señaló anteriormente</link>,
+            una buena forma de crear recursos de bootstrap re-utilizables y a
+            traspasar mucha de su codificación a clases discretas es utilizar
+            plugins de recursos. Si bien Zend Framework se entrega con una
+            serie de plugins de recursos, la intención es que los
+            desarrolladores deberían escribir los suyos para encapsular
+            sus propias necesidades de inicialización.
+        </para>
+
+        <para>
+            Los recursos solo necesitan implemetarse
+            <classname>Zend_Application_Resource_Resource</classname>, o
+            más simple aún, extenderse
+            <classname>Zend_Application_Resource_ResourceAbstract</classname>.
+            La interfaz básica es simplemente esto:
+        </para>
+
+        <programlisting role="php"><![CDATA[
+interface Zend_Application_Resource_Resource
+{
+    public function __construct($options = null);
+    public function setBootstrap(
+        Zend_Application_Bootstrap_Bootstrapper $bootstrap
+    );
+    public function getBootstrap();
+    public function setOptions(array $options);
+    public function getOptions();
+    public function init();
+}
+]]></programlisting>
+
+        <para>
+            La interfaz define simplemente que un recurso debe aceptar opciones
+            para el constructor, tiene mecanismos de establecer y recuperar
+            opciones, mecanismos de establecer y recuperar el objeto bootstrap,
+            y un método de inicialización.
+        </para>
+
+        <para>
+            Como ejemplo, supongamos que tiene una vista común de inicialización
+            que utiliza en sus aplicaciones. Usted tiene un doctype común, CSS
+            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>
+
+        <programlisting role="php"><![CDATA[
+class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
+{
+    protected $_view;
+
+    public function init()
+    {
+        // Regresa la vista de manera que bootstrap la almacenará en el registro
+        return $this->getView();
+    }
+
+    public function getView()
+    {
+        if (null === $this->_view) {
+            $options = $this->getOptions();
+            $title   = '';
+            if (array_key_exists('title', $options)) {
+                $title = $options['title'];
+                unset($options['title]);
+            }
+
+            $view = new Zend_View($options);
+            $view->doctype('XHTML1_STRICT');
+            $view->headTitle($title);
+            $view->headLink()->appendStylesheet('/css/site.css');
+            $view->headScript()->appendfile('/js/analytics.js');
+
+            $viewRenderer =
+                Zend_Controller_Action_HelperBroker::getStaticHelper(
+                    'ViewRenderer',
+                );
+            $viewRenderer->setView($view);
+
+            $this->_view = $view;
+        }
+        return $this->_view;
+    }
+}
+]]></programlisting>
+
+        <para>
+            Minetrtas usted haya registrado el path del prefijo para este
+            recurso de plugin, puede usarlo en su aplicación. Mejor aún,
+            ya que usa el cargador de plugin, usted está pasando por encima del
+            recurso de plugin de la "View" que viene con Zend Framework, 
+            se está asegurando así que usa el suyo en lugar del original.
+        </para>
+    </sect2>
+</sect1>

+ 132 - 0
documentation/manual/es/module_specs/Zend_Config_Writer.xml

@@ -0,0 +1,132 @@
+<sect1 id="zend.config.writer.introduction">
+    <title>Zend_Config_Writer</title>
+    <para>
+        <code>Zend_Config_Writer</code> gives you the ability to write config
+        files out of <code>Zend_Config</code> objects. It works with an
+        adapter-less system and thus is very easy to use. By default
+        <code>Zend_Config_Writer</code> ships with three adapters, which all
+        work the same. You instantiate a writer with specific options, which
+        can be <code>filename</code> and <code>config</code>. Then
+        you call the <code>write()</code> method of the writer and the config
+        file is created. You can also give <code>$filename</code> and
+        <code>$config</code> directly to the <code>write()</code> method.
+        Currently the following writers are shipped with
+        <code>Zend_Config_Writer</code>:
+    </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>
+                <code>Zend_Config_Writer_Array</code>
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                <code>Zend_Config_Writer_Ini</code>
+            </para>
+        </listitem>
+        <listitem>
+            <para>
+                <code>Zend_Config_Writer_Xml</code>
+            </para>
+        </listitem>
+    </itemizedlist>
+
+    <para>
+        As an exception, <code>Zend_Config_Writer_Ini</code> has an additional
+        option parameter <code>nestSeparator</code>, which defines with which
+        character the single nodes are separated. The default is a single dot,
+        like it is accepted by <code>Zend_Config_Ini</code> by default.
+    </para>
+
+    <para>
+        When modifying or creating a <code>Zend_Config</code> object, there are
+        some things to know. To create or modify a value, you simply say set
+        the parameter of the <code>Zend_Config</code> object via the parameter
+        accessor (<code>-&gt;</code>). To create a section in the root or to
+        create a branch, you just create a new array
+        (<code>$config-&gt;branch = array();</code>). To define which section
+        extends another one, you call the <code>setExtend()</code> method
+        on the root <code>Zend_Config</code> object.
+    </para>
+
+    <example id="zend.config.writer.example.using">
+        <title>Using Zend_Config_Writer</title>
+        <para>
+            This example illustrates the basic use of
+            <code>Zend_Config_Writer_Xml</code> to create a new config file:
+        </para>
+        <programlisting role="php"><![CDATA[
+// Create the config object
+$config = new Zend_Config(array(), true);
+$config->production = array();
+$config->staging    = array();
+
+$config->setExtend('staging', 'production');
+
+$config->production->db = array();
+$config->production->db->hostname = 'localhost';
+$config->production->db->username = 'production';
+
+$config->staging->db = array();
+$config->staging->db->username = 'staging';
+
+// Write the config file in one of the following ways:
+// a)
+$writer = new Zend_Config_Writer_Xml(array('config'   => $config,
+                                           'filename' => 'config.xml'));
+$writer->write();
+
+// b)
+$writer = new Zend_Config_Writer_Xml();
+$writer->setConfig($config)
+       ->setFilename('config.xml')
+       ->write();
+      
+// c)
+$writer = new Zend_Config_Writer_Xml();
+$writer->write('config.xml', $config);
+]]>
+        </programlisting>
+        <para>
+            This will create an XML config file with the sections production
+            and staging, where staging extends production.
+        </para>
+    </example>
+
+    <example id="zend.config.writer.modifying">
+        <title>Modifying an existing config</title>
+        <para>
+            This example demonstrates how to edit an existing config file.
+        </para>
+        <programlisting role="php"><![CDATA[
+// Load all sections from an existing config file, while skipping the extends.
+$config = new Zend_Config_Ini('config.ini',
+                              null,
+                              array('skipExtends'        => true,
+                                    'allowModifications' => true));
+
+// Modify a value
+$config->production->hostname = 'foobar';
+
+// Write the config file
+$writer = new Zend_Config_Writer_Ini(array('config'   => $config,
+                                           'filename' => 'config.ini'));
+$writer->write();
+]]>
+        </programlisting>
+    </example>
+
+    <note>
+        <title>Loading a config file</title>
+        <para>
+            When loading an existing config file for modifications it is very
+            important to load all sections and to skip the extends, so that
+            no values are merged. This is done by giving the
+            <code>skipExtends</code> as option to the constructor.
+        </para>
+    </note>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 15 - 0
documentation/manual/es/module_specs/Zend_Dom.xml

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

+ 14 - 0
documentation/manual/es/module_specs/Zend_Test.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.test.introduction">
+    <title>Introducción</title>
+
+    <para>
+        <classname>Zend_Test</classname> proporciona herramientas para facilitar las pruebas unitarias (unit testing) 
+		de sus aplicaciones basadas en Zend Framework. Actualmente, ofrecemos facilidades para probar
+		sus aplicaciones MVC basadas en Zend Framework
+    </para>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 7 - 0
documentation/manual/es/module_specs/Zend_Tool_Framework-CliTool.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.tool.framework.clitool">
+    <title>Usando la herramienta CLI</title>
+    <para></para>
+    <!-- @todo -->
+</sect1>

+ 7 - 0
documentation/manual/es/module_specs/Zend_Tool_Framework-WritingProviders.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.tool.framework.writing-providers">
+    <title>Creando Proveedores para usar con Zend_Tool_Framework</title>
+    <para></para>
+    <!-- @todo -->
+</sect1>

+ 16 - 0
documentation/manual/es/module_specs/Zend_Tool_Project-Internals.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.tool.project.internals">
+    <title>Zend_Tool_Project Internos</title>
+    <sect2 id="zend.tool.project.internals.xml-structure">
+        <title>Zend_Tool_Project Estructura Xml Interna</title>
+        <para></para>
+        <!-- @todo -->
+    </sect2>
+
+    <sect2 id="zend.tool.project.internals.extending">
+        <title>Zend_Tool_Project Enxtensión Interna</title>
+        <para></para>
+        <!-- @todo -->
+    </sect2>
+</sect1>