diff --git a/src/lib/i18n.ts b/src/lib/i18n.ts index 83c8ed4..a6d4426 100644 --- a/src/lib/i18n.ts +++ b/src/lib/i18n.ts @@ -189,9 +189,16 @@ export const translations = { }; export function useLanguage() { - const [lang, setLangState] = useState(() => { - return (localStorage.getItem('lang') as Language) || 'pt'; - }); + const [lang, setLangState] = useState('pt'); + + useEffect(() => { + if (typeof window !== 'undefined') { + const saved = localStorage.getItem('lang'); + if (saved && (translations as any)[saved]) { + setLangState(saved as Language); + } + } + }, []); useEffect(() => { const handleLangChange = (e: Event) => { @@ -202,10 +209,12 @@ export function useLanguage() { }, []); const setLang = (l: Language) => { - localStorage.setItem('lang', l); + if (typeof window !== 'undefined') { + localStorage.setItem('lang', l); + } setLangState(l); window.dispatchEvent(new CustomEvent('lang-change', { detail: l })); }; - return { lang, setLanguage: setLang, setLang, t: translations[lang] }; + return { lang, setLanguage: setLang, setLang, t: (translations as any)[lang] || translations.pt }; }