vue i18n国际化

1.安装依赖

npm install --save vue-i18n

2.新建目录结构如下图:
在这里插入图片描述
3.单页面应用,把language 存入 localstorage中,切换路由 从 localstorage中取值,如果没有 默认 cn.

main.js

import i18n from './i18n/i18n'
new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})

cn.js

import zhLocale from "element-ui/lib/locale/lang/zh-CN";
const cn = {
  message: {
    hello: "你好,世界"
  },
  tableHead: {
    authname: "授权组名称",
    name: "姓名"
  },
  ...zhLocale
};

export default cn;

en.js

import enLocale from "element-ui/lib/locale/lang/en";
const en = {
  message: {
    hello: "hello, world"
  },
  tableHead: {
    authname: "authname",
    name: "name"
  },
  ...enLocale
};

export default en;

index.js

import en from './en'
import cn from './cn'
export default {
  en,
  cn
}

i18n.js

import Vue from "vue";
import locale from "element-ui/lib/locale";
import VueI18n from "vue-i18n";
import messages from "./langs";

Vue.use(VueI18n);
const i18n = new VueI18n({
  locale: localStorage.lang || "cn",
  messages
});
locale.i18n((key, value) => i18n.t(key, value)); //重点:为了实现element插件的多语言切换

export default i18n;

页面:xxx.vue

	<el-table-column
          :label="this.$t('tableHead.authname')"
          prop="auth_group_name"
          sortable>
    </el-table-column>
    <el-button @click="cnChoose">中文</el-button>
    <el-button @click="enChoose">英文</el-button>
    cnChoose() {
      this.$i18n.locale = "cn";
      localStorage.setItem("lang", this.$i18n.locale);
    },
    enChoose() {
      this.$i18n.locale = "en";
      localStorage.setItem("lang", this.$i18n.locale);
    }

效果图:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值