// translate.jsx — instant static translations via window.TRANSLATIONS

const LANG_LABELS = {
  es: { label: "Castellano", code: "ES" },
  ca: { label: "Català",     code: "CA" },
  en: { label: "English",    code: "EN" },
  fr: { label: "Français",   code: "FR" },
  it: { label: "Italiano",   code: "IT" },
};

function normalizeWS(t) { return t.trim().replace(/\s+/g, " "); }

function applyLanguage(lang) {
  const nodes = Array.from(document.querySelectorAll("[data-i18n]"));
  nodes.forEach((n) => {
    if (!n.dataset.i18nSrc) n.dataset.i18nSrc = normalizeWS(n.textContent);
  });
  if (lang === "es") {
    nodes.forEach((n) => { n.textContent = n.dataset.i18nSrc; });
    document.documentElement.lang = "es";
    return;
  }
  const rawDict = (window.TRANSLATIONS && window.TRANSLATIONS[lang]) || {};
  // Normalize dict keys so multiline JSX keys still match
  const dict = {};
  Object.keys(rawDict).forEach(k => { dict[normalizeWS(k)] = rawDict[k]; });
  nodes.forEach((n) => {
    const src = n.dataset.i18nSrc;
    n.textContent = dict[src] || src;
  });
  document.documentElement.lang = lang;
}

window.LANG_LABELS = LANG_LABELS;
window.applyLanguage = applyLanguage;
