import Vue from 'vue' import VueI18n from 'vue-i18n' import Cookies from 'js-cookie' // Element UI组件的语言包 import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN' // element-ui lang // Vxe表格组件的语言包 import vxeTableEnLocale from 'vxe-table/lib/locale/lang/en-US' // vxe-table lang import vxeTableZhLocale from 'vxe-table/lib/locale/lang/zh-CN' // vxe-table lang // 项目的语言包 import enLocale from './en' import zhLocale from './zh' Vue.use(VueI18n) const messages = { en: { ...enLocale, ...elementEnLocale, ...vxeTableEnLocale, }, zh: { ...zhLocale, ...elementZhLocale, ...vxeTableZhLocale, } } export function getLanguage() { const chooseLanguage = Cookies.get('language') if (chooseLanguage) return chooseLanguage // if has not choose language const language = (navigator.language || navigator.browserLanguage).toLowerCase() const locales = Object.keys(messages) for (const locale of locales) { if (language.indexOf(locale) > -1) { return locale } } return 'en' } const i18n = new VueI18n({ // set locale // options: en | zh | es locale: getLanguage(), // set locale messages messages }) export default i18n