vue国际化配置及使用

vue项目国际化,目录结构如下:

其中i18n目录下文件为国际化内容

用于显示各种语言的文件在i18n/langs下,其中index.js为各种语言的整合文件,内容如下:

import en from './en'
import zh from './zh-cn'
import tw from './zh-tw'
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
import twLocale from 'element-ui/lib/locale/lang/zh-TW'
import enLocale from 'element-ui/lib/locale/lang/en'

const message = {
  "en":Object.assign(en,enLocale),
  "zh":Object.assign(zh,zhLocale),
  "cht":Object.assign(tw,twLocale)
}
export default message;

zh-cn.js文件内容如下:

const cn = {
  message: {
    login:'登录',
  },
}
export default cn;

同时编写多语言插件的功能函数,在i18n/i18n.js写如下内容:

import Vue from 'vue'
import locale from 'element-ui/lib/locale'
import I18n from 'vue-i18n'
import messages from './langs/index'
import storageUtil from '../utils/storageUtil'
Vue.use(I18n)

const i18n = new I18n({
  locale: storageUtil.getLang(), // 其实就是en、zh、cht
  messages,
});
locale.i18n((key,value)=>{i18n.t(key,value)}) 
export default i18n;

上述内容准备好以后需要在main.js中进行配置,方式如下:

首先需要引入多语言切换功能函数

import i18n from './i18n/i18n'

然后在Vue中注册多语言功能,如下:

new Vue({
  el: '#app',
  components: { App },
  template: '<App/>',
  i18n
})

至此已经完成了多语言功能,如果想要切换语言时只要调用如下语句即可

this.$i18n.locale = "en"; // en、zh...

在静态模板中调用多语言字符串时使用的语句如下:

{{$t(`message.login`)}}

在js语句中使用多语言字符串时使用的语句如下:

this.$t('message.login')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值