SpringBoot + Thymeleaf + i18n (Internacionalização)

Olá novamente.

Esta semana eu tive que estudar como implementar i18n em uma aplicação de CRM em Spring Boot + Thymeleaf que estou desenvolvendo. O Spring Boot realmente facilita muito a configuração mas achei muitas informações desencontradas na Web a respeito do assunto e, por isto, decidi criar mais um tutorial aqui.

Como sempre, você pode encontrar o projeto completo no Github em: https://github.com/mtrojahn/springboot-thymeleaf-i18n.

Vamos começar pelo pom.xml

Application.groovy

Como você pode ver, meu Application.groovy é basicamente o padrão de inicialização de uma aplicação Spring. Apenas configurei o @ComponentScan para buscar no meu pacote com o HelloWorldController.groovy mas poderia ter facilmente deixado os 2 arquivos no mesmo pacote para evitar esta configuração. Mas vamos fazer as coisas organizadamente, certo? 🙂

Meu HelloWorldController.groovy é muito simples, apenas direciona a URL /helloworld para sua respectiva view.

E aqui está view:

Aqui cabe uma breve explicação. Na tag <html> eu inseri a seguinte instrução do Thymeleaf: th:lang=”${#locale.language}”. Isto fará com que o Thymeleaf, na hora da renderização, insira corretamente a linguagem que foi detectada e assim você evita que seu navegador cause algum problema inesperado com a exibição da página.

Mais abaixo você verá a o #{helloworld}. As tags #{} do Thymeleaf são referentes a mensagens que ele vai buscar nos arquivos de i18n. Você não precisa se preocupar em configurar nada disto pois o Spring Boot já fará isto por você.

message.properties

O message.properties é o arquivo que terá as mensagens para o idioma padrão do seu site. Qualquer outro idioma deve ter seu próprio arquivo com o nome devidamente formatado.

message_pt_BR.properties

Se você usa uma IDE como o Intellij IDEA, lidar com estes arquivos é muito fácil. A IDE entende este tipo de arquivo e os agrupa para edição em lote.

Para que suas mensagens sejam encontradas, configure seu application.yml.

Com tudo isto feito, basta rodar seu projeto. No meu caso, meu sistema operacional está em Inglês e tenho Português como linguagem adicional no Firefox. Por padrão, quando eu acessar a aplicação ela me exibirá o texto em Inglês, o código resultante será este:

Mas se eu mudar a linguagem default do meu navegador, um simples refresh já altera a linguagem da aplicação e o resultado é este:

Para alterar a linguagem no Firefox entre em Opções / Conteúdo e clique em Idiomas:

Espero ter ajudado! Se precisar, deixe seu comentário abaixo e até a próxima!

 

Você pode gostar...

Deixe uma resposta

%d blogueiros gostam disto: