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:
sepehr 2026-01-12 22:03:01 +01:00
parent 4fa418438f
commit 2e4f9dcd83

View File

@ -35,6 +35,16 @@ export function LanguageProvider({ children, initialLanguage = 'en' }: {
if (saved) { if (saved) {
setLanguageState(saved) setLanguageState(saved)
document.documentElement.lang = 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
}
} }
}, []) }, [])