主要是参考了雷神的国际化配置使用的教程
一、使用步骤
1.在使用的页面中进行参数的传递
前端代码:
通过thymeleaf模板引擎
<a class="btn btn-sm" th:href="@{/index.html(l='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/index.html(l='en_US')}">English</a>
url一般是?后面带参数 , 例如?l=zh_CN , thymeleaf 可以使用括号
2.写一个类继承于 LocaleResolver
public class MyLocaleResolver implements LocaleResolver (){}
重写 LocaleResolver 中的 resolveLocale 方法
public class MyLocaleResolver implements LocaleResolver {
/**
* 解析请求
*/
@Override
public Locale resolveLocale(HttpServletRequest httpServletRequest) {
//获取参数 l
String l = httpServletRequest.getParameter("l");
// 如果没有Locale , 那就是用默认的
Locale locale = Locale.getDefault();
//判断参数是否为空
if(!StringUtils.isEmpty(l)){
//将其分割, 例如 zh_CN 前半部分是语言 , 后半部分是国家
String[] split = l.split("_");
locale = new Locale(split[0], split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
}
}
将其在SpringMvc的配置文件中注入到容器中
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
/**
* 将其放到Spring容器中
*/
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}
3. 静态文件书写
需要在Resource 文件夹下面 创建一个i18n文件夹 ,然后再创建想要配置的Properties文件,这边显示的是登陆下过,所以命名如下:
输入相对应的中英文:
4 Appplication配置文件的位置
spring.messages.basename=i18n.login
此时点击 图中的中文英文就会切换了