springboot——thymleaf项目,使用i18n语言包。在其中一个页面进行选择中文或者英文时,其他的页面也都响应的更改。
@Controller
public class LocaleController {
@GetMapping(value = "/locale")
public String localeHandler(HttpServletRequest request) {
String lang = request.getHeader("lang");
if (lang!=null){
// 设置中文环境
if("zh_CN".equals(lang)){
Locale locale = new Locale("zh", "CN");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale);
}
// 设置英文环境
else if("en_US".equals(lang)){
Locale locale = new Locale("en", "US");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale);
}
// 使用之前的语言环境
else {
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, LocaleContextHolder.getLocale());
}
}
String lastUrl = request.getHeader("referer");
return "redirect:" + lastUrl;
}
}