字典翻译

这篇博客主要介绍了字典翻译的过程,包括表结构设计、字典注解类的使用、翻译实体类字段的方法、执行翻译的步骤,以及展示了元数据翻译数据的最终结果。此外,还详细探讨了字典翻译的CRUD操作和内部转换,涉及到model类、mapper.xml配置、Repository和Service impl的相关实现。
摘要由CSDN通过智能技术生成

最近比较烦,电脑坏了。把以前的好东西备份一下。
1.字典翻译

表结构

CREATE TABLE `t_sys_dict` (
  `dict_id` varchar(20) NOT NULL,
  `sys_code` varchar(20) NOT NULL DEFAULT 'xiong' COMMENT '系统代码',
  `dict_code` varchar(50) NOT NULL COMMENT '数据字典键',
  `dict_value` varchar(200) NOT NULL COMMENT '数据字典值',
  `dict_remark` varchar(50) DEFAULT NULL COMMENT '数据字典描述',
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`dict_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数据字典表';

INSERT INTO `t_sys_dict` VALUES ('10', 'XYC', 'orderStatus', 'WAIT_BUYER_CONFIRM_GOODS', '等待买家确认收货,即:卖家已发货', '2019-04-19 20:38:32');
INSERT INTO `t_sys_dict` VALUES ('11', 'XYC', 'orderStatus', 'TRADE_BUYER_SIGNED', '买家已签收,货到付款专用', '2019-04-19 20:38:32');
INSERT INTO `t_sys_dict` VALUES ('12', 'XYC', 'orderStatus', 'TRADE_FINISHED', '交易成功', '2019-04-19 20:38:32');
INSERT INTO `t_sys_dict` VALUES ('13', 'XYC', 'orderStatus', 'TRADE_CLOSED', '交易关闭', '2019-04-19 20:38:32');
INSERT INTO `t_sys_dict` VALUES ('14', 'XYC', 'orderStatus', 'TRADE_CLOSED_BY_TAOBAO', '交易被淘宝关闭', '2019-04-19 20:38:32');
INSERT INTO `t_sys_dict` VALUES ('7', 'XYC', 'orderStatus', 'TRADE_NO_CREATE_PAY', '没有创建支付宝交易', '2019-04-19 20:38:32');
INSERT INTO `t_sys_dict` VALUES ('8', 'XYC', 'orderStatus', 'WAIT_BUYER_PAY', '等待买家付款', '2019-04-19 20:38:32');
INSERT INTO `t_sys_dict` VALUES ('9', 'XYC', 'orderStatus', 'WAIT_SELLER_SEND_GOODS', '等待卖家发货,即:买家已付款', '2019-04-19 20:38:32');

字典注解类

package com.xyc.cloud.utils;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Dict {
	public abstract String dictCode() default "";
}

需要翻译实体类字段

	/**
	 * 退款对应的订单交易状态。 可选值
	 * TRADE_NO_CREATE_PAY(没有创建支付宝交易) 
	 * WAIT_BUYER_PAY(等待买家付款)
	 * WAIT_SELLER_SEND_GOODS(等待卖家发货,即:买家已付款)
	 * WAIT_BUYER_CONFIRM_GOODS(等待买家确认收货,即:卖家已发货) 
	 * TRADE_BUYER_SIGNED(买家已签收,货到付款专用)
	 * TRADE_FINISHED(交易成功) 
	 * TRADE_CLOSED(交易关闭) 
	 * TRADE_CLOSED_BY_TAOBAO(交易被淘宝关闭)
	 * ALL_WAIT_PAY(包含:WAIT_BUYER_PAY、TRADE_NO_CREATE_PAY)
	 * ALL_CLOSED(包含:TRADE_CLOSED、TRADE_CLOSED_BY_TAOBAO)
	 */
	@Dict(dictCode="orderStatus")
	@ApiModelProperty(value = "退款对应的订单交易状态")
	private String orderStatus;

执行翻译

		List<Map<String, Object>>  map = sysDictService.translateToMapList(list); //list 你的数据库查询结果集

最终结果

元数据翻译数据

2.下面是字典翻译的CRUD 和具体内部转换

mode类

package com.xiong.cloud.bean;

import java.util.Date;

import org.apache.commons.lang3.builder.ReflectionToStringBuilder;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.honghu.cloud.common.utils.mybatis.IModel;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel("数据字典表")
public class SysDict implements IModel {

	private static final long serialVersionUID = 1L;

	public String toString() {
		return ReflectionToStringBuilder.toString(this);
	}

	@ApiModelProperty(value = "")
	private String dictId;

	/**
	 * 数据字典键
	 */
	@ApiModelProperty(value = "数据字典键")
	private String dictCode;

	/**
	 * 数据字典值
	 */
	@ApiModelProperty(value = "数据字典值")
	private String dictValue;

	
	/**
	 * 数据字典描述
	 */
	@ApiModelProperty(value = "数据字典描述")
	private String dictRemark;

	@ApiModelProperty(value = "")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
	private Date createTime;

	public String getDictId() {
		return dictId;
	}

	public void setDictId(String dictId) {
		this.dictId = dictId;
	}

	/**
	 * 获取 数据字典键
	 */
	public String getDictCode() {
		return dictCode;
	}

	/**
	 * 设置 数据字典键
	 */
	public void setDictCode(String dictCode) {
		this.dictCode = dictCode;
	}

	/**
	 * 获取 数据字典值
	 */
	public String getDictValue() {
		return dictValue;
	}

	/**
	 * 设置 数据字典值
	 */
	public void setDictValue(String dictValue) {
		this.dictValue = dictValue;
	}

	/**
	 * 获取 数据字典描述
	 */
	public String getDictRemark() {
		return dictRemark;
	}

	/**
	 * 设置 数据字典描述
	 *
EasyPoi是一个用于操作Microsoft Office格式文件(如Word、Excel和PowerPoint)的Java库。当你想要通过`ExcelExportEntity`导出数据到Excel,并且其中包含需要翻译字典内容,可以按照以下步骤操作: 1. 首先,创建一个`ExcelExportEntity`实例,这是Easypoi提供的一个用于存储数据模型的对象。这个对象通常会包含列名和你要导出的数据。 ```java ExcelExportEntity exportEntity = new ExcelExportEntity(); exportEntity.setTitle("标题"); exportEntity.setSheetName("Sheet1"); List<Map<String, Object>> data = ...; // 你的字典数据列表 exportEntity.setData(data); ``` 2. 字典数据通常是字符串形式的,比如键值对(key-value),例如{"en": "Dictionary Word", "zh": "词典翻译"}。你需要在`data`列表中添加这种结构的数据。 3. 如果你的字典内容很大或者频繁变化,可能需要外部加载,你可以考虑将字典存放在数据库或其他数据源,然后在需要的时候动态获取并替换到`Map<String, Object>`中。 4. 使用Easypoi提供的`XlsBuilderUtil`或者其他相关的工具类(如`XlsxWriter`)来创建Excel文件。这里通常涉及到遍历`ExcelExportEntity`中的数据,填充到工作表中。 ```java Workbook workbook = XlsBuilderUtil.build(workbookTemplate, exportEntity); // 写入文件 FileOutputStream outputStream = new FileOutputStream("output.xlsx"); workbook.write(outputStream); outputStream.close(); ``` 5. 对于字典翻译部分,如果你希望在导出时自动进行翻译,可能需要用到外部API或者本地化库(如Google Translate API)。但在实际应用中,由于版权和性能原因,直接在程序内部做大规模的在线翻译并不推荐,而是建议在前端展示时提供实时翻译功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值