Skip to main content
Glama
getLocale.ts1.16 kB
import configuration from '@intlayer/config/built'; import { getLocaleFromStorage, localeDetector } from '@intlayer/core'; import { type Locale, Locales } from '@intlayer/types'; import { cookies, headers } from 'next/headers.js'; // Helper function to extract locale from headers/cookies export const getLocale = async (): Promise<Locale> => { const defaultLocale = configuration?.internationalization?.defaultLocale ?? Locales.ENGLISH; // 1 - Try locale from header const headersList = await headers(); const cookiesList = await cookies(); const storedLocale = getLocaleFromStorage({ getCookie: (name: string) => cookiesList.get(name)?.value ?? null, getHeader: (name: string) => headersList.get(name) ?? null, }); if (storedLocale) return storedLocale as Locale; // 3 - Fallback to Accept-Language negotiation const negotiatorHeaders: Record<string, string> = {}; headersList.forEach((value, key) => { negotiatorHeaders[key] = value; }); const userFallbackLocale = localeDetector(negotiatorHeaders); if (userFallbackLocale) return userFallbackLocale as Locale; // 4 - Default locale return defaultLocale; };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aymericzip/intlayer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server