#vue-i8n和view-design(iview)冲突,根本原因是因为view-design本身自己有一套多语言切换的机制,在使用vue-i18n时候需要将view-design的语言包和自己创建的语言文件合并
代码如下(示例):
import Vue from 'vue';
import App from './App.vue';
import ViewUI from 'view-design';
import 'view-design/dist/styles/iview.css';
import VueI18n from 'vue-i18n';
# 下面是重点
import ViewUiEn from 'view-design/dist/locale/en-US'; /*view-design的英文文件*/
import ViewUiZh from 'view-design/dist/locale/zh-CN';/*view-design的中文文件*/
import zh from './libs/lang/zh'; /*自己创建的英文文件*/
import en from './libs/lang/en'; /*自己创建的中文文件*/
Vue.use(VueI18n);// 通过插件的形式挂载,通过全局方法
Vue.locale = () => {};
const i18n = new VueI18n({
locale: 'zh', //从localStorage里获取用户中英文选择,没有则默认中文
messages: {
'zh': Object.assign(ViewUiZh,zh),
'en': Object.assign(ViewUiEn,en)
}
});
Vue.use(ViewUI,{
i18n:(key,value)=>i18n.t(key,value)
});
new Vue({
router,
store,
i18n,
render: (h) => h(App),
}).$mount('#app');