From b758c9ef915d4977cb7e15a98ee41373dc77926e Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Mon, 20 Jan 2025 20:20:44 +0800 Subject: [PATCH] fix: i18n --- ui/src/request/index.ts | 4 +++- ui/src/stores/modules/user.ts | 6 +++--- ui/src/views/login/index.vue | 4 ++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ui/src/request/index.ts b/ui/src/request/index.ts index 56a491518..d57928219 100644 --- a/ui/src/request/index.ts +++ b/ui/src/request/index.ts @@ -25,6 +25,8 @@ instance.interceptors.request.use( } const { user } = useStore() const token = user.getToken() + const language = user.getLanguage() + config.headers['Accept-Language'] = `${language}` if (token) { config.headers['AUTHORIZATION'] = `${token}` } @@ -208,7 +210,7 @@ export const postStream: (url: string, data?: unknown) => Promise | if (token) { headers['AUTHORIZATION'] = `${token}` } - headers['Accept-Language'] = `${language}` + headers['Accept-Language'] = `${language}` return fetch(url, { method: 'POST', body: data ? JSON.stringify(data) : undefined, diff --git a/ui/src/stores/modules/user.ts b/ui/src/stores/modules/user.ts index 740e0cd22..5a47600a7 100644 --- a/ui/src/stores/modules/user.ts +++ b/ui/src/stores/modules/user.ts @@ -35,7 +35,7 @@ const useUserStore = defineStore({ getLanguage() { const application = useApplicationStore() return this.userType === 1 - ? this.userInfo?.language || localStorage.getItem('language') + ? this.userInfo?.language || localStorage.getItem('MaxKB-locale') : application?.userLanguage }, showXpack() { @@ -126,8 +126,7 @@ const useUserStore = defineStore({ async profile() { return UserApi.profile().then(async (ok) => { this.userInfo = ok.data - useLocalStorage(localeConfigKey, 'zh-CN').value = ok.data?.language - // localStorage.setItem('language', ok.data?.language) + useLocalStorage(localeConfigKey, 'zh-CN').value = ok.data.language return this.asyncGetProfile() }) }, @@ -174,6 +173,7 @@ const useUserStore = defineStore({ return new Promise((resolve, reject) => { UserApi.postLanguage({ language: lang }, loading) .then(async (ok) => { + useLocalStorage(localeConfigKey, 'zh-CN').value = lang window.location.reload() resolve(ok) diff --git a/ui/src/views/login/index.vue b/ui/src/views/login/index.vue index 3b1c9e8a4..67e15a698 100644 --- a/ui/src/views/login/index.vue +++ b/ui/src/views/login/index.vue @@ -106,8 +106,11 @@ import type { FormInstance, FormRules } from 'element-plus' import useStore from '@/stores' import authApi from '@/api/auth-setting' import { MsgConfirm, MsgSuccess } from '@/utils/message' + import { t } from '@/locales' import QrCodeTab from '@/views/login/components/QrCodeTab.vue' +import { useI18n } from 'vue-i18n' +const { locale } = useI18n({ useScope: 'global' }) const loading = ref(false) const { user } = useStore() const router = useRouter() @@ -212,6 +215,7 @@ const login = () => { user .login(loginMode.value, loginForm.value.username, loginForm.value.password) .then(() => { + locale.value = localStorage.getItem('MaxKB-locale') || 'zh-CN' router.push({ name: 'home' }) }) .finally(() => (loading.value = false))