Vue项目引入translate.js 国际化自动翻译组件

02-27 1792阅读

建议 translate.js 配合 i18 使用

Vue项目引入translate.js 国际化自动翻译组件
(图片来源网络,侵删)

本文只介绍 translate.js 的引入和使用方式

无论什么库  在翻译上 都不会做到 ( 100%翻译  && 100%准确 ) 吹毛求疵绕路

官方文档:translate.js 前端翻译

该组件优点:

  • 自动翻译 自动匹配本地语种
  • 利于SEO 对搜索引擎友好
  • 使用简单 直接引入使用即可
  • 瞬时翻译 使用了缓存预加载

    该组件缺点

    • 正因为利于SEO 假设中译英 获取DOM节点的时候还是中文
    • DOM不刷新 DOM内容刷新时 不会自动翻译 所以最好配合 i18 使用

      1. 安装

      npm i i18n-jsautotranslate

      2. 引入

      在main.js内

      import translate from 'i18n-jsautotranslate'
      translate.setUseVersion2() //设置使用v2.x 版本
      translate.selectLanguageTag.show = false //是否显示切换栏
      translate.listener.start() //监控页面动态渲染的文本进行自动翻译
      Vue.prototype.$translate = translate

      3. 使用

      只保留关键代码 

      大体逻辑是在 localStorage 里存入一个 val  根据这个 val 去判断要切换的语种

       一键翻译 
      data() {
        return {
          language: zh,
        }
      },
      // 翻译
      languageAuto() {
        this.language == 'zh' ? (this.language = 'en') : (this.language = 'zh')
        localStorage.setItem('language', `{"language":"${this.language}"}`)
        if (this.language == 'zh') {
          console.log('转为中文')
          this.$translate.changeLanguage('chinese_simplified')
        }
        if (this.language == 'en') {
          console.log('转为英文')
          this.$translate.changeLanguage('english')
        }
        this.$translate.execute() //进行翻译
      },

      4.备注

      在请求接口数据返回选然后  或者  路由切换后

      会出现一半原始语种  一半翻译语种的情况

      此时可以在请求拦截器的相应拦截 和 路由后置守卫里添加

      this.$translate.execute() //进行翻译

      vue 报错的情况下可以如下操作

      import Vue from 'vue'
      let vm = new Vue()
      vm.$nextTick(() => {
         vm.$translate.execute()
      })
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]