24 lines
763 B
TypeScript
24 lines
763 B
TypeScript
import { type AppLocale, defaultLocale, isAppLocale } from "@cms/i18n"
|
|
import { cookies } from "next/headers"
|
|
|
|
import type { AdminMessages } from "./messages"
|
|
import { ADMIN_LOCALE_COOKIE } from "./shared"
|
|
|
|
export function resolveAdminLocaleFromCookieValue(value: string | undefined): AppLocale {
|
|
if (value && isAppLocale(value)) {
|
|
return value
|
|
}
|
|
|
|
return defaultLocale
|
|
}
|
|
|
|
export async function resolveAdminLocale(): Promise<AppLocale> {
|
|
const cookieStore = await cookies()
|
|
const value = cookieStore.get(ADMIN_LOCALE_COOKIE)?.value
|
|
return resolveAdminLocaleFromCookieValue(value)
|
|
}
|
|
|
|
export async function getAdminMessages(locale: AppLocale): Promise<AdminMessages> {
|
|
return (await import(`../messages/${locale}.json`)).default as AdminMessages
|
|
}
|