i18n.ts

import { notFound } from "next/navigation";
import { getRequestConfig } from "next-intl/server";

export const locales = ["ro", "en"] as const;

export type Locale = (typeof locales)[number];

export function isLocale(value: string): value is Locale {
  return (locales as readonly string[]).includes(value);
}

export default getRequestConfig(async ({ locale }) => {
  // Validate that the incoming `locale` parameter is valid
  if (locale && !isLocale(locale)) notFound();

  // Ensure locale is always a string
  const validLocale = locale || "ro";

  return {
    locale: validLocale,
    messages: (await import(`./messages/${validLocale}.json`)).default,
    timeZone: "Europe/Bucharest", // Add timezone for Romania
  };
});