java-base-app/文档/翻译说明/翻译拦截器.txt

18 lines
1.7 KiB
Plaintext
Raw Normal View History

2025-03-23 08:39:16 +08:00
翻译拦截模块hzs-common-aop -- TransactionAspectAdvice.java
如果业务操作时返回内容需要统一翻译则在pom文件中引入该模块。
翻译拦截器会统一拦截 com.hzs 包下 controller 下的以 Controller 结尾类。
翻译拦截器会根据请求头中指定的翻译语言,与当前登录用户所属国家的默认语言进行比较,如果不一致则进行处理。
返回实体中,如果需要进行统一翻译的需要在对应的字段添加注解 @Transaction。
@Transaction注解中有4个参数
1. isForce -- 是否强制国际化处理: 强制处理会直接按照选择显示语言进行处理
2. isCache -- 是否来源于缓存: 如果是则直接从redis中取如果否则直接从数据库中查询
3. transactionKey -- 翻译规则前缀: 当来源于缓存为true时缓存对应的key值前缀来源于 EnumsPrefixConstants 中内容
4. isValue -- 是否当前字段取值: 当来源于缓存为true时并且使用当前字段取值true那么最终用于获取缓存中的翻译key值由 翻译规则前缀 + 当前字段实际值 组成
5. valueField -- 默认翻译数据字段: 当来源于缓存为true时并且使用当前字段取值为false那么最终用于获取缓存中的翻译key值由 翻译规则前缀 + 该属性指定值
如果枚举值进行返回列表时,需要将枚举内容转化成 EnumEntity 实体在实体中因无法直接指定各枚举对应的翻译前缀KEY所以需要在实体对象的 transactionKey 字段指定翻译前缀KEY
注: 数值类型的状态位返回时,需要在实体中定义以 【字段名 + Val】 的字段,用于回填状态位翻译之后的字符内容。