实现页面的国际化

确定编码,建立文件

首先确定我们的编码都是UTF-8

image-20220519151709577

建立文件i18n(internationalization,表示18个字母,i开始,n结束)

image-20220519151957745

设置配置文件

image-20220519152305416

下载插件,进行可视化配置

image-20220519152944226

我们自己添加一个属性之后,会出现如图页面

image-20220519153107460

在这里设置翻译的语句等等,每当我们设置一个,需要重新新建一个变量

image-20220519153404436

我们全部配置完毕之后,查看login.properties

image-20220519153647754

配置文件配置

找到application.yml

image-20220519153903087

更改前端页面

image-20220519154631731

前端页面自动检测到我们的配置文件,打开网页,会发现我们的页面的显示的根据我们的设置的原文,更改为相应的文本,但是此时仅仅 实现了展示原文,并没有实现切换

接下来我们需要加上前端的请求,我们写入两个按钮button,点击之后分别发送请求

1
th:href="@{/index(language='zh_CN')}中文"

获得请求

我们接受到按钮的请求,更改返回的语言

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.zss.rbacproject.config;

import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;

public class MyLocalResolver implements LocaleResolver {
//放到bean里面
@Bean
public LocaleResolver localeResolver(){
return new MyLocalResolver();
}

@Override
public Locale resolveLocale(HttpServletRequest request) {
//获取语言参数请求
String language=request.getParameter("language");
//获得默认的编码
Locale locale=Locale.getDefault();
//如果携带了国际化参数
if (language!=null||language!=""){
String []split=language.split("_");
//新建立国家地区
locale=new Locale(split[0],split[1]);

}
return locale;
}

@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {

}
}