Vue-admin-template 添加国际化

Vue-admin-template 添加国际化

1.背景

在全球发展的趋势下,国际化,成为各种软件不可或缺的一部分…

使用Vue-admin-template作为基本框架(基于Element-UI),添加国际化插件i18n

2.开发环境

  1. Vue-admin-template(其他应该也可以使用)
  2. element-ui: “2.4.6”
  3. vue: “2.5.17”
  4. vue-i18n: “^8.8.2”
  5. vue-router: “3.0.1”
  6. vuex: “3.0.1”

3.安装i18n

npm i vue-i18n

4.添加语言包

在这里插入图片描述

lang/index.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import Cookies from 'js-cookie'
import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
import enLocale from './en'
import zhLocale from './zh'

Vue.use(VueI18n)

const messages = {
   
  en: {
   
    ...enLocale,
    ...elementEnLocale
  },
  zh: {
   
    ...zhLocale,
    ...elementZhLocale
  }
}

const i18n = new VueI18n({
   
  // set locale
  // options: en | zh | es
  locale: Cookies.get('language') || 'en',
  // set locale messages
  messages
})

export default i18n

zh.js(中文语言包)
export default {
   
  route: {
   
    dashboard: '首页',
    introduction: '简述'
  }
  role: {
   
    permission: '权限'
  },
  user: {
   
    uname: '用户名',
    role: '角色',
    sex: '性别'
  }
}

可根据实际情况,自行添加扩展

en.js(英文语言包)
export default {
   
  route: {
   
    dashboard: 'Dashboard',
    introduction: 'Introduction'
  }
  role: {
   
    permission: 'Permission'
  },
  user: {
   
    uname: 'User Name',
    role: 'Role',
    sex: 'Sex'
  }
}

5.添加getters,便于获取当前语言

在这里插入图片描述

const getters = {
   
  ......
  language: state => state.app.language
}
export default getters

6.main.js中添加依赖

import ElementUI from 'element-ui' //基于Element-UI
import i18n from './lang'

Vue.use(ElementUI, {
   
  i18n: (key, value) => i18n.<
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值