设置 idea 统一编码
配置文件
- 在
resources
下新建一个1i8n
目录 - 建立一个
loginlanguage.properties
文件,一个loginlanguage_zh_CN.properties
,IDEA自动识别了我们要做国际化操作;文件夹会变成现在这个样子。三个properties
文件分别表示,默认,英文,中文 - 在
application.yml
中添加配置
- 再添加一个文件
只需要填写zh_CN
这种字符就可以,这种字符是由固定写法的,不清楚的百度一下 - 进入
loginlanguage.properties
就可以编辑了,点击左上角的+
就可以添加了。下完在 默认、中文、英文下面就自动生成了。
配置国际化解析
在前端页面通常是通过点击按钮来选择使用哪种语言
给按钮绑定一个带参数的链接,如图所以,我们可以根据参数的名称language
来获取到对应的值。为了获取这个值,我们应该写一个方法。
- 在Spring 总有一个国际化的 Locale(区域信息对象);里面有一个 localResolver(获取区域对象信息)的解析器
继承 LocalResolver 可以自定义解析器,重写resolverLocal
方法,获取到前端请求中的language
参数,并做判断。
//可以在链接上携带区域信息
public class MyLocaleResolver implements LocaleResolver {
//解析请求
@Override
public Locale resolveLocale(HttpServletRequest request) {
String language = request.getParameter("language");
Locale locale = Locale.getDefault(); // 如果没有获取到就使用系统默认的
//如果请求链接不为空
if (!StringUtils.isEmpty(language)){
//分割请求参数
String[] split = language.split("_");
//国家,地区
locale = new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
}
}
将其写到自定义的 mvcConfig 中,即可