Explorar el Código

[DOCUMENTATION] Brazilian Portuguese:
- sync Zend_Json

- some translations
- Zend_Tool by jaguarnet7
- Zend_Application and Zend_Amf by erickwilder
- tutorials/plugins by rfmonteiro
- tutorials/quickstart by kemilybeatriz


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

mauriciofauth hace 14 años
padre
commit
d282a92af2

+ 232 - 220
documentation/manual/pt-br/module_specs/Zend_Amf-Server.xml

@@ -141,7 +141,7 @@ class World
         <para>
             Conectar a seu <classname>Zend_Amf_Server</classname> a partir de seu projeto Flex é 
             bem simples; você simplesmente precisa apontar sua <acronym>URI</acronym> de ponto de
-            extremidade para seu script <classname>Zend_Amf_Server</classname>
+            extremidade (endpoint) para seu script <classname>Zend_Amf_Server</classname>
         </para>
 
         <para>
@@ -149,7 +149,7 @@ class World
             <filename>server.php</filename> na raiz de sua aplicação, e seu <acronym>URI</acronym> é
             <filename>http://example.com/server.php</filename>. Neste caso, você modificaria seu
             arquivo <filename>services-config.xml</filename> para definir o atributo uri de ponto de
-            extremidade, channel, para este valor.
+            extremidade, <property>channel</property>, para este valor.
         </para>
 
         <para>
@@ -157,35 +157,38 @@ class World
             fazê-lo abrindo seu projeto na janela 'Navigator' do Flex Builder. Clique com o botão
             direito sobre nome do projeto e selecione 'properties'. Na janela de diálogo de
             propriedades do projeto vá para o menu 'Flex Build Path', aba 'Library path' e tenha
-            certeza de que o arquivo '<filename>rpc.swc</filename>' foi adicionado ao caminhos de
+            certeza de que o arquivo '<filename>rpc.swc</filename>' foi adicionado aos caminhos de
             seus projetos e pressione 'Ok' para fechar a janela.
         </para>
 
         <para>
-            You will also need to tell the compiler to use the
-            <filename>service-config.xml</filename> to find the RemoteObject endpoint. To do this
-            open your project properties panel again by right clicking on the project folder from
-            your Navigator and selecting properties. From the properties popup select 'Flex
-            Compiler' and add the string: <command>-services "services-config.xml"</command>. Press
-            Apply then OK to return to update the option. What you have just done is told the Flex
-            compiler to look to the <filename>services-config.xml</filename> file for runtime
-            variables that will be used by the RemotingObject class.
+            Você também precisará informar ao compilador para usar o arquivo
+            <filename>services-config.xml</filename> para encontrar o ponto de extremidade do
+            <classname>RemoteObject</classname>. Para isso, abra novamente o painel de propriedades
+            de seu projeto clicando com o botão direito do mouse no diretório do projeto a partir
+            da janela 'Navigator' e selecionando 'properties'. Na popup de propriedades selecione
+            'Flex COmpiler' e adicione a seqüência de caracteres:
+            <command>-services "services-config.xml"</command>. Pressione 'Apply' e depois 'OK' para
+            voltar e atualizar a opção. O que você acabou de fazer foi dizer ao compilador Flex para
+            procurar por variáveis de tempo de execução no arquivo
+            <filename>services-config.xml</filename> que serão usadas pela classe
+            <classname>RemoteObject</classname>
         </para>
 
         <para>
-            We now need to tell Flex which services configuration file to use for connecting to
-            our remote methods. For this reason create a new
-            '<filename>services-config.xml</filename>' file into your Flex project src folder. To
-            do this right click on the project folder and select 'new' 'File' which will popup a
-            new window. Select the project folder and then name the file
-            '<filename>services-config.xml</filename>' and press finish.
+            Agora precisamos dizer ao Flex qual arquivo de configuração de serviços usar para
+            conectar a nossos métodos remotos. Por essa razão crie um novo arquivo
+            '<filename>services-config.xml</filename>' em seu diretório <filename>src</filename> do
+            seu projeto Flex. Pra fazer isso clique com o botão direito no diretório do projeto e
+            selecione 'new'; 'File' que uma nova janela se abrirá. Selecione o diretório do projeto
+            e nomeie o arquivo '<filename>services-config.xml</filename>' e pressione 'finish'.
         </para>
 
         <para>
-            Flex has created the new <filename>services-config.xml</filename> and has it open. Use
-            the following example text for your <filename>services-config.xml</filename> file. Make
-            sure that you update your endpoint to match that of your testing server. Make sure you
-            save the file.
+            O Flex criou um novo <filename>servies-config.xml</filename> e o abriu. Use o texto de
+            exemplo a seguir para seu arquivo <filename>services-config.xml</filename>. Tenha
+            certeza de atualizar seu ponto de extremidade (endpoint) para coincidir com seu servidor
+            de testes e que você salve o arquivo.
         </para>
 
         <programlisting language="xml"><![CDATA[
@@ -216,9 +219,9 @@ class World
 ]]></programlisting>
 
         <para>
-            There are two key points in the example. First, but last in the
-            listing, we create an <acronym>AMF</acronym> channel, and specify the endpoint as the
-            <acronym>URL</acronym> to our <classname>Zend_Amf_Server</classname>:
+            Há dois pontos chave no exemplo. Primeiro, mas por último na listagem, criamos um canal
+            <acronym>AMF</acronym> e especificados o poonto de extremidade (endpoint) como
+            <acronym>URL</acronym> para nosso <classname>Zend_Amf_Server</classname>:
         </para>
 
         <programlisting language="xml"><![CDATA[
@@ -229,14 +232,15 @@ class World
 ]]></programlisting>
 
         <para>
-            Notice that we've given this channel an identifier, "zend-endpoint".
-            The example create a service destination that refers to this channel,
-            assigning it an ID as well -- in this case "zend".
+            Note que demos a este canal um identificador, "zend-endpoint". O exemplo cria um destino
+            de serviço que se refere a este canal, atribuindo a ele um ID também - neste caso
+            "zend".
         </para>
 
         <para>
-            Within our Flex <acronym>MXML</acronym> files, we need to bind a RemoteObject to the
-            service. In <acronym>MXML</acronym>, this might be done as follows:
+            Em nossos arquivos <acronym>MXML</acronym> do Flex, precisamos ligar um
+            <classname>RemoteObject</classname> ao serviço. Em <acronym>MXML</acronym>, isto é feito
+            como a seguir:
         </para>
 
         <programlisting language="xml"><![CDATA[
@@ -247,11 +251,10 @@ class World
 ]]></programlisting>
 
         <para>
-            Here, we've defined a new remote object identified by "myservice"
-            bound to the service destination "zend" we defined in the
-            <filename>services-config.xml</filename> file. We then call methods on it
-            in our ActionScript by simply calling "myservice.&lt;method&gt;".
-            As an example:
+            Aqui, definimos um novo objeto remoto identificado por "myservice" ligado ao destino de
+            serviço "zend" que definimos no arquivo <filename>services-config.xml</filename>. Nós
+            depois chamamos métodos em nosso ActionScript simplesmente
+            chamando "myservice.&lt;método&gt;". Como no exemplo:
         </para>
 
         <programlisting language="ActionScript"><![CDATA[
@@ -259,8 +262,8 @@ myservice.hello("Wade");
 ]]></programlisting>
 
         <para>
-            When namespacing, you would use
-            "myservice.&lt;namespace&gt;.&lt;method&gt;":
+            Quando usando espaços de nomes (namespaces), usamos:
+            "myservice.&lt;espaço de nome&gt;.&lt;método&gt;":
         </para>
 
         <programlisting language="ActionScript"><![CDATA[
@@ -268,31 +271,31 @@ myservice.world.hello("Wade");
 ]]></programlisting>
 
         <para>
-            For more information on Flex RemoteObject invocation, <ulink
-            url="http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_4.html">
-            visit the Adobe Flex 3 Help site</ulink>.
+            Para mais informações sobre como utilizar o <classname>RemoteObject</classname> do Flex,
+            <ulink url="http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_4.html">
+            visite o site da Ajuda do Adobre Flex 3</ulink>.
         </para>
     </sect2>
 
     <sect2 id="zend.amf.server.errors">
-        <title>Error Handling</title>
+        <title>Manipulação de Erros</title>
 
         <para>
-            By default, all exceptions thrown in your attached classes or
-            functions will be caught and returned as <acronym>AMF</acronym> ErrorMessages. However,
-            the content of these ErrorMessage objects will vary based on whether
-            or not the server is in "production" mode (the default state).
+            Por padrão, todas as exceções lançadas em suas classes ou funções anexadas serão obtidas
+            e retornadas como <classname>ErrorMessage</classname>s do <acronym>AMF</acronym>.
+            No entando, o conteúdos destes objetos <classname>ErrorMessage</classname> variam se 
+            o servidor está ou não em modo de "produção" (o estado padrão). 
         </para>
 
         <para>
-            When in production mode, only the exception code will be returned.
-            If you disable production mode -- something that should be done for
-            testing only -- most exception details will be returned: the
-            exception message, line, and backtrace will all be attached.
+            Quando em modo de produção, somente o código da exceção será retornado. Se você
+            desabilitar o modo de produção - algo que você deve fazer apenas para testes - a maioria
+            dos detalhes de exceção serão retornados: a mensagem de exceção, linha, e
+            pilha de execução (backtrace) serão todos anexados.
         </para>
 
         <para>
