You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何用亚马逊/谷歌翻译批量转换Axios响应并支持自定义术语?

问题解答

1. googleTranslateElementInit的官方支持情况

该方案属于谷歌遗留的网站翻译小组件兼容接口,目前谷歌没有公开的废弃时间表,但已经停止新功能迭代,不支持集成Google Glossary自定义术语表,组件本身也没有开放自定义术语的配置入口,不建议长期在生产环境依赖。

2. 亚马逊/谷歌翻译批量请求方案

你之前单字段单请求的用法是错误的,两家的翻译API都原生支持批量翻译能力,不需要逐条发请求:

  • 谷歌翻译V3 API的translateText方法支持传入contents数组参数,单次请求最多可提交100条文本,同时支持指定术语表参数调用你预先配置好的Google Glossary
  • 亚马逊翻译支持两种批量方案:一是单次请求传入用特殊分隔符拼接的多段文本,翻译后拆分回填;二是调用官方BatchTranslateText批量接口,单次最多可处理5000条文本,支持在请求参数中指定TerminologyNames关联你提前上传的自定义术语表

可行实现思路

  1. 递归提取JSON中所有待翻译的字符串值,同时记录每个值对应的JSON嵌套路径,方便后续回填
// 递归提取字符串值与对应路径
function extractTranslateTargets(obj, parentPath = '', targets = []) {
  for (const key in obj) {
    const currentPath = parentPath ? `${parentPath}.${key}` : key
    if (typeof obj[key] === 'string') {
      targets.push({ text: obj[key], path: currentPath })
    } else if (typeof obj[key] === 'object' && obj[key] !== null) {
      extractTranslateTargets(obj[key], currentPath, targets)
    }
  }
  return targets
}
  1. 将提取出的文本数组按API的单请求上限拆分批次,批量发起翻译请求,请求时带上你预先配置好的自定义术语表标识
  2. 拿到翻译结果后,按路径顺序回填到原始JSON结构中,就能得到完整的翻译后JSON,再调用setUsers渲染即可

注:建议将翻译逻辑放到后端代理层处理,避免前端暴露API密钥引发被盗刷风险,同时也能进一步优化批量请求的性能。


内容的提问来源于stack exchange,提问作者Praveen KJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:36:03