基于Vue、vue-i18n实现国际化(多语言)

vue-i18n官网 https://kazupon.github.io/vue...

项目用vue-cli构建,用到vue全家桶及webpack、iview。

1、在main.js中引入vue-i18n.

import VueI18n from 'vue-i18n'
vue调用第三方插件
Vue.use(VueI18n)

2、新建一个vue-i18n对象

const i18n = new VueI18n({
  // 默认语言
  locale: LangCongig.DEFAULT_LANG,
  messages: LangCongig.LOCALES
})

3、配置语言选项

LangCongig是一个配置语言包文件和语言选项的js文件,文件内容大致如下:
// LangCongig.js
import IviewLangs from './iviewLangs'

// 语言包列表, 合并语言包
const locales = {
  'cn': Object.assign(require('../lang/cn'), IviewLangs.zh_CN),
  'en': Object.assign(require('../lang/en'), IviewLangs.en_US)
}
export default {
  DEFAULT_LANG: setup(),
  LOCALES: locales
}
setup是一个函数,判断当前设置的语言类型,如果没有设置语言,则根据navigator判断是中文还是非中文,非中文则显示英语。
IviewLangs是iview的语言包配置,即我们定义的语言与iview显示的要一致,比如时间选择器的显示。
// IviewLangs.js
import zhCN from 'iview/dist/locale/zh-CN' // 简体中文
import enUS from 'iview/dist/locale/en-US' // 英文

export default {
  zh_CN: zhCN,
  en_US: enUS
}
require('../lang/cn')这个是我们自定义的中文语言包,格式如下:
// cn.js
module.exports = {
  language: '语 言',
  chinese: '中文'
}
// en.js
module.exports = {
  language: 'language',
  chinese: 'Chinese'
}

4、添加到new Vue选项里

let vm = new Vue({
  el: '#app',
  i18n,
  render: h => h(App)
})

5、如何调用

在页面调用:<span>{{$t('language')}}</span>
在js中调用:this.$t('language')

6、切换语言

1)把语言保存起来,以便退出或刷新时加载后还是当前选择的语言,一般存在cookie里
2)this.$i18n.locale = 'en' 重置语言类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值