Exemplo de Internacionalização (i18n) e Localização (L10n) do Spring MVC
Introdução
A internacionalização (i18n) e a localização (L10n) são elementos essenciais para o desenvolvimento de aplicações web que atendam a usuários globais. Elas permitem que o conteúdo de uma aplicação seja adaptado a diferentes idiomas, regiões e culturas, garantindo uma experiência de usuário personalizada e acessível.
O Spring MVC oferece suporte abrangente para i18n e L10n por meio de vários mecanismos e anotações. Neste artigo, forneceremos um exemplo prático de como implementar a internacionalização e a localização em um aplicativo Spring MVC.
últimas postagens
Internacionalização (i18n)
A internacionalização envolve preparar o aplicativo para suportar vários idiomas. Isso inclui fornecer mensagens, rótulos e outros textos em vários idiomas para que os usuários possam visualizar o conteúdo em seu próprio idioma preferido.
Usando o MessageSource
O Spring MVC usa o MessageSource
para resolver mensagens com base em um código de mensagem e locale. Para configurar o MessageSource
, é necessário criar um arquivo de propriedades para cada idioma suportado. O formato do arquivo de propriedades é o seguinte:
message.<código_da_mensagem> = <texto_da_mensagem>
Por exemplo, para criar arquivos de propriedades para inglês (en) e português (pt):
messages_en.properties
message.hello = Hello, world!
messages_pt.properties
message.hello = Olá, mundo!
Em seguida, o MessageSource
precisa ser configurado na classe de configuração da aplicação:
java
@Configuration
public class AppConfig {
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
return messageSource;
}
}
Obtendo Mensagens Internacionalizadas
Para obter mensagens internacionalizadas em uma página JSP, é possível usar a tag <spring:message>
:
jsp
<spring:message code="hello" />
Usando Anotações
Também é possível usar anotações para internacionalizar mensagens em classes do controlador:
java
@Controller
public class MyController {
@Autowired
private MessageSource messageSource;
@RequestMapping("/")
public String index(Locale locale) {
String message = messageSource.getMessage("hello", null, locale);
return "index";
}
}
Localização (L10n)
A localização leva a internacionalização um passo adiante, adaptando o conteúdo a diferentes regiões e culturas. Isso inclui fatores como preferências de formato de data, moeda e unidades de medida.
Usando o LocaleResolver
O LocaleResolver
é responsável por determinar o locale atual para a solicitação. O Spring MVC fornece vários implementações de LocaleResolver
, como SessionLocaleResolver
e CookieLocaleResolver
.
Para configurar um LocaleResolver
, é necessário registrar um bean na classe de configuração da aplicação:
java
@Configuration
public class AppConfig {
@Bean
public LocaleResolver localeResolver() {
return new SessionLocaleResolver();
}
}
Usando Formatadores de Data e Moeda
O Spring MVC fornece formatadores de data e moeda que podem ser usados para formatar valores de acordo com o locale atual. Por exemplo, para formatar uma data usando o formatador padrão:
java
SimpleDateFormat dateFormat = new SimpleDateFormat();
dateFormat.setTimeZone(TimeZone.getTimeZone(locale.getCountry()));
Conclusão
A internacionalização e a localização são essenciais para o desenvolvimento de aplicações web globalizadas. O Spring MVC oferece suporte abrangente para ambos os recursos, permitindo que os desenvolvedores criem aplicativos que atendam a usuários de diferentes idiomas, regiões e culturas. Ao implementar a i18n e a L10n, as aplicações podem se tornar mais acessíveis e envolventes para um público mais amplo.
FAQs
1. Qual é a diferença entre internacionalização e localização?
A internacionalização prepara um aplicativo para suportar vários idiomas, enquanto a localização adapta o conteúdo a regiões e culturas específicas.
2. Como obter mensagens internacionalizadas no Spring MVC?
Use a tag <spring:message>
em páginas JSP ou anotações em classes do controlador.
3. Como definir o locale atual?
Use um LocaleResolver
para determinar o locale com base na sessão ou cookies.
4. Como formatar valores de data e moeda de acordo com o locale?
Use os formatadores de data e moeda fornecidos pelo Spring MVC.
5. Quais são os benefícios da internacionalização e localização?
Eles tornam os aplicativos mais acessíveis e envolventes para usuários globais, melhorando a experiência do usuário e expandindo o alcance do mercado.
6. Como implementar a i18n e a L10n em um aplicativo Spring MVC existente?
Siga as etapas descritas no exemplo fornecido neste artigo.
7. Quais são as melhores práticas para internacionalização e localização?
Use códigos de mensagem claros, mantenha as mensagens concisas e teste completamente em todos os idiomas e regiões de destino.
8. Existem outras bibliotecas ou frameworks para i18n e L10n no Spring?
Sim, existem bibliotecas como o Spring Boot Internationalization e o i18n4Spring que podem fornecer recursos adicionais.