i18n國際化配置

一個i18n國際化配置
下面是詳細(xì)過程:

  1. 下載i18n
npm install vue-i18n

  1. 創(chuàng)建i18n文件夾

    image
  2. 創(chuàng)建翻譯的文本對象

    image
  3. 在index文件中引入國際化配置文件(也可以直接掛載到下一步)

import en from './en'
import cn from './zh-cn'
import mo from './zh-mo'
// import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
// import elementCnLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
// import elementMoLocale from 'element-ui/lib/locale/lang/zh-TW'// element-ui lang

export default {
  en: {
    ...en,
    // ...elementEnLocale
  },
  cn: {
    ...cn,
    // ...elementCnLocale
  },
  mo: {
    ...mo,
    // ...elementMoLocale
  }
}

  1. 在i18n.js中配置
// 引入插件和語言包
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import messages from './langs'
import locale from 'element-ui/lib/locale'

Vue.use(VueI18n)// 通過插件的形式掛載
const i18n = new VueI18n({//實(shí)例化vue-i18n
  // 從本地存儲中取,如果沒有默認(rèn)為中文,
  // 這樣可以解決切換語言后,沒記住選擇的語言,刷新頁面后還是默認(rèn)的語言
  locale: localStorage.lang || 'cn',
  messages
})

//locale.i18n((key, value) => i18n.t(key, value))//實(shí)現(xiàn)element插件的多語言切換
export default i18n

  1. 在main.js中引入
import i18n from './i18n/i18n'
// element ui
//import ElementUI from 'element-ui';
//import 'element-ui/lib/theme-chalk/index.css';
//Vue.use(ElementUI);

var vue =  new Vue({
  el: '#app',
  i18n,
  // ElementUI,
  router,
  store,
  components: {
    App
  },
  template: '<App/>'
})
export default vue

  1. 在頁面中使用
<h3>{{$t('message.usersLogin')}}</h3>

  1. 切換語言
<!-- 語言選擇框 -->
   <template>
     <el-select
       v-model="value"
       placeholder="中文"
       size="mini"
       width='20px'
       @change="language"
       class="language"
     >
       <el-option
         v-for="item in options"
         :key="item.value"
         :label="item.label"
         :value="item.value"
       >
       </el-option>
     </el-select>
   </template>

 data () {
    return {
      options: [{
        value: 'cn',
        label: '中文'
      }, {
        value: 'en',
        label: '英語'
      }, {
        value: 'mo',
        label: '繁體中文'
      }],
      value: ''
}

 language (value) {
      this.$i18n.locale = value
      localStorage.setItem('lang', value)
}

注釋的是elementUI的國際化配置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容