diff --git a/frontend/src/api/modules/user/index.ts b/frontend/src/api/modules/user/index.ts index 31009f9283..73d59bbdf5 100644 --- a/frontend/src/api/modules/user/index.ts +++ b/frontend/src/api/modules/user/index.ts @@ -12,6 +12,7 @@ import { GeLarkSuiteInfoUrl, GetAPIKEYListUrl, getAuthenticationUrl, + GetDefaultLocaleUrl, GetDingCallbackUrl, GetInfoUrl, GetLarkCallbackUrl, @@ -54,6 +55,7 @@ import type { } from '@/models/user'; import { DingInfo, LarkInfo, WecomInfo } from '@/models/user'; +import type { LocaleType } from '#/global'; import type { RouteRecordNormalized } from 'vue-router'; export function login(data: LoginData) { @@ -226,3 +228,8 @@ export function getPlatformAccount() { export function getPlatformOrgOption() { return MSR.get({ url: GetPlatformOrgOptionUrl }); } + +// 获取默认语言配置 +export function getDefaultLocale() { + return MSR.get({ url: GetDefaultLocaleUrl }); +} diff --git a/frontend/src/api/requrls/user.ts b/frontend/src/api/requrls/user.ts index b02fdf6c4d..d9b26f9d5e 100644 --- a/frontend/src/api/requrls/user.ts +++ b/frontend/src/api/requrls/user.ts @@ -35,3 +35,4 @@ export const GeLarkInfoUrl = '/lark/info'; // 获取飞书登陆的配置信息 export const GetLarkCallbackUrl = '/sso/callback/lark'; // 获取飞书登陆的回调信息 export const GeLarkSuiteInfoUrl = '/lark_suite/info'; // 获取国际飞书登陆的配置信息 export const GetLarkSuiteCallbackUrl = '/sso/callback/lark_suite'; // 获取国际飞书登陆的回调信息 +export const GetDefaultLocaleUrl = '/user/local/config/default-locale'; // 获取默认语言配置 diff --git a/frontend/src/main.ts b/frontend/src/main.ts index 94af1d707c..c8c5da371f 100644 --- a/frontend/src/main.ts +++ b/frontend/src/main.ts @@ -17,6 +17,8 @@ import ArcoVueIcon from '@arco-design/web-vue/es/icon'; import '@/assets/style/global.less'; import localforage from 'localforage'; import VueDOMPurifyHTML from 'vue-dompurify-html'; +import { getDefaultLocale } from './api/modules/user'; +import useLocale from './locale/useLocale'; async function bootstrap() { const app = createApp(App); @@ -24,6 +26,13 @@ async function bootstrap() { app.use(store); // 注册国际化,需要异步阻塞,确保语言包加载完毕 await setupI18n(app); + // 获取默认语言 + const defaultLocale = await getDefaultLocale(); + const { currentLocale, changeLocale } = useLocale(); + if (currentLocale.value !== defaultLocale) { + changeLocale(defaultLocale); + } + app.use(router); app.use(ArcoVue); app.use(ArcoVueIcon);