Opa, seja vindo bem vindo(a) ao meu blog!
Nesse post nós vamos criar do zero uma aplicação com suporte à vários idiomas utilizando o framework PHP Laravel , de forma bem simples e prática.
Ao criar projetos com Laravel o idioma padrão que definido é o Inglês, porém o próprio framework lhe permitir customizar as mensagens padrões e até mesmo criar suas próprias mensagens com versões traduzidas.
Utilizando esse recurso, eu criei um repositório com as mensagens padrões do Laravel, já traduzidas para português, no meu perfil do Github e nós iremos reutilizar esses arquivos. Você pode verificar o repositório clicando aqui.
Então vamos pôr a mão na massa, ou melhor, no código. 🙂
Primeiro vamos criar um novo projeto Laravel, utilizando o composer:
$ composer create-project --prefer-dist laravel/laravel laravel-multi-languages
Agora que já temos o nosso projeto iniciado, vamos acessar a pasta criada, e clonar o repositório com as tradução, salvando os arquivos no diretório de traduções do nosso projeto (/resources/lang):
$ cd laravel-multi-languages $ git clone https://github.com/rafaellaurindo/laravel-pt-br ./resources/lang/pt-br/
Agora temos a pasta resources/lang/pt-br/ com os arquivos de traduções importados no projeto, com os seguintes arquivos:

Precisamos agora definir o idioma padrão da nossa aplicação como português(pt-br).
Para fazer isso, vamos alterar o locale padrão do nosso projeto, que fica no arquivo config/app.php.
Procure pela seguinte configuração:
'locale' => 'en',
Como podemos ver, por padrão o Laravel utiliza o Inglês(en) como idioma da aplicação, então vamos alterar português(pt-br).
'locale' => 'pt-br',
Pronto!
Nossa aplicação já está configurada com português como idioma padrão, e assim suportando múltiplos idiomas. 🙂
Agora, iremos alterar a página inicial para exibirmos uma mensagem de boas vindas, e em seguida exibir essa mensagem tanto em inglês como português.
Vamos alterar a página inicial para exibirmos uma mensagem de boas vindas, e em seguida exibir essa mensagem tanto em inglês como português.
Na view welcome.blade.php, vamos alterar o conteúdo da div com classe .content, eu vou inserir o seguinte o código:
<div class="content"> <div class="title m-b-md"> Seja bem vindo! </div> <h3>Siga-me nas redes sociais :)</h3> </div>
Iniciando o servidor, utilizando o artisan, devemos ver a página inicial da seguinte forma:
$ php artisan serve

Vamos agora criar as traduções para os textos exibidos nessa página.
A pasta resources/lang/{idioma}/ é onde, por padrão, no Laravel são salvos os arquivos com as traduções dos textos da nossa aplicação, cada cada arquivo deverá retornar um array no formato chave => valor, sendo a chave uma identificação do texto, e o valor representando o texto traduzido para o idioma.
Então vamos lá, crie o arquivo messages.php nas pastas resources/lang/pt-br/ e resources/lang/en/ com o seguinte código:
<?php // resouces/lang/pt-br/messages.php return [ 'welcome' => 'Seja bem vindo(a)', 'follow_me' => 'Siga-me nas redes sociais :)', ];
<?php // resouces/lang/en/messages.php return [ 'welcome' => 'Welcome', 'follow_me' => 'Follow me on social media :)', ];
O Blade, template engine utilizada no Laravel, possui uma diretiva para fazermos o uso dos arquivos de traduções, que é a diretiva @lang. Ela deve ser utilizada no formato @lang(‘nomeDoArquivoDeTraducao.chave’), no caso da mensagem de bem vindo, devemos utilizar @lang(‘messages.welcome’).
Agora que já temos as versões traduzidas do nosso texto para inglês e português, e já sabemos como utilizá-las, vamos alterar nossa view, para buscar a tradução desses arquivos:
<div class="content"> <div class="title m-b-md"> @lang('messages.welcome')! </div> <h3>@lang('messages.follow_me').</h3> </div>
Agora finalmente nossa aplicação está utilizando as traduções para as nossas mensagens.
Acessando novamente a página inicial, você não perceberá nenhuma mudança, visto que o Blade já está utilizando as traduações para os textos. Porém, só estão sendo exibindas as mensagens em português, visto que definimos ele como idioma padrão.
Vamos então alterar o idioma padrão da aplicação, novamente para o inglês, parar ver se realmente a tradução em inglês será exibida.
// arquivo: config/app.php // altere de "pt-br" para "en" 'locale' => 'en',
E então, essa é a página inicial em inglês:

Finalmente temos nossa aplicação suportando vários idiomas. 🚀
No próximo tutorial, eu vou mostrar como você pode fazer com que as traduções sejam alteradas de forma dinâmica, sem precisar alterar as configurações do projeto.
Se você gostou desse post, deixe aqui nos comentários como ele te ajudou.🙂