diff --git a/cclqms-java/src/main/resources/mapper/language/SysLanguageListDao.xml b/cclqms-java/src/main/resources/mapper/language/SysLanguageListDao.xml index b8f4b2c..412dde7 100644 --- a/cclqms-java/src/main/resources/mapper/language/SysLanguageListDao.xml +++ b/cclqms-java/src/main/resources/mapper/language/SysLanguageListDao.xml @@ -10,6 +10,10 @@ FROM sys_language_list sl LEFT JOIN sys_object_language_list sol on (sol.language_id = sl.language_id) - WHERE sol.language_code = #{languageCode} + + + sol.language_code = #{languageCode} + + - \ No newline at end of file + diff --git a/cclqms-vue/src/i18n/i18n.js b/cclqms-vue/src/i18n/i18n.js index 125cc21..16c0b38 100644 --- a/cclqms-vue/src/i18n/i18n.js +++ b/cclqms-vue/src/i18n/i18n.js @@ -3,12 +3,24 @@ import Vue from 'vue' Vue.use(VueI18n) -const supportedLocales = ['cn', 'en'] -let locale = localStorage.getItem('locale') || 'cn' -if (!supportedLocales.includes(locale)) { - locale = 'cn' - localStorage.setItem('locale', locale) + +const localeAliasMap = { + cn: 'cn', + 'zh-cn': 'cn', + 'zh_cn': 'cn', + en: 'en', + 'en-us': 'en', + 'en_us': 'en' +} + +export function normalizeLocale (locale) { + const normalizedLocale = (locale || '').toString().trim().toLowerCase() + return localeAliasMap[normalizedLocale] || 'cn' } + +const locale = normalizeLocale(localStorage.getItem('locale')) +localStorage.setItem('locale', locale) + const i18n = new VueI18n({ locale: locale, // 语言标识 messages: { diff --git a/cclqms-vue/src/router/index.js b/cclqms-vue/src/router/index.js index 503540b..35f2991 100644 --- a/cclqms-vue/src/router/index.js +++ b/cclqms-vue/src/router/index.js @@ -9,7 +9,7 @@ import Router from 'vue-router' import http from '@/utils/httpRequest' import { isURL } from '@/utils/validate' import { clearLoginInfo } from '@/utils' -import i18n from '@/i18n/i18n' +import i18n, { normalizeLocale } from '@/i18n/i18n' Vue.use(Router) @@ -64,11 +64,16 @@ router.beforeEach((to, from, next) => { if (router.options.isAddDynamicMenuRoutes || fnCurrentRouteType(to, globalRoutes) === 'global') { next() } else { + const menuLocale = normalizeLocale(i18n.locale) + if (i18n.locale !== menuLocale) { + i18n.locale = menuLocale + localStorage.setItem('locale', menuLocale) + } http({ url: http.adornUrl('/sys/menu/nav'), method: 'get', params: { - 'l': i18n.locale, //i18n.locale + 'l': menuLocale, menuType: "pc" } }).then(({data}) => { diff --git a/cclqms-vue/src/views/common/login-new.vue b/cclqms-vue/src/views/common/login-new.vue index 0dbf27e..fd5721a 100644 --- a/cclqms-vue/src/views/common/login-new.vue +++ b/cclqms-vue/src/views/common/login-new.vue @@ -73,6 +73,7 @@