vue3-ts-vite:Google 多语言调试 / 网页中插入谷歌翻译元素 / 翻译

一、实现目标

二、代码实现

2.1、项目vue3 - ts - vite
2.2、index.html 引入文件
<script>
  window.onload = function () {
      const script = document.createElement('SCRIPT')
      script.src = 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'
      script.onerror = () => {
          console.log('google load error')
          window.googleScriptLoadError = false
      }
      document.head.appendChild(script)
  }
</script>
2.3、src/views/translate/index.vue
<template>
  <div class="container">
    <div id="google_translate_element" style="position:absolute;bottom:10px;right:10px;z-index:2000;opacity:0.7"></div>
    <div>google_translate_element</div>
  </div>
</template>

<script setup lang="ts" name="keepalive">
const translate = () => {
  new google.translate.TranslateElement(
    {
        // pageLanguage: 'zh-CN',
        // 需要翻译的语言,比如你只需要翻译成英语,这里就只写en
        includedLanguages: 'en,zh-CN,hr,cs,da,nl,fr,de,el,iw,hu,ga,it,ja,ko,pt,ro,ru,sr,es',
        layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
        // 自动显示翻译横幅,就是翻译后顶部出现的那个
        autoDisplay: true,
        // 还有些其他参数
    },
    'google_translate_element' // 触发元素的id
  );
}
setTimeout(()=>{
  translate()
},3000)
</script>

<style scoped lang="less">
</style>
2.4、测试成功

三、代码集成在一个页面

<template>
  <div class="container">
    <div id="google_translate_element" style="position:absolute;bottom:10px;right:10px;z-index:2000;opacity:0.7"></div>
    <div>google_translate_element</div>
  </div>
</template>

<script setup lang="ts" name="keepalive">
// 加载script
const loadScript = () => {
  let script = document.createElement('script')
  script.setAttribute("language", "javascript")
  script.setAttribute("type", "text/javascript")
  script.setAttribute("src", 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit')
  document.getElementsByTagName('head')[0].appendChild(script)
  script.onload = script.onreadystatechange = ((res:any)=>{
    check()
  })
}
loadScript()

// 检测是否获取到google
const check = () => {
  console.log("10", google.translate.TranslateElement)
  if(!google.translate.TranslateElement){
    setTimeout(()=>{
      check()
    }, 200)
  } else {
    translate()
  }
}

// 翻译
const translate = () => {
  new google.translate.TranslateElement(
    {
        // pageLanguage: 'zh-CN',
        // 需要翻译的语言,比如你只需要翻译成英语,这里就只写en
        includedLanguages: 'en,zh-CN,hr,cs,da,nl,fr,de,el,iw,hu,ga,it,ja,ko,pt,ro,ru,sr,es',
        layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
        // 自动显示翻译横幅,就是翻译后顶部出现的那个
        autoDisplay: true,
        // 还有些其他参数
    },
    'google_translate_element' // 触发元素的id
  )
}
</script>

<style scoped lang="less">
</style>

四、过程记录

必须科学上网,否则访问不到依赖文件

https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit

五、参考连接

翻译:网站整站翻译 / 网站国际化 / 极简实现_自动翻译网站的代码-CSDN博客

js获取浏览器默认语言设置_js如何获取谷歌首选语言信息-CSDN博客

记录|给网站添加谷歌多语言翻译插件 - Jialezi `s blog

利用Google翻译实现网站国际化——js插件 - 灰信网(软件开发博客聚合)

网页嵌入谷歌翻译js插件 - 代码先锋网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值