国家化问题,就是我们在页面中,系统可以支持多种语言。
直接上步骤了啊
1.创建配置类
package com.zzy.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
@Configuration
public class I18NConfig {
@Bean
public ResourceBundleMessageSource messageSource() {
//创建资源绑定信息源
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
//设置可以使用编码访问
messageSource.setUseCodeAsDefaultMessage(true);
//禁用系统本地环境
messageSource.setFallbackToSystemLocale(false);
//设置资源文件的前缀
messageSource.setBasename("student");
//设置编码
messageSource.setDefaultEncoding("UTF-8");
//设置缓存时间
messageSource.setCacheMillis(2);
return messageSource;
}
}
2.创建配置文件,这里面呢,我就写了3个
1)简体中文配置文件 student_en.properties
student.id = 中文1
student.name = 中文2
student.age = 中文3
student.sex = 中文4
student.birth = 中文5
student.phone =中文6
2)默认配置文件 student.properties
student.id = 1
student.name = xiaoming
student.age = 29
student.sex = 1
student.birth = 2018-12-12
student.phone = 18201455505
3)英文配置文件 student_en.properties
student.id = english1
student.name = english12
student.age = english3
student.sex = english4
student.birth = english5
student.phone = english6
页面读取配置文件内容hello.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<span th:text="#{student.id}"></span>
<span th:text="#{student.name}"></span>
<span th:text="#{student.age}"></span>
<span th:text="#{student.sex}"></span>
<span th:text="#{student.birth}"></span>
<span th:text="#{student.phone}"></span>
</body>
</html>
到这里,就完成了,我们来测试一下
我用的是谷歌游览器,游览器里面是可以自动切换语言的
1.英文测试--》切换到英文的状态
设置--》语言--》将英文置顶
访问结果
2.中文测试,简体中文置顶
刷新页面
3)默认测试 ---》阿尔巴尼亚语置顶
刷新页面
提示:1)国际化,其实本质就是读取不同的配置文件,而这些配置文件的命名方式,都已经按照一定规范命名好。
2)配置文件的名字要和配置类中的名字一致(我已经用红色标记)
3)如果没有这个这种语言的配置文件,会选择默认的,也就是student.properties