Vue項(xiàng)目引入translate.js國(guó)際化自動(dòng)翻譯組件的方法
建議 translate.js 配合 i18 使用
本文只介紹 translate.js 的引入和使用方式
無(wú)論什么庫(kù) 在翻譯上 都不會(huì)做到 ( 100%翻譯 && 100%準(zhǔn)確 ) 所以不要吹毛求疵
官方文檔:translate.js 前端翻譯
該組件優(yōu)點(diǎn):
- 自動(dòng)翻譯 自動(dòng)匹配本地語(yǔ)種
- 利于SEO 對(duì)搜索引擎友好
- 使用簡(jiǎn)單 直接引入使用即可
- 瞬時(shí)翻譯 使用了緩存預(yù)加載
該組件缺點(diǎn)
- 正因?yàn)槔赟EO 假設(shè)中譯英 獲取DOM節(jié)點(diǎn)的時(shí)候還是中文
- DOM不刷新 DOM內(nèi)容刷新時(shí) 不會(huì)自動(dòng)翻譯 所以最好配合 i18 使用
1. 安裝
npm i i18n-jsautotranslate
2. 引入
在main.js內(nèi)
import translate from 'i18n-jsautotranslate' translate.setUseVersion2() //設(shè)置使用v2.x 版本 translate.selectLanguageTag.show = false //是否顯示切換欄 translate.listener.start() //監(jiān)控頁(yè)面動(dòng)態(tài)渲染的文本進(jìn)行自動(dòng)翻譯 Vue.prototype.$translate = translate
3. 使用
只保留關(guān)鍵代碼
大體邏輯是在 localStorage 里存入一個(gè) val 根據(jù)這個(gè) val 去判斷要切換的語(yǔ)種
<div @click="languageAuto()"> 一鍵翻譯 </div>
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('轉(zhuǎn)為中文')
this.$translate.changeLanguage('chinese_simplified')
}
if (this.language == 'en') {
console.log('轉(zhuǎn)為英文')
this.$translate.changeLanguage('english')
}
this.$translate.execute() //進(jìn)行翻譯
},4.備注
在請(qǐng)求接口數(shù)據(jù)返回選然后 或者 路由切換后
會(huì)出現(xiàn)一半原始語(yǔ)種 一半翻譯語(yǔ)種的情況
此時(shí)可以在請(qǐng)求攔截器的相應(yīng)攔截 和 路由后置守衛(wèi)里添加
this.$translate.execute() //進(jìn)行翻譯
vue 報(bào)錯(cuò)的情況下可以如下操作
import Vue from 'vue'
let vm = new Vue()
vm.$nextTick(() => {
vm.$translate.execute()
})總結(jié)
到此這篇關(guān)于Vue項(xiàng)目引入translate.js國(guó)際化自動(dòng)翻譯組件的文章就介紹到這了,更多相關(guān)Vue引入translate.js組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何寫(xiě)出一個(gè)利于擴(kuò)展的vue路由配置
這篇文章主要介紹了詳解如何寫(xiě)出一個(gè)利于擴(kuò)展的vue路由配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
vue項(xiàng)目打包之后生成一個(gè)可修改IP地址的文件(具體操作)
這篇文章主要介紹了vue項(xiàng)目打包之后生成一個(gè)可修改IP地址的文件(具體操作),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
使用Vue3和ApexCharts實(shí)現(xiàn)交互式3D折線(xiàn)圖
ApexCharts 是一個(gè)功能強(qiáng)大的 JavaScript 庫(kù),用于創(chuàng)建交互式、可定制的圖表,在 Vue.js 中,它可以通過(guò) vue3-apexcharts 插件輕松集成,本文給大家介紹了使用Vue3和ApexCharts實(shí)現(xiàn)交互式3D折線(xiàn)圖,需要的朋友可以參考下2024-06-06
vuejs選中當(dāng)前樣式active的實(shí)例
今天小編就為大家分享一篇vuejs選中當(dāng)前樣式active的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
vue-video-player 通過(guò)自定義按鈕組件實(shí)現(xiàn)全屏切換效果【推薦】
這篇文章主要介紹了vue-video-player,通過(guò)自定義按鈕組件實(shí)現(xiàn)全屏切換效果,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08
vue等待數(shù)據(jù)渲染完成后執(zhí)行下一個(gè)方法問(wèn)題
這篇文章主要介紹了vue等待數(shù)據(jù)渲染完成后執(zhí)行下一個(gè)方法問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
Vue項(xiàng)目組件化工程開(kāi)發(fā)實(shí)踐方案
這篇文章主要介紹了Vue項(xiàng)目組件化工程開(kāi)發(fā)實(shí)踐方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-01-01

