国际化是一个使应用程序适应不同语言和区域而无需对源代码进行工程更改的过程。 用它来说,国际化是对本地化的准备。
在本章中,将详细了解如何在Spring Boot中实现国际化。
依赖
需要Spring Boot Starter Web和Spring Boot Starter Thymeleaf依赖来在Spring Boot中开发Web应用程序。
Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Gradle
compile('org.springframework.boot:spring-boot-starter-web')
compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf'
LocaleResolver
需要确定应用程序的默认Locale。在Spring Boot应用程序中添加LocaleResolver bean。
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
sessionLocaleResolver.setDefaultLocale(Locale.US);
return sessionLocaleResolver;
}
LocaleChangeInterceptor
LocaleChangeInterceptor
用于根据添加到请求的语言参数的值更改新的Locale
。
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("language");
return localeChangeInterceptor;
}
为了起到这种作用,需要将LocaleChangeInterceptor
添加到应用程序的注册表拦截器中。 配置类应扩展WebMvcConfigurerAdapter
类并覆盖addInterceptors()
方法。
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInte