diff --git a/docs/guide-pt-BR/db-migrations.md b/docs/guide-pt-BR/db-migrations.md
index d2e6d416ec6..b45d45ca144 100644
--- a/docs/guide-pt-BR/db-migrations.md
+++ b/docs/guide-pt-BR/db-migrations.md
@@ -35,6 +35,10 @@ Todas estas ferramentas são acessíveis através do comando `yii migrate`. Nest
em detalhes como realizar várias tarefas usando estas ferramentas. Você também pode descobrir como usar
cada ferramenta através do comando de ajuda `yii help migrate`.
+> Observação: os migrations (migrações) podem afetar não só o esquema do banco de dados,
+ mas também ajustar os dados existentes para se conformar ao novo esquema, como
+ criar novas hierarquias de RBAC ou limpar dados de cache.
+
## Criando Migrações
diff --git a/docs/guide-pt-BR/intro-upgrade-from-v1.md b/docs/guide-pt-BR/intro-upgrade-from-v1.md
index 2695016094f..811334d7c68 100644
--- a/docs/guide-pt-BR/intro-upgrade-from-v1.md
+++ b/docs/guide-pt-BR/intro-upgrade-from-v1.md
@@ -120,8 +120,8 @@ $object = Yii::createObject([
], [$param1, $param2]);
```
-Mais detalhes sobre configurações podem ser encontradas na seção
-[Configurações de Objetos](concept-configurations.md).
+Mais detalhes sobre configurações podem ser encontradas na seção de
+[Configurações](concept-configurations.md).
Eventos
diff --git a/docs/guide-pt-BR/structure-applications.md b/docs/guide-pt-BR/structure-applications.md
index 4ccc6050b34..a70d09c0349 100644
--- a/docs/guide-pt-BR/structure-applications.md
+++ b/docs/guide-pt-BR/structure-applications.md
@@ -67,7 +67,7 @@ caracteres alfanuméricos ao especificar um ID de aplicação.
A propriedade [[yii\base\Application::basePath|basePath]] especifica o diretório
raiz de um sistema. É o diretório que contém todo o código fonte protegido de um
sistema. Sob este diretório, você normalmente verá subdiretórios tais como
-`models`, `views`, `controllers`, que contém o código fonte correspondente ao
+`models`, `views` e `controllers`, que contém o código fonte correspondente ao
padrão MVC.
Você pode configurar a propriedade [[yii\base\Application::basePath|basePath]]
@@ -92,7 +92,7 @@ configuradas porque elas variam em diferentes aplicações.
Esta propriedade permite que você defina um conjunto de
[aliases](concept-aliases.md) em termos de um array. As chaves do array representam
-os nomes de alias, e os valores são as definições correspondentes. Por exemplo,
+os nomes de alias, e os valores são as definições correspondentes. Por exemplo:
```php
[
@@ -103,8 +103,8 @@ os nomes de alias, e os valores são as definições correspondentes. Por exempl
]
```
-Essa propriedade está disponível de modo que você possa definir aliases em termos
-de configurações da aplicação ao invés de chamadas ao método [[Yii::setAlias()]].
+Esta propriedade é fornecida para que você possa definir aliases na configuração
+da aplicação ao invés de chamar o método [[Yii::setAlias()]].
#### [[yii\base\Application::bootstrap|bootstrap]]
@@ -124,7 +124,7 @@ seguintes formatos:
- um array de configuração.
- uma função anônima que cria e retorna um componente.
-Por exemplo,
+Por exemplo:
```php
[
@@ -168,7 +168,7 @@ também será chamado.
Outro exemplo prático está na configuração do [Template Básico de Projetos](start-installation.md),
onde os módulos `debug` e `gii` estão configurados como componentes de inicialização
-quando a aplicação está rodando no ambiente de desenvolvimento,
+quando a aplicação está rodando no ambiente de desenvolvimento:
```php
if (YII_ENV_DEV) {
@@ -196,7 +196,7 @@ em modo de manutenção e precisa tratar todas as requisições através de uma
A configuração é um array, cujo primeiro elemento especifica a rota para a action.
O restante dos elementos do array (pares de chave-valor) especificam os parâmetros
-que devem ser atrelados à action. Por exemplo,
+que devem ser atrelados à action. Por exemplo:
```php
[
@@ -213,7 +213,7 @@ que devem ser atrelados à action. Por exemplo,
Essa é a propriedade mais importante. Ela permite que você registre uma lista
de componentes chamados [componentes de aplicação](structure-application-components.md)
-que você pode usar em outros lugares. Por exemplo,
+que você pode usar em outros lugares. Por exemplo:
```php
[
@@ -284,7 +284,7 @@ diretório correspondente ao namespace. Por exemplo, dado um ID de controller
É importante que as classes completas e qualificadas possam ser [carregadas automaticamente](concept-autoloading.md)
e que o namespace das suas classes de controller correspondam ao valor dessa
-propriedade. Doutra forma, você receberia um erro "Página Não Encontrada" ao
+propriedade. Doutra forma, você receberia um erro de "Página Não Encontrada" ao
acessar a aplicação.
Caso você queira quebrar a convenção conforme descrito acima, você pode configurar
@@ -318,7 +318,7 @@ Essa propriedade especifica os [módulos](structure-modules.md) que uma aplicaç
contém.
A propriedade recebe um array de classes de módulos ou [configurações](concept-configurations.md)
-com as chaves do array sendo os IDs dos módulos. Por exemplo,
+com as chaves do array sendo os IDs dos módulos. Por exemplo:
```php
[
@@ -401,7 +401,7 @@ Essa propriedade é disponibilizada como uma maneira alternativa de definir a
timezone do PHP em tempo de execução. Ao confiugrar essa propriedade, você está
essencialmente chamando a função
[date_default_timezone_set()](http://php.net/manual/en/function.date-default-timezone-set.php)
-do PHP. Por exemplo,
+do PHP. Por exemplo:
```php
[
@@ -413,8 +413,8 @@ do PHP. Por exemplo,
#### [[yii\base\Application::version|version]]
Essa propriedade especifica a versão da aplicação. Seu valor padrão é `'1.0'`.
-Você nem sempre precisa configurar essa propriedade se nenhuma parte do seu código
-a está usando.
+Você não precisa configurar esta propriedade se nenhuma parte do seu código
+estiver utilizando-a.
### Propriedades Úteis
@@ -581,7 +581,7 @@ A sintaxe de uso de `on eventName` é descrita na seção
Alternativamente, você pode vincular manipuladores de evento durante o
[processo de inicialização](runtime-bootstrapping.md) após a instância da aplicação
-ser criada. Por exemplo,
+ser criada. Por exemplo:
```php
\Yii::$app->on(\yii\base\Application::EVENT_BEFORE_REQUEST, function ($event) {
@@ -622,7 +622,7 @@ O nome do evento é `beforeAction`.
O parâmetro do evento é uma instância de [[yii\base\ActionEvent]]. Um manipulador
de evento pode definir o valor da propriedade [[yii\base\ActionEvent::isValid]]
-como `false` para interromper a execução da action. Por exemplo,
+como `false` para interromper a execução da action. Por exemplo:
```php
[
@@ -649,7 +649,7 @@ O nome do evento é `afterAction`.
O parâmetro do evento é uma instância de [[yii\base\ActionEvent]]. Através da
propriedade [[yii\base\ActionEvent::result]], um manipulador de evento pode
-acessar ou modificar o resultado da action. Por exemplo,
+acessar ou modificar o resultado da action. Por exemplo:
```php
[
diff --git a/docs/guide-pt-BR/structure-controllers.md b/docs/guide-pt-BR/structure-controllers.md
index a8412715f3f..36fbaff198e 100644
--- a/docs/guide-pt-BR/structure-controllers.md
+++ b/docs/guide-pt-BR/structure-controllers.md
@@ -119,7 +119,7 @@ Por exemplo, você pode usar o `article` como o ID do um controller para tratar
dados de artigos.
Por padrão, os IDs dos controllers devem conter apenas esses caracteres:
-letras inglesas em caixa baixa, números, underscores (underline), traços e barras.
+letras inglesas em caixa baixa, números, underscores (underline), hífens e barras.
Por exemplo, `article` e `post-comment` são ambos IDs de controllers válidos,
enquanto `article?`, `PostComment`, `admin\post` não são.
@@ -134,22 +134,22 @@ barras são usadas para separar os níveis dos subdiretórios (por exemplo, `pan
### Nomenclatura da Classe do Controller
Os nomes da classes dos controllers podem ser derivadas dos IDs dos controllers
-de acordo com as seguintes regras:
+de acordo com as seguintes procedimentos:
-* Colocar em caixa alta a primeira letra de cada palavra separadas por traço.
- Observe que se o ID do controller possuir barras, a regra é aplicada apenas na
- parte após a última barra no ID.
-* Remover os traços e substituir todas as barras por barras invertidas.
-* Adicionar `Controller` como sufixo.
-* E preceder ao [[yii\base\Application::controllerNamespace|namespace controller]].
+1. Colocar em caixa alta a primeira letra de cada palavra separadas por traço.
+ Observe que se o ID do controller possuir barras, a regra é aplicada apenas na
+ parte após a última barra no ID.
+2. Remover os traços e substituir todas as barras por barras invertidas.
+3. Adicionar `Controller` como sufixo.
+4. Preceder ao [[yii\base\Application::controllerNamespace|namespace do controller]].
Segue alguns exemplos, assumindo que o [[yii\base\Application::controllerNamespace|namespace do controller]]
tenha por padrão o valor `app\controllers`:
-* `article` deriva-se de `app\controllers\ArticleController`;
-* `post-comment` deriva-se de `app\controllers\PostCommentController`;
-* `admin/post-comment` deriva-se de `app\controllers\admin\PostCommentController`;
-* `adminPanels/post-comment` deriva-se de `app\controllers\adminPanels\PostCommentController`.
+* `article` torna-se `app\controllers\ArticleController`;
+* `post-comment` torna-se `app\controllers\PostCommentController`;
+* `admin/post-comment` torna-se `app\controllers\admin\PostCommentController`;
+* `adminPanels/post-comment` torna-se `app\controllers\adminPanels\PostCommentController`.
As classes dos controllers devem ser [autoloadable](concept-autoloading.md).
Por esta razão, nos exemplos anteriores, o controller `article` deve ser salvo
@@ -165,11 +165,11 @@ categorias e não quiser usar [módulos](structure-modules.md).
Você pode configurar um [[yii\base\Application::controllerMap|mapeamento de controllers]]
para superar as barreiras impostas pelos IDs de controllers e pelos nomes de classes
-descritos acima. Isto é útil principalmente quando quiser esconder alguns controllers
+descritos acima. Isto é útil principalmente quando quiser esconder controllers
de terceiros na qual você não tem controle sobre seus nomes de classes.
Você pode configurar o [[yii\base\Application::controllerMap|mapeamento de controllers]]
-na [configuração da aplicação](structure-applications.md#application-configurations) como o seguinte exemplo:
+na [configuração da aplicação](structure-applications.md#application-configurations). Por exemplo:
```php
[
@@ -194,8 +194,7 @@ Quando uma requisição não especificar uma [rota](#id-da-rota), será utilizad
rota especificada pela propriedade.
Para as [[yii\web\Application|aplicações Web]], este valor é `'site'`, enquanto
para as [[yii\console\Application|aplicações console]] é `help`. Portanto, se uma
-URL `http://hostname/index.php` for usada, significa que o controller `site` será
-usado nesta requisição.
+URL for `http://hostname/index.php`, o controller `site` será utilizado nesta requisição.
Você pode alterar o controller padrão como a seguinte [configuração da aplicação](structure-applications.md#application-configurations):
@@ -240,13 +239,13 @@ um recurso. Por esta razão, os IDs das ações geralmente são verbos, tais com
Por padrão, os IDs das ações devem conter apenas esses caracteres: letras inglesas
em caixa baixa, números, underscores (underline) e traços. Os traços em um ID da
-ação são usados para separar palavras. Por exemplo, `view`, `update2`, `comment-post`
-todos são IDs válidos, enquanto `view?`, `Update` não são.
+ação são usados para separar palavras. Por exemplo, `view`, `update2` e `comment-post`
+são IDs válidos, enquanto `view?` e `Update` não são.
Você pode criar ações de duas maneiras: ações inline (em sequência) e
ações standalone (autônomas). Uma ação inline é definida pelo método
de uma classe controller, enquanto uma ação standalone é uma classe que estende de
-[[yii\base\Action]] ou de suas classes filhas. As ações inline exigem menos esforço
+[[yii\base\Action]] ou de uma classe-filha. As ações inline exigem menos esforço
para serem criadas e muitas vezes as preferidas quando não se tem a intenção de
reutilizar estas ações. Ações standalone, por outro lado, são criados principalmente
para serem utilizados em diferentes controllers ou para serem distribuídos como
@@ -258,11 +257,11 @@ para serem utilizados em diferentes controllers ou para serem distribuídos como
As ações inline referem-se a os chamados métodos de ação, que foram descritos anteriormente.
Os nomes dos métodos de ações são derivadas dos IDs das ações de acordo com os
-seguintes critérios:
+seguintes procedimentos:
-* Colocar em caixa alta a primeira letra de cada palavra do ID da ação;
-* Remover os traços;
-* Adicionar o prefixo `action`.
+1. Colocar em caixa alta a primeira letra de cada palavra do ID da ação;
+2. Remover os traços;
+3. Adicionar o prefixo `action`.
Por exemplo, `index` torna-se `actionIndex` e `hello-world` torna-se `actionHelloWorld`.
@@ -280,7 +279,7 @@ lugares ou se deseja distribuir uma ação, deve considerar defini-la como uma *
### Ações Standalone
Ações standalone são definidas por classes de ações que estendem de [[yii\base\Action]]
-ou de suas classes filhas.
+ou de uma classe-filha.
Por example, nas versões do Yii, existe a [[yii\web\ViewAction]] e a [[yii\web\ErrorAction]], ambas são ações standalone.
Para usar uma ação standalone, você deve *mapear as ações* sobrescrevendo o método
@@ -457,7 +456,7 @@ ao seguinte ciclo de vida para concluir a requisição:
* Se o ID da ação for encontrada para corresponder a um método de ação, uma ação inline será criada;
* Caso contrário, uma exceção [[yii\base\InvalidRouteException]] será lançada.
3. De forma sequencial, o controller chama o método `beforeAction()` da aplicação, o módulo (se o controller pertencer a um módulo) e o controller.
- * Se uma das chamadas retornar false, o restante dos métodos `beforeAction()` serão ignoradas e a execução da ação será cancelada.
+ * Se uma das chamadas retornar false, o restante dos métodos subsequentes `beforeAction()` serão ignoradas e a execução da ação será cancelada.
* Por padrão, cada método `beforeAction()` desencadeia a execução de um evento chamado `beforeAction` na qual você pode associar a uma função (handler).
4. O controller executa a ação:
* Os parâmetros da ação serão analizados e populados a partir dos dados obtidos pela requisição;
@@ -466,14 +465,14 @@ ao seguinte ciclo de vida para concluir a requisição:
6. A aplicação obterá o resultado da ação e irá associá-lo na [resposta](runtime-responses.md).
-## Best Practices
+## Boas Práticas
Em uma aplicação bem projetada, frequentemente os controllers são bem pequenos na
qual cada ação possui poucas linhas de códigos.
Se o controller for um pouco complicado, geralmente indica que terá que refaze-lo
e passar algum código para outro classe.
-Em resumo, os controllers:
+Segue algumas boas práticas em destaque. Os controllers:
* podem acessar os dados de uma [requisição](runtime-requests.md);
* podem chamar os métodos dos [models](structure-models.md) e outros componentes
diff --git a/docs/guide-pt-BR/structure-entry-scripts.md b/docs/guide-pt-BR/structure-entry-scripts.md
index ca718e2e619..2984cfc7417 100644
--- a/docs/guide-pt-BR/structure-entry-scripts.md
+++ b/docs/guide-pt-BR/structure-entry-scripts.md
@@ -3,7 +3,7 @@ Scripts de Entrada
Scripts de entrada são o primeiro passo no processo de inicialização da aplicação.
Uma aplicação (seja uma aplicação Web ou uma aplicação console) possui um único script de
-entrada. Os usuários finais fazem requisições a scripts de entrada que criam
+entrada. Os usuários finais fazem requisições nos scripts de entrada que criam
as instâncias da aplicação e redirecionam as requisições para elas.
Os scripts de entrada para aplicações Web devem estar armazenados em diretórios