*[Injeção de Dependência](concept-di-container.md)
Trabalhando com Banco de Dados
------------------------------
*[Data Access Objects (DAO, Objeto de Acesso a Dados)](db-dao.md) - Estabelecendo uma conexão com o Banco de Dados, consultas básicas, transações e manipulação do esquema
*[Query Builder (Construtor de Consulta)](db-query-builder.md) - Consultando o banco de dados usando uma camada de abstração simples
*[Active Record](db-active-record.md) - Sobre "Active Record ORM" (Mapeamento Objeto-Relacional), recuperando e manipulando registros e definindo relacionamentos
*[Migrations (Migrações)](db-migrations.md) - Controle de versão do bancos de dados em um ambiente de desenvolvimento em equipe
***TBD**[Sphinx](db-sphinx.md)
***TBD**[Redis](db-redis.md)
***TBD**[MongoDB](db-mongodb.md)
***TBD**[ElasticSearch](db-elastic-search.md)
Coletando Dados de Usuários
---------------------------
*[Criando um Formulário](input-forms.md)
*[Validação de Dados](input-validation.md)
***TBD**[Uploading de Arquivos](input-file-upload.md)
***TBD**[Coletando Dados de Múltiplos Modelos](input-multiple-models.md)
Exibindo Dados
---------------
***TBD**[Formatando Dados](output-formatting.md)
***TBD**[Paginação](output-pagination.md)
***TBD**[Ordenação](output-sorting.md)
*[Data Providers (Provedores de Dados)](output-data-providers.md)
O Yii tem tradução para vários idiomas, incluindo o Português do Brasil. Existem duas áreas onde a contribuição para a tradução é muito bem-vindo. A primeira é a documentação e a segunda são as mensagens do framework.
Mensagens do Framework
----------------------
O Framework tem dois tipos de mensagens: as exceções que são destinadas para o desenvolvedor e nunca são traduzidas, e as mensagens que são realmente visíveis para o usuário final, tais como erros de validação.
Os passos para iniciar a tradução de mensagens são:
1. Com o `console` entre na pasta `yii2/framework` e execute o seguinte comando: `yii message/extract messages/config.php`.
2. As mensagens a serem traduzidas encontram-se no seguinte caminho: `framework/messages/pt-BR/yii.php`. Certifique-se de salvar o arquivo com a codificação UTF-8 (Plain).
3. Após realizar as devidas traduções o passo seguinte é enviar as suas modificações para o respositório do Yii no github. [Veja aqui](https://github.com/yiisoft/yii2/blob/master/docs/internals/git-workflow.md) os passos necessários para o envio dos arquivos.
Para manter as traduções sempre atualizadas, certifique-se que seu fork do Yii esteja com a última versão. Em seguida, basta executar o comando `yii message/extract messages/config.php` novamente e o mesmo irá adicionar automaticamente as novas mensagens a serem traduzidas.
No arquivo de tradução cada elemento do array representa a tradução de uma mensagem. Sendo que a "chave" representa o texto a ser traduzido e o "valor" a sua tradução. Se o "valor" estiver vazio, a mensagem é considerada como não traduzida. As mensagens que não precisam de tradução terão seus valores cercadas por um par de '@@'. Atentar para algumas mensagens que estão no formato de plural, para isso verifique a [seção i18n do guia](../guide/i18n.md) para mais detalhes.
Documentação
------------
As traduções da documentação para o português do Brasil devem ficar dentro do diretório `docs/` seguindo o padrão `docs/<original>-<pt-BR>` onde `<original>` corresponde ao nome da pasta tal como `guide` ou `internals`.
Com a tradução do documento concluída, você pode obter um diff das mudanças desde a última tradução, para isso, execute o seguinte comando a partir do diretório `build/` do framework:
Antes de iniciar seus trabalhos de tradução certifique-se que o arquivo em qual irá trabalhar esteja disponível para ser traduzido. Para isso, acesse a [planilha no Google Docs](https://docs.google.com/spreadsheets/d/17JOpAjkJz2YZCjD6gWaUx32wskGRB-2CdFbed111iys/edit?usp=sharing).
Regras e Observações
--------------------
- Alguns termos não tem uma tradução muito boa para o português, em casos como esse convém escrever a palavra ou expressão em inglês primeiro em seguida sua possível tradução em parênteses.
- Se você acredita que alguma parte de sua tradução não faz sentido e você não tem certeza de como traduzi-la corretamente. Coloque este bloco de texto em itálico, isso ajudará na revisão.
- Para reduzir erros de digitação você pode utilizar um editor de texto como o MS Word para escrever pequenos blocos textos e em seguida copiar estes blocos para um editor visual de Markdown como o http://dillinger.io/.
Convenções Para Tradução
------------------------
- action — ação
- active record — sem tradução
- cache — sem tradução
- CamelCase — sem tradução
- controller — controller (controlador)
- eager loading — eager loading (carregamento na inicialização)