teecup/frontend/i18n/request.ts

21 lines
893 B
TypeScript
Raw Permalink Normal View History

import { getRequestConfig } from "next-intl/server"
import { cookies } from "next/headers"
import { DEFAULT_LOCALE, isLocale, LOCALE_COOKIE } from "@/lib/locale"
// Ingen URL-prefiks-routing (ADR-094) -- dagens ruter har norske slugs
// (logg-inn/velkommen/kontosammenslaing) og mange delte/bokmerkede lenker
// (offentlige turneringssider, magic-link-e-poster). Språk styres i
// stedet av en enkel cookie, satt av language-switcher.tsx eller
// locale-bootstrap.tsx (som synker inn brukerens preferred_locale første
// gang, se de filene for detaljer) -- ALDRI av URL-en.
export default getRequestConfig(async () => {
const cookieStore = await cookies()
const cookieLocale = cookieStore.get(LOCALE_COOKIE)?.value
const locale = isLocale(cookieLocale) ? cookieLocale : DEFAULT_LOCALE
return {
locale,
messages: (await import(`../messages/${locale}.json`)).default,
}
})