前言
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官网群获取技术支持。