fix(i18n): default startup language to English
First-visit users now always land on the English UI regardless of navigator.language. Arabic remains one click away via the toggle, and the user's explicit pick is persisted to localStorage (encoach-lang) and honoured on every subsequent load. - src/i18n/index.ts: set lng: "en", drop navigator/htmlTag from the detector order so an Arabic-locale browser no longer silently boots the UI in Arabic before the user has chosen. - src/lib/api-client.ts: mirror the same policy for the Accept-Language header sent to the backend, so AI-generated content stays English on first visit instead of echoing the browser locale. Made-with: Cursor
This commit is contained in:
@@ -131,15 +131,17 @@ function refreshOnce(): Promise<boolean> {
|
||||
}
|
||||
|
||||
function getCurrentLanguage(): string {
|
||||
// Mirrors the i18n bootstrap in src/i18n/index.ts: the user's explicit
|
||||
// pick wins; everything else falls back to English. We intentionally do
|
||||
// not consult navigator.language here so AI-generated content stays in
|
||||
// English on first visit (matching the UI default) until the user flips
|
||||
// the language toggle.
|
||||
try {
|
||||
const stored = localStorage.getItem("encoach-lang");
|
||||
if (stored) return stored;
|
||||
} catch {
|
||||
// localStorage unavailable (SSR, sandboxing, etc.)
|
||||
}
|
||||
if (typeof navigator !== "undefined" && navigator.language) {
|
||||
return navigator.language.split("-")[0];
|
||||
}
|
||||
return "en";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user