Install
openclaw skills install @dengzhi5/zt-i18nZT Digital I18n 国际化组件,提供接口国际化、异常信息国际化、参数校验国际化及动态参数支持。支持 Properties 配置文件和数据库两种资源加载方式。适用于需要多语言支持的 Java Spring Boot 项目。
openclaw skills install @dengzhi5/zt-i18n本技能提供 ZT Digital Common I18n Starter 组件的使用指导。该组件规范了后端国际化接口,支持多语言资源管理、动态参数填充以及统一返回结果 (ResultVo) 的自动国际化。
支持两种资源加载方式:
拦截器自动解析 ResultVo 的 message 属性作为国际化 Key,并根据请求头语言标识返回对应文本。
BusinessException 等异常时,ResultCode 中的 message 会被自动转换。@NotEmpty) 的 message 属性中使用国际化 Key。基于 MessageFormat 语法,支持在国际化文本中使用 {0}, {1} 等占位符,并在代码中传入动态参数进行填充。
<dependency>
<groupId>com.zt</groupId>
<artifactId>zt-digital-common-i18n-starter</artifactId>
</dependency>
resources/i18n/ 目录下创建资源文件。messages_语言代码_国家代码.properties (如: messages_zh_CN.properties)。application.yml 中配置:spring:
messages:
basename: i18n/messages
encoding: UTF-8
zt:
i18n:
db-resource-enable: true
i18n_resource 表脚本并插入词条数据。language 字段必须使用中划线 (如: zh-CN)。客户端需在请求头 (Headers) 中携带语言标识:
locale-language (推荐) 或 locale_languagezh-CN, en-US, zh-TW。// 返回成功, message 为国际化 Key
return ResultVo.success(data, "query.result.success");
// 词条: business.error=业务异常, 用户 {0} 状态为 {1}
throw new BusinessException(new ResultCode(506, "business.error", "张三", "禁用"));
public class UserVO {
@NotEmpty(message = "user.name.empty")
private String name;
}
@Autowired
private MessageSourceService messageSourceService;
String msg = messageSourceService.getMessage("key", "param1", "param2");
user.login.fail), 具有语义化且不冲突。{0}, {1} 格式, 顺序必须与代码传入参数一致。BaseException, 否则可能无法触发自动国际化。templates/messages_zh_CN.properties: Properties 资源文件示例。templates/i18n_usage_example.java: 包含 ResultVo、异常、校验及手动获取的完整示例。