- 一、准备工作
- 二、配置文件的编写
- 三、使国际化配置生效
- 四、页面国际化
- 4.1 配置页面国际化值
- 4.2 配置国际化解析
- 五、资料参考
将IDEA的properties的编码格式全部统一为UTF-8
1、我们在resources
资源文件下新建一个i18n
目录,存放国际化配置文件,并且创建三个文件分别为login.properties
(国际化 默认配置文件)、login_en_Us.properties
(国际化英文配置文件)、login_zh_CN.properties
(国际化中文配置文件)
2、编写配置文件
我们添加一下首页的内容!
然后依次添加其他页面内容即可!
添加完毕分别到三个配置文件中查看添加的内容,如下图所示。
login.properties 默认
login.btn=请登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名
login_zh_CN.properties 中文
login.btn=请登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名
login_en_US.properties 英文
login.btn=Sign in
login.password=Password
login.remember=Remember me
login.tip=Please sign in
login.username=Username
三、使国际化配置生效
1、我们去看一下SpringBoot对国际化的自动配置!这里又涉及到一个类:MessageSourceAutoConfiguration
里面有一个方法,这里发现SpringBoot已经自动配置好了管理我们国际化资源文件的组件 ResourceBundleMessageSource;
但是我们的真实情况是放在了application.properties
配置文件下,在application.properties
文件下添加如下内容
spring.messages.basename=i18n.login
四、页面国际化
4.1 配置页面国际化值
1、查看thymeleaf的官方文档,找到message的取值规则如下图所示:
2、开始对index.html
页面的相关内容进行修改
查看页面,已经可以显示中文,表示国际化已经开始生效
至此,其实国际化的配置基本上就结束了,下面的 *** 作是为了更好!
从这个页面也可以看到,下面有一个中文/英文 转换的链接按钮,
我们这里想要通过直接点击按钮来实现中英文的切换, *** 作如下:
1、修改index.html
页面的该位置处的两个按钮的内容
<a class="btn btn-sm" th:href="@{/index.html(l='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/index.html(l='en_US')}">English</a>
2、写一个处理的组件类
package com.kuang.config;
import org.springframework.web.servlet.LocaleResolver;
import org.thymeleaf.util.StringUtils;
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) {
//获取请求中的语言参数链接
//意思是 请求中带l的都会走这个请求
String language = request.getParameter("l");
//如果没有就使用默认的
Locale locale = Locale.getDefault();
//如果不为空 就要使用我们所传过来的——如果请求的链接 携带了国际化的
if(!StringUtils.isEmpty(language)){
//zh_CN
String[] split = language.split("_");
//国家 地区
locale = new Locale(split[0], split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
}
}
3、在我们自己的MyMvcConfig
下添加Bean
,来使区域化的信息生效
//添加bean交给spring托管 自定义的国家化组件就生效了
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
4、重新启动springboot项目,点击中文/English
按钮测试成功
https://mp.weixin.qq.com/s?__biz=Mzg2NTAzMTExNg%3D%3D&chksm=ce610719f9168e0fd77185b7194f4cdff964f3f4a6a7584e9ff0afd0ddd99f4e89d9ca2e41bf&idx=1&mid=2247483834&scene=21&sn=e28706bf0c3ded1884452adf6630d43b#wechat_redirect
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)