在springboot创建一个国际化页面
步骤:
1 创建一个i18n文件
2 在项目中定义一个切换的组件,自定义一个LocaleResolver类
3 将类交给springboot托管
4 修改前端代码
实现(thymeleaf模板)
-
在 resources 下创建文件夹和对应页面的properties
直接创建 login.properties login,zh_CN.properties ,login_en_US.properties就可以了。然后写配置(这部分太累了),看图
点开properties文件,箭头方向的Bundle可以实现可以实现可视化操作。
框的是按钮对应的名字。右边第一个是默认显示的【中文/英文】,下面的很明显,不说了。 -
自定义一个自定义一个LocaleResolver类
这个类需要实现LocaleResolver接口。
public class MyLocaleResolver implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest request) {
//接收前端的参数,后面有说
String language = request.getParameter("l");
//获取默认
Locale locale = Locale.getDefault();
//没有指定语言就使用默认的
if (!StringUtils.isEmpty(language)){
String[] split = language.split("_");
locale = new Locale(split[0],split[1]);
}
return locale;
}
}
前端的代码。
<a class="btn btn-sm" th:href="@{/index(l='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/index(l='en_US')}">English</a>
- 将类交给springboot托管
在实现WebMvcConfigurer
接口的配置类中写一个方法,返回MyLocaleResolver
类,加上注解即可。
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
- 修改前端代码
如图中的框,修改对应的值即可
启动项目测试。
默认的
中文的
英文的
搞定!!!