自动翻译文件内容

最近更新时间:2024-08-02 10:06:51

我的收藏

简介

数据万象翻译功能,支持对 pdf/docx/pptx/xlsx/txt 等多种格式文档进行多语言类型翻译,最大程度上保留文档的样式与排版,适用于跨境电商、教育培训、跨文化交流等场景。
本文将介绍如何使用 腾讯云数据万象(CI) 提供的翻译能力,快速翻译您的文档文件,支持多种语言类型和文档类型。
说明:
本文介绍的翻译场景适用于文件翻译,如您有短文本的翻译需求,请参见 实时文字翻译

前提条件

已创建和绑定数据万象存储桶,详情请参见 存储桶操作
进入存储桶详情,开启 数据处理 > 内容识别 > 机器翻译 功能。

操作步骤

步骤一:初始化 COS SDK 并配置相关信息

// 密钥请在访问管理控制台获取。https://console.cloud.tencent.com/cam/capi
const cos = new COS({
SecretId: 'AKID*******',
SecretKey: '**********',
});
说明:
注意:该初始化方式仅供联调测试使用,为了安全起见,请勿在生产环境直接暴露密钥。
生产环境请参考各语言 SDK 签名实现,详情请参见 SDK 签名实现

步骤二:创建翻译任务

提交翻译任务,参数详情参见 提交任务接口。接口请求参数格式为1:
// 存储桶配置请在 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");
}
})
}
说明:
推荐使用 API Explorer调试
以 pdf 文档为例,翻译前后的效果对比如图:






费用相关

示例代码

详细代码可参见 cos-demo