diff options
Diffstat (limited to 'apps/kit/src/hooks.server.ts')
| -rw-r--r-- | apps/kit/src/hooks.server.ts | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/apps/kit/src/hooks.server.ts b/apps/kit/src/hooks.server.ts deleted file mode 100644 index 0f6e0c0..0000000 --- a/apps/kit/src/hooks.server.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { CookieNames } from "$lib/configuration"; -import { detectLocale, i18n, isLocale, locales } from '$lib/i18n/i18n-util' -import type { Handle, RequestEvent } from '@sveltejs/kit' -import { initAcceptLanguageHeaderDetector } from 'typesafe-i18n/detectors' -import { parse, serialize } from "cookie"; -import type { Locales } from "$lib/i18n/i18n-types"; -import { loadAllLocales } from "$lib/i18n/i18n-util.sync"; - - -loadAllLocales() -const L = i18n() - -export const handle: Handle = async ({ event, resolve }) => { - const cookies = parse(event.request.headers.get("Cookie") ?? ''); - const localeCookie = cookies[CookieNames.locale]; - const preferredLocale = getPreferredLocale(event); - let finalLocale = localeCookie ?? preferredLocale; - - console.log("Handling locale", { - locales, - localeCookie, - preferredLocale, - finalLocale - }); - - if (!isLocale(finalLocale)) finalLocale = "en"; - if (!localeCookie) { - // Set a locale cookie - event.setHeaders({ - "Set-Cookie": serialize(CookieNames.locale, finalLocale, { - path: "/", - expires: new Date(2099, 1, 1, 0, 0, 0, 0), - sameSite: "strict" - }) - }); - } - - event.locals.locale = finalLocale as Locales; - event.locals.LL = L[finalLocale as Locales]; - - return resolve(event, { transformPageChunk: ({ html }) => html.replace('%lang%', finalLocale) }); -} - -function getPreferredLocale(event: RequestEvent) { - const acceptLanguageDetector = initAcceptLanguageHeaderDetector(event.request); - return detectLocale(acceptLanguageDetector); -} |
