easy-trans-solon 1.0.0 版本发布,一个注解搞定数据翻译


前言

      solon是一款小而美的应用开发框架。拥有轻量、高性能、内存占用低、打包文件小、启动速度快等优势,Mybatis Plus也是早早的支持了solon。希望国产开源软件越来越好是整个开源社区的共同愿望,所以easy-trans本次也发布了solon的版本。

    因为是第一个版本,所以功能比sp版本稍微弱一点点点点,ORM框架目前只支持MP,不支持微服务翻译。其他的和sp版本功能相同。

功能

   输入图片说明

1 我有一个id,但是我需要给客户展示他的title/name 但是我又不想自己手动做表关联查询
2 我有一个字典码 sex 和 一个字典值0 我希望能翻译成 男 给客户展示。
3 我有一组user id 比如 1,2,3 我希望能展示成 张三,李四,王五 给客户
4 我有一个枚举,枚举里有一个title字段,我想给前端展示title的值 给客户
5 我有一个唯一键(比如手机号,身份证号码,但是非其他表id字段),但是我需要给客户展示他的title/name 但是我又不想自己手动做表关联查询

食用步骤

  • maven引入

因为阿里云仓库 软件更新,所以如果依赖下载不了请切到中央仓库。

 <dependency>
<groupId>com.fhs-opensource</groupId>
<artifactId>easy-trans-solon-plugin</artifactId>
<version>1.0.0</version>
</dependency>
  • 初始化字典缓存(没有字典表的项目请无视本步骤) 
 @Inject
private DictionaryTransService dictionaryTransService;
 //在某处将字典缓存刷新到翻译服务中,以下是demo
 Map<String,String> transMap = new HashMap<>();
 transMap.put("0","男");
 transMap.put("1","女");
 dictionaryTransService.refreshCache("sex",transMap);
  • 定义vo,使用@Trans 注解标记哪些字段需要翻译
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
//实现TransPojo接口,代表这个类需要被翻译或者被当作翻译的数据源
public class Student implements TransPojo {

 // 字典翻译 ref为非必填
@Trans(type = TransType.DICTIONARY,key = "sex",ref = "sexName")
private Integer sex;

//这个字段可以不写,实现了TransPojo接口后有一个getTransMap方法,sexName可以让前端去transMap取
private String sexName;

//SIMPLE 翻译,用于关联其他的表进行翻译schoolName 为 School 的一个字段
@Trans(type = TransType.SIMPLE,target = School.class,fields = "schoolName")
private String schoolId;
	
	
	
// 枚举翻译,返回文科还是理科给前端
@Trans(type=TransType.ENUM,key = "desc")
private StudentType studentType = StudentType.ARTS;

public static enum StudentType{

ARTS("文科"),
SCIENCES("理科");

private String desc;
StudentType(String desc){
this.desc = desc;
}
}
}
  •  在controller调用翻译服务,对数据进行翻译。
 @Inject
 TransService transService;
 @Mapping("trans")
 public Student trans() {
 Student stu = new Student();
 stu.setId("11");
 stu.setSchoolId(1);
 stu.setSex("boy");
 //翻译集合用:transMore方法如果pojo的子属性还需要被翻译用: transOneLoop/transManyLoop 方法
 transService.transOne(stu);
 return stu;
 }
  • 访问controller查看结果,返回的student对象中已经包含了学校名称,性别等中文的翻译结果

源码地址

solon版本源码地址:https://gitee.com/fhs-opensource/easy_trans_solon

springboot版本源码地址:https://gitee.com/fhs-opensource/easy_trans

文档地址:https://gitee.com/fhs-opensource/easy_trans/wikis

技术支持

我在solon的官网微信群中,或者查看git仓库的readme添加easy trans官网群获取技术支持。


相關推薦

2022-09-21

更新内容: 字典翻译支持 集合翻译 比如爱好有篮球,足球  对应的code=[0,1] 添加国产orm beetl支持 支持的ORM框架: 1、Mybatis Plus    2、JPA    3、 TK Mybatis 4、BeetlSQL 组件介绍: 表里我们经常存放字典

2023-11-28

