TTokenySpace
返回 Skills 列表

Zt I18n

ZT Digital I18n 国际化组件,提供接口国际化、异常信息国际化、参数校验国际化及动态参数支持。支持 Properties 配置文件和数据库两种资源加载方式。适用于需要多语言支持的 Java Spring Boot 项目。

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"zt-i18n"技能
技能信息:
- 名称: Zt I18n
- 标识: zt-i18n
- 描述: ZT Digital I18n 国际化组件,提供接口国际化、异常信息国际化、参数校验国际化及动态参数支持。支持 Properties 配置文件和数据库两种资源加载方式。适用于需要多语言支持的 Java Spring Boot 项目。
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/zt-i18n/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

ZT Digital I18n 国际化组件

本技能提供 ZT Digital Common I18n Starter 组件的使用指导。该组件规范了后端国际化接口,支持多语言资源管理、动态参数填充以及统一返回结果 (ResultVo) 的自动国际化。

核心功能

1. 多语言资源管理

支持两种资源加载方式:

  • Properties 配置文件: 灵活便捷,适合静态词条。
  • 数据库加载: 动态管理,适合频繁变更的业务词条。

2. 统一返回结果 (ResultVo) 国际化

拦截器自动解析 ResultVomessage 属性作为国际化 Key,并根据请求头语言标识返回对应文本。

3. 异常提示与参数校验国际化

  • 异常国际化: 抛出 BusinessException 等异常时,ResultCode 中的 message 会被自动转换。
  • 参数校验: 在 Bean Validation 注解 (如 @NotEmpty) 的 message 属性中使用国际化 Key。

4. 动态参数支持

基于 MessageFormat 语法,支持在国际化文本中使用 {0}, {1} 等占位符,并在代码中传入动态参数进行填充。

快速接入

添加依赖

<dependency>
    <groupId>com.zt</groupId>
    <artifactId>zt-digital-common-i18n-starter</artifactId>
</dependency>

资源管理方式

方式 1: Properties 配置文件 (推荐)

  1. resources/i18n/ 目录下创建资源文件。
  2. 命名规范: messages_语言代码_国家代码.properties (如: messages_zh_CN.properties)。
  3. application.yml 中配置:
spring:
  messages:
    basename: i18n/messages
    encoding: UTF-8

方式 2: 数据库加载 (V1.4.4+)

  1. 开启配置:
zt:
  i18n:
    db-resource-enable: true
  1. 执行 i18n_resource 表脚本并插入词条数据。
  2. 注意: 数据库 language 字段必须使用中划线 (如: zh-CN)。

国际化请求标识

客户端需在请求头 (Headers) 中携带语言标识:

  • Key: locale-language (推荐) 或 locale_language
  • Value: 必须使用中划线格式,如 zh-CN, en-US, zh-TW

国际化使用场景

1. ResultVo 自动国际化

// 返回成功, message 为国际化 Key
return ResultVo.success(data, "query.result.success");

2. 异常信息国际化 (带动态参数)

// 词条: business.error=业务异常, 用户 {0} 状态为 {1}
throw new BusinessException(new ResultCode(506, "business.error", "张三", "禁用"));

3. 参数校验国际化

public class UserVO {
    @NotEmpty(message = "user.name.empty")
    private String name;
}

4. 手动获取 (Service 注入)

@Autowired
private MessageSourceService messageSourceService;

String msg = messageSourceService.getMessage("key", "param1", "param2");

最佳实践

  1. 编码格式: Properties 文件统一使用 UTF-8, 避免乱码。
  2. Key 命名: 建议使用小写字母加点号分隔 (如: user.login.fail), 具有语义化且不冲突。
  3. 动态参数: 占位符使用 {0}, {1} 格式, 顺序必须与代码传入参数一致。
  4. 优先级: 如果同时存在配置文件和数据库词条, 数据库优先级更高
  5. 异常处理: 确保自定义异常继承自 BaseException, 否则可能无法触发自动国际化。

代码模板

  • templates/messages_zh_CN.properties: Properties 资源文件示例。
  • templates/i18n_usage_example.java: 包含 ResultVo、异常、校验及手动获取的完整示例。

何时使用本技能

  • 配置 Spring Boot 项目的多语言支持
  • 实现接口返回结果、异常信息、参数校验的国际化
  • 管理 Properties 或数据库中的国际化词条
  • 处理带动态参数的国际化文本

评论

加载中…