GT ClassMethodsTranslation
translateMany
GT translateMany 方法的 API 参考:批量翻译
概述
translateMany 方法可在一次 API 请求中高效翻译多个内容项。
它针对批量处理进行了优化,性能优于多次分别调用 translate。
const gt = new GT({
apiKey: '你的 API 密钥',
projectId: '你的项目 ID'
});
const result = await gt.translateMany([
{ source: '你好,世界!' },
{ source: '欢迎使用我们的应用程序' },
{ source: '点击此处继续' }
], { targetLocale: 'es' });参考资料
参数
Prop
Type
参数说明
| 参数 | 说明 |
|---|---|
sources | 由 Entry 对象组成的数组,包含源内容及可选的逐项元数据 |
globalMetadata | 适用于所有条目的全局元数据,其中必须包含 targetLocale |
Entry 对象结构
sources 数组中的每个 Entry 可以包含:
interface Entry {
source: Content; // 待翻译内容
targetLocale?: string; // 覆盖全局目标语言环境
context?: string; // 该条目的翻译上下文
tags?: string[]; // 分类标签
// ... 其他 EntryMetadata 属性
}返回
Promise<TranslateManyResult>结果包含已翻译的条目及任何错误信息:
interface TranslateManyResult {
translations: Array<TranslationResult | TranslationError>;
metadata: {
totalRequests: number;
successCount: number;
errorCount: number;
processingTime: number;
};
}运行行为
全局与单项元数据
- 全局元数据 会作为默认值应用到所有条目
- 单项元数据 可为特定条目覆盖全局设置
- 每个条目都可以单独覆盖目标 locale
错误处理策略
- 单条翻译失败不会中断整个批处理
- 每个结果都会独立标示成功或失败
- 完全支持部分成功的情况
语言环境解析
- 全局目标 locale 作为所有 Entry 的默认值
- 按 Entry 指定的目标 locales 会覆盖全局设置
- 如已配置,将通过自定义映射解析所有 locales
示例
const menuItems = await gt.translateMany([
{ source: '首页' },
{ source: '关于我们' },
{ source: '产品' },
{ source: '联系我们' }
], {
targetLocale: 'fr',
context: '导航菜单条目'
});
menuItems.translations.forEach((result, index) => {
if ('translation' in result) {
console.log(`条目 ${index}:${result.translation}`);
} else {
console.error(`条目 ${index} 失败:${result.error}`);
}
});注意事项
- 可在一次 API 请求中同时翻译多个条目
- 单个 Entry 翻译失败不会影响其他条目
- 结果与输入的各个 Entry 顺序一致
- 全局元数据会与各 Entry 的元数据合并(以各 Entry 的元数据为准)
下一步
- 了解如何进行单条翻译:translate
- 了解 Entry 和 EntryMetadata 类型
- 理解 TranslateManyResult 的结构
本指南如何?