1. 概述
spingboot的国际化支持已经非常的简化了,经过简单配置就可以使用,非常的方便。
2. 创建配置文件
2.1 在resources目录下建一个i18n文件夹,并按照如图所示新建3个配置文件
messages.properties:是默认的配置文件,里面可以不写,但是文件必须存在,否则不能正常 使用
messages_zh_CN.properties:中文的配置文件
messages_en_US.properties:英文的配置文件
可以创建多个属性文件,比如 messages,system等等。
2.2 在配置文件中填写对应的提示信息
3. application.yml文件的配置
配置内容如下:
spring:
messages:
basename: i18n/messages
encoding: UTF-8
basename 如果指定多个文件,那么可以使用逗号分隔。
basename: i18n/messages,i18n/system
4. 调用
4.1 设置请求头
代码如下:
config.headers['Accept-Language'] = window.localStorage.getItem("lang");
4.2 在BaseController提供方法
@Autowired
private MessageSource messageSource;
/**
* 根据键返回国际化消息。
* @param key 键
* @return
*/
public String getMessage(String key){
return getMessage(key,null);
}
/**
* 根据键返回国际化消息。
* @param key 键
* @param args 比如国际化的消息 为如下形式 A {0} B {1}.
* 调用方法为 getMessage("abc","AA","BB");
* @return
*/
public String getMessage(String key,Object[] args){
return messageSource.getMessage(key,args, LocaleContextHolder.getLocale());
}
4.3 测试使用
在控制器添加测试方法
@GetMapping("/getMessage")
public String getMessage() {
String str=this.getMessage("login.name");
String sys=this.getMessage("sys.name");
return str;
}
4.4 通过postman测试
我们设置请求头进行测试,比如 zh-CN,en-US等
5. springboot 使用i18n进行国际化乱码解决
在IDEA开发工具中,修改当前编译器的编码为UTF-8,快捷键ctrl+alt+s,在Editor->File Encoding中设置,具体设置如图所示:
文档更新时间: 2021-08-03 15:43 作者:朱方华