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

参数说明

参数说明
sourcesEntry 对象组成的数组,包含源内容及可选的逐项元数据
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 的元数据为准)

下一步

本指南如何?