diff --git a/prologo/versoes.md b/prologo/versoes.md
index 2dd01e6..c8f1996 100644
--- a/prologo/versoes.md
+++ b/prologo/versoes.md
@@ -76,7 +76,7 @@ time de desenvolvimento a lançar novos recursos incríveis e poderosos sem
introduzir alterações significativas.
Portanto, lançamos uma variedade de recursos robustos no Laravel 8 sem quebrar a
compatibilidade com versões anteriores, como suporte a testes paralelos, _kits_
-aprimorados do Breeze para iniciantes, melhorias no cliente HTTP e até mesmo
+para iniciantes aprimorados do Breeze, melhorias no cliente HTTP e até mesmo
novos tipos de relacionamento do Eloquent, como “tem um de muitos”.
Portanto, esse compromisso de lançar novos recursos excelentes durante a versão
@@ -88,7 +88,7 @@ O Laravel 9 continua as melhorias feitas no Laravel 8.x, introduzindo suporte
para componentes do Symfony 6.0, Symfony Mailer, Flysystem 3.0, saída aprimorada
do comando `route:list`, um _driver_ de banco de dados do Laravel Scout, nova
sintaxe de acessadores/modificadores do Eloquent, vinculações de rota implícitas
-via Enums, e uma variedade de outras correções de falhas e melhorias de
+via _enums_, e uma variedade de outras correções de falhas e melhorias de
usabilidade.
### PHP 8.0 {: #php-8-0 }
@@ -124,9 +124,9 @@ pela fachada `Storage`.
Revise o [guia de atualização](../upgrade.md#flysystem-3) para saber mais sobre
como garantir que sua aplicação seja compatível com Flysystem 3.x.
-### Acessadores / Modificadores Aprimorados do Eloquent
+### Acessadores e Modificadores Aprimorados do Eloquent
-_Os acessadores/modificadores aprimorados do Eloquent foram contribuídos por
+_Os acessadores e modificadores aprimorados do Eloquent foram contribuídos por
[Taylor Otwell](https://github.com/taylorotwell)_.
O Laravel 9.x oferece uma nova maneira de definir
@@ -148,7 +148,7 @@ public function setNameAttribute($value)
```
No entanto, no Laravel 9.x você pode definir um acessador e um modificador
-usando um método único e não prefixado, declarando um tipo de retorno
+usando um método único não prefixado, declarando um tipo de retorno
`Illuminate\Database\Eloquent\Casts\Attribute`:
```php
@@ -193,10 +193,10 @@ public function address(): Attribute
_A conversão em enums foi contribuída por
[Mohamed Said](https://github.com/themsaid)_.
-O Eloquent agora permite que você converta seus valores de atributos em
+O Eloquent agora permite que você converta os valores de seus atributos em
[_enums_ “apoiadas”](/docs/php/doc/8/language.enumerations.backed.html) do PHP.
Para fazer isso, você pode especificar o atributo e a _enum_ que deseja
-converter no array de propriedades `$casts` do seu modelo:
+converter no _array_ de propriedades `$casts` do seu modelo:
```php
use App\Enums\ServerStatus;
@@ -243,7 +243,7 @@ enum Category: string
}
```
-Você pode definir uma rota que só será invocada se o segmento da rota
+Você pode definir uma rota que só será invocada se o segmento de rota
`{category}` for `frutas` ou `pessoas`.
Caso contrário, uma resposta HTTP 404 será retornada:
@@ -305,84 +305,90 @@ Route::scopeBindings()->group(function () {
});
```
-### Controller Route Groups
+### Grupos de Rotas do Controlador
-_Route group improvements were contributed
-by [Luke Downing](https://github.com/lukeraymonddowning)_.
+_As melhorias no grupo de rotas foram contribuídas por
+[Luke Downing](https://github.com/lukeraymonddowning)_.
-You may now use the `controller` method to define the common controller for all
-of the routes within the group. Then, when defining the routes, you only need to
-provide the controller method that they invoke:
+Agora você pode usar o método `controller` para definir o controlador comum para
+todas as rotas dentro do grupo.
+Então, ao definir as rotas, você só precisa fornecer o método do controlador que
+elas invocam:
- use App\Http\Controllers\OrderController;
-
- Route::controller(OrderController::class)->group(function () {
- Route::get('/orders/{id}', 'show');
- Route::post('/orders', 'store');
- });
-
-
-
-### Full Text Indexes / Where Clauses
+```php
+use App\Http\Controllers\OrderController;
-_Full text indexes and "where" clauses were contributed
-by [Taylor Otwell](https://github.com/taylorotwell)
-and [Dries Vints](https://github.com/driesvints)_.
+Route::controller(OrderController::class)->group(function () {
+ Route::get('/orders/{id}', 'show');
+ Route::post('/orders', 'store');
+});
+```
-When using MySQL or PostgreSQL, the `fullText` method may now be added to column
-definitions to generate full text indexes:
+### Índices de Texto Completo e Cláusulas `WHERE`
- $table->text('bio')->fullText();
+_Os índices de texto completo e cláusulas `WHERE` foram contribuídos por
+[Taylor Otwell](https://github.com/taylorotwell) e
+[Dries Vints](https://github.com/driesvints)_.
-In addition, the `whereFullText` and `orWhereFullText` methods may be used to
-add full text "where" clauses to a query for columns that
-have [full text indexes](/docs/{{version}}/migrations#available-index-types).
-These methods will be transformed into the appropriate SQL for the underlying
-database system by Laravel. For example, a `MATCH AGAINST` clause will be
-generated for applications utilizing MySQL:
+Ao usar o MySQL ou PostgreSQL, o método `fullText` agora pode ser adicionado às
+definições de coluna para gerar índices de texto completo:
- $users = DB::table('users')
- ->whereFullText('bio', 'web developer')
- ->get();
+```php
+$table->text('bio')->fullText();
+```
-
+Além disso, os métodos `whereFullText` e `orWhereFullText` podem ser usados para
+adicionar cláusulas `WHERE` de texto completo a uma consulta para colunas que
+possuem [índices de texto completo](../migrations.md#available-index-types).
+Esses métodos serão transformados no SQL apropriado para o sistema de banco de
+dados subjacente pelo Laravel.
+Por exemplo, uma cláusula `MATCH AGAINST` será gerada para aplicações que
+utilizam o MySQL:
-### Laravel Scout Database Engine
+```php
+$users = DB::table('users')
+ ->whereFullText('bio', 'web developer')
+ ->get();
+```
-_The Laravel Scout database engine was contributed
-by [Taylor Otwell](https://github.com/taylorotwell)
-and [Dries Vints](https://github.com/driesvints)_.
+### Motor de Banco de Dados do Laravel Scout
-If your application interacts with small to medium sized databases or has a
-light workload, you may now use Scout's "database" engine instead of a dedicated
-search service such as Algolia or MeiliSearch. The database engine will use "
-where like" clauses and full text indexes when filtering results from your
-existing database to determine the applicable search results for your query.
+_O motor de banco de dados do Laravel Scout foi contribuído por
+[Taylor Otwell](https://github.com/taylorotwell) e
+[Dries Vints](https://github.com/driesvints)_.
-To learn more about the Scout database engine, consult
-the [Scout documentation](/docs/{{version}}/scout).
+Se a sua aplicação interage com bancos de dados de pequeno a médio porte ou tem
+uma carga de trabalho leve, agora você pode usar o motor de “banco de dados” do
+Scout em vez de um serviço de pesquisa dedicado, como Algolia ou MeiliSearch.
+O motor de banco de dados usará cláusulas `WHERE LIKE` e índices de texto
+completo ao filtrar os resultados do seu banco de dados existente para
+determinar os resultados de pesquisa aplicáveis à sua consulta.
-
+Para saber mais sobre o motor de banco de dados do Scout, consulte a
+[documentação do Scout](../scout.md).
-### Rendering Inline Blade Templates
+### Renderização de Modelos Blade em Linha
-_Rendering inline Blade templates was contributed
-by [Jason Beggs](https://github.com/jasonlbeggs). Rendering inline Blade
-components was contributed by [Toby Zerner](https://github.com/tobyzerner)_.
+_A renderização de modelos Blade em linha foi contribuída por
+[Jason Beggs](https://github.com/jasonlbeggs).
+A renderização de componentes Blade em linha foi contribuída por
+[Toby Zerner](https://github.com/tobyzerner)_.
-Sometimes you may need to transform a raw Blade template string into valid HTML.
-You may accomplish this using the `render` method provided by the `Blade`
-facade. The `render` method accepts the Blade template string and an optional
-array of data to provide to the template:
+Às vezes, você pode precisar transformar uma _string_ bruta de modelo Blade em
+HTML válido.
+Você pode fazer isso usando o método `render` fornecido pela fachada `Blade`.
+O método `render` aceita a _string_ do modelo Blade e um _array_ opcional de
+dados para fornecer ao modelo:
```php
use Illuminate\Support\Facades\Blade;
-return Blade::render('Hello, {{ $name }}', ['name' => 'Julian Bashir']);
+return Blade::render('Olá, {{ $name }}', ['name' => 'Julian Bashir']);
```
-Similarly, the `renderComponent` method may be used to render a given class
-component by passing the component instance to the method:
+Da mesma forma, o método `renderComponent` pode ser usado para renderizar um
+determinado componente de classe, passando a instância do componente para o
+método:
```php
use App\View\Components\HelloComponent;
@@ -390,57 +396,54 @@ use App\View\Components\HelloComponent;
return Blade::renderComponent(new HelloComponent('Julian Bashir'));
```
-
-
-### Slot Name Shortcut
+### Atalho para o Nome do _Slot_
-_Slot name shortcuts were contributed
-by [Caleb Porzio](https://github.com/calebporzio)._
+_O atalho para o nome do slot foi contribuído por
+[Caleb Porzio](https://github.com/calebporzio)._
-In previous releases of Laravel, slot names were provided using a `name`
-attribute on the `x-slot` tag:
+Nas versões anteriores do Laravel, os nomes dos _slots_ eram fornecidos usando
+um atributo `name` na _tag_ `x-slot`:
```blade
- Server Error
+ Erro no Servidor
- Whoops! Something went wrong!
+ Opa! Algo deu errado!
```
-However, beginning in Laravel 9.x, you may specify the slot's name using a
-convenient, shorter syntax:
+No entanto, a partir do Laravel 9.x, você pode especificar o nome do _slot_
+usando uma sintaxe mais curta e conveniente:
```xml
- Server Error
+ Erro no Servidor
```
-
-
-### Checked / Selected Blade Directives
+### Diretivas Blade `@checked` e `@selected`
-_Checked and selected Blade directives were contributed
-by [Ash Allen](https://github.com/ash-jc-allen)
-and [Taylor Otwell](https://github.com/taylorotwell)_.
+_As diretivas Blade `@checked` e `@selected` foram contribuídas por
+[Ash Allen](https://github.com/ash-jc-allen) e
+[Taylor Otwell](https://github.com/taylorotwell)_.
-For convenience, you may now use the `@checked` directive to easily indicate if
-a given HTML checkbox input is "checked". This directive will echo `checked` if
-the provided condition evaluates to `true`:
+Por conveniência, agora você pode usar a diretiva `@checked` para indicar
+facilmente se um determinado elemento HTML `checkbox` está “marcado”.
+Esta diretiva irá exibir `checked` se a condição fornecida for avaliada como
+`true`:
```blade
active)) />
+ name="active"
+ value="active"
+ @checked(old('active', $user->active)) />
```
-Likewise, the `@selected` directive may be used to indicate if a given select
-option should be "selected":
+Da mesma forma, a diretiva `@selected` pode ser usada para indicar se uma
+determinada opção do elemento HTML `select` deve ser “selecionada”:
```blade
```
-
-
-### Bootstrap 5 Pagination Views
-
-_Bootstrap 5 pagination views were contributed
-by [Jared Lewis](https://github.com/jrd-lewis)_.
+### Visualizações de Paginação do Bootstrap 5
-Laravel now includes pagination views built
-using [Bootstrap 5](https://getbootstrap.com/). To use these views instead of
-the default Tailwind views, you may call the paginator's `useBootstrapFive`
-method within the `boot` method of your `App\Providers\AppServiceProvider`
-class:
+_As visualizações de paginação do Bootstrap 5 foram contribuídas por
+[Jared Lewis](https://github.com/jrd-lewis)_.
- use Illuminate\Pagination\Paginator;
+O Laravel agora inclui visualizações de paginação construídas usando o
+[Bootstrap 5](https://getbootstrap.com/).
+Para usar essas visualizações em vez das visualizações padrão do Tailwind, você
+pode chamar o método `useBootstrapFive` do paginador dentro do método `boot` da
+sua classe `App\Providers\AppServiceProvider`:
- /**
- * Bootstrap any application services.
- *
- * @return void
- */
- public function boot()
- {
- Paginator::useBootstrapFive();
- }
-
-
-
-### Improved Validation Of Nested Array Data
-
-_Improved validation of nested array inputs was contributed
-by [Steve Bauman](https://github.com/stevebauman)_.
-
-Sometimes you may need to access the value for a given nested array element when
-assigning validation rules to the attribute. You may now accomplish this using
-the `Rule::forEach` method. The `forEach` method accepts a closure that will be
-invoked for each iteration of the array attribute under validation and will
-receive the attribute's value and explicit, fully-expanded attribute name. The
-closure should return an array of rules to assign to the array element:
-
- use App\Rules\HasPermission;
- use Illuminate\Support\Facades\Validator;
- use Illuminate\Validation\Rule;
+```php
+use Illuminate\Pagination\Paginator;
- $validator = Validator::make($request->all(), [
- 'companies.*.id' => Rule::forEach(function ($value, $attribute) {
- return [
- Rule::exists(Company::class, 'id'),
- new HasPermission('manage-company', $value),
- ];
- }),
- ]);
+/**
+ * Inicializa quaisquer serviços da aplicação.
+ *
+ * @return void
+ */
+public function boot()
+{
+ Paginator::useBootstrapFive();
+}
+```
-
+### Validação Aprimorada dos Dados de _Arrays_ Aninhados
-### Laravel Breeze API & Next.js
+_A validação aprimorada das entradas de _arrays_ aninhados foi contribuída por
+[Steve Bauman](https://github.com/stevebauman)_.
-_The Laravel Breeze API scaffolding and Next.js starter kit was contributed
-by [Taylor Otwell](https://github.com/taylorotwell)
-and [Miguel Piedrafita](https://twitter.com/m1guelpf)_.
+Às vezes, você pode precisar acessar o valor de um determinado elemento de
+_array_ aninhado ao atribuir regras de validação ao atributo.
+Agora você pode fazer isso usando o método `Rule::forEach`.
+O método `forEach` aceita uma _clojure_ que será invocada para cada iteração do
+atributo do _array_ sob validação e receberá o valor do atributo e o nome do
+atributo explícito e totalmente expandido.
+A _clojure_ deve retornar um _array_ de regras para atribuir ao elemento do
+_array_:
-The [Laravel Breeze](/docs/{{version}}/starter-kits#breeze-and-next) starter kit
-has received an "API" scaffolding mode and
-complimentary [Next.js](https://nextjs.org) [frontend implementation](https://github.com/laravel/breeze-next).
-This starter kit scaffolding may be used to jump start your Laravel applications
-that are serving as a backend, Laravel Sanctum authenticated API for a
-JavaScript frontend.
+```php
+use App\Rules\HasPermission;
+use Illuminate\Support\Facades\Validator;
+use Illuminate\Validation\Rule;
+
+$validator = Validator::make($request->all(), [
+ 'companies.*.id' => Rule::forEach(function ($value, $attribute) {
+ return [
+ Rule::exists(Company::class, 'id'),
+ new HasPermission('manage-company', $value),
+ ];
+ }),
+]);
+```
-
+### API do Laravel Breeze e Next.js
-### Improved Ignition Exception Page
+_A geração automática de código da API do Laravel Breeze e o kit para iniciantes
+do Next.js foram contribuídos por
+[Taylor Otwell](https://github.com/taylorotwell) e
+[Miguel Piedrafita](https://twitter.com/m1guelpf)_.
-_Ignition is developed by [Spatie](https://spatie.be/)._
+O _kit_ para iniciantes do [Laravel Breeze](../starter-kits.md#breeze-and-next)
+recebeu um modo de geração automática de código da API e uma
+[implementação de _front-end_](https://github.com/laravel/breeze-next)
+[Next.js](https://nextjs.org) gratuita.
+Esta geração automática de código do _kit_ para iniciantes pode ser usada para
+iniciar suas aplicações Laravel que estão servindo como _back-end_ de API
+autenticada do Laravel Sanctum para um _front-end_ JavaScript.
-Ignition, the open source exception debug page created by Spatie, has been
-redesigned from the ground up. The new, improved Ignition ships with Laravel 9.x
-and includes light / dark themes, customizable "open in editor" functionality,
-and more.
+### Página de Exceção Aprimorada da Ignition
-
-
-
+_A Ignition é desenvolvida por [Spatie](https://spatie.be/)._
-
+Ignition, a página de depuração de exceções de código aberto criada por Spatie,
+foi redesenhada do zero.
+A nova e aprimorada Ignition vem com o Laravel 9.x e inclui temas claro e
+escuro, funcionalidade personalizável de “abrir no editor” e muito mais.
-### Improved `route:list` CLI Output
+
-_Improved `route:list` CLI output was contributed
-by [Nuno Maduro](https://github.com/nunomaduro)_.
+### Saída Aprimorada de `route:list` na CLI
-The `route:list` CLI output has been significantly improved for the Laravel 9.x
-release, offering a beautiful new experience when exploring your route
-definitions.
+_A saída aprimorada de `route:list` na CLI foi contribuída por
+[Nuno Maduro](https://github.com/nunomaduro)_.
-
-
-
+A saída de `route:list` na CLI foi significativamente melhorada para o
+lançamento do Laravel 9.x, oferecendo uma bela nova experiência ao explorar suas
+definições de rota.
-
+
-### Test Coverage Using Artisan `test` Command
+### Cobertura de Testes Usando o Comando `test` do Artisan
-_Test coverage when using the Artisan `test` command was contributed
-by [Nuno Maduro](https://github.com/nunomaduro)_.
+_A cobertura de testes ao usar o comando `test` do Artisan foi contribuída por
+[Nuno Maduro](https://github.com/nunomaduro)_.
-The Artisan `test` command has received a new `--coverage` option that you may
-use to explore the amount of code coverage your tests are providing to your
-application:
+O comando `test` do Artisan recebeu uma nova opção `--coverage` que você pode
+usar para explorar a quantidade de cobertura de código que seus testes estão
+fornecendo à sua aplicação:
```shell
php artisan test --coverage
```
-The test coverage results will be displayed directly within the CLI output.
+Os resultados da cobertura do teste serão exibidos diretamente na saída da CLI.
-
-
-
+
-In addition, if you would like to specify a minimum threshold that your test
-coverage percentage must meet, you may use the `--min` option. The test suite
-will fail if the given minimum threshold is not met:
+Além disso, se desejar especificar um limite mínimo que sua porcentagem de
+cobertura de teste deve atingir, você poderá usar a opção `--min`.
+O conjunto de testes falhará se o limite mínimo fornecido não for atingido:
```shell
php artisan test --coverage --min=80.3
```
-
-
-
-
-
-
-### Soketi Echo Server
+
-_The Soketi Echo server was developed
-by [Alex Renoki](https://github.com/rennokki)_.
+### Servidor Echo Soketi
-Although not exclusive to Laravel 9.x, Laravel has recently assisted with the
-documentation of Soketi, a [Laravel Echo](/docs/{{version}}/broadcasting)
-compatible Web Socket server written for Node.js. Soketi provides a great, open
-source alternative to Pusher and Ably for those applications that prefer to
-manage their own Web Socket server.
+_O servidor Echo Soketi foi desenvolvido por
+[Alex Renoki](https://github.com/rennokki)_.
-For more information on using Soketi, please consult
-the [broadcasting documentation](/docs/{{version}}/broadcasting)
-and [Soketi documentation](https://docs.soketi.app/).
+Embora não seja exclusivo do Laravel 9.x, o Laravel recentemente ajudou na
+documentação do Soketi, um servidor WebSocket compatível com
+[Laravel Echo](../broadcasting.md) escrito para Node.js.
+O Soketi fornece uma excelente alternativa de código aberto ao Pusher e Ably
+para aquelas aplicações que preferem gerenciar seu próprio servidor WebSocket.
-
+Para obter mais informações sobre o uso do Soketi, consulte a
+[documentação de transmissão](../broadcasting.md) e a
+[documentação do Soketi](https://docs.soketi.app/).
-### Improved Collections IDE Support
+### Suporte Aprimorado a Coleções no IDE
-_Improved collections IDE support was contributed
-by [Nuno Maduro](https://github.com/nunomaduro)_.
-
-Laravel 9.x adds improved, "generic" style type definitions to the collections
-component, improving IDE and static analysis support. IDEs such
-as [PHPStorm](https://blog.jetbrains.com/phpstorm/2021/12/phpstorm-2021-3-release/#support_for_future_laravel_collections)
-or static analysis tools such as [PHPStan](https://phpstan.org) will now better
-understand Laravel collections natively.
-
-
-
-
+_O suporte aprimorado a coleções no IDE foi contribuído por
+[Nuno Maduro](https://github.com/nunomaduro)_.
-
+O Laravel 9.x adiciona definições aprimoradas de tipo no estilo “genérico” ao
+componente de coleções, melhorando o suporte ao IDE e à análise estática.
+IDEs como
+[PHPStorm](https://blog.jetbrains.com/phpstorm/2021/12/phpstorm-2021-3-release/#support_for_future_laravel_collections)
+ou ferramentas de análise estática como [PHPStan](https://phpstan.org) agora
+entenderão melhor as coleções do Laravel nativamente.
-### New Helpers
+
-Laravel 9.x introduces two new, convenient helper functions that you may use in
-your own application.
+### Novas Funções Auxiliares
-
+O Laravel 9.x introduz duas novas funções auxiliares convenientes que você pode
+usar na sua aplicação.
#### `str`
-The `str` function returns a new `Illuminate\Support\Stringable` instance for
-the given string. This function is equivalent to the `Str::of` method:
+A função `str` retorna uma nova instância `Illuminate\Support\Stringable` para
+a _string_ fornecida.
+Esta função é equivalente ao método `Str::of`:
- $string = str('Taylor')->append(' Otwell');
-
- // 'Taylor Otwell'
+```php
+$string = str('Taylor')->append(' Otwell');
-If no argument is provided to the `str` function, the function returns an
-instance of `Illuminate\Support\Str`:
+// 'Taylor Otwell'
+```
- $snake = str()->snake('LaravelFramework');
+Se nenhum argumento for fornecido para a função `str`, a função retornará uma
+instância de `Illuminate\Support\Str`:
- // 'laravel_framework'
+```php
+$snake = str()->snake('LaravelFramework');
-
+// 'laravel_framework'
+```
#### `to_route`
-The `to_route` function generates a redirect HTTP response for a given named
-route, providing an expressive way to redirect to named routes from your routes
-and controllers:
+A função `to_route` gera uma resposta HTTP de redirecionamento para uma
+determinada rota nomeada, fornecendo uma maneira expressiva de redirecionar para
+rotas nomeadas a partir de suas rotas e controladores:
- return to_route('users.show', ['user' => 1]);
+```php
+return to_route('users.show', ['user' => 1]);
+```
-If necessary, you may pass the HTTP status code that should be assigned to the
-redirect and any additional response headers as the third and fourth arguments
-to the to_route method:
+Se necessário, você pode passar o código de _status_ HTTP que deve ser atribuído
+ao redirecionamento e quaisquer cabeçalhos de resposta adicionais como o
+terceiro e quarto argumentos para o método `to_route`:
- return to_route('users.show', ['user' => 1], 302, ['X-Framework' => 'Laravel']);
+```php
+return to_route('users.show', ['user' => 1], 302, ['X-Framework' => 'Laravel']);
+```