当前位置:   article > 正文

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

translate.js

建议 translate.js 配合 i18 使用

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

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

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

该组件优点:

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

该组件缺点

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

1. 安装

npm i i18n-jsautotranslate

2. 引入

在main.js内

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

3. 使用

只保留关键代码 

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

  1. <div @click="languageAuto()"> 一键翻译 </div>
  2. data() {
  3. return {
  4. language: zh,
  5. }
  6. },
  7. // 翻译
  8. languageAuto() {
  9. this.language == 'zh' ? (this.language = 'en') : (this.language = 'zh')
  10. localStorage.setItem('language', `{"language":"${this.language}"}`)
  11. if (this.language == 'zh') {
  12. console.log('转为中文')
  13. this.$translate.changeLanguage('chinese_simplified')
  14. }
  15. if (this.language == 'en') {
  16. console.log('转为英文')
  17. this.$translate.changeLanguage('english')
  18. }
  19. this.$translate.execute() //进行翻译
  20. },

4.备注

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

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

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

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

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

  1. import Vue from 'vue'
  2. let vm = new Vue()
  3. vm.$nextTick(() => {
  4. vm.$translate.execute()
  5. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/887581
推荐阅读
相关标签
  

闽ICP备14008679号