本次是IDEA中演示
首先在resources中创建如图所示文件,本次分为"中英"两种形式
login.properties文件写事务(本人写的是)
login.username=用户名
login.password=密码
login.rememberme=请记住
login_en_US.properties文件写
login.username=Username
login.password=password
login.rememberme=Remember me
login_zh_CN.properties中写
login.username=用户名
login.password=密码
login.rememberme=请记住
再在‘application.properties’全局配置中配置:
#配置国际化文件基础名
spring.messages.basename=i18n.login
以上就绪后 就再写个变更语言的类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.thymeleaf.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
@Configuration//1定义该类是配置类
public class MyLocalResovel implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest httpServletRequest) {
//2.本方法用于构建本地化语言环境
String lang=httpServletRequest.getParameter("lang");//3.代本地语言参数lang的请求lang=zh_CN
String headLang=httpServletRequest.getHeader("Accept-Language");//4.Accept-Language=en-US
Locale locale=null;//5.用来封装本地化的返回参数
if(!StringUtils.isEmpty(lang))//6.手动本地化参数不为空
{
String [] split=lang.split("_");
locale=new Locale(split[0],split[1]);
}else {//7.系统请求自动的
String [] split=headLang.split("-");
locale=new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
}
@Bean//8.把该配置文件配置成容器的Bean,就可以起作用。
public LocaleResolver localeResolver(){
return new MyLocalResovel();
}
}
在需要语言转变页面通过传递 lang='zh_CN’或lang='en_US’来控制语言的反转
如图 调用了前面所配置的语言
图中/getComment是我定义的请求的接口
上面的那个类 就是通过传递的lang的值,进行的设置判断
如果出现乱码 就如图设置
我的效果图 如图
感谢你的阅读