Files
payload/packages/ui/src/utilities/getRequestLanguage.ts
2024-03-07 09:43:17 -05:00

23 lines
628 B
TypeScript

import type { ReadonlyRequestCookies } from 'next/dist/server/web/spec-extension/adapters/request-cookies.js'
type GetRequestLanguageArgs = {
cookies: Map<string, string> | ReadonlyRequestCookies
defaultLanguage?: string
headers: Request['headers']
}
export const getRequestLanguage = ({
cookies,
defaultLanguage = 'en',
headers,
}: GetRequestLanguageArgs): string => {
const acceptLanguage = headers.get('Accept-Language')
const cookieLanguage = cookies.get('lng')
return (
acceptLanguage ||
(typeof cookieLanguage === 'string' ? cookieLanguage : cookieLanguage.value) ||
defaultLanguage
)
}