vue2 elementUI vue-i18n国际化 中英文切换

  1. npm install vue-i18n@8.2.1 --save
  2. src下面新建文件夹
    在这里插入图片描述
  3. en.js文件内容:
export const h = {
  system: 'Medical Cloud Images Platform',
  full: 'check registration',
  account: 'hospital',
  invoice: 'invoice',
  reconciliation: 'Statement',
  record: 'recording',
  report: 'report',
  setting: 'Settings',
  login: 'login',
  tips: 'Username and password are filled in casually',
  administrator: 'administrator',
  placeUser: 'please enter user name',
  palcePass: 'Please enter your password',
  palceCode: 'please enter verification code',
  accounts: 'accounts',
  password: 'password',
  code: 'Verification code',
}
  1. zh.js文件内容:
export const h = {
  system: '医学影像云平台',
  full: '检查登记',
  account: '医院',
  invoice: '原始单据',
  reconciliation: '财务对账',
  record: '对账记录',
  report: '月结报表',
  setting: '系统设置',
  login: '登录',
  tips: '用户名和密码随便填',
  administrator: '管理员',
  placeUser: '请输入用户名',
  palcePass: '请输入密码',
  palceCode: '请输入验证码',
  accounts: '账号',
  password: '密码',
  code: '验证码',
}
  1. index.js 文件内容:
import Vue from 'vue'
import VueI18n from 'vue-i18n'

Vue.use(VueI18n) // 全局挂载

export const i18n = new VueI18n({
  locale: localStorage.getItem('locale') || 'en', // 从localStorage中获取 默认英文
  messages: {
    zh: require('./lan/zh'), // 中文语言包
    en: require('./lan/en'), // 英文语言包
  },
})

export default i18n
  1. main.js 文件
    在这里插入图片描述
  2. 中英文切换
    <div class="full" @click="changeLangEvent()">
      <el-button type="primary">{{ language }}</el-button>
    </div>
    <div class="system">{{ $t('h.full') }}</div>
    <el-tab-pane :label="$t('h.full')" name="initiate">

//方法
    changeLangEvent() {
      console.log(this.$i18n)
      if (this.language == 'EN') {
        localStorage.setItem('locale', 'zh')
        this.$i18n.locale = localStorage.getItem('locale')
        this.$message({
          message: '切换为中文!',
          type: 'success',
        })
        localStorage.setItem('lang', 'ZH')
        this.language = 'ZH'
        location.reload() //重新加载
      } else if (this.language == 'ZH') {
        localStorage.setItem('locale', 'en')
        this.$i18n.locale = localStorage.getItem('locale')
        this.$message({
          message: 'Switch to English!',
          type: 'success',
        })
        localStorage.setItem('lang', 'EN')
        this.language = 'EN'
        location.reload()
      }
    },
  1. elementui国际化使用 element-ui": “^2.4.5”
// 完整引入 Element
import Vue from 'vue'
import ElementUI from 'element-ui'
import locale from 'element-ui/lib/locale/lang/en'//------重点

Vue.use(ElementUI, { locale })//------重点
// 按需引入 Element
import Vue from 'vue'
import { Button, Select } from 'element-ui'
import lang from 'element-ui/lib/locale/lang/en'//------重点
import locale from 'element-ui/lib/locale'//------重点

// 设置语言
locale.use(lang)//------重点

// 引入组件
Vue.component(Button.name, Button)
Vue.component(Select.name, Select)
  1. 写法
this.$t('tableHeader.accno')

在这里插入图片描述

constant.js中定义
在这里插入图片描述

data中定义:language: process.env.VUE_APP_Language,
使用: c o n s t a n t . P A T I E N T S O U R C E [ l a n g u a g e ] t h i s . constant.PATIENT_SOURCE[language] _this. constant.PATIENTSOURCE[language]this.constant.PATIENT_SOURCE[this.language]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值