GT ClassMethodsTranslation
downloadTranslatedFile
downloadTranslatedFile 方法的 API 参考:用于下载已完成的翻译文件
概览
downloadTranslatedFile 方法会将单个已翻译文件的内容下载为 UTF-8 编码的字符串。
该方法用于在 General Translation 平台完成处理后获取已完成的翻译结果。
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });
const content = await gt.downloadTranslatedFile({
fileId: 'file-123',
locale: 'es',
versionId: 'version-456'
});翻译状态:
此方法仅适用于已完成的翻译。
在尝试下载之前,请先使用 checkFileTranslations 确认翻译已完成。
参考资料
参数
| 名称 | 类型 | 描述 |
|---|---|---|
file | FileInfo | 指定要下载的文件信息对象 |
options? | DownloadFileOptions | 下载请求的可选配置项 |
FileInfo 结构
| 名称 | 类型 | 描述 |
|---|---|---|
fileId | string | 要下载的文件的唯一标识符 |
locale | string | 要下载的翻译目标语言(locale) |
versionId? | string | 文件的可选版本 ID |
DownloadFileOptions
| 名称 | 类型 | 描述 |
|---|---|---|
timeout? | number | 请求超时时间(毫秒) |
返回值
Promise<string> - 以 UTF-8 字符串形式表示的翻译后文件内容。
返回的字符串与原始源文件格式一致,且所有可翻译文本均已转换为目标 locale。
示例
// (1) 创建 GT 实例
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
// (2) 上传文件
const fileUpload = {
content: fileContents,
fileName: filePath,
fileFormat: 'JSON',
locale: 'en',
};
const files = [ { source: fileUpload } ];
const { uploadedFiles } = await gt.uploadSourceFiles(
files,
{ sourceLocale: 'en' }
);
// (3) 将文件翻译任务加入队列
const enqueueResult = await gt.enqueueFiles(
uploadedFiles,
{
sourceLocale: 'en',
targetLocales: targetLocales,
});
// (4) 等待所有翻译完成
let translationIds = [];
const statusQuery = Object.values(enqueueResult.data).flatMap(({fileName, versionId}) => {
return targetLocales.map((locale) => ({locale, fileName, versionId}));
});
while (true) {
const status = await gt.checkFileTranslations(statusQuery);
if (status.translations.length === statusQuery.length) {
translationIds = status.translations.map(translation => translation.id);
break;
}
await new Promise(resolve => setTimeout(resolve, 1000));
}
// (5) 下载文件
const result = await Promise.all(
translationIds.map(id => gt.downloadTranslatedFile(id))
);注意事项
- 以 UTF-8 字符串形式获取已下载的文件
- 该文件必须已为指定的 locale 完成翻译
- 若未找到文件,则会失败
后续步骤
- 请参阅
checkFileTranslations,在下载前验证翻译状态 - 请参阅
downloadFileBatch,高效批量下载多个文件 - 请参阅
uploadSourceFiles,了解文件上传流程 - 请参阅
enqueueFiles,启动翻译任务
本指南如何?