欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue 国际化 vue-i18n 双语言 语言包

程序员文章站 2022-05-14 15:32:39
1.安装vue-i18n 2.在main.js里面引用 import vuei18n from 'vue-i18n' vue.use(vuei18n)...

1.安装vue-i18n

2.在main.js里面引用

import vuei18n from 'vue-i18n'
vue.use(vuei18n)

3.实例化i18n,并配置默认的语言模式,以及对应的文件(也是在main.js里使用)

如下。cn 中文包对应的是cn.js

en 对应的是英文 en.js 包

const i18n = new vuei18n({
 //定义默认语言
 locale: 'cn', 
 messages:{
  'cn': require('./common/lang/cn'),
  'en': require('./common/lang/en')
 }
})

4.cn.js 怎么写?

module.exports = {
  placeholder: {
    phone: '手机号',
    input_code: '输入验证码',
    passwordsix: '请输入6到18位密码'
  },
  sidebar: {
    myaccount: '账户信息',
    personalinformation: '个人信息',
    message: '我的消息',
    mywallet: '我的钱包',
    myproject: '我的方案'
  },
  home: {
    sendcode: 'send verification code success'  
  }
}

当然 en.js 也需要配置一份

module.exports = {
  placeholder: {
    phone: 'phone number',
    input_code: 'verification code',
    passwordsix: 'please enter 6 to 18 bit passwords'
  },
  sidebar: {
    myaccount: 'my account',
    personalinformation: 'personal information',
    message: 'message',
    mywallet: 'my wallet',
    myproject: 'my project'
  },
  home: {
    sendcode: 'send code success功'  
  }
}

5.如何在template中使用?

需要这样渲染出来

{{ $t("sidebar.mywallet") }}
<li>{{ $t("sidebar.mywallet") }}</li>

当然placeholder也是可以通过他来更改的。

<input type="text" v-model="phonenumber" :placeholder="$t('placeholder.phone')"> 对应好配置好的placeholder就行。

中/english 切换函数

tag () {
  if (this.$i18n.locale === 'en') {
    this.$i18n.locale = 'cn'
  } else {
    this.$i18n.locale = 'en'
  }  
}

在js里如何拿配置过的语言来使用?

this.$t("sidebar.myaccount")

这里我们使用了mint-ui框架中的toast消息提示框,想让它根据语言环境来显示不同的提示语。

双语言前

toast({message: '验证码发送成功'})

更改为双语言后

toast({message: this.$t("home.sendcode")})

总结

以上所述是小编给大家介绍的vue 国际化 vue-i18n 双语言 语言包,希望对大家有所帮助