Internacionalização de Aplicações Laravel 5.x

Eduardo Abreu Dos Santos
2 min readDec 30, 2015

--

Olá galera, tudo bom?
Um dos requisitos de todas as aplicações da empresa onde trabalho é que a mesma seja disponível aos clientes em diversas línguas. Neste tutorial irei descrever como internacionalizar sua aplicação Laravel.

Caso não tenha visto, eu ensinei num post anterior como instalar o Laravel 5.2.

Os arquivos

Os arquivos de internacionalização ficam localizados em resources/lang/, dentro deste diretório a outras pastas referentes a cada língua, exemplo: en, pt-br, fr. Dentro do diretório referente a cada língua iremos criar nossos arquivos identificadores para as traduções. Podemos criar esse arquivo com base em qualquer nome, módulos, páginas, componentes. Lembre de sempre manter um padrão.

Estes são arquivos PHP com uma chamada de retorno a um array com chaves/valores, como abaixo.

Lembre-se de criar as mesmas chaves para todas as línguas que você queira disponibilizar.

Exemplo, caso queira disponibilizar sua aplicação em Inglês e em Português você terá a seguinte estrutura:

No exemplo acima, os arquivos common.php possuem as mesmas chaves porém com seus valores alterados correspondentes as suas línguas.

Configurando o idioma da aplicação

A configuração do idioma padrão de sua aplicação fica localizada em config/app.php na chave ‘fallback_locale’. Enquanto não for setada uma língua a fallback_locale será utilizada.

Setando uma locale

Para setar uma locale, você precisará utilizar o método setLocale que pertence a facade App. Veja um exemplo nas rotas.

O trecho acima irá fazer com que quando acessarmos /bemvindo/en nossa aplicação sete a locale para “en” e nossa página seja exibida em inglês.

Usando as traduções

Para usar as traduções em nossa aplicação, é necessário utilizar uma função helper chamada trans(). Como parâmetro este método recebe uma string que identifica onde está armazenada o texto com a tradução, normalmente esta string é composta da seguinte forma: arquivo.chave.

Exemplo:

Basicamente o método irá verificar qual locale está setada em sua aplicação, digamos que “en” esteja setada, o Laravel irá dentro do diretório resources/lang/en/, irá pegar o arquivo e retornar o valor referente a chave passada. Simples, não?

E na view ?

Usando o blade como engine de template, podemos utilizar a seguinte syntax:

Trabalhando com Plurais

O Laravel possui um poderoso jeito de trabalhar com plurais, basta na hora informar os valores das chaves utilizar um pipe “|”.

Exemplo Básico:

Há também uma forma de exibir uma string de acordo com determinada faixa de valor, como no exemplo abaixo:

Utilizando as traduções do Laravel no Client-side (Javascript)

Caso precise incluir a tradução já feita no laravel em seu script javascript, utilize o package https://github.com/rmariuzzo/Laravel-JS-Localization.

Ele basicamente converte os arquivos de tradução para um único arquivo JS e lhe fornece uma api simples para utilização dentro de seus scripts. Veja o exemplo abaixo:

Bem pessoal, acho que é isso. Qualquer dúvida, sugestão ou crítica é só comentar.

Regards!

--

--