vue-i18n結(jié)合Element-ui的配置方法
使用方法:
在配合 Element-UI 一起使用時(shí),會(huì)有2個(gè)問(wèn)題: ####(1)、頁(yè)面刷新后,通過(guò)按鈕切換的語(yǔ)言還原成了最初的語(yǔ)言,無(wú)法保存 ####(2)、框架內(nèi)部自帶的提示文字無(wú)法更改,比如像時(shí)間選擇框內(nèi)部中的提示文字
關(guān)于第一個(gè)問(wèn)題,可以在初始化VueI18n實(shí)例時(shí),通過(guò) localStorage 來(lái)為 locale 對(duì)象賦值
在切換語(yǔ)言的時(shí)候可以緩存不同的語(yǔ)言選項(xiàng),并且可以長(zhǎng)期保存,不會(huì)因?yàn)樗⑿戮W(wǎng)頁(yè)而改變locale 的屬性值
const i18n = new VueI18n({ locale: localStorage.getItem('locale') || 'zh', messages })
關(guān)于第二個(gè)問(wèn)題,更改Element 組件內(nèi)部語(yǔ)言,這里還涉及到 手動(dòng)處理 vue-i18n@6.x 兼容性問(wèn)題。 http://element-cn.eleme.io/#/... 官網(wǎng)已經(jīng)做了詳細(xì)介紹,這里依葫蘆畫瓢跟著實(shí)現(xiàn)一下
###i18n.js import Vue from 'vue' import VueI18n from 'vue-i18n' import locale from 'element-ui/lib/locale'; import zh from './langs/zh' import en from './langs/en' import enLocale from 'element-ui/lib/locale/lang/en' import zhLocale from 'element-ui/lib/locale/lang/zh-CN' Vue.use(VueI18n) const messages = { en: Object.assign(en, enLocale), zh: Object.assign(zh, zhLocale) } console.log(messages.zh) const i18n = new VueI18n({ locale: localStorage.getItem('locale') || 'zh', messages }) locale.i18n((key, value) => i18n.t(key, value)) //為了實(shí)現(xiàn)element插件的多語(yǔ)言切換 export default i18n
按照如上把國(guó)際化文件都整合到一起,避免main.js 中大段引入相關(guān)代碼。main.js 中與 i18n 相關(guān)的就只剩兩行代碼
###main.js import i18n from './i18n/i18n' // 1行 window.app = new Vue({ el: '#app', router, store, i18n, // 2行 components: { App }, template: '' })
---------------------------源碼如下--------------------------------------
// 工程本地 國(guó)際化 import locale_zh_CN from './lang/zh-CN' import locale_zh_TW from './lang/zh-TW' import locale_en_US from './lang/en-US' import locale_ko_KR from './lang/ko-KR' // ElementUI 國(guó)際化 import element_locale from 'element-ui/lib/locale' import element_zh_CN from 'element-ui/lib/locale/lang/zh-CN' import element_zh_TW from 'element-ui/lib/locale/lang/zh-TW' import element_en_US from 'element-ui/lib/locale/lang/en' import element_ko_KR from 'element-ui/lib/locale/lang/ko' import Vue from 'vue' import VueI18n from 'vue-i18n' Vue.use(VueI18n) // 將各自的 國(guó)際化文件合并 拋出 (后期公共組件等插件的 國(guó)際化文件也需要考慮) const messages = { zh_CN: Object.assign(locale_zh_CN, element_zh_CN), zh_TW: Object.assign(locale_zh_TW, element_zh_TW), en_US: Object.assign(locale_en_US, element_en_US), ko_KR: Object.assign(locale_ko_KR, element_ko_KR) } // i18n插件默認(rèn)給中文 const i18n = new VueI18n({ locale: window.localStorage.getItem('WEBFRONT_LANG') || 'zh_CN', messages }) // 為了實(shí)現(xiàn)element插件的多語(yǔ)言切換 element_locale.i18n((key, value) => i18n.t(key, value)) export default i18n
總結(jié)
以上所述是小編給大家介紹的vue-i18n結(jié)合Element-ui的配置方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- 利用vue-i18n實(shí)現(xiàn)多語(yǔ)言切換效果的方法
- vue與vue-i18n結(jié)合實(shí)現(xiàn)后臺(tái)數(shù)據(jù)的多語(yǔ)言切換方法
- vue3使用vue-i18n的方法詳解(ts中使用$t,?vue3不用this)
- 關(guān)于vue-i18n在單文件js中的使用
- vue-i18n的9以上版本中@被用作特殊字符處理,直接用會(huì)報(bào)錯(cuò)問(wèn)題
- vue-i18n實(shí)現(xiàn)中英文切換的方法
- vue項(xiàng)目中使用vue-i18n報(bào)錯(cuò)的解決方法
- vue2如何使用vue-i18n搭建多語(yǔ)言切換環(huán)境
相關(guān)文章
vue 如何從單頁(yè)應(yīng)用改造成多頁(yè)應(yīng)用
這篇文章主要介紹了vue 如何從單頁(yè)應(yīng)用改造成多頁(yè)應(yīng)用,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-10-10Element中el-table動(dòng)態(tài)合并單元格(span-method方法)
本文主要介紹了Element中el-table動(dòng)態(tài)合并單元格(span-method方法),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05vuejs動(dòng)態(tài)組件給子組件傳遞數(shù)據(jù)的方法詳解
這篇文章主要介紹了vuejs動(dòng)態(tài)組件給子組件傳遞數(shù)據(jù)的方法詳解的相關(guān)資料,需要的朋友可以參考下2016-09-09Vue中渲染系統(tǒng)模塊的實(shí)現(xiàn)詳解
想要實(shí)現(xiàn)一個(gè)簡(jiǎn)潔版的Mini-Vue框架,應(yīng)該包含三個(gè)模塊:分別是:渲染系統(tǒng)模塊、可響應(yīng)式系統(tǒng)模塊、應(yīng)用程序入庫(kù)模塊,本文主要介紹的是渲染系統(tǒng)模塊的實(shí)現(xiàn),需要的可以參考一下2023-07-07vue?elementui?實(shí)現(xiàn)搜索欄子組件封裝的示例代碼
這篇文章主要介紹了vue?elementui?搜索欄子組件封裝,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06vite項(xiàng)目如何集成eslint和prettier
這篇文章主要介紹了vite項(xiàng)目如何集成eslint和prettier問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01vue踩坑日記之params傳遞參數(shù)問(wèn)題
這篇文章主要介紹了vue踩坑日記之params傳遞參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05mpvue項(xiàng)目中使用第三方UI組件庫(kù)的方法
這篇文章主要介紹了mpvue項(xiàng)目中使用第三方UI組件庫(kù)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09基于vue手動(dòng)實(shí)現(xiàn)一個(gè)日歷組件
這篇文章主要為大家詳細(xì)介紹了如何基于vue手動(dòng)實(shí)現(xiàn)一個(gè)日歷組件,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01