Vue项目引入translate.js 国际化自动翻译组件 |
您所在的位置:网站首页 › anniuensany中文翻译 › Vue项目引入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内 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() }) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |