SpringBoot 国际化语言切换
配置国际化语言
在
resources创建i18n国际化语言配置文件目录创建
login.properties默认语言配置文件创建
login_zh_CN.properties中文配置文件创建中文配置文件后,IDEA会识别到正在进行国际化配置,会生成一个
Resource Bundle 'login'的目录
打开
login.properties配置文件点击左下角Resource Bundle配置各个语言的意思
在 html 页面(thymeleaf),通过
#{}进行引用例如:
th:text="#{login.title}"默认根据浏览器语言进行显示
点击链接切换语言

页面点击链接进行跳转
- 通过
@{}跳转到当前页面,小括号内是传的值
<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>- 通过
在
component目录下创建MyLocaleResolve(语言环境解析器)实现
LocaleResolve接口package com.example.springbootweb.component; 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) { // 从 request 域中读取传过来的参数 String l = request.getParameter("l"); // 声明 Locale 为默认语言显示 Locale locale = Locale.getDefault(); // 判断传入参数是否为空 if (!StringUtils.isEmpty(l)){ // 将传过来的参数,通过下划线分割,获取到地区(zh)即代码(CN) String[] split = l.split("_"); // 进行赋值 locale = new Locale(split[0],split[1]); } // 返回 return locale; } @Override public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) { } }
在
config.MvcConfig下加载自己配置的语言环境解析器/** * 加载自己语言环境解析器 * @return LocaleResolver */ @Bean public LocaleResolver localeResolver(){ return new MyLocaleResolver(); }
版权声明:本文为m0_55433493原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。