This commit is contained in:
2026-07-10 13:27:29 +02:00
parent 5c48def4e1
commit 53bac4e2b4
35 changed files with 466 additions and 320 deletions

View File

@@ -15,26 +15,13 @@ const LangContext = createContext<LangCtx>({
t: translations.de,
})
function getInitialLang(): Lang {
if (typeof document === 'undefined') return 'de'
const pathname = window.location.pathname
if (pathname === '/') return 'de'
if (pathname === '/en' || pathname.startsWith('/en/')) return 'en'
if (pathname === '/de' || pathname.startsWith('/de/')) return 'de'
if (pathname === '/es' || pathname.startsWith('/es/')) return 'es'
const match = document.cookie.match(/(?:^|;\s*)lang=([^;]+)/)
const val = match?.[1]
return val === 'en' || val === 'es' || val === 'de' ? val : 'de'
}
export function LangProvider({ children }: { children: ReactNode }) {
const [lang, setLangState] = useState<Lang>('de')
export function LangProvider({ children, initialLang }: { children: ReactNode; initialLang: Lang }) {
const [lang, setLangState] = useState<Lang>(initialLang)
useEffect(() => {
const initialLang = getInitialLang()
document.documentElement.lang = initialLang
setLangState(initialLang)
}, [])
}, [initialLang])
const setLang = (l: Lang) => {
document.cookie = `lang=${l};path=/;max-age=31536000;SameSite=Lax`