| | |
| | | } |
| | | } |
| | | |
| | | export const getLocaleOnServer = async (): Promise<Locale> => { |
| | | export const getLocaleOnServer = (): Locale => { |
| | | const locales: string[] = i18n.locales |
| | | |
| | | let languages: string[] | undefined |
| | | // get locale from cookie |
| | | const localeCookie = (await cookies()).get('locale') |
| | | const localeCookie = cookies().get('locale') |
| | | languages = localeCookie?.value ? [localeCookie.value] : [] |
| | | |
| | | if (!languages.length) { |
| | | // Negotiator expects plain object so we need to transform headers |
| | | const negotiatorHeaders: Record<string, string> = {}; |
| | | (await headers()).forEach((value, key) => (negotiatorHeaders[key] = value)) |
| | | const negotiatorHeaders: Record<string, string> = {} |
| | | headers().forEach((value, key) => (negotiatorHeaders[key] = value)) |
| | | // Use negotiator and intl-localematcher to get best locale |
| | | languages = new Negotiator({ headers: negotiatorHeaders }).languages() |
| | | } |