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

在React(Next.js)中使用translate-google-api实现翻译遇网络错误

问题分析与解决方案

核心问题原因

直接在前端调用translate-google-api出现Network Error,主要是因为浏览器跨域限制——谷歌翻译的公开接口未配置CORS,前端无法直接发起跨域请求;另外你代码里目标语言设为vi(越南语),和需求的阿拉伯语不符。

解决步骤

1. 用Next.js API路由做代理(解决跨域)

在pages/api目录下新建translate.js文件,在服务端发起翻译请求(服务器端无跨域限制):

import translate from 'translate-google-api';

export default async function handler(req, res) {
  const { text, targetLang } = req.body;
  try {
    const result = await translate(text, {
      tld: "com", // 改用通用域名,避免区域访问限制
      to: targetLang,
    });
    res.status(200).json({ result });
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
}

2. 修改前端组件代码

调用自己的API路由,同时将目标语言改为阿拉伯语代码ar:

const changelanguage = async() => {
  try {
    const response = await fetch('/api/translate', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        text: `I'm fine.`,
        targetLang: 'ar' // 阿拉伯语语言代码
      }),
    });
    const data = await response.json();
    console.log('language result is ' + data.result);
  } catch (error) {
    console.error('Translation error:', error);
  }
};

return(
  <button onClick={changelanguage}>Translate</button>
)

额外提示

translate-google-api依赖谷歌翻译的非公开接口,稳定性无法保证,生产环境建议使用官方的Google Cloud Translation API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:20:19