import { cookies, headers } from "next/headers"; import { getRequestConfig } from "next-intl/server"; import fs from "fs"; import path from "path"; export default getRequestConfig(async () => { const cookieStore = await cookies(); const dictionaryPath = path.join(process.cwd(), "dictionary"); const supportedLocales = fs.readdirSync(dictionaryPath) .filter(file => file.endsWith(".json")) .map(file => file.replace(".json", "")); let locale = cookieStore.get("locale")?.value; if (!locale) { const headersList = await headers(); const acceptLanguage = headersList.get("accept-language"); const browserLang = acceptLanguage?.split(",")[0]?.split("-")[0] || "en"; locale = supportedLocales.includes(browserLang) ? browserLang : "en"; } if (!supportedLocales.includes(locale)) { locale = "en"; } return { locale, messages: (await import(`../dictionary/${locale}.json`)).default }; });