更新日志 版本状态说明 由于 springboot 2.X 与 vue 2.X 官方均宣布停止维护, 故而 框架 4.X 版本 进入维护状态(只处理问题不更新功能) 停止维护时间预计: 2024年6-10月具体根据使用人数动态决定, 此版本已经相当稳定 即便不更新

2023-11-28

更新日志 版本状态说明 由于 springboot 2.X 与 vue 2.X 官方均宣布停止维护, 故而 框架 1.X 版本 进入维护状态(只处理问题不更新功能) 停止维护时间预计: 2024年6-10月具体根据使用人数动态决定, 此版本已经相当稳定 即便不更新

2024-08-27

码生成器 自动适配oss翻译 update 优化 临时升级 undertow 版本 解决虚拟线程溢出问题 update 优化 支持通过配置文件关闭工作流 update 优化 增加mybatis-plus填充器兜底策略 update 优化 TenantSpringCacheManager 处理逻辑 update 优

2023-09-26

有界队列与优先队列 错误使用问题 fix 修复 升级 mp 版本导致的问题 fix 修复 vue3 版本注册页验证码不显示问题 fix 修复 加密模块数据转换异常问题 fix 修复 动态设置 token 有效期不生效问题 fix 修复 token 过期登出

2022-08-10

典/外键做了翻译。 当然还有优化空间,我们会在后期的版本中继续优化。  表单自动填充:   我们很多项目表单有非常多的字段。这些字段有格式校验,重复校验,在造数据的时候非常麻烦,配合表单自动填充功能

2024-08-27

dertow问题 先换回tomcat fix 修复 依赖漏洞 限制部分依赖版本 fix 修复 由于alibaba sentinel 初始化机制变更导致的无法连接问题 fix 修复 dubbo 日志输出异常判断错误 remove 删除 kafka-streams 所有人都不会用也不学怎么用 删除

2024-10-29

ruct-plus 1.4.4 => 1.4.5 功能更新 update 优化 适配mp新版本 方法名改动 update 优化 redis操作 如果无法忽略租户id则全局处理 update 优化 sse 异常单独处理 避免出现异常报错问题 update 优化 删除掉有问题的方法(使用RedisU

2023-11-16

5.0.RC => 1.37.0 update mybatis-plus 3.5.3.2 => 3.5.4 适配mp新版本改动 update dynamic-ds 4.1.3 => 4.2.0 update bouncycastle 1.72 => 1.76 update poi 5.2.3 => 5.2.4 update redisson 3.23.2 => 3.24.1 update hutool 5.8.20 => 5.8.22 update lombok 1.1

2023-11-15

5.0.RC => 1.37.0 update mybatis-plus 3.5.3.2 => 3.5.4 适配mp新版本改动 update dynamic-ds 4.1.3 => 4.2.0 update bouncycastle 1.72 => 1.76 update poi 5.2.3 => 5.2.4 update redisson 3.23.2 => 3.24.1 update hutool 5.8.20 => 5.8.22 update lombok 1.1

2024-07-10

缓存减少redis查询提高性能 [重大更新] 升级 awsS3 到2.X版本 支持异步与自动分片上传下载(感谢 AprilWind) [重大更新] 新增 flowable 工作流功能(感谢 May) [重大更新] 新增 snailjob 调度中心 移除 powerjob (投诉的人太多) (感谢 dhb52

2022-11-08

、运行监控、三方包线程池管理等几大类。 经过几个版本迭代,目前最新版本v1.0.9具有以下特性 特性 ✅ 代码零侵入:所有配置都放在配置中心,对业务代码零侵入 轻量简单:基于 springboot 实现,引入 starter,接入只

2023-11-09

Windows、其他 web 服务器 Apache、Nginx、IIS、其他 MySQL 版本 >= 5.6 PHP 版本 >= 7.4 PHP 扩展 | 库 PDO SSL(openssl) Fileinfo intl Curl GD2 系统空间 >= 500M 更新日志: 新增 语言包个性化定制支持 新增 在线

2022-08-09

新版功能 报表打印,新增线上演示环境 http://demo.orangeforms.com/flow。 报表打印,新增报表统计模块,可通过拖来拽方式,快速构建 Dashboard 和各种统计表单。 报表打印,新增自定义打印模板模块,通过在线电子表格 (基