使用 vue-i18n 進行Vue國際化處理,使項目切換中英文(摘抄)

1.下載安裝插件

命令進入項目目錄,執行如下命令安裝vue 國際化插件vue-i18nhtml

npm install vue-i18n --save

2. 項目增長國際化翻譯文件

在項目的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:'坤達集團介紹'
  }
}

3. 項目引入

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

4. 語言切換

// 切換語言
    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

5.vue-i18n 數據渲染的模板語法

咱們知道 vue 中對於文字數據的渲染,有以‘’{{}}‘’或者 v-text、v-html等的形式,一樣的使用國際化後,依舊能夠沿用,但須要一點修改iview

//v-text:
<span v-text="$t('m.navbar.HOME')"></span>
 
//{{}}:
<span>{{$t('m.navbar.HOME')}}</span>

6.iview組件中的中英文切換

<FormItem :label="$t('m.exchangeRate.Rate')" prop="exchangeRate">
              <Input clearable class="longInput" v-model="formValidate.exchangeRate" :placeholder="$t('m.exchangeRate.input')"></Input>
</FormItem>

 

7.如何實現整個項目語言切換

(1)全部獲取數據的接口提供一個參數用於獲取中文或英文的數據網站

(2)固定的展現文字的放入語言包中切換便可ui

(3)將當前語言類型存入cookie中this

(4)進入頁面即獲取cookie中的語言類型去設置請求數據的接口所對應語言的參數

(5)切換語言時,首先判斷當前語言是中文仍是英文,並作對應的切換,最後將切換的語言存入cookie中

(6)問題:當前頁面的接口沒法切換語言

解決:從新刷新頁面便可

 

原文地址:https://blog.csdn.net/qq_40542728/article/details/92661059

相關文章
相關標籤/搜索