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

无需刷新页面实现React集成谷歌翻译的方案求助

无需刷新页面实现React集成谷歌翻译的方案求助

各位好,我最近摸索着把谷歌翻译集成到了React项目中,用的是下面这段不需要API密钥的免费脚本,用起来特别省心:

<script src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit" async></script>

<script type="text/javascript">
function googleTranslateElementInit() {
  new google.translate.TranslateElement(
    {
      pageLanguage: "en",
      layout: window.google.translate.TranslateElement.InlineLayout.SIMPLE,
    },
    "google_translate_element"
  );
}
</script>

不过一开始遇到了三个问题,我已经搞定其中两个:

  • 第一个是谷歌翻译自带的固定语言栏和我的项目UI风格不匹配,我直接用CSS把它隐藏了;
  • 因为隐藏了官方语言栏,我得自己实现React里的语言切换逻辑,现在已经写出了下面的代码:
// App.js
import { useEffect, useState } from "react";
import Cookies from "universal-cookie";

const App = () => {
  const cookies = Cookies();
  const googtrans = cookies.get("googtrans");
  const languageCode = googtrans.split('/')[2];
  const [code, setCode] = useState(languageCode);

  const setGoogleTrans = () => {
    document.cookie = "googtrans=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
    cookies.set("googtrans", `/en/${code}`, {
      domain: `${window.location.hostname}`,
      path: "/",
    });
    window.location.reload();
  };

  useEffect(()=>{
    setGoogleTrans();
  },[code])

  return (
    <button onClick={() => setCode(code === 'en' ? 'tl' : 'en')}>
      Change language
    </button>
  )
}

现在卡在最后一个问题上:每次切换语言都必须调用window.location.reload()才能让谷歌翻译生效,有没有办法不用刷新页面,设置完googtrans cookie后就能直接触发翻译呢?

备注:内容来源于stack exchange,提问作者Kim Joseph Penaloza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 11:59:34