其实很简单,把i18n直接挂载到window上,全局可使用。下面请看详细。
一、安装
npm install vue-i18n@9
二、在vue的main.js中引入
import Vue from "vue"
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)//注入到所有的子组件,就是注册到全局,但是这里仅仅只能在vue文件中使用// 引入你本地的语言包
import en from './lang/en.ts'
import zhCn from './lang/zh-cn.ts'
const messages = {en: { name: 'en', ...en},'zh-cn': { name: 'zh-cn', ...zhCn}
}
const i18n = new VueI18n({// set localelocale: 'zh-cn'fallbackLocale: 'zh-cn', // 默认语言环境。如果locale中无匹配项则采用该项值messages: messages // set locale messages// silentTranslationWarn: true // 避免一些警告 (同时保留那些完全没有翻译给定关键字的警告),需初始化 VueI18n 实例时设置
})window.$i18n = i18n // 这个全局可使用,包括vue,js等文件
export default i18n // 这一步导出给其他通过import的方式引用
三、使用
在vue文件中,如下使用
<div>{{ $t('hello') }}</div>
在js文件中的使用
<div>{{ window.$i18n.t('hello') }}</div>