-            To disable production mode, do the following:
+            Para desabilitar o modo de produção, faça o seguinte:
         </para>
 
         <programlisting language="php"><![CDATA[
@@ -300,7 +303,7 @@ $server->setProduction(false);
 ]]></programlisting>
 
         <para>
-            To re-enable it, pass a <constant>TRUE</constant> boolean value instead:
+            Para habilitá-lo novamnete, passe um valor booleano <constant>TRUE</constant>:
         </para>
 
         <programlisting language="php"><![CDATA[
@@ -308,43 +311,42 @@ $server->setProduction(true);
 ]]></programlisting>
 
         <note>
-            <title>Disable production mode sparingly!</title>
+            <title>Desabilite o modo de produção com moderação!</title>
 
             <para>
-                We recommend disabling production mode only when in development.
-                Exception messages and backtraces can contain sensitive system
-                information that you may not wish for outside parties to access.
-                Even though <acronym>AMF</acronym> is a binary format, the specification is now
-                open, meaning anybody can potentially deserialize the payload.
+                Recomendamos desabilitar o modo de produção somente durante o desenvolvimento.
+                Mensagens de exceção e pilhas de execução podem conter informações sensíveis que
+                você provavelmente não deseje que terceiros tenham acesso. Mesmo
+                <acronym>AMF</acronym> sendo um formato binário, a especificação é aberta, o que
+                quer dizer que qualquer um pode, potencialmente, desserializar os dados carregados.
             </para>
         </note>
 
         <para>
-            One area to be especially careful with is <acronym>PHP</acronym> errors themselves.
-            When the <property>display_errors</property> <acronym>INI</acronym> directive is
-            enabled, any <acronym>PHP</acronym> errors for the current error reporting level are
-            rendered directly in the output -- potentially disrupting the <acronym>AMF</acronym>
-            response payload. We suggest turning off the <property>display_errors</property>
-            directive in production to prevent such problems
+            Uma área para ser especialmente cuidadoso são os próprios erros <acronym>PHP</acronym>.
+            Quando a diretiva <property>display_errors</property> do <acronym>INI</acronym> está
+            habilitada, qualquer erro <acronym>PHP</acronym> para o nível atual de reltório de erros
+            são mostrados diretamente na saída - potencialmente interrompendo a carga de dados
+            <acronym>AMF</acronym>. Sugerimos desabilitar a diretiva
+            <property>display_errors</property> em modo de produção para evitar tais problemas
         </para>
     </sect2>
 
     <sect2 id="zend.amf.server.response">
-        <title>AMF Responses</title>
+        <title>Respostas AMF</title>
 
         <para>
-            Occasionally you may desire to manipulate the response object
-            slightly, typically to return extra message headers. The
-            <methodname>handle()</methodname> method of the server returns the response
-            object, allowing you to do so.
+            Ocasionalmente você pode desejar manipular levemente o objeto de resposta, tipicamente
+            para retornar cabeçalhos de mensagem extra. O método <methodname>handle()</methodname>
+            do servidor retorna o objeto da resposta, possibilitando a você fazer isto.
         </para>
 
         <example id="zend.amf.server.response.messageHeaderExample">
-            <title>Adding Message Headers to the AMF Response</title>
+            <title>Adicionando Cabeçalhos de Mensagem à Resposta AMF</title>
 
             <para>
