GT ClassMethodsTranslation
translateMany
GT translateMany 方法的批量翻译 API 参考
概览
translateMany 方法可在单个 API 请求中高效翻译多个内容项。
它针对批处理进行了优化,性能优于多次单独调用 translate。
const gt = new GT({
  apiKey: 'your-api-key',
  projectId: 'your-project-id'
});
const result = await gt.translateMany([
  { source: 'Hello, world!' },
  { source: 'Welcome to our app' },
  { source: 'Click here to continue' }
], { 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;
  };
}行为
全局元数据 vs 单项元数据
- 全局元数据 作为默认值应用于所有 Entry
- 单项元数据 可在特定 Entry 上覆盖全局设置
- 可为每个 Entry 单独覆盖目标 locale
错误处理策略
- 单个翻译失败不会中断整个批次
- 每个结果都会独立标示成功或失败
- 完整支持部分成功的情况
Locale 解析
- 全局目标 locale 将作为所有 Entry 的默认值
- 单个 Entry 指定的目标 locales 会覆盖全局设置
- 如已配置,所有 locale 将通过自定义映射进行解析
示例
const menuItems = await gt.translateMany([
  { source: 'Home' },
  { source: 'About' },
  { source: 'Products' },
  { source: 'Contact' }
], {
  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 的翻译失败不会影响其他条目
- 输出结果的顺序与输入条目一致
- 全局元数据会与每条目的元数据合并(以条目级元数据为准)
下一步
- 了解如何进行单条翻译:translate
- 探索 Entry 与 EntryMetadata 类型
- 了解 TranslateManyResult 的结构
这份指南怎么样?

