1.首页(可以在我的资源拿到)
2.实现步骤
2.1. 首页被thymeleaf全面接管
2.2. 新建i18n文件夹,在该文件夹下新建三个文件
2.3. 填写相关属性
2.4. 要让配置文件起效,要在application.properties配置文件添加 spring.messages.basename=i18n.login
2.5. 到这里只是有了属性的国际化切换,但是功能还没有开启,如点击中文(带参数超链接)显示中文,点击英文显示英文,所以我们要写个配置类来实现 LocaleResolver
自定义国际化类
package com.kuang.config;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
public class MyLocaleResolver implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest request) {
// 解析请求
String language = request.getParameter("l");
// 返回默认的地区解析
Locale locale = Locale.getDefault();
if(!StringUtils.isEmpty(language)){
// 如果请求的链接携带了国际化参数 "zh_CN"
String[] split = language.split("_");
// 语言,国家
locale = new Locale(split[0], split[1]);
}
return locale;
}
// 此方法返回值为空,不用管
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
}
}
2.6. 以上的都是对WebMvc的扩展,所有我们书写一个自定义的配置类(一个项目只需写一个)来扩展WebMvc,此时我们只需把我们写好的国际化类注入到WebMvc中即可,相当于组件
自定义WebMvc扩展类
package com.kuang.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
//自定义国际化组件
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}