From 76ed1b5cc50e78142458f6347cb62c5616808d58 Mon Sep 17 00:00:00 2001 From: RichardYe Date: Thu, 17 Apr 2025 20:02:41 +0800 Subject: [PATCH] feat: set locale based on browser language when user is not logged in (#4635) * feat: set locale based on browser language when user is not logged in * docs: comments for locale fallback logic --- web/src/store/v2/user.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web/src/store/v2/user.ts b/web/src/store/v2/user.ts index 39651d3fc..29c356260 100644 --- a/web/src/store/v2/user.ts +++ b/web/src/store/v2/user.ts @@ -3,6 +3,7 @@ import { makeAutoObservable } from "mobx"; import { authServiceClient, inboxServiceClient, userServiceClient } from "@/grpcweb"; import { Inbox } from "@/types/proto/api/v1/inbox_service"; import { Shortcut, User, UserSetting, UserStats } from "@/types/proto/api/v1/user_service"; +import { findNearestMatchedLanguage } from "@/utils/i18n"; import workspaceStore from "./workspace"; class LocalState { @@ -223,7 +224,11 @@ export const initialUserStore = async () => { appearance: userSetting.appearance, }); } catch { - // Do nothing. + // find the nearest matched lang based on the `navigator.language` if the user is unauthenticated or settings retrieval fails. + const locale = findNearestMatchedLanguage(navigator.language); + workspaceStore.state.setPartial({ + locale: locale, + }); } };