feat: auto-detect user language from browser settings
Fixes issue where interface always defaulted to English for new users. Now automatically detects and applies browser language on first visit. Changes: - lib/i18n/LanguageProvider.tsx: - Add browser language detection using navigator.language - Check if detected language is in supported languages list - Auto-save detected language to localStorage - Update HTML lang attribute for proper font rendering Behavior: - First visit: Detects browser language (e.g., fr-FR → fr) - Returning visits: Uses saved language from localStorage - Fallback: Defaults to English if language not supported Result: ✓ French users see French interface automatically ✓ All supported languages work (en, fr, es, de, fa, it, pt, ru, zh, ja, ko, ar, hi, nl, pl) ✓ Better UX for international users Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
4fa418438f
commit
2e4f9dcd83
@ -35,6 +35,16 @@ export function LanguageProvider({ children, initialLanguage = 'en' }: {
|
||||
if (saved) {
|
||||
setLanguageState(saved)
|
||||
document.documentElement.lang = saved
|
||||
} else {
|
||||
// Auto-detect from browser language
|
||||
const browserLang = navigator.language.split('-')[0] as SupportedLanguage
|
||||
const supportedLangs: SupportedLanguage[] = ['en', 'fr', 'es', 'de', 'fa', 'it', 'pt', 'ru', 'zh', 'ja', 'ko', 'ar', 'hi', 'nl', 'pl']
|
||||
|
||||
if (supportedLangs.includes(browserLang)) {
|
||||
setLanguageState(browserLang)
|
||||
localStorage.setItem('user-language', browserLang)
|
||||
document.documentElement.lang = browserLang
|
||||
}
|
||||
}
|
||||
}, [])
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user