- 自己创建一个LocaleResolver,用来实现国际化
例如,我们在html文件中,传入一个language参数,通过编写的解析器来判断页面中的数据,究竟是显示(zh_CN)中文还是(en_US)英文。
srcmainjavacomsjxyboottestdemoconfigMyLocalResovler.java
package com.sjxy.boot.test.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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;
@Configuration
public class MyLocalResovler implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest request) {
String language = request.getParameter("language");
Locale locale = Locale.getDefault(); //该方法的返回类型为Locale ,它返回默认语言环境的当前值
if (!StringUtils.isEmpty(language)){
String[] split = language.split("_"); //zh_CN ,en_US
locale = new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
}
@Bean
public LocaleResolver localeResolver(){
return new MyLocalResovler();
}
}
- 国际化配置文件
在resources文件夹中创建i18n文件夹,用来存储国际化配置文件
编写可视化配置
并在application.yml 配置文件中,指出国际化配置文件的位置
spring:
thymeleaf:
cache: false
messages:
basename: i18n.login
- 用thymeleaf 修饰我们的HTML文件(以login.html 文件举例)
Signin Template for Bootstrap
首先在标签内,加入
这样我们就能使用th: 标签,调用我们的配置属性。
我们既然写了一个解析器,那我们就要使这个解析器生效,因此我们在html文件的加入了以下代码,用来实现点击实现中英文切换:
中文 English
其中,th:href="@{/login.html(language='zh_CN')}"即为切换成中文。language即为解析器要解析的字段。
- 实现效果展示
初始页面(中文)
点击切换英文界面:
再点击中文,切换为中文界面
至此一个简单的SpringBoot国际化就完成啦。



