Localizar uma aplicação é a simples arte de fazer com que usuários de vários idiomas possa usar sua aplicação. Tal qual dublar um filme ou série, vai além de apenas traduzir um Yes para um Sim, é tornar a aplicação utilizável.
Mas o foco aqui vai ser o Laravel. Não vou ficar explicando sobre o Laravel ou seu mérito de ser ou não uma boa escolha para se desenvolver, se resolver o problema do cliente de uma forma profissional tá valendo.
O Laravel já vem preparado para que voce mude a sua linguagem principal, e o Blade já tem Helpers específicos para isso
composer create-project --prefer-dist laravel/laravel localizandoaplicacao
O projeto irá ser criado com a versão corrente do Laravel criando uma estrutura como a apresentada na imagem abaixo:
Você pode simplesmente criar uma pasta chamada pt_BR dentro de resources/lang ( como no exemplo abaixo ) , criando um arquivo chamado messages.php
E alterar o arquivo config/app.php na linha 83 de
para
e no arquivo resources/views/welcome.blade.php altere de
para
Mas isso apenas tornara a tradução estática, ou seja, apenas uma linguagem novamente.
Vamos criar uma rota que receba como parâmetro o idioma e assim sete o mesmo para a aplicação
A parte ruim dessa forma é que teremos que pensar em todas as rotas e sempre lembrar de sempre adicionar o parâmetro de idioma e o controle do mesmo a cada rota criada, o que pode tornar o desenvolvimento mais complexo e facilitar os erros. Então vamos deixar a estrutura do Laravel cuidar disso para a gente.
Após isso vamos criar um middleware, que nada mais é um programa, que vai ser requisitado sempre que a aplicação mudar de rota, e desta forma a aplicação ficará responsável por tomar conta da gestão do idioma.
php artisan make:middleware LocalizandoAplicacao
Depois temos que alterar o arquivo app/Http/Kernel.php na sessão middlewareGroups para adicionar o middleware que criamos para ser executado.
Agora temos que criar os links para que o usuário possa escolher o idioma que irá utilizar durante seu acesso ao sistema.
Vamos alterar novamente o arquivo resources/views/welcome.blade.php que vai ficar assim
Claro que existem outras abordagens em relação à adição e gestão de idiomas no Laravel, mas espero ter ajudado.