springboot实现语言切换
1.编写国际化配置文件 配置文件中定义与语言相关的数据 例如login_en_US.properties
#英文 login.btn=Sign In login.password=Password login.Remember=Remember Me login.tip=Please sign in login.username=UserName
2.页面使用thymeleaf的#{}获取国际化内容 例如th:text="#{login.tip}"
<h1 class="h3 mb-3 font-weight-normal" th:text="#{login.tip}">Please sign in</h1>
3.页面传递信息 传递语言和国家信息(Locale构造方法的参数)
<a class="btn btn-sm" th:href="@{/login.html(l=zh_CN)}">中文</a> <a class="btn btn-sm" th:href="@{/login.html(l=en_US)}">English</a>
4.编写LocaleResolver获取区域信息对象Locale
public class MyLocaleResolver implements LocaleResolver { @Override //login.html?l=zh_CN zh表示中文 CN表示中国 public Locale resolveLocale(HttpServletRequest request) { //l = "zh_CN" String l = request.getParameter("l"); Locale locale = Locale.getDefault(); if(!StringUtils.isEmpty(l)){ String[] s = l.split("_"); //Locale(language,country) locale = new Locale(s[0],s[1]); } return locale; } @Override public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) { } }
5.注入MyLocalResolver替代容器中的LocaleResolver
@Configuration public class Myconfig { @Bean public LocaleResolver localeResolver() { return new MyLocaleResolver(); } }
6.效果展示 (1)点击中文 (2)点击English
下一篇:
Java的三种技术架构是什么?