Spring Boot 国际化组件
0.引入依赖 代码在本地打包后 给需要国际化的工程引入
<dependency>
<groupId>com.bdkjzx.project</groupId>
<artifactId>i18n-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
1.配置项
#添加国际化
spring.ex.i18n.enable=true
# 如果未翻译是否将code 初始化入库
spring.ex.i18n.mark=false
spring.ex.i18n.default-locale=zh-CN
spring.ex.i18n.data-source=primary
spring.ex.i18n.config-table=config_i18n_message
2.初始化国际化配置表
CREATE TABLE `config_i18n_message` (
`code` varchar(128) NOT NULL,
`zh-CN` varchar(128) DEFAULT NULL,
`zh-TW` varchar(128) DEFAULT NULL,
`en-US` varchar(1024) DEFAULT NULL COMMENT '英文',
PRIMARY KEY (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='国际化配置表'
3.如何使用
I.n("操作成功")
或者在返回的统一结果对象上,以下是个示例,你需要加在你的项目的统一响应中
public class ApiResponse<T> {
private int code;
private String message;
private T data;
private ErrorDetails error;
public ApiResponse() {
}
/**
* message给消息进行国际化包装
* @param message
*/
public ApiResponse(int code, String message, T data, ErrorDetails error) {
this.code = code;
this.message = I.n(message);
this.data = data;
this.error = error;
}
// Getter and Setter methods
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
/**
* 给消息进行国际化包装
* @param message
*/
public void setMessage(String message) {
this.message = I.n(message);
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public ErrorDetails getError() {
return error;
}
public void setError(ErrorDetails error) {
this.error = error;
}
}
5.扩展请看入口
com.bdkjzx.project.i18n.config.I18nAutoConfig