完整可复制代码请移步: http://blog.maptoface.com/post/224
resources下面创建三个properties文件:messages.properties messages_en_US.properties messages_zh_CN.properties
I18nConfig.java
MyLocaleResolver.java
controller
package com.asdf.base64.base64.commmon;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.support.RequestContextUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
@Controller
@RequestMapping("/")
public class CommonController {
private static Logger logger = LoggerFactory.getLogger(I18nConfig.class);
@RequestMapping("/goindex")
public String gopublic(){
return "index";
}
@GetMapping("/")
public ModelAndView language(HttpServletRequest request, HttpServletResponse response, String language){
Locale locale= request.getLocale();
logger.error(locale.toString());
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
//默认页面
if(locale.toString().equals("zh_CN") && language==null){
localeResolver.setLocale(request, response, Locale.CHINA);
}else{
if(language!=null){
language=language.toLowerCase();
logger.info("language:"+language);
if(language==null||language.equals("")){
return new ModelAndView("index");
}else{
if(language.equals("zh_cn")){
localeResolver.setLocale(request, response, Locale.CHINA);
}else if(language.equals("en")){
localeResolver.setLocale(request, response, Locale.US);
}else{
localeResolver.setLocale(request, response, Locale.CHINA );
}
}
}else{
localeResolver.setLocale(request, response, Locale.US);
}
}
return new ModelAndView("redirect:/goindex");
}
}
页面:
<a href="/?language=en">English(US)</a>
<a href="/?language=zh_cn">简体中文</a>
[[#{home}]]
<h1 class="h3 mb-3 font-weight-normal" th:text="#{home}">Please sign in</h1>
页面是基于thymeleaf的,如果不懂请搜索站内thymeleaf配置教程。
效果:
火狐浏览器about:config,修改这个为en
自动切换为英文。
点击切换也实现了