vue2中使用i18n配置elementUi切换语言

1、下载插件

npm i vue-i18n@8.22.2
2、新建文件夹i18n

3、编写index.js文件 

import Vue from "vue";
import VueI18n from "vue-i18n";
import locale from 'element-ui/lib/locale';
// 引入 elementui 的多语言
import enLocale from 'element-ui/lib/locale/lang/en'
import zhCnLocale from 'element-ui/lib/locale/lang/zh-CN'
// 引入自己定义的 I18n 文件
import en from "./lan/en.json";
import zh from "./lan/zh.json";
Vue.use(VueI18n); // 全局挂载
export const i18n = new VueI18n({
  locale: localStorage.getItem("lang") || "zh", // 从localStorage中获取 默认英文
  messages: {
    zh: Object.assign(zh, zhCnLocale), // 中文语言包
    en: Object.assign(en, enLocale) // 英文语言包
  }
});
locale.i18n((key, value) => i18n.t(key, value));
export default i18n;

 4、编写en.json文件和zh.json文件

5、修改main.js文件 

import Vue from 'vue'
import Element from 'element-ui'
import './assets/styles/element-variables.scss'
import { i18n } from './i18n/index'
new Vue({
  el: '#app',
  i18n,
  render: h => h(App)
})
6、 页面显示的语法
   <!-- 这个按钮方便我们用来切换语言 -->
      <template>   
        <div class="full" @click="changeLangEvent()">
          <span class="lan">{{language}}</span>
          <h3 class="title">{{ $t('login.WelcomeToLogin') }}</h3>
        </div>
      </template>
 
<script>
  export default {
data (){
     return {
         language: localStorage.getItem("lang") ||"en"
        }
    },
 methods:{
       changeLangEvent() {
      if (this.language == "en") {
        this.$i18n.locale = 'zh';
        this.$message({
          message: "切换为中文!",
          type: "success"
        });
        localStorage.setItem("lang", "zh");
        this.language = "zh";
      } else if (this.language == "zh") {
        this.$i18n.locale = 'en';
        this.$message({
          message: "Switch to English!",
          type: "success"
        });
        localStorage.setItem("lang", "en");
        this.language = "en";
      }
    },
    }
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端程序猿i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值