命令進入項目目錄,執行如下命令安裝vue 國際化插件vue-i18nhtml
npm install vue-i18n --save
在項目的src下添加lang文件夾增長中文翻譯文件(zh.js)以及英文翻譯文件(en.js),裏面分別存儲項目中須要翻譯的信息。vue
en.js 英文語言包:npm
export const m = { // 導航欄 navbar:{ HOME:'HOME', ABOUTUS:'ABOUT US', SERVICES:'SERVICES', LIVERATE:'LIVE RATE', NEWS:'NEWS', CONTACTUS:'CONTACT US' }, // 底部 footer:{ CONTACTUS:'CONTACT US', WEBSITENAVIGATION:'WEBSITE NAVIGATION', ABOUTUS:'ABOUT US', OURSERVICES:'OUR SERVICES', NEWS:'NEWS', LIVERATE:'LIVE RATE', CUSTOMERSERVICE:'CUSTOMER SERVICE', WECHAT:'WECHAT' }, // 首頁 index:{ SERVICES:'SERVICES', NEWS:'NEWS', GOLDMATENEWS:'GOLDMATE NEWS', MARKETINSIGHT:'MARKET INSIGHT', KUNDAX:'KUNDAX', GOLDMATE:'GOLDMATE', GOLDMATEGROUP:'GROUP', KUNDAGROUP:'GROUP' } }
zh.js 中文語言包微信
export const m = { // 導航欄 navbar:{ HOME:'首頁', ABOUTUS:'關於咱們', SERVICES:'主營業務', LIVERATE:'實時匯率', NEWS:'最新資訊', CONTACTUS:'聯繫咱們' }, // 底部 footer:{ CONTACTUS:'聯繫咱們', WEBSITENAVIGATION:'網站地圖', ABOUTUS:'關於咱們', OURSERVICES:'主營業務', NEWS:'最新資訊', LIVERATE:'實時匯率', CUSTOMERSERVICE:'客服熱線', WECHAT:'微信公衆號' }, // 首頁 index:{ SERVICES:'主營業務', NEWS:'最新資訊', GOLDMATENEWS:'公司要聞', MARKETINSIGHT:'匯市動態', KUNDAX:'坤達速匯', GOLDMATE:'中聯匯兌', GOLDMATEGROUP:'中聯集團介紹', KUNDAGROUP:'坤達集團介紹' } }
import VueI18n from 'vue-i18n' Vue.use(VueI18n) const i18n = new VueI18n({ locale: 'zh-CN', // 語言標識 //this.$i18n.locale // 經過切換locale的值來實現語言切換 messages: { 'zh-CN': require('./lang/zh'), // 中文語言包 'en-US': require('./lang/en') // 英文語言包 } }) new Vue({ el: '#app', router: router, i18n,// 不要忘記 render: h => h(App), mounted () { }, created () { } });
上面的代碼正式將 vue-i18n 引入 vue 項目中,建立一個 i18n 實例對象,方便全局調用。咱們經過 this.$i18n.locale 來進行語言的切換。當 locale 的值爲‘zh-CN’時,版本爲中文;當 locale 的值爲‘en-US’,版本爲英文。固然你也能夠換成 zh 和 en,這個不固定,只須要對應上。cookie
// 切換語言 changeLanguage() { if (this.language == "zh-CN") { this.language = "en-US"; this.$i18n.locale = this.language; //關鍵語句 this.addCookie("lang", this.language); } else { this.language = "zh-CN"; this.$i18n.locale = this.language; //關鍵語句 this.addCookie("lang", this.language); } location.reload(); }
this.$i18n.locale
,當你賦值爲‘zh-CN’時,就變成中文;當賦值爲 ‘en-US’時,就變成英文。app
咱們知道 vue 中對於文字數據的渲染,有以‘’{{}}‘’或者 v-text、v-html等的形式,一樣的使用國際化後,依舊能夠沿用,但須要一點修改iview
//v-text: <span v-text="$t('m.navbar.HOME')"></span> //{{}}: <span>{{$t('m.navbar.HOME')}}</span>
<FormItem :label="$t('m.exchangeRate.Rate')" prop="exchangeRate"> <Input clearable class="longInput" v-model="formValidate.exchangeRate" :placeholder="$t('m.exchangeRate.input')"></Input> </FormItem>
(1)全部獲取數據的接口提供一個參數用於獲取中文或英文的數據網站
(2)固定的展現文字的放入語言包中切換便可ui
(3)將當前語言類型存入cookie中this
(4)進入頁面即獲取cookie中的語言類型去設置請求數據的接口所對應語言的參數
(5)切換語言時,首先判斷當前語言是中文仍是英文,並作對應的切換,最後將切換的語言存入cookie中
(6)問題:當前頁面的接口沒法切換語言
解決:從新刷新頁面便可
原文地址:https://blog.csdn.net/qq_40542728/article/details/92661059