Springboot 国际化的使用
1.1、在resources类路径下创建i18n 文件夹,然后里面创建 message.properties message_zh_CN.properties message_en_US.properties 资源文件
![]()
1.2、在application.yml配置文件中添加国际化的配置参数
spring:
messages:
basename: i18n.message
1.3、创建一个工具类 I8nMessageUtil用于获取国际化的信息
@Component
public class I8nMessageUtil {
@Autowired
private MessageSource messageSource;
public String getMessage(String code, String... args) {
return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
}
}
1.4、在Controller类型做测试 这种是通过浏览器 设置语言切换
@Autowired
private MessageSource messageSource; //注入messageSource
message = messageSource.getMessage("dict.query.success",null,LocaleContextHolder.getLocale());
1.5、自定义切换语言 英文:http://localhost:8042/dict/list/1/10?locale=en_US 中文:http://localhost:8042/dict/list/1/10?locale=zh_CN
1.6、创建 WebMvcConfig 进行自定义配置
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
//添加语言切换拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LocaleChangeInterceptor()).addPathPatterns("/**");
}
//使用cookie存储本地语言
// http://localhost:8042/dict/list/1/10?locale=en_US http://localhost:8042/dict/list/1/10?locale=zh_CN
@Bean
public LocaleResolver localeResolver() {
CookieLocaleResolver localeResolver = new CookieLocaleResolver();
localeResolver.setCookieMaxAge(60*60*24*30);
localeResolver.setCookieName("locale");
return localeResolver;
}
}
1.7、在Controller类型做测试 这是自定义设置语言切换
@Autowired
private I8nMessageUtil i8nMessageUtil; //注入工具类
String message = i8nMessageUtil.getMessage("dict.query.success", null); //测试获取语言信息