在vue2中使用i18n一定切记要使用8版本,否则将无法正常使用!!!

npm install vue-i18n@8.27.0 --save

1、在src目录下,创建新的文件夹,命名为i18n

在文件夹i18n中新建langs文件夹,里边放语言文件.js
  zh.js:存放所有的中文显示内容
  en.js:存放所有的英文显示内容
 与langs文件夹同级,创建index.js:用于配置i18n,并导出i18n 

zh.js

export default { 
  //中文
  msg: {
      msg1: '测试一'
  }
}

en.js

export default { 
  //英文
    msg: {
        msg1: 'test one'
    }
}

index.js

import Vue from "vue"
import VueI18n from "vue-i18n"
//引入自定义语言配置  
import zh from './langs/zh'
import en from './langs/en'
//引入UI框架语言配置---elementui
import ElementLocale from 'element-ui/lib/locale'
import enLocale from 'element-ui/lib/locale/lang/en' // 引入饿了么的英文包
import zhLocale from 'element-ui/lib/locale/lang/zh-CN' // 引入饿了么的中文包

ElementLocale.i18n((key, value) => i18n.t(key, value)) 
Vue.use(VueI18n);


const i18n = new VueI18n({
    locale: localStorage.getItem('lang') || "en", 
    messages: {
        // 中文语言包
        'zh': {
            ...zh,
            ...zhLocale
        },
        //英文语言包
        'en': {
            ...en,
            ...enLocale
        }
    },
    globalInjection: true, 
    fallbackLocale: 'en', 
});

export default i18n

2、在main里导入语言包文件

main.js

import i18n from './i18n/index'

Vue.use(ELEMENT,
  {
    i18n: (key, value) => i18n.t(key, value)
  }
)
new Vue({
  router,
  store,
  i18n,
  render: (h) => h(App)
}).$mount('#app')

3、使用方式

<h1>{{ $t('msg.msg1') }}</h1>

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