-                In this example, we add a 'foo' MessageHeader with the value
-                'bar' to the response prior to returning it.
+                Neste exemplo, adicionamos um <classname>MessageHeader</classname> 'foo' com o
+                valor 'bar' à resposta antes de retorná-la.
             </para>
 
             <programlisting language="php"><![CDATA[
@@ -356,39 +358,38 @@ echo $response;
     </sect2>
 
     <sect2 id="zend.amf.server.typedobjects">
-        <title>Typed Objects</title>
+        <title>Objetos Tipados</title>
 
         <para>
-            Similar to <acronym>SOAP</acronym>, <acronym>AMF</acronym> allows passing objects
-            between the client and server. This allows a great amount of flexibility and
-            coherence between the two environments.
+            De modo similar ao <acronym>SOAP</acronym>, <acronym>AMF</acronym> permite que sejam
+            passados objetos entre o cliente e o servidor. Isso permite uma grande quantidade de
+            flexibilidade e coerência entre os dois ambientes.
         </para>
 
         <para>
-            <classname>Zend_Amf</classname> provides three methods for mapping
-            ActionScript and <acronym>PHP</acronym> objects.
+            <classname>Zend_Amf</classname> fornece três métodos para mapeamento entre objetos
+            ActionScript e <acronym>PHP</acronym>.
         </para>
 
         <itemizedlist>
             <listitem>
                 <para>
-                    First, you may create explicit bindings at the server level,
-                    using the <methodname>setClassMap()</methodname> method. The first
-                    argument is the ActionScript class name, the second the <acronym>PHP</acronym>
-                    class name it maps to:
+                    Primeiro, você deve criar explicitamente ligações no nível do servidor, usando o
+                    método <methodname>setClassMap()</methodname>. O primeiro argumento é o nome da
+                    classe ActionScript, o segundo é a classe <acronym>PHP</acronym> que a mapeia:
                 </para>
 
                 <programlisting language="php"><![CDATA[
-// Map the ActionScript class 'ContactVO' to the PHP class 'Contact':
+// Mapeia a classe ActionScript 'ContactVO' para a classe PHP 'Contact':
 $server->setClassMap('ContactVO', 'Contact');
 ]]></programlisting>
             </listitem>
 
             <listitem>
                 <para>
-                    Second, you can set the public property <varname>$_explicitType</varname>
-                    in your <acronym>PHP</acronym> class, with the
-                    value representing the ActionScript class to map to:
+                    Em segundo lugar, você definir a propriedade pública
+                    <varname>$_explicitType</varname> em sua classe <acronym>PHP</acronym>, com o
+                    valor representando a classe ActionScript para mapear:
                 </para>
 
                 <programlisting language="php"><![CDATA[
@@ -401,9 +402,9 @@ class Contact
 
             <listitem>
                 <para>
-                    Third, in a similar vein, you may define the public method
-                    <methodname>getASClassName()</methodname> in your <acronym>PHP</acronym> class;
-                    this method should return the appropriate ActionScript class:
+                    Terceiro, de maneira similar, você pode definir o método público
+                    <methodname>getASClassName()</methodname> em sua classe <acronym>PHP</acronym>;
+                    este método deve retornar a classe ActionScript apropriada:
                 </para>
 
                 <programlisting language="php"><![CDATA[
@@ -419,14 +420,15 @@ class Contact
         </itemizedlist>
 
         <para>
-            Although we have created the ContactVO on the server we now need to make its
-            corresponding class in <acronym>AS3</acronym> for the server object to be mapped to.
+            Embora tenhamos criado o ContactVO no servidor precisamos agora fazer a classe
+            correspondente em <acronym>AS3</acronym> para que o objeto de servidor seja mapeado.
         </para>
-
+        
         <para>
-            Right click on the src folder of the Flex project and select New -> ActionScript
-            File. Name the file ContactVO and press finish to see the new file. Copy the
-            following code into the file to finish creating the class.
+            Clique com o botão direito na pasta <filename>src</filename> de seu projeto Flex e
+            selecione 'New' -> 'ActionScript File'. Nomeie o arquivo como 'ContactVO' e pressione
+            'finish' para ver o novo arquivo. Copie o seguinte código para finalizar a criação da
+            classe.
         </para>
 
         <programlisting language="as"><![CDATA[
@@ -441,21 +443,22 @@ package
         public var lastname:String;
         public var email:String;
         public var mobile:String;
-        public function ProductVO():void {
+        public function ContactVO():void {
         }
     }
 }
 ]]></programlisting>
 
         <para>
-            The class is syntactically equivalent to the <acronym>PHP</acronym> of the same name.
-            The variable names are exactly the same and need to be in the same case
-            to work properly. There are two unique <acronym>AS3</acronym> meta tags in this class.
-            The first is bindable which makes fire a change event when it is updated.
-            The second tag is the RemoteClass tag which defines that this class can
-            have a remote object mapped with the alias name in this case
-            <emphasis>ContactVO</emphasis>. It is mandatory that this tag the value that was set
-            is the <acronym>PHP</acronym> class are strictly equivalent.
+            A classe é sintaticamente equivalente à classe <acronym>PHP</acronym> com o mesmo nome.
+            Os nomes de variáveis são exatamente os mesmos e precisam estar sob o mesmo caso para
+            que funcione apropriadamente. Existem duas marcações meta (meta tags) 
+            <acronym>AS3</acronym> únicas nesta classe. A primeira é Bindable, que faz com
+            que um evento de alteração (change) seja disparado quando ela é atualizada. A segunda
+            marcação é RemoteClass, que define que esta classe pode ter um objeto remoto mapeado a
+            ela com um apelido, neste caso <emphasis>ContactVO</emphasis>. É obrigatório que o valor
+            desta marcação seja definido seja estritamente equivalente ao da classe
+            <acronym>PHP</acronym>.
         </para>
 
         <programlisting language="as"><![CDATA[
@@ -468,59 +471,59 @@ private function getContactHandler(event:ResultEvent):void {
 ]]></programlisting>
 
         <para>
-            The following result event from the service call is cast instantly onto the Flex
-            ContactVO. Anything that is bound to myContact will be updated with the returned
-            ContactVO data.
+            O evento de resultado gerado pela chamada ao serviço é instantaneamente convertido para
+            o ContactVO do Flex. Qualquer coisa que seja direcionada a <varname>myContact</varname>
+            será atualizado e os dados de ContactVO serão retornados.
         </para>
     </sect2>
 
     <sect2 id="zend.amf.server.resources">
-        <title>Resources</title>
+        <title>Recursos</title>
 
         <para>
-            <classname>Zend_Amf</classname> provides tools for mapping resource types
-            returned by service classes into data consumable by ActionScript.
+            <classname>Zend_Amf</classname> fornece ferramentas para mapear tipos de recursos
+            retornados por classes de serviços em informações consumíveis pelo ActionScript.
         </para>
 
         <para>
-            In order to handle specific resource type, the user needs to create a plugin class named
-            after the resource name, with words capitalized and spaces removed (so, resource
-            type "mysql result" becomes MysqlResult), with some prefix, e.g.
-            <classname>My_MysqlResult</classname>. This class should implement one method,
-            <methodname>parse()</methodname>, receiving one argument - the resource - and returning
-            the value that should be sent to ActionScript. The class should be located in the file
-            named after the last component of the name, e.g. <filename>MysqlResult.php</filename>.
+            A fim de lidar com tipo de recurso específico, o usuário precisa criar uma classe plugin
+            chamado após o nome do recurso, com palavras em maiúsculas e espaços removidos (assim
+            recurso do tipo "resultado mysql" torna-se ResultadoMysql), com algum prefixo, ex.:
+            <classname>Meu_ResultadoMysql</classname>. Esta classe precisa implementar um método,
+            <methodname>parse()</methodname>, recebendo um argumento - o recurso - e retornando o
+            valor a ser enviado para o ActionScript. A classe deve estar localizada no arquivo
+            chamado após o nome do componente, ex.: <filename>ResultadoMysql.php</filename>.
         </para>
 
         <para>
-            The directory containing the resource handling plugins should be registered with
-            <classname>Zend_Amf</classname> type loader:
+            O diretório contendo os plugins para manipulação de recursos devem ser registrados com o
+            carregador de tipo <classname>Zend_Amf</classname>:
         </para>
 
         <programlisting language="php"><![CDATA[
 Zend_Amf_Parse_TypeLoader::addResourceDirectory(
-    "My",
-    "application/library/resources/My"
+    "Meu",
+    "application/library/recursos/Meu"
 );
 ]]></programlisting>
 
         <para>
-            For detailed discussion of loading plugins, please see
-            the <link linkend="zend.loader.pluginloader">plugin loader</link> section.
+            Para uma discussão detalhada sobre o plugins carregadores, por favor veja a seção
+            <link linkend="zend.loader.pluginloader">plugin carregador</link>.
         </para>
 
         <para>
-            Default directory for <classname>Zend_Amf</classname> resources is registered
-            automatically and currently contains handlers for "mysql result" and "stream"
-            resources.
+            O diretório padrão para recursos <classname>Zend_Amf</classname> é registrado
+            automaticamente e atualmente contém manipuladores para recursos "resultado mysql" e
+            "stream".
         </para>
 
         <programlisting language="php"><![CDATA[
-// Example class implementing handling resources of type mysql result
-class Zend_Amf_Parse_Resource_MysqlResult
+// Classe de exemplo implementando a manipulação de recursos do tipo "resultado mysql"
+class Zend_Amf_Parse_Recurso_ResultadoMysql
 {
     /**
-     * Parse resource into array
+     * Decodifica o recurso em uma matriz
      *
      * @param resource $resource
      * @return array
@@ -536,40 +539,42 @@ class Zend_Amf_Parse_Resource_MysqlResult
 ]]></programlisting>
 
         <para>
-            Trying to return unknown resource type (i.e., one for which no handler plugin exists)
-            will result in an exception.
+            Ao tentar retornar um tipo desconhecido de recirso (ex., um para o qual não haja plugin
+            manipulador existente) resultará em uma exceção.
         </para>
     </sect2>
 
     <sect2 id="zend.amf.server.flash">
-        <title>Connecting to the Server from Flash</title>
+        <title>Conectando ao Servidor a partir do Flash</title>
 
         <para>
-            Connecting to your <classname>Zend_Amf_Server</classname> from your Flash project is
-            slightly different than from Flex. However once the connection Flash functions with
-            <classname>Zend_Amf_Server</classname> the same way is flex. The following example can
-            also be used from a Flex <acronym>AS3</acronym> file. We will reuse the same
-            <classname>Zend_Amf_Server</classname> configuration along with the World class for our
-            connection.
+            Conectando ao seu <classname>Zend_Amf_Server</classname> a partir de seu projeto Flash é
+            ligeiramente diferente do que com Flex. Contudo, depois da conexão, Flash funciona com
+            <classname>Zend_Amf_Server</classname> da mesma forma que com Flex. O exemplo a seguir
+            também pode ser usado com um arquivo <acronym>AS3</acronym> do Flex. Reutilizaremos a
+            mesma configuração <classname>Zend_Amf_Server</classname> com a classe Mundo para nossa
+            conexão.
         </para>
 
         <para>
-            Open Flash CS and create and new Flash File (ActionScript 3). Name the document
-            <filename>ZendExample.fla</filename> and save the document into a folder that you will
-            use for this example. Create a new <acronym>AS3</acronym> file in the same directory
-            and call the file <filename>Main.as</filename>. Have both files open in your editor. We
-            are now going to connect the two files via the document class. Select ZendExample and
-            click on the stage. From the stage properties panel change the Document class to Main.
-            This links the <filename>Main.as</filename> ActionScript file with the user interface
-            in <filename>ZendExample.fla</filename>. When you run the Flash file ZendExample the
-            <filename>Main.as</filename> class will now be run. Next we will add ActionScript to
-            make the <acronym>AMF</acronym> call.
+            Abra o Flash CS e crie um novo arquivo Flash (ActionScript 3). Nomeie o documento
+            <filename>ExemploZend.fla</filename> e salve o documento em uma pasta que você usará
+            para este exemplo. Crie uma nova classe <acronym>AS3</acronym> no mesmo diretório e
+            nomeie o arquivo como <filename>Principal.as</filename>. Tenha ambos os arquivos abertos
+            em seu editor. Vamos conectar os dois arquivos através da classe de documento. Selecione
+            ExemploZend e clique no palco. No painel de propriedade dos palco, altere a classe de
+            documento (Document class) para Principal. Isso ligará o arquivo ActionScript 
+            <filename>Principal.as</filename> com a interface do usuário do arquivo
+            <filename>ExemploZend.fla</filename>. Quando você executa o arquivo Flash ExemploZend, a
+            classe <filename>Principal.as</filename> será executada agora. Agora, vamos adicionar o
+            código ActionScript para fazer a chamada <acronym>AMF</acronym>.
         </para>
 
         <para>
-            We now are going to make a Main class so that we can send the data to the server and
-            display the result. Copy the following code into your <filename>Main.as</filename> file
-            and then we will walk through the code to describe what each element's role is.
+            Agora nós faremos a classe Principal de modo que possamos enviar dados ao servidor e
+            exibir o resultado. Copie o código a seguir para seu arquivo
+            <filename>Principal.as</filename> e depois vamos descrever, passo a passo, o papel de
+            cada elemento nele.
         </para>
 
         <programlisting language="as"><![CDATA[
@@ -579,20 +584,23 @@ package {
   import flash.net.NetConnection;
   import flash.net.Responder;
 
-  public class Main extends MovieClip {
-    private var gateway:String = "http://example.com/server.php";
+  public class Principal extends MovieClip {
+    private var gateway:String = "http://exemplo.com/server.php";
     private var connection:NetConnection;
     private var responder:Responder;
 
-    public function Main() {
+    public function Principal() {
       responder = new Responder(onResult, onFault);
       connection = new NetConnection;
+      connection.addEventListener(NetStatusEvent.NET_STATUS, onComplete);
       connection.connect(gateway);
     }
 
-    public function onComplete( e:Event ):void{
-      var params = "Sent to Server";
-      connection.call("World.hello", responder, params);
+    public function onComplete( e:NetStatusEvent ):void {
+      if(e.info.code == "NetGroup.Connect.Succcess") {
+        var params = "Sent to Server";
+        connection.call("Mundo.alo", responder, params);
+      }
     }
 
     private function onResult(result:Object):void {
@@ -607,10 +615,10 @@ package {
 ]]></programlisting>
 
         <para>
-            We first need to import two ActionScript libraries that perform the bulk of the work.
-            The first is NetConnection which acts like a by directional pipe between the client and
-            the server. The second is a Responder object which handles the return values from the
-            server related to the success or failure of the call.
+            Primeiro precisamos importar duas bibliotecas ActionScriot que executam a maior parte do
+            trabalho. A primeira é NetConnection que atua como um tubo bi-direcional entre o cliente
+            e o servidor. A segunda é o objeto Responder, que manipula os valores de retorno do
+            servidor relacionados ao sucesso ou falha da chamada.
         </para>
 
         <programlisting language="as"><![CDATA[
@@ -619,59 +627,60 @@ import flash.net.Responder;
 ]]></programlisting>
 
         <para>
-            In the class we need three variables to represent the NetConnection, Responder, and
-            the gateway <acronym>URL</acronym> to our <classname>Zend_Amf_Server</classname>
-            installation.
+            Na classe, precisamos de três variáveis para representar a NetConnection, Responder e a
+            <acronym>URL</acronym> da porta de entrada (gateway) para nossa instalação
+            <classname>Zend_Amf_Server</classname>.
         </para>
 
         <programlisting language="as"><![CDATA[
-private var gateway:String = "http://example.com/server.php";
+private var gateway:String = "http://exemplo.com/server.php";
 private var connection:NetConnection;
 private var responder:Responder;
 ]]></programlisting>
 
         <para>
-            In the Main constructor we create a responder and a new connection to the
-            <classname>Zend_Amf_Server</classname> endpoint. The responder defines two different
-            methods for handling the response from the server. For simplicity I have called these
-            onResult and onFault.
+            No contrutor de Principal criamos um respondedor e uma nova conexão ao
+            ponto de extremidade (gateway) <classname>Zend_Amf_Server</classname>. O respondedor
+            define dois métodos diferentes para manipular as respostas do servidor. Por simplicidade
+            eles foram chamados de onResult e onFault.
         </para>
 
         <programlisting language="as"><![CDATA[
 responder = new Responder(onResult, onFault);
 connection = new NetConnection;
+connection.addEventListener(NetStatusEvent.NET_STATUS, onComplete);
 connection.connect(gateway);
 ]]></programlisting>
 
         <para>
-            In the onComplete function which is run as soon as the construct has completed we send
-            the data to the server. We need to add one more line that makes a call to the
-            <classname>Zend_Amf_Server</classname> World->hello function.
+            Na função onComplete, que é executada assim que o construtor tenha sido terminado, nós
+            enviamos dados ao servidor. Precisamos adicionar mais uma linha que realiza a chamada a
+            função Mundo->alo do <classname>Zend_Amf_Server</classname>
         </para>
 
         <programlisting language="as"><![CDATA[
-connection.call("World.hello", responder, params);
+connection.call("Mundo.alo", responder, params);
 ]]></programlisting>
 
         <para>
-            When we created the responder variable we defined an onResult and onFault function to
-            handle the response from the server. We added this function for the successful result
-            from the server. A successful event handler is run every time the connection is handled
-            properly to the server.
+            Quando instanciamos a variável responder, definimos uma função onResult e onFault para
+            manipular a resposta do servidor. Adicionamos esta função para um resultado de sucesso
+            vindo do servidor. Um manipulador de eventos de sucesso é executado sempre que uma
+            conexão  é manipulada apropriadamente no servidor.
         </para>
 
         <programlisting language="as"><![CDATA[
 private function onResult(result:Object):void {
-    // Display the returned data
+    // Mostra os dados retornados
     trace(String(result));
 }
 ]]></programlisting>
 
         <para>
-            The onFault function, is called if there was an invalid response from the server. This
-            happens when there is an error on the server, the <acronym>URL</acronym> to the server
-            is invalid, the remote service or method does not exist, and any other connection
-            related issues.
+            A função onFault é chamada se há uma resposta inválida vinda do servidor. Isso acontece
+            quando há um erro no servidor, a <acronym>URL</acronym> para o servidor é inválida, o
+            serviço remoto ou método não existe ou se há qualquer outro problema relacionado à
+            conexão. 
         </para>
 
         <programlisting language="as"><![CDATA[
@@ -681,52 +690,55 @@ private function onFault(fault:Object):void {
 ]]></programlisting>
 
         <para>
-            Adding in the ActionScript to make the remoting connection is now complete. Running the
-            ZendExample file now makes a connection to <classname>Zend_Amf</classname>. In review
-            you have added the required variables to open a connection to the remote server, defined
-            what methods should be used when your application receives a response from the server,
-            and finally displayed the returned data to output via <methodname>trace()</methodname>.
+            Completamos então a inclusão do ActionScript para realizar a conexão remota. Executando
+            o arquivo ExemploZend agora faz a conexão ao <classname>Zend_Amf</classname>. Numa
+            revisão, você adicionou as variáveis necessárias para abrir uma conexão ao servidor
+            remoto, definiu quais métodos devem ser usados em sua aplicação para receber respostas
+            do servidor e finalmente exibido os dados retornados através da função
+            <methodname>trace()</methodname>. 
         </para>
     </sect2>
 
     <sect2 id="zend.amf.server.auth">
-        <title>Authentication</title>
+        <title>Autenticação</title>
 
         <para>
-            <classname>Zend_Amf_Server</classname> allows you to specify authentication and
-            authorization hooks to control access to the services. It is using the infrastructure
-            provided by <link linkend="zend.auth"><classname>Zend_Auth</classname></link> and
-            <link linkend="zend.acl"><classname>Zend_Acl</classname></link> components.
+            <classname>Zend_Amf_Server</classname> permite que você especifique ganchos de
+            autentcação e autorização para controlar acesso aos serviços. Isso é feito usando a
+            infraestrutura fornecida pelos componentes
+            <link linkend="zend.auth"><classname>Zend_Auth</classname></link> e
+            <link linkend="zend.acl"><classname>Zend_Acl</classname></link>.
         </para>
 
         <para>
-            In order to define authentication, the user provides authentication adapter extening
-            <classname>Zend_Amf_Auth_Abstract</classname> abstract class. The adapter should
-            implement the <methodname>authenticate()</methodname> method just like regular
-            <link linkend="zend.auth.introduction.adapters">authentication adapter</link>.
+            Para definir autenticação, o usuário fornece um adaptador de autenticação extendendo a
+            classe abstrata <classname>Zend_Amf_Auth_Abstract</classname>. O adaptador deve
+            implementar o método <methodname>authenticate()</methodname> como qualquer outro
+            <link linkend="zend.auth.introduction.adapters">adaptador de autenticação</link>.
         </para>
 
         <para>
-            The adapter should use properties <emphasis>_username</emphasis> and
-            <emphasis>_password</emphasis> from the parent
-            <classname>Zend_Amf_Auth_Abstract</classname> class in order to authenticate. These
-            values are set by the server using <methodname>setCredentials()</methodname> method
-            before call to <methodname>authenticate()</methodname> if the credentials are received
-            in the <acronym>AMF</acronym> request headers.
+            O adaptador deve utilizar as propriedades <emphasis>_username</emphasis> e
+            <emphasis>_password</emphasis> da classe pai, 
+            <classname>Zend_Amf_Auth_Adapter</classname>, para autenticar. Estes valores são
+            definidos pelo servidor usando o método <methodname>setCredentials()</methodname> antes
+            da chamada à <methodname>authenticate()</methodname> se as credenciais forem recebidas
+            nos cabeçalhos da requisição <acronym>AMF</acronym>.
         </para>
 
         <para>
-            The identity returned by the adapter should be an object containing property
-            <property>role</property> for the <acronym>ACL</acronym> access control to work.
+            A identidade retornada pelo adaptador deve ser um objeto contendo a propriedade
+            <property>role</property> para que o controle de acesso da <acronym>ACL</acronym>
+            funcione.
         </para>
 
         <para>
-            If the authentication result is not successful, the request is not proceseed further
-            and failure message is returned with the reasons for failure taken from the result.
+            Se o resultado da autenticação não for bem sucedido, a requisição não é mais procesada e
+            uma mensagem de falha é retornada contendo as razões da falha obtida do resultado.
         </para>
 
         <para>
-            The adapter is connected to the server using <methodname>setAuth()</methodname> method:
+            O adaptador é conectado ao servidor usando o método <methodname>setAuth()</methodname>:
         </para>
 
         <programlisting language="php"><![CDATA[
@@ -734,31 +746,31 @@ $server->setAuth(new My_Amf_Auth());
 ]]></programlisting>
 
         <para>
-            Access control is performed by using <classname>Zend_Acl</classname> object set by
-            <methodname>setAcl()</methodname> method:
+            O controle de acesso é realizado usando um objeto <classname>Zend_Acl</classname>
+            definido pelo método <methodname>setAcl()</methodname>:
         </para>
 
         <programlisting language="php"><![CDATA[
 $acl = new Zend_Acl();
-createPermissions($acl); // create permission structure
+criarPermissoes($acl); // Cria a estrutura de permissões
 $server->setAcl($acl);
 ]]></programlisting>
 
         <para>
-            If the <acronym>ACL</acronym> object is set, and the class being called defines
-            <methodname>initAcl()</methodname> method, this method will be called with the
-            <acronym>ACL</acronym> object as an argument. The class then can create additional
-            <acronym>ACL</acronym> rules and return <constant>TRUE</constant>, or return
-            <constant>FALSE</constant> if no access control is required for this class.
+            Se o objeto <acronym>ACL</acronym> é definido e a classe sendo chamada define o método
+            <methodname>initAcl()</methodname>, este método será chamado com o objeto
+            <acronym>ACL</acronym> como um argumento. A classe depois cria regras
+            <acronym>ACL</acronym> adicionais e retorna <constant>TRUE</constant>, ou retorna
+            <constant>FALSE</constant> se nenhum controle de acesso for necessário para esta classe.
         </para>
 
         <para>
-            After <acronym>ACL</acronym> have been set up, the server will check if access is
-            allowed with role set by the authentication, resource being the class name (or
-            <constant>NULL</constant> for
-            function calls) and privilege being the function name. If no authentication was
-            provided, then if the <emphasis>anonymous</emphasis> role was defined, it will be used,
-            otherwise the access will be denied.
+            Depois de a <acronym>ACL</acronym> ser definida, o servidor verificará se o acesso é
+            permitido com o papel definido pela autenticação, sendo o recurso o nome da classe (ou
+            <constant>NULL</constant> para chamadas de funções) e o privileǵio sendo o nome da
+            função. Se nenhuma autenticação for fornecida, e se o papel
+            <emphasis>anonymous</emphasis> foi definido, ele será usado, em outro caso o acesso será
+            negado.
         </para>
 
         <programlisting language="php"><![CDATA[
@@ -766,7 +778,7 @@ if($this->_acl->isAllowed($role, $class, $function)) {
     return true;
 } else {
     require_once 'Zend/Amf/Server/Exception.php';
-    throw new Zend_Amf_Server_Exception("Access not allowed");
+    throw new Zend_Amf_Server_Exception("Accesso não permitido");
 }
 ]]></programlisting>
     </sect2>

+ 427 - 0
documentation/manual/pt-br/module_specs/Zend_Application-CoreFunctionality-Application.xml

@@ -0,0 +1,427 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 24249 -->
+<!-- Reviewed: no -->
+<sect2 id="zend.application.core-functionality.application">
+    <title>Zend_Application</title>
+
+    <para>
+        <classname>Zend_Application</classname> fornece a base da funcionalidade do componente, é o
+        ponto de entrada para sua aplicação Zend Framework. Seu propósito duplo: definir o ambiente
+        <acronym>PHP</acronym> (incluindo autocarregamento) e para executar a inicialização da
+        aplicação.
+    </para>
+
+    <para>
+        Tipicamenteo, você passará todas as configurações ao construtor de
+        <classname>Zend_Application</classname>, mas você também pode configurar inteiramente o
+        objeto usando seus próprios métodos. Esta referência é voltada a ilustrar ambos os casos.
+    </para>
+
+    <table id="zend.application.core-functionality.application.api.options">
+        <title>Opções de Zend_Application</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Opção</entry>
+                    <entry>Descrição</entry>
+                </row>
+            </thead>
+
+            <tbody>
+                <row>
+                    <entry><emphasis><property>phpSettings</property></emphasis></entry>
+
+                    <entry>
+                        <para>
+                            Matriz de opções <filename>php.ini</filename> para utilizar. Chaves
+                            devem devem ser as mesmas do <filename>php.ini</filename>.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><emphasis><property>includePaths</property></emphasis></entry>
+
+                    <entry>
+                        <para>
+                            Caminhos adicionais para acrescentar ao
+                            <emphasis>include_path</emphasis>. Deve ser uma matriz de caminhos.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><emphasis><property>autoloaderNamespaces</property></emphasis></entry>
+
+                    <entry>
+                        <para>
+                            Matriz de espaços de nomes adicionais para registrar com a instância de
+                            <classname>Zend_Loader_Autoloader</classname>.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><emphasis><property>bootstrap</property></emphasis></entry>
+
+                    <entry>
+                        <para>
+                            Pode ser tanto uma sequência de caracteres (string) para o caminho da
+                            classe de inicialização, ou uma matriz com elementos 'path' e 'class'
+                            (caminho e classe, respectivamente) para a inicialização da aplicação.
+                        </para>
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+
+    <note>
+        <title>Nomes das opções</title>
+
+        <para>
+            Tenha em mente que os nomes das opções são insensíveis ao caso.
+        </para>
+    </note>
+
+    <table id="zend.application.core-functionality.application.api.table">
+        <title>Métodos Zend_Application</title>
+
+        <tgroup cols="4">
+            <thead>
+                <row>
+                    <entry>Método</entry>
+                    <entry>Valor de Retorno</entry>
+                    <entry>Parameteros</entry>
+                    <entry>Descrição</entry>
+                </row>
+            </thead>
+
+            <tbody>
+                <row>
+                    <entry>
+                        <methodname>__construct($environment, $options = null)</methodname>
+                    </entry>
+
+                    <entry><type>Void</type></entry>
+
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$environment</varname>: 
+                                    <emphasis>obrigatória</emphasis>,.
+                                    Sequência de caracteres representando o ambiente da aplicação
+                                    atual. Sequências típicas podem incluir "development",
+                                    "testing", "qa" ou "production" mas serão definidas por seus
+                                    requisitos organizacionais.
+                                </para>
+                            </listitem>
+
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>: <emphasis>opcional</emphasis>.
+                                    O argumento pode ser um dos seguintes valores:
+                                </para>
+
+                                <itemizedlist>
+                                    <listitem>
+                                        <para>
+                                            <emphasis><type>String</type></emphasis>: path to
+                                            a <classname>Zend_Config</classname> file to load
+                                            as configuration for your application.
+                                            <varname>$environment</varname> will be used
+                                            to determine what section of the
+                                            configuration to pull.
+                                        </para>
+
+                                        <para>
+                                            As of 1.10, you may also pass multiple paths containing
+                                            config files to be merged into a single configuration.
+                                            This assists in reducing config duplication across many
+                                            contexts which share common settings (e.g. configs for
+                                            <acronym>HTTP</acronym>, or <acronym>CLI</acronym>, each
+                                            sharing some characteristics but with their own
+                                            conflicting values for others) or merely splitting a
+                                            long configuration across many smaller categorised
+                                            files. The parameter in this case is an array with a
+                                            single key "config" whose value is an array of the
+                                            files to merge. Note: this means you either pass a
+                                            literal path, or
+                                            <command>
+                                                array("config"=>array("/path1","/path2"[,...]));
+                                            </command>.
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <emphasis><type>Array</type></emphasis>: associative
+                                            array of configuration data for your application.
+                                        </para>
+                                    </listitem>
+
+                                    <listitem>
+                                        <para>
+                                            <emphasis><classname>Zend_Config</classname></emphasis>:
+                                            configuration object instance.
+                                        </para>
+                                    </listitem>
+                                </itemizedlist>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+
+                    <entry>
+                        <para>
+                            Constructor. Arguments are as described, and will be
+                            used to set initial object state. An instance of
+                            <classname>Zend_Loader_Autoloader</classname> is registered
+                            during instantiation. Options passed to the
+                            constructor are passed to <methodname>setOptions()</methodname>.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getEnvironment()</methodname></entry>
+                    <entry><type>String</type></entry>
+                    <entry>N/A</entry>
+
+                    <entry>
+                        <para>Retrieve the environment string passed to the constructor.</para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getAutoloader()</methodname></entry>
+                    <entry><classname>Zend_Loader_Autoloader</classname></entry>
+                    <entry>N/A</entry>
+
+                    <entry>
+                        <para>
+                            Retrieve the <classname>Zend_Loader_Autoloader</classname>
+                            instance registered during instantiation.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><methodname>setOptions(array $options)</methodname></entry>
+                    <entry><classname>Zend_Application</classname></entry>
+
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$options</varname>: <emphasis>required</emphasis>.
+                                    An array of application options.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+
+                    <entry>
+                        <para>
+                            All options are stored internally, and calling the
+                            method multiple times will merge options. Options
+                            matching the various setter methods will be passed
+                            to those methods. As an example, the option
+                            "phpSettings" will then be passed to
+                            <methodname>setPhpSettings()</methodname>. (Option names are
+                            case insensitive.)
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getOptions()</methodname></entry>
+                    <entry><type>Array</type></entry>
+                    <entry>N/A</entry>
+
+                    <entry>
+                        <para>
+                            Retrieve all options used to initialize the object;
+                            could be used to cache <classname>Zend_Config</classname>
+                            options to a serialized format between requests.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><methodname>hasOption($key)</methodname></entry>
+                    <entry><type>Boolean</type></entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$key</varname>: String option key to lookup
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+
+                    <entry>
+                        <para>
+                            Determine whether or not an option with the
+                            specified key has been registered. Keys are case insensitive.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getOption($key)</methodname></entry>
+                    <entry><type>Mixed</type></entry>
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para><varname>$key</varname>: String option key to lookup</para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+
+                    <entry>
+                        <para>
+                            Retrieve the option value of a given key. Returns
+                            <constant>NULL</constant> if the key does not exist.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry>
+                        <methodname>setPhpSettings(array $settings, $prefix = '')</methodname>
+                    </entry>
+
+                    <entry><classname>Zend_Application</classname></entry>
+
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$settings</varname>: <emphasis>required</emphasis>.
+                                    Associative array of <acronym>PHP</acronym>
+                                    <acronym>INI</acronym> settings.
+                                </para>
+                            </listitem>
+
+                            <listitem>
+                                <para>
+                                    <varname>$prefix</varname>: <emphasis>optional</emphasis>.
+                                    String prefix with which to prepend option keys. Used
+                                    internally to allow mapping nested arrays to dot-separated
+                                    <filename>php.ini</filename> keys. In normal usage, this
+                                    argument should never be passed by a user.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+
+                    <entry>
+                        <para>
+                            Set run-time <filename>php.ini</filename> settings. Dot-separated
+                            settings may be nested hierarchically (which may occur
+                            with <acronym>INI</acronym> <classname>Zend_Config</classname> files)
+                            via an array-of-arrays, and will still resolve correctly.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry>
+                        <methodname>setAutoloaderNamespaces(array $namespaces)</methodname>
+                    </entry>
+
+                    <entry><classname>Zend_Application</classname></entry>
+
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$namespaces</varname>: <emphasis>required</emphasis>.
+                                    Array of strings representing the namespaces to
+                                    register with the <classname>Zend_Loader_Autoloader</classname>
+                                    instance.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+
+                    <entry>
+                        <para>
+                            Register namespaces with the
+                            <classname>Zend_Loader_Autoloader</classname> instance.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><methodname>setBootstrap($path, $class = null)</methodname></entry>
+                    <entry><classname>Zend_Application</classname></entry>
+
+                    <entry>
+                        <itemizedlist>
+                            <listitem>
+                                <para>
+                                    <varname>$path</varname>: <emphasis>required</emphasis>. May be
+                                    either a
+                                    <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                                    instance, a string path to the bootstrap class, an
+                                    associative array of classname =&gt; filename, or an associative
+                                    array with the keys 'class' and 'path'.
+                                </para>
+                            </listitem>
+
+                            <listitem>
+                                <para>
+                                    <varname>$class</varname>: <emphasis>optional</emphasis>.
+                                    If <varname>$path</varname> is a string,
+                                    <varname>$class</varname> may be specified, and should
+                                    be a string class name of the class contained in
+                                    the file represented by path.
+                                </para>
+                            </listitem>
+                        </itemizedlist>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><methodname>getBootstrap()</methodname></entry>
+
+                    <entry>
+                        <constant>NULL</constant> |
+                        <classname>Zend_Application_Bootstrap_Bootstrapper</classname>
+                    </entry>
+
+                    <entry>N/A</entry>
+                    <entry><para>Retrieve the registered bootstrap instance.</para></entry>
+                </row>
+
+                <row>
+                    <entry><methodname>bootstrap()</methodname></entry>
+                    <entry><type>Void</type></entry>
+                    <entry>N/A</entry>
+                    <entry>
+                        <para>
+                            Call the bootstrap's <methodname>bootstrap()</methodname>
+                            method to bootstrap the application.
+                        </para>
+                    </entry>
+                </row>
+
+                <row>
+                    <entry><methodname>run()</methodname></entry>
+                    <entry><type>Void</type></entry>
+                    <entry>N/A</entry>
+                    <entry>
+                        <para>
+                            Call the bootstrap's <methodname>run()</methodname>
+                            method to dispatch the application.
+                        </para>
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect2>

+ 19 - 0
documentation/manual/pt-br/module_specs/Zend_Application-CoreFunctionality.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 24249 -->
+<!-- Reviewed: no -->
+<sect1 id="zend.application.core-functionality" xmlns:xi="http://www.w3.org/2001/XInclude">
+    <title>Funcionalidade principal</title>
+
+    <para>
+        Aqui você encontrará uma documentação no estilo <acronym>API</acronym> sobre todos os
+        principais componentes 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>

+ 59 - 5
documentation/manual/pt-br/module_specs/Zend_Json-xml2json.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 20792 -->
+<!-- EN-Revision: 24249 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.json.xml2json">
     <title>Conversão de XML para JSON</title>
@@ -119,10 +119,64 @@ $jsonContents = Zend_Json::fromXml($xmlStringContents, true);
 }
 ]]></programlisting>
 
-    <para>
-        Mais detalhes sobre o recurso xml2json podem ser encontrados na proposta original em si.
-        Dê uma olhada na <ulink url="http://tinyurl.com/2tfa8z">proposta Zend_xml2json</ulink>.
-    </para>
+<sect2 id="zend.json.xml2json.changes">
+    <title>Changes</title>
+
+    <sect3 id="zend.json.xml2json.changes.1-11-6">
+        <title>Changes in 1.11.6</title>
+
+        <para>
+            Starting from the release 1.11.6 the <methodname>Zend_Json::fromXml()</methodname> function
+            has been rewritten from scratch in order to manage XML element with attributes, text value
+            and sub-elements (see the <ulink url="http://framework.zend.com/issues/browse/ZF-3257">ZF-3257</ulink>).
+        </para>
+
+        <para>
+            For instance, if you have an XML document like this:
+        </para>
+
+        <programlisting language="php"><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<a>
+    <b id="foo"/>
+    bar
+</a>
+]]></programlisting>
+
+            <para>
+                The <acronym>JSON</acronym> output string returned from
+                <methodname>Zend_Json::fromXml()</methodname> is:
+            </para>
+
+            <programlisting language="php"><![CDATA[
+{
+   "a" : {
+      "b" : {
+         "@attributes" : {
+            "id" : "foo"
+         }
+      },
+      "@text" : "bar"
+   }
+}
+]]></programlisting>
+
+            <para>
+                The idea is to use a special key value (@text) to store the text value of an XML element,
+                only if this element contains attributes or sub-elements (as in the previous examples).
+                If you have a simple XML element with only a text value, like this:
+            </para>
+
+            <programlisting language="php"><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<a>foo</a>
+]]></programlisting>
+
+            <para>
+                the JSON will be {"a":"foo"} that is quite intuitive, instead of {"a":{"@text":"foo"}}.
+            </para>
+    </sect3>
+</sect2>
 </sect1>
 <!--
 vim:se ts=4 sw=4 et:

+ 7 - 7
documentation/manual/pt-br/module_specs/Zend_Tool-Extending.xml

@@ -557,18 +557,18 @@ class My_Component_HelloProvider
             </sect4>
 
             <sect4 id="zend.tool.extending.zend-tool-framework.providers-and-manifests.advanced">
-                <title>Advanced Development Information</title>
+                <title>Informações sobre Desenvolvimento Avançado</title>
 
                 <sect5
                     id="zend.tool.extending.zend-tool-framework.providers-and-manifests.advanced.variables">
-                    <title>Passing Variables to a Provider</title>
+                    <title>Passando variáveis para o Provider</title>
 
                     <para>
-                        The above "Hello World" example is great for simple commands, but
-                        what about something more advanced? As your scripting and tooling
-                        needs grow, you might find that you need the ability to accept
-                        variables. Much like function signatures have parameters, your
-                        tooling requests can also accept parameters.
+                        O exemplo "Hello World" acima é ótimo para comandos simples, mas
+                        o que dizer sobre algo mais avançado? Como seu script e ferramentas
+                        necessidades crescem, você pode achar que você precisa da capacidade de aceitar
+                        variáveis. Bem como assinaturas de função têm parâmetros, a sua
+                        chamada para a ferramenta também podem aceitar parâmetros.
                     </para>
 
                     <para>

+ 62 - 0
documentation/manual/pt-br/tutorials/plugins-conclusion.xml

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 24249 -->
+<!-- Reviewed: no -->
+<sect1 id="learning.plugins.conclusion">
+    <title>Conclusão</title>
+
+    <para>
+        Compreender o conceito de caminhos prefixados e a sobrescrita em plugins existentes irá
+        ajudá-lo na compreensão de muitos componentes do framework. Plugins são usados ​​em
+        diversos lugares:
+    </para>
+
+    <itemizedlist>
+        <listitem>
+            <para>
+                <classname>Zend_Application</classname>: recursos (resources).
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <classname>Zend_Controller_Action</classname>: auxiliares de ação (action helpers).
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <classname>Zend_Feed_Reader</classname>: plugins.
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <classname>Zend_Form</classname>: elementos, filtros, validadores e decoradores.
+            </para>
+        </listitem>
+
+        <listitem>
+            <para>
+                <classname>Zend_View</classname>: auxiliares de visualização (view helpers).
+            </para>
+        </listitem>
+    </itemizedlist>
+
+    <para>
+        E vários outros lugares. Entenda esses conceitos para que você possa aproveitar a
+        capacidade extensiva do Zend Framework.
+    </para>
+
+    <note>
+        <title>Observação</title>
+
+        <para>
+            Veremos que <classname>Zend_Controller_Front</classname> possui um sistema de plugin -
+            mas não segue as orientações contidas neste tutorial. Os plugins registrados com o
+            front controller devem ser instanciados diretamente e registrados individualmente.
+            A razão para isto é que este sistema antecede qualquer outro plugin do framework,
+            e alterações nisso devem ser cuidadosamente ponderadas para garantir que os
+            plugins escritos por desenvolvedores continuem a funcionar corretamente.
+        </para>
+    </note>
+</sect1>

+ 3 - 3
documentation/manual/pt-br/tutorials/plugins-intro.xml

@@ -34,9 +34,9 @@
         <listitem>
             <para>
                 Qualquer coisa após o prefixo comum será considerado <emphasis>nome do
-                plugin</emphasis> ou <emphasis>nome abreviado</emphasis> (em oposição a "nome completo",
-                que é o nome inteiro da classe). Por exemplo, se o prefixo do plugin é
-                "<classname>Foo_View_Helper_</classname>", e o nome da classe é
+                plugin</emphasis> ou <emphasis>nome abreviado</emphasis> (em oposição a 
+                "nome completo", que é o nome inteiro da classe). Por exemplo, se o prefixo do
+                plugin é "<classname>Foo_View_Helper_</classname>", e o nome da classe é
                 "<classname>Foo_View_Helper_Bar</classname>", o nome do plugin será
                 "<classname>Bar</classname>".
             </para>

+ 159 - 0
documentation/manual/pt-br/tutorials/plugins-usage.xml

@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 24249 -->
+<!-- Reviewed: no -->
+<sect1 id="learning.plugins.usage">
+    <title>Utilizando Plugins</title>
+
+    <para>
+        Componentes que fazem uso de plugins normalmente utilizam
+        <classname>Zend_Loader_PluginLoader</classname>. Essa classe permite que você registre 
+        plugins especificando um ou mais "caminhos prefixados". O componente irá chamar ao método
+        de PluginLoader <methodname>load()</methodname>, passando o nome abreviado do plugin. 
+        O PluginLoader irá consultar cada caminho prefixado para saber se existe uma classe 
+        correspondente. Os caminhos prefixados são procurados na ordem LIFO (last in, first 
+        out - último a entrar, primeiro a sair), e com isso, as correspondências ocorrerão 
+        primeiramente com os últimos caminhos registrados - o que possibilita a você substituir
+        plugins já existentes.
+    </para>
+
+    <para>
+        Os exemplos seguintes deixarão isso mais claro.
+    </para>
+
+    <example id="learning.plugins.usage.basic">
+        <title>Exemplo básico de Plugin: Adicionando um caminho prefixado</title>
+
+        <para>
+            Neste exemplo, vamos supor que alguns validadores foram escritos e colocados no 
+            diretório <filename>foo/plugins/validators/</filename>, e que todas essas classes
+            possuem o prefixo "Foo_Validate_"; essas duas partes de informação formam o
+            "caminho prefixado".
+            Além disso, vamos supor que temos dois validadores, um chamado "Par" (garantindo que
+            um número seja par), e outro chamado "Dúzias" (garantindo que o número é um múltiplo
+            de 12). A árvore terá esta aparência:
+        </para>
+
+        <programlisting language="text"><![CDATA[
+foo/
+|-- plugins/
+|   |-- validators/
+|   |   |-- Par.php
+|   |   |-- Duzias.php
+]]></programlisting>
+
+        <para>
+            Agora, vamos informar uma instância de <classname>Zend_Form_Element</classname> 
+            deste caminho prefixado. O método <methodname>addPrefixPath()</methodname> da classe
+            <classname>Zend_Form_Element</classname> espera um terceiro argumento que indica
+            o tipo de plugin para o qual o caminho está sendo registrado, neste caso, é um
+            plugin "validador".            
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$element->addPrefixPath('Foo_Validate', 'foo/plugins/validators/', 'validate');
+]]></programlisting>
+
+        <para>
+            Agora podemos simplesmente informar ao elemento o nome abreviado dos validadores que
+            queremos usar. No exemplo seguinte, usaremos uma mistura de validadores padrão
+            ("NotEmpty", "Int") e validadores customizados ("Par", "Duzias"):
+        </para>
+
+        <programlisting language="php"><![CDATA[
+$element->addValidator('NotEmpty')
+        ->addValidator('Int')
+        ->addValidator('Par')
+        ->addValidator('Duzias');
+]]></programlisting>
+
+        <para>
+            Quando o elemento demanda validação, requisitará a classe de plugin através do
+            PluginLoader. Os dois primeiros validadores serão
+            <classname>Zend_Validate_NotEmpty</classname> e
+            <classname>Zend_Validate_Int</classname>, respectivamente; os dois seguintes serão
+            <classname>Foo_Validate_Par</classname> e <classname>Foo_Validate_Duzias</classname>,
+            respectivamente.
+        </para>
+    </example>
+
+    <note>
+        <title>O que acontece caso um plugin não seja encontrado?</title>
+
+        <para>
+            O que acontece se um plugin é solicitado, mas o PluginLoader é incapaz de encontrar 
+            uma classe correspondente? Por exemplo, no exemplo acima, se registrássemos o plugin 
+            "Bar", com o elemento, o que aconteceria?
+        </para>
+
+        <para>
+            O carregador de plugin irá procurar em cada caminho prefixado, verificando se há um 
+            arquivo correspondente ao nome do plugin. Se o arquivo não for encontrado, ele passa
+            ao próximo caminho prefixado.
+        </para>
+
+        <para>
+            Uma vez que a pilha de caminhos prefixados tenha se esgotado, caso nenhum arquivo 
+            tenha sido encontrado, será gerada uma exceção
+            <exceptionname>Zend_Loader_PluginLoader_Exception</exceptionname>.
+        </para>
+    </note>
+
+    <example id="learning.plugins.usage.override">
+        <title>Uso Intermediário do Plugin: Sobrescrevendo plugins existentes</title>
+
+        <para>
+            Uma característica do PluginLoader é que seu uso da pilha LIFO permite sobrescrever
+            plugins existentes, criando sua própria versão localmente com um caminho prefixado 
+            diferente e registrá-lo mais tarde na pilha.
+        </para>
+
+        <para>
+            Por exemplo, vamos considerar <classname>Zend_View_Helper_FormButton</classname>
+            (auxiliares de visualização - view helpers - são um tipo de plugin). Esse auxiliar de
+            visualização aceita três argumentos, um nome de elemento (também usado como seu 
+            identificador DOM), um valor (usado como o rótulo do botão) e um vetor opcional de 
+            atributos. O auxiliar gera marcação <acronym>HTML</acronym> para um elemento de 
+            inserção em formulário.
+        </para>
+
+        <para>
+            Digamos que você deseja que o auxiliar, ao invés de gerar um elemento
+            <constant>button</constant> em <acronym>HTML</acronym>; não quer que o auxiliar
+            gere um identificador DOM, mas sim utilizar o valor para um seletor de classe em CSS;
+            sem interesse em manipular atributos arbitrários.
+            Você pode fazer isso de algumas maneiras. Em todos os casos, você criaria sua própria
+            classe "auxiliar de visualização" que implementa o comportamento desejado;
+            a diferença está em como você iria nomeá-los e chamá-los.
+        </para>
+
+        <para>
+            Nosso primeiro exemplo será o de nomear o elemento com um nome único:
+            <classname>Foo_View_Helper_CssButton</classname>, o que implica no nome do plugin
+            "CssButton". Embora isso seja uma abordagem viável, apresenta várias questões: caso
+            você já tenha utilizado o auxiliar de visualização Button, você terá que refatorar;
+            em outro caso, se outro desenvolvedor começar a escrever código para a sua aplicação,
+            pode inadvertidamente usar o auxiliar de visualização Button em vez de seu novo
+            auxiliar.
+        </para>
+
+        <para>
+            Então, o melhor exemplo é usar o plugin de nome "Button", ficando o nome da classe
+            como <classname>Foo_View_Helper_Button</classname>. Em seguida, registrar o caminho
+            prefixado com a visualização (view):
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// Zend_View::addHelperPath() utiliza o PluginLoader; entretanto, inverte
+// os argumentos e fornece o valor padrão de "Zend_View_Helper" para o
+// prefixo de plugin.
+//
+// O código abaixo assume que sua classe está no diretório 'foo/view/helpers/'.
+$view->addHelperPath('foo/view/helpers', 'Foo_View_Helper');
+]]></programlisting>
+
+        <para>
+            Uma vez feito, em qualquer lugar que utilizar o auxiliar "Button" irá direcionar para
+            a sua classe <classname>Foo_View_Helper_Button</classname> customizada!
+        </para>
+    </example>
+</sect1>

+ 65 - 61
documentation/manual/pt-br/tutorials/quickstart-create-project.xml

@@ -14,67 +14,67 @@
         <para>
             A maneira mais fácil de obter o Zend Framework junto com uma pilha
             <acronym>PHP</acronym> completa é através da instalação do <ulink
-                url="http://www.zend.com/en/products/server-ce/downloads">Zend Server</ulink>. Zend
-            Server tem instaladores nativos para Mac OSX, Windows, Fedora Core e Ubuntu, bem como um
-            pacote de instalação universal compatível com a maioria das distribuições Linux.
+                url="http://www.zend.com/en/products/server-ce/downloads">Zend Server</ulink>. O
+            Zend Server tem instaladores nativos para Mac OSX, Windows, Fedora Core e Ubuntu, bem
+            como um pacote de instalação universal compatível com a maioria das distribuições Linux.
         </para>
 
         <para>
-            After you have installed Zend Server, the Framework files may be found
-            under <filename>/usr/local/zend/share/ZendFramework</filename> on Mac OSX and Linux,
-            and <filename>C:\Program Files\Zend\ZendServer\share\ZendFramework</filename> on
-            Windows. The <constant>include_path</constant> will already be configured to include
-            Zend Framework.
+            Depois que você tiver instalado o Zend Server, os arquivos Framework podem ser
+            encontrados em <filename>/usr/local/zend/share/ZendFramework</filename> no Mac OSX e
+            Linux, e em <filename>C:\Program Files\Zend\ZendServer\share\ZendFramework</filename> no
+            Windows. O <constant>include_path</constant> já estará configurado para incluir o Zend
+            Framework.
         </para>
 
         <para>
-            Alternately, you can <ulink url="http://framework.zend.com/download/latest">Download the
-            latest version of Zend Framework</ulink> and extract the contents; make a note of where
-            you have done so.
+            Alternadamente, você pode fazer o <ulink
+                url="http://framework.zend.com/download/latest">Download da última versão do Zend
+                Framework</ulink> e extrair os conteúdos; faça nota de onde você fez isso.
         </para>
 
         <para>
-            Optionally, you can add the path to the <filename>library/</filename> subdirectory of
-            the archive to your <filename>php.ini</filename>'s <constant>include_path</constant>
-            setting.
+            Opcionalmente, você pode adicionar o caminho do arquivo para o subdiretório
+            <filename>library/</filename> para a configuração <constant>include_path</constant> do
+            seu <filename>php.ini</filename>.
         </para>
 
         <para>
-            That's it! Zend Framework is now installed and ready to use.
+            É isso! O Zend Framework agora está instalado e pronto para uso.
         </para>
     </sect2>
 
     <sect2 id="learning.quickstart.create-project.create-project">
-        <title>Create Your Project</title>
+        <title>Crie seu Projeto</title>
 
         <note>
-            <title>zf Command Line Tool</title>
+            <title>Ferramenta de Linha de Comando zf</title>
 
             <para>
-                In your Zend Framework installation is a <filename>bin/</filename> subdirectory,
-                containing the scripts <filename>zf.sh</filename> and <filename>zf.bat</filename>
-                for Unix-based and Windows-based users, respectively. Make a note of the absolute
-                path to this script.
+                Na instalação do Zend Framework tem um subdiretório <filename>bin/</filename>,
+                contendo os scripts <filename>zf.sh</filename> e <filename>zf.bat</filename> para
+                usuários baseados em Unix e Windows, respectivamente. Faça nota do caminho absoluto
+                para este script.
             </para>
 
             <para>
-                Wherever you see references to the command <command>zf</command>, please substitute
-                the absolute path to the script. On Unix-like systems, you may want to use your
-                shell's alias functionality: <command>alias
+                Onde quer que você veja referências para o comando <command>zf</command>, por favor
+                substitua o caminho absoluto ao script. Nos sistemas baseados em Unix, você pode
+                querer usar a funcionalidade de apelido do shell: <command>alias
                     zf.sh=path/to/ZendFramework/bin/zf.sh</command>.
             </para>
 
             <para>
-                If you have problems setting up the <command>zf</command> command-line tool, please
-                refer to <link linkend="zend.tool.framework.clitool">the
-                    manual</link>.
+                Se você tiver problemas em configurar a ferramenta de linha de comando
+                <command>zf</command>, por favor dirija-se
+                <link linkend="zend.tool.framework.clitool"> ao manual</link>.
             </para>
         </note>
 
         <para>
-            Open a terminal (in Windows, <command>Start -> Run</command>, and then use
-            <command>cmd</command>). Navigate to a directory where you would like to start a
-            project. Then, use the path to the appropriate script, and execute one of the following:
+            Abra o terminal (no Windows, <command>Iniciar -> Executar</command>, e então use
+            <command>cmd</command>). Vá até o diretório onde você gostaria de iniciar um projeto.
+            Depois, use o caminho para o script apropriado, e execute um dos seguintes:
         </para>
 
         <programlisting language="shell"><![CDATA[
@@ -82,8 +82,8 @@
 ]]></programlisting>
 
         <para>
-            Running this command will create your basic site structure, including your initial
-            controllers and views. The tree looks like the following:
+            Executando este comando, será criada a estrutura básica do seu site, incluindo seus
+            controladores e visualizações iniciais. A árvore parece com o seguinte:
         </para>
 
         <programlisting language="text"><![CDATA[
@@ -116,12 +116,13 @@ quickstart
 ]]></programlisting>
 
         <para>
-            At this point, if you haven't added Zend Framework to your
-            <constant>include_path</constant>, we recommend either copying or symlinking it into
-            your <filename>library/</filename> directory. In either case, you'll want to either
-            recursively copy or symlink the <filename>library/Zend/</filename> directory of your
-            Zend Framework installation into the <filename>library/</filename> directory of your
-            project. On unix-like systems, that would look like one of the following:
+            Até este ponto, se você não adicionou o Zend Framework para o seu
+            <constant>include_path</constant>, nós recomendamos também copiar ou criar um link
+            simbólico em seu diretório <filename>library/</filename>. Em qualquer caso, você vai
+            querer copiar recursivamente ou simbolizar o diretório
+            <filename>library/Zend/</filename> da sua instalação Zend Framework no diretório
+            <filename>library/</filename> do seu projeto. Nos sistemas baseados em Unix, que
+            pareceriam como um dos seguintes:
         </para>
 
         <programlisting language="shell"><![CDATA[
@@ -133,24 +134,24 @@ quickstart
 ]]></programlisting>
 
         <para>
-            On Windows systems, it may be easiest to do this from the Explorer.
+            Nos sistemas Windows, pode ser mais fácil fazer isso do Explorer.
         </para>
 
         <para>
-            Now that the project is created, the main artifacts to begin understanding are the
-            bootstrap, configuration, action controllers, and views.
+            Agora que o projeto está criado, os artefatos principais para iniciar o entendimento
+            são a inicialização da aplicação, configuração, controladores de ação e vizualizações.
         </para>
     </sect2>
 
     <sect2 id="learning.quickstart.create-project.bootstrap">
-        <title>The Bootstrap</title>
+        <title>A Inicialização da Aplicação</title>
 
         <para>
-            Your <classname>Bootstrap</classname> class defines what resources and components to
-            initialize. By default, Zend Framework's <link linkend="zend.controller.front">Front
-                Controller</link> is initialized, and it uses the
-            <filename>application/controllers/</filename> as the default directory in which to look
-            for action controllers (more on that later). The class looks like the following:
+            A classe <classname>Inicialização da Aplicação</classname> define quais recursos e
+            componentes inicializar. Por padrão, o <link linkend="zend.controller.front">Controlador
+                Frontal</link> do Zend Framework é inicializado, e ele usa o
+            <filename>application/controllers/</filename> como diretório padrão o qual procura por
+            controladores de ação (mais sobre isso mais tarde). A classe parece com o seguinte:
         </para>
 
         <programlisting language="php"><![CDATA[
@@ -163,19 +164,22 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 
         <para>
             As you can see, not much is necessary to begin with.
+            
+            Como você pode ver, não é necessário muito para iniciar.
         </para>
     </sect2>
 
     <sect2 id="learning.quickstart.create-project.configuration">
-        <title>Configuration</title>
+        <title>Configuração</title>
 
         <para>
-            While Zend Framework is itself configurationless, you often need to configure your
-            application. The default configuration is placed in
-            <filename>application/configs/application.ini</filename>, and contains some basic
-            directives for setting your <acronym>PHP</acronym> environment (for instance, turning
-            error reporting on and off), indicating the path to your bootstrap class (as well as its
-            class name), and the path to your action controllers. It looks as follows:
+            Enquanto o Zend Framework é em si configuração, muitas vezes você precisa configurar
+            sua aplicação. A configuração padrão está localizada em
+            <filename>application/configs/application.ini</filename>, e contém algumas diretrizes
+            básicas para configurar seu ambiente <acronym>PHP</acronym> (por exemplo, transformar
+            relatório de erros dentro e fora), indicando o caminho para sua classe inicialização da
+            aplicação (tão bem como sua classe nome), e o caminho para seus controladores de ação.
+            Isso parece com o seguinte:
         </para>
 
         <programlisting language="ini"><![CDATA[
@@ -203,13 +207,13 @@ phpSettings.display_errors = 1
 ]]></programlisting>
 
         <para>
-            Several things about this file should be noted. First, when using
-            <acronym>INI</acronym>-style configuration, you can reference constants directly and
-            expand them; <constant>APPLICATION_PATH</constant> is actually a constant. Additionally
-            note that there are several sections defined: production, staging, testing, and
-            development. The latter three inherit settings from the "production" environment. This
-            is a useful way to organize configuration to ensure that appropriate settings are
-            available in each stage of application development.
+            Diversas coisas sobre este arquivo devem ser notadas. Primeiro, quando usar configuração
+            de estilo <acronym>INI</acronym>, você pode referenciar constantes diretamente e
+            expandi-las; <constant>APPLICATION_PATH</constant> é na verdade uma constante.
+            Adicionalmente note que há várias seções definidas: produção, encenação, teste, e
+            desenvolvimento. As últimas três herdam configurações do ambiente "produção". Este é um
+            modo eficiente de organizar configurações para assegurar que as configurações
+            apropriadas são válidas em cada estágio do desenvolvimento da aplicação.
         </para>
     </sect2>