// Sprach-Grundkonfiguration für Van's DIY & Bastelbedarf.
// Deutsch ist und bleibt die Standardsprache (Startseite/Root-URLs ohne Präfix, "/de/" gibt es
// nicht als eigene URL). EN/CH/FR leben unter /en/, /ch/, /fr/.
// "ch" = Schweizer Hochdeutsch (kein "ß", "Strasse" statt "Straße" usw.), keine eigene Währung —
// Van's DIY & Bastelbedarf rechnet als deutsches Kleinunternehmen weiterhin in EUR, auch für
// Kund:innen in der Schweiz (siehe Versand & Zahlung).

export const locales = ["de", "en", "ch", "fr"] as const;
export type Locale = (typeof locales)[number];

export const defaultLocale: Locale = "de";

// Statt Flaggen-Emoji (rendert auf manchen Windows/Chrome-Kombinationen nur als nacktes
// Buchstaben-Kürzel "DE"/"GB" statt als Bild) bekommt jede Sprache ein rotierendes Globus-Icon,
// das die ECHTEN Nationalflaggen-Farben trägt (nicht erfundene Markenfarben):
// - DE: Schwarz-Rot-Gold (Bundesflagge)
// - EN: Rot-Weiß-Blau (Union Jack)
// - CH: Rot-Weiß (Schweizer Kreuz)
// - FR: Blau-Weiß-Rot (Tricolore)
// `flag` = die 3 Streifenfarben für den rotierenden Farbverlauf im Icon.
// `color`/`glow` = die zwei kräftigsten, auf dunklem Grund gut sichtbaren Flaggenfarben
// (Weiß/Schwarz werden hier bewusst ausgelassen — auf dem fast schwarzen Seitenhintergrund
// unsichtbar bzw. zu hart) — für Rand-Glow und den Farbverlauf im Sprachnamen-Schriftzug.
export const localeMeta: Record<Locale, { label: string; color: string; glow: string; flag: [string, string, string]; htmlLang: string }> = {
  de: { label: "Deutsch", color: "#e30016", glow: "#ffce00", flag: ["#1a1a1a", "#e30016", "#ffce00"], htmlLang: "de" },
  en: { label: "English", color: "#c8102e", glow: "#3a5fcd", flag: ["#c8102e", "#ffffff", "#00247d"], htmlLang: "en" },
  ch: { label: "Schweiz", color: "#e30016", glow: "#ff6b5c", flag: ["#e30016", "#ffffff", "#e30016"], htmlLang: "de-CH" },
  fr: { label: "Français", color: "#3a5fcd", glow: "#e30016", flag: ["#0055a4", "#ffffff", "#ef4135"], htmlLang: "fr" },
};

/** URL-Prefix für eine Sprache: Deutsch = kein Prefix, alle anderen = "/en" usw. */
export function localePrefix(locale: Locale): string {
  return locale === defaultLocale ? "" : `/${locale}`;
}

/**
 * Baut aus einem sprachneutralen Pfad (z.B. "/shop/" oder "/produkt/foo/") die passende URL
 * für eine Zielsprache. Immer mit führendem "/" aufrufen.
 */
export function localizedPath(path: string, locale: Locale): string {
  const clean = path === "/" ? "" : path;
  return `${localePrefix(locale)}${clean}` || "/";
}
