1. 程式人生 > 實用技巧 >elementUI i18n 國際化

elementUI i18n 國際化

檔案目錄:

i18n.js:

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import en from './lang/en'
import cn from './lang/cn'
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: {
    ...en,
    ...enLocale
  },
  zh: {
    ...cn,
    ...zhLocale 
// 或者用 Object.assign({ message: '你好' }, zhLocale) } } const i18n = new VueI18n({ locale: 'en', // 設定預設語言 messages }) export default i18n
View Code

cn.js:

const cn = {
  message: {
    i1: '歡迎來到我的專案',
  },
}


export default cn

en.js:

const en = {
  message: {
    i1: 'Welcome to my project',
  },
}


export 
default en;

main.js:

import i18n from './components/i18n/i18n.js';

Vue.use(ElementUI,{
  i18n: (key, value) => i18n.t(key, value)
});

new Vue({
  el: '#app',
  router,
  store,
  i18n,
  components: { App },
  template: '<App/>'
})

使用:

<template>
  <div class="hello">
    <
el-button type="primary" @click="switchChinese()">切換中文</el-button> <el-button type="primary" @click="switchEnlish()">切換英文</el-button> <p>{{ $t("message.i1") }}</p> <el-date-picker v-model="value1" type="date" placeholder="選擇日期"> </el-date-picker> </div> </template> <script> export default { name: "HelloWorld", data() { return {value1: '',}; }, methods: { switchChinese() { this.$i18n.locale = "zh"; }, switchEnlish() { this.$i18n.locale = "en"; }, }, }; </script>
View Code

效果: