diff --git a/apps/desktop/src/main/controllers/SystemCtr.ts b/apps/desktop/src/main/controllers/SystemCtr.ts index a0fcd6508d..f1190305e4 100644 --- a/apps/desktop/src/main/controllers/SystemCtr.ts +++ b/apps/desktop/src/main/controllers/SystemCtr.ts @@ -77,6 +77,7 @@ export default class SystemController extends ControllerModule { // 更新i18n实例的语言 await this.app.i18n.changeLanguage(locale === 'auto' ? app.getLocale() : locale); + this.app.browserManager.broadcastToAllWindows('localeChanged', { locale }); return { success: true }; } diff --git a/packages/electron-client-ipc/src/events/system.ts b/packages/electron-client-ipc/src/events/system.ts index 9518b89a22..22550d10a5 100644 --- a/packages/electron-client-ipc/src/events/system.ts +++ b/packages/electron-client-ipc/src/events/system.ts @@ -18,6 +18,7 @@ export interface SystemDispatchEvents { } export interface SystemBroadcastEvents { + localeChanged: (data: { locale: string }) => void; systemThemeChanged: (data: { themeMode: ThemeAppearance }) => void; themeChanged: (data: { themeMode: ThemeMode }) => void; } diff --git a/src/app/[variants]/(main)/settings/common/features/Common/Common.tsx b/src/app/[variants]/(main)/settings/common/features/Common/Common.tsx index 0fa32847b3..208ab82748 100644 --- a/src/app/[variants]/(main)/settings/common/features/Common/Common.tsx +++ b/src/app/[variants]/(main)/settings/common/features/Common/Common.tsx @@ -17,6 +17,7 @@ import { useServerConfigStore } from '@/store/serverConfig'; import { serverConfigSelectors } from '@/store/serverConfig/selectors'; import { useUserStore } from '@/store/user'; import { settingsSelectors } from '@/store/user/selectors'; +import { LocaleMode } from '@/types/locale'; const Common = memo(() => { const { t } = useTranslation('setting'); @@ -33,6 +34,10 @@ const Common = memo(() => { ]); const [loading, setLoading] = useState(false); + const handleLangChange = (value: LocaleMode) => { + switchLocale(value); + }; + if (!(isStatusInit && isUserStateInit)) return ; @@ -75,7 +80,7 @@ const Common = memo(() => { children: (