wangshuai67 / i18n-spring-boot-starter

Spring Boot 国际化组件

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

i18n-spring-boot-starter

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

About

Spring Boot 国际化组件

License:MIT License


Languages

Language:Java 100.0%