简介
数据万象翻译功能,支持对 pdf/docx/pptx/xlsx/txt 等多种格式文档进行多语言类型翻译,最大程度上保留文档的样式与排版,适用于跨境电商、教育培训、跨文化交流等场景。
说明:
前提条件
已创建和绑定数据万象存储桶,详情请参见 存储桶操作。
进入存储桶详情,开启 数据处理 > 内容识别 > 机器翻译 功能。
上传待翻译的文件。
操作步骤
步骤一:初始化 COS SDK 并配置相关信息
// 密钥请在访问管理控制台获取。https://console.cloud.tencent.com/cam/capiconst cos = new COS({SecretId: 'AKID*******',SecretKey: '**********',});
步骤二:创建翻译任务
// 存储桶配置请在 cos 控制台获取。https://console.cloud.tencent.com/cos/bucket// 格式参考:Bucket: 'abc-1250000000', Region: 'ap-shanghai'// 源文档相关配置const InputConf = {Bucket: 'test-125********',Region: 'ap-shanghai',FileName: 'input.pdf',};// 翻译结果文档相关配置const OutputConf = {Bucket: 'test-125********',Region: 'ap-shanghai', /* 注意:需与源文档所在存储桶为同地域 */FileName: 'output.pdf',};const host = InputConf.Bucket + '.ci.' + InputConf.Region + '.myqcloud.com';// 创建翻译任务请求及参数格式const body = COS.util.json2xml({"Request": {"Tag": "Translation", /* 创建任务的 Tag:Translation ,必须*/"Input": {"Object": InputConf.FileName, /* 需要翻译的文档文件,存储桶里的路径,必须 */"Lang": "zh", /* 源文档语言类型,支持简(繁)体中文、英语、德语、法语、日语、俄语、韩语、阿拉伯语等多种语言,必须 */"Type": "pdf", /* 源文档类型,支持 pdf、docx、pptx、xlsx、txt、xml、html、markdown、jpg、png 等多种文档格式,必须 */},"Operation": {"Output": {"Region": OutputConf.Region, /* 存储桶的地域,必须 */"Bucket": OutputConf.Bucket, /* 存储结果的存储桶,必须 */"Object": OutputConf.FileName /* 输出结果的文件名,必须 */},"Translation": {"Lang": "en", /* 目标文档语言类型,支持多种语言,必须 */"Type": "pdf" /* 目标文档类型,必须 */},}}});// 创建翻译任务cos.request({Bucket: InputConf.Bucket,Region: InputConf.Region,Method: 'POST',Url: 'https://' + host + '/jobs',Key: '/jobs', /** 固定值,必须 */ContentType: 'application/xml', /** 固定值,必须 */Body: body}, (err, data) => {console.log(err || data);})
说明:
翻译计费规则参见 内容识别费用 - 文字翻译。
通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。
接口返回参数请参见响应参数,JobsDetail 节点下为翻译任务接口响应信息。其中 JobId 为关键信息,步骤三中查询翻译任务时会用到。
步骤三:获取翻译结果
步骤二中提交任务后返回的 JobId 作为任务唯一标识,通过 JobId 查询翻译任务,详情请参见 查询任务接口。
可定时查询任务的状态,当返回的 State 为 Success 时代表文件翻译成功,翻译后的文件地址为:
https://${Operation.Output.Bucket}.cos.${Operation.Output.Region}.myqcloud.com/${Operation.Output.Object}
。const getResult = (jobId) => {// 查询任务状态及参数格式cos.request({Bucket: InputConf.Bucket,Region: InputConf.Region,Method: 'GET',Url: 'https://' + host + `/jobs/${jobId}`,Key: `/jobs/${jobId}` /** 固定值,必须 */}, (err, data) => {if(err) {console.log(JSON.stringify(err));return;}if (data?.Response?.JobsDetail?.State === 'Success') {console.log("success");} else if (data?.Response?.JobsDetail?.State === 'Failed') {console.log("Failed");}})}
说明:
以 pdf 文档为例,翻译前后的效果对比如图:
费用相关
翻译费用
对象存储相关费用
示例代码