diff --git a/src/lang/index.js b/src/lang/index.js index 7c9c8af6..4a0f52cb 100644 --- a/src/lang/index.js +++ b/src/lang/index.js @@ -24,11 +24,22 @@ const messages = { ...elementEsLocale } } - +export function getLanguage() { + const chooseLanguage = Cookies.get('language') + if (chooseLanguage) return chooseLanguage + 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: Cookies.get('language') || 'en', + locale: getLanguage(), // set locale messages messages }) diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue index f02a4819..1021f419 100644 --- a/src/layout/components/Sidebar/index.vue +++ b/src/layout/components/Sidebar/index.vue @@ -1,3 +1,4 @@ + diff --git a/src/store/index.js b/src/store/index.js index 4842ea7e..1e0b54ac 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,24 +1,17 @@ import Vue from 'vue' import Vuex from 'vuex' -import app from './modules/app' -import errorLog from './modules/errorLog' -import permission from './modules/permission' -import tagsView from './modules/tagsView' -import settings from './modules/settings' -import user from './modules/user' import getters from './getters' Vue.use(Vuex) - +const modulesFiles = require.context('./modules', false, /\.js$/) +const modules = {} +modulesFiles.keys().forEach(item => { + const key = item.replace(/^\.\/(.*)\.\w+$/, '$1') + const value = modulesFiles(item) + modules[key] = value.default +}) const store = new Vuex.Store({ - modules: { - app, - errorLog, - permission, - tagsView, - settings, - user - }, + modules, getters }) diff --git a/src/store/modules/app.js b/src/store/modules/app.js index 84875dd6..73616469 100644 --- a/src/store/modules/app.js +++ b/src/store/modules/app.js @@ -1,4 +1,5 @@ import Cookies from 'js-cookie' +import { getLanguage } from '@/lang/index' const state = { sidebar: { @@ -6,7 +7,7 @@ const state = { withoutAnimation: false }, device: 'desktop', - language: Cookies.get('language') || 'en', + language: getLanguage(), size: Cookies.get('size') || 'medium' } diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 00000000..782f1ada --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,12 @@ +/** + * 不是真实的 webpack 配置,仅为兼容 webstorm 和 intellij idea 代码跳转 + * ref: https://github.com/umijs/umi/issues/1109#issuecomment-423380125 + */ + +module.exports = { + resolve: { + alias: { + "@": require("path").resolve(__dirname, "src") + } + } +};