fix: SSR error - check for browser before accessing navigator

- Add typeof window check in I18nContext useEffect
- Safely access navigator.language with optional chaining
This commit is contained in:
2026-01-19 23:41:45 +01:00
parent d75a30f459
commit 467bd88f95

View File

@@ -22,13 +22,16 @@ export const I18nProvider = ({ children }: { children: ReactNode }) => {
const [isInitialized, setIsInitialized] = useState(false); const [isInitialized, setIsInitialized] = useState(false);
useEffect(() => { useEffect(() => {
// Only run on client side
if (typeof window === 'undefined') return;
// Check for saved preference first // Check for saved preference first
const savedLocale = localStorage.getItem('locale') as Locale; const savedLocale = localStorage.getItem('locale') as Locale;
if (savedLocale && (savedLocale === 'de' || savedLocale === 'en')) { if (savedLocale && (savedLocale === 'de' || savedLocale === 'en')) {
setLocaleState(savedLocale); setLocaleState(savedLocale);
} else { } else {
// Auto-detect from browser: default to English, switch to German if detected // Auto-detect from browser: default to English, switch to German if detected
const browserLang = navigator.language.toLowerCase(); const browserLang = navigator.language?.toLowerCase() || 'en';
if (browserLang.startsWith('de')) { if (browserLang.startsWith('de')) {
setLocaleState('de'); setLocaleState('de');
localStorage.setItem('locale', 'de'); localStorage.setItem('locale', 'de');