vue vue-i18n插件实现国际化

1.安装

vue2

npm install vue-i18n@8

vue3

npm install vue-i18n@9

安装版本介绍:

vue2–> 小于9

vue3–>大于9

具体版本可以通过下面命令查看:

npm view vue-i18n versions --json

2.在main.js中引入

import Vue from 'vue'
// 国际化插件
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
const i18n = new VueI18n({
  locale:(function(){
    if(localStorage.getItem('lang')){
      return localStorage.getItem('lang')
    }
    return language
  }()),
  messages:{
     // 当 locale 为 ‘zh-CN'时,版本为中文;当locale 的值为 'en-US',版本为英文
    'zh-CN': require('./common/lang/zh'),// 中文语言包
    'en-US': require('./common/lang/en')
  }
 })
//创建Vue类的一个实例
const vuuu = new Vue({
  render: h => h(App),
  i18n
}).$mount('#app');

然后再 common 文件夹创建一下文件:

下面演示只做了中英文切换,在vue-i18n中比较简单,只需要两个js文件,通过require的形式引入到main.js。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zrEvc9F1-1650444215102)(D:\study\项目\前端\vue+elementui\vue+elementui.assets\image-20220420163041916.png)]

en.js

export const m = {
  username: 'username',
  password: 'password'
}

zh.js

export const m = {
  username: '用户名',
  password: '密码'
}

上面使用localStorage来保存lang语言类型,当进行切换的时候,会把选择的语言存起来,当再次刷新的时候,选择的语言还在。

3.使用

(1) 在标签中使用

<div class="title">{{$t(m.username)}}</div>

(2) 在input的placeholder

<input type="password" :placeholder="$t(m.password)" maxlength="24" v-model="log_password">

在elementui中使用

  <el-input
     v-validate="'required|min:6|max:10'"
     v-model="loginForm.password"
      prefix-icon="el-icon-unlock"
      :placeholder="$t('m.password')"
     name="password"
  />

(3) 语言切换

changeLangEvent(){
      this.$i18n.locale = 'zh-CN';
      localStorage.setItem("lang","zh-CN");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

半夏_2021

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

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

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

打赏作者

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

抵扣说明:

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

余额充值