下面代码将ElementUI的国际化包和自定义国际化包混合到后,创建 VueI18n实例。最后通过挂载 $loadLanguageAsync 来切换语言。 import Vue from 'vue' import VueI18n from 'vue-i18n' import messages from './lang' Vue.use(VueI18n) // 测试 import en from '@/utils/lang/langPack/en.json'; import zhCN from '@/utils/lang/langPack/zh.json'; messages.en = { ...messages.en, ...en.langData } messages.zhCN = { ...messages.zhCN, ...zhCN.langData } // 测试end // Create VueI18n instance with options const i18n = new VueI18n({ locale: 'zhCN', // 语言标识 messages: messages, silentTranslationWarn: true, }) // 异步加载同步语言包 function loadLanguageAsync(lang) { // 将语言包内字段重组,set至i18n i18n.setLocaleMessage(lang, { ...messages[lang], ...zhLocal[lang] }) i18n.locale = lang return lang } // 在手动切换语言时调用此方法,页面初始化时需加载一个默认语言 Vue.prototype.$loadLanguageAsync = loadLanguageAsync export default i18n