首先将文件全部设置utf-8
1、我们在resources资源文件下新建一个i18n目录,存放三个配置文件:默认语言,中文,英文
2、建立一个login.properties文件,还有一个login_zh_CN.properties;发现IDEA自动识别了它会自动帮我们创建Resources bundle ‘login’
3、然后我们右键点击new==add。。。。
4、点击+,【注意】输入en_US代表英语,不是login_en_US,我从这因为命名失误,导致结果不生效,翻车了
5、一定要看好这三个文件名字,点击Resource bundle 然后点击+,三个输入框就是我们需要中英文转换的文本。
6、如图我使用的是thymeleaf模板,message 要加#{},根据上面我们自定义的名字赋值。
注意:下面的两个a标签是跳转翻译地区请求。
7、我们需要手写一个config,根据传来的参数进行地区解析。
//可以在链接上携带区域信息
public class MyLocaleResolver implements LocaleResolver{
//解析请求
@Override
public Locale resolveLocale(HttpServletRequest request) {
String language = request.getParameter("l");
Locale locale = Locale.getDefault(); // 如果没有获取到就使用系统默认的
//如果请求链接不为空
if (language!=null){
//分割请求参数 zh_CN en_US
String[] split = language.split("_");
//语言,地区
locale = new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
}
}
8、然后在MyConfigurer 类中将它注入到bean。交给springboot管理
@Configuration
public class MyConfigurer implements WebMvcConfigurer {
//将自定义判断 国际语言的config注入spring
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}
9、效果图