@ecip/ecip-web
Version:
A magical vue admin. An out-of-box UI solution for enterprise applications. Newest development stack of vue. Lots of awesome features
75 lines (70 loc) • 1.83 kB
JavaScript
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import { getStorageVal } from 'ecip-web/utils'
import { LANGUAGE } from '@/store/mutation-types'
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
import elementEsLocale from 'element-ui/lib/locale/lang/es'// element-ui lang
import elementJaLocale from 'element-ui/lib/locale/lang/ja'// element-ui lang
import vxeZhCN from 'vxe-table/lib/locale/lang/zh-CN'
import vxeEnUS from 'vxe-table/lib/locale/lang/en-US'
import vxeJaJP from 'vxe-table/lib/locale/lang/ja-JP'
import enLocale from './en'
import zhLocale from './zh'
import esLocale from './es'
import jaLocale from './ja'
Vue.use(VueI18n)
const messages = {
en: {
...enLocale,
...elementEnLocale,
...vxeEnUS
},
'zh-CN': {
...zhLocale,
...elementZhLocale,
...vxeZhCN
},
'zh_CN': {
...zhLocale,
...elementZhLocale,
...vxeZhCN
},
zh: {
...zhLocale,
...elementZhLocale,
...vxeZhCN
},
es: {
...esLocale,
...elementEsLocale,
...vxeEnUS
},
ja: {
...jaLocale,
...elementJaLocale,
...vxeJaJP
}
}
export function getLanguage() {
const chooseLanguage = getStorageVal(LANGUAGE, '')
if (chooseLanguage) return JSON.parse(chooseLanguage).value
// if has not choose browserLanguage
const browserLanguage = (navigator.language || navigator.browserLanguage).toLowerCase()
const locales = Object.keys(messages)
for (const locale of locales) {
if (browserLanguage.indexOf(locale) > -1) {
return locale
}
}
return 'zh-CN'
}
const i18n = new VueI18n({
// set locale
// options: en | zh | es
locale: 'zh-CN',
// set locale messages
messages,
silentTranslationWarn: true
})
export default i18n