import {notFound} from 'next/navigation'; import {getRequestConfig} from 'next-intl/server'; import { Formats, TranslationValues } from 'next-intl'; // Can be imported from a shared config export const locales = ['en', 'hr']; export const localeNames:Record = { en: '🇬🇧 En', hr: '🇭🇷 Hr' }; export const defaultLocale = 'hr'; /** Templating function type as returned by `useTemplate` and `getTranslations` */ export type IntlTemplateFn = // this function type if returned by `useTransations` ((key: TargetKey, values?: TranslationValues | undefined, formats?: Partial | undefined) => string) | // this functon type if returned by `getTranslations` ((key: [TargetKey] extends [never] ? string : TargetKey, values?: TranslationValues | undefined, formats?: Partial | undefined) => string); export default getRequestConfig(async ({locale}) => { // Validate that the incoming `locale` parameter is valid if (!locales.includes(locale as any)) notFound(); return { messages: (await import(`../messages/${locale}.json`)).default }; });