1、配置国际化语言类
/**
* 配置国际化语言
* */
@Configuration
public class LocaleConfig {
/**
* 默认解析器 其中locale表示默认语言
* */
@Bean
public LocaleResolver localeResolver() {
AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
localeResolver.setDefaultLocale(Locale.CHINA);
return localeResolver;
}
/**
* 默认拦截器 其中lang表示切换语言的参数名
* */
@Bean
public WebMvcConfigurer localeInterceptor() {
return new WebMvcConfigurer() {
@Override
public void addInterceptors(InterceptorRegistry registry) {
LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();
localeInterceptor.setParamName("Accept-Language");
registry.addInterceptor(localeInterceptor);
}
};
}
}
注:Accept-Language与前端传的参数保持一致,值与properties文件名后缀保持一致
2、yml文件配置
spring:
messages:
basename: i18n/messages
注:i18n/messages其中i18n为包名,messages代表文件的头部
3、新建properties文件
注:文件名“XX_”头部和包名与yml文件中配置的保持一致,文件名“_XX”与传的参数Accept-Language的值保持一致
4、使用提示信息
(1)常量类配置提醒信息
public interface I18nConst {
String CUSTOMER_ID_ERR = "5001";
}
(2)properties对应文件中配置5001对应的提示信息
messages_cn.properties文件
5001=ID错误
messages_us.properties文件
5001=The id error!
(3) 业务层调用常量类提示信息
ResponseResult.error(01, I18nConst.CUSTOMER_ID_ERR), null);