// delafolla — i18n
// Two-language string table. Components call t(key, lang).

const I18N = {
  // nav + topbar
  nav_projects:    { es: "Proyectos",        en: "Projects" },
  nav_about:       { es: "Sobre mí",         en: "About" },
  topbar_role:     { es: "DIRECTOR DE ARTE SENIOR · PORFOLIO 2026", en: "SENIOR ART DIRECTOR · PORTFOLIO 2026" },

  // filter
  filter_label:    { es: "Filtrar ↘",        en: "Filter ↘" },
  filter_all:      { es: "Todos",            en: "All" },
  filter_count_one:{ es: "proyecto",         en: "project" },
  filter_count_many:{es: "proyectos",        en: "projects" },

  // categories
  cat_art:         { es: "DIRECCIÓN DE ARTE", en: "ART DIRECTION" },
  cat_motion:      { es: "MOTION DESIGN",     en: "MOTION DESIGN" },
  cat_ai:          { es: "IA GENERATIVA",     en: "GENERATIVE AI" },

  // index columns
  col_n:           { es: "Nº",               en: "Nº" },
  col_project:     { es: "Proyecto",         en: "Project" },
  col_client:      { es: "Cliente",          en: "Client" },
  col_year:        { es: "Año",              en: "Year" },
  col_category:    { es: "Categoría",        en: "Category" },

  // detail
  detail_close:    { es: "Cerrar",           en: "Close" },
  detail_client:   { es: "Cliente",          en: "Client" },
  detail_year:     { es: "Año",              en: "Year" },
  detail_role:     { es: "Rol",              en: "Role" },
  detail_location: { es: "Ubicación",        en: "Location" },
  detail_award:    { es: "Premio",           en: "Award" },
  detail_prev:     { es: "← Anterior",       en: "← Previous" },
  detail_next:     { es: "Siguiente →",      en: "Next →" },

  // about
  about_h:         { es: "Sobre mí", en: "About me" },
  bio1:            { es: "Tras seis años liderando proyectos audiovisuales que van desde el motion design a la edición de vídeo, a día de hoy mi enfoque está orientado hacia la IA generativa, materia de la que soy profesor en la Escuela Coco.",
                    en: "After six years leading audiovisual projects ranging from motion design to video editing, my focus today is on generative AI — a subject I teach at Coco School." },
  bio2:            { es: "",
                    en: "" },
  about_available: { es: "Disponible para",  en: "Available for" },
  about_clients:   { es: "Clientes seleccionados", en: "Selected clients" },
  about_contact:   { es: "Contacto",         en: "Contact" },
  ava1:            { es: "Puestos senior in-house", en: "Senior in-house roles" },
  ava2:            { es: "Dirección creativa fraccional", en: "Fractional creative direction" },
  ava3:            { es: "Colaboraciones puntuales", en: "Short-form collaborations" },
  linkedin_label:  { es: "LinkedIn — Fernando López del Hierro", en: "LinkedIn — Fernando López del Hierro" },

  // loader
  loader_text:     { es: "cargando índice…", en: "loading index…" },

  // controls
  ctrl_lang:       { es: "Idioma",           en: "Language" },
  ctrl_theme:      { es: "Paleta",           en: "Palette" },
  ctrl_theme_cream:{ es: "Crema",            en: "Cream" },
  ctrl_theme_dark: { es: "Oscuro",           en: "Dark" },
  ctrl_theme_paper:{ es: "Papel",            en: "Paper" },

  // project-specific summaries (key by project id)
  sum_love_button:        { es: "Campaña viral gráfica de Toyota con los mejores resultados para la marca en España con un coste 0.",
                           en: "Toyota viral print campaign with outstanding results at zero cost." },
  sum_olfleck_plan:       { es: "Campaña local para IESE en Munich. Una serie de imágenes generadas con IA para dar a conocer la escuela de IESE en la ciudad de Munich. Print, digital y dos piezas en vídeo.",
                           en: "Local IESE campaign for Munich. A series of AI-generated images reinterpreting the oil stain (Ölfleck) as a gesture of industrial leadership. Print, digital and two video pieces." },
  sum_dia_del_padre:      { es: "Pieza gráfica para la campaña anual del Día del Padre de Toyota. Dirección de arte, tratamiento fotográfico y adaptaciones a redes y prensa.",
                           en: "Print piece for Toyota's annual Father's Day campaign. Art direction, photo treatment and adaptations for social and press." },
  sum_rumbo_zero:         { es: "Case Study sobre el podcast de Toyota junto a Mario Picazo. Dirección de arte, diseño y motion design en 3D y 2D.",
                           en: "Case study about Toyota's roadmap to zero emissions. Visual system, live data animations and a three-minute video piece." },
  sum_masters_iese:       { es: "Campaña global digital y print para los Masters de IESE. Uso de Ia generativa para crear esculturas de bronce ad hoc con los copies de la campaña.",
                           en: "Global campaign for the IESE Masters. AI-generated portraits of the typical student, editorial system and a full adaptations kit for 14 markets." },
  sum_charms:             { es: "Campaña paraguas para Foster's Hollywood: un spot de redes para el concepto, pósters de familia y producto generados con IA, una acción de guerrilla dirigida a quienes van al gym por las mañanas y una colaboración orgánica con Noah de Diego.",
                           en: "Umbrella campaign for Foster's Hollywood: a social spot for the concept, AI-generated posters of the family and product, a guerrilla action aimed at the morning gym crowd, and an organic collaboration with Noah de Diego." },
  sum_batalla_sabor:      { es: "Campaña 360 para el lanzamiento de nuevas hamburguesas de Foster's Hollywood. Dirección de arte, key visuals y todo el kit de adaptaciones a redes.",
                           en: "360 campaign for the seasonal menu launch. Art direction, key visuals and the full point-of-sale, social and OOH adaptations kit." },
  sum_diccionario_moderno:{ es: "En un mercado saturado de marcas de hamburguesas dirigidas principalmente a un público joven, Foster's Hollywood quería promocionar su oferta de una forma que no dejase indiferente a los gen Z. \n¿Cómo un restaurante que se enorgullece de gustar a todos los públicos puede hablar a los jóvenes de una forma verdaderamente auténtica?",
                           en: "In a market saturated with burger brands aimed at young audiences, Foster's Hollywood wanted to promote its offer in a way that would not leave Gen Z indifferent. \nHow can a restaurant that prides itself on appealing to all audiences speak to young people in a truly authentic way?" },
  sum_revolucion_lujo:    { es: "Posicionamiento visual y pieza de lanzamiento para Yodeyma. Sistema de motion, diseño 3D y Key Visuals para canales de medios pagados y propios.",
                           en: "Visual positioning and launch piece for Yodeyma. Motion system, video manifesto and key visuals for paid and owned channels." },

  // role labels per project
  role_love_button:        { es: "Dirección de Arte · Campaña Gráfica", en: "Art Direction · Print Campaign" },
  role_olfleck_plan:       { es: "Dirección de Arte · IA Generativa · Campaña en Munich", en: "Art Direction · Generative AI · Munich Campaign" },
  role_dia_del_padre:      { es: "Dirección de Arte · Campaña Gráfica", en: "Art Direction · Print Campaign" },
  role_rumbo_zero:         { es: "Dirección de Arte · Motion Design · Case Study", en: "Art Direction · Motion Design · Case Study" },
  role_masters_iese:       { es: "Dirección de Arte · IA Generativa · Campaña Global", en: "Art Direction · Generative AI · Global Campaign" },
  role_charms:             { es: "Dirección de Arte · IA Generativa · Digital Campaign", en: "Art Direction · Generative AI · Digital Campaign" },
  role_batalla_sabor:      { es: "Dirección de Arte · Campaña", en: "Art Direction · Campaign" },
  role_diccionario_moderno:{ es: "Dirección de Arte · Motion Design", en: "Art Direction · Motion Design" },
  role_revolucion_lujo:    { es: "Dirección de Arte · Motion Design", en: "Art Direction · Motion Design" },

  // location labels
  loc_madrid:    { es: "Madrid", en: "Madrid" },
  loc_munich:    { es: "Munich", en: "Munich" },
  loc_global:    { es: "Global", en: "Global" },
};

// Map project ids → summary key + role key (avoids stale data churn)
const PROJECT_I18N = {
  "love-button":        { summary: "sum_love_button",        role: "role_love_button",        loc: "loc_madrid" },
  "olfleck-plan":       { summary: "sum_olfleck_plan",       role: "role_olfleck_plan",       loc: "loc_munich" },
  "dia-del-padre":      { summary: "sum_dia_del_padre",      role: "role_dia_del_padre",      loc: "loc_madrid" },
  "rumbo-zero":         { summary: "sum_rumbo_zero",         role: "role_rumbo_zero",         loc: "loc_madrid" },
  "masters-iese":       { summary: "sum_masters_iese",       role: "role_masters_iese",       loc: "loc_global" },
  "charms":             { summary: "sum_charms",             role: "role_charms",             loc: "loc_madrid" },
  "batalla-sabor":      { summary: "sum_batalla_sabor",      role: "role_batalla_sabor",      loc: "loc_madrid" },
  "diccionario-moderno":{ summary: "sum_diccionario_moderno",role: "role_diccionario_moderno",loc: "loc_madrid" },
  "revolucion-lujo":    { summary: "sum_revolucion_lujo",    role: "role_revolucion_lujo",    loc: "loc_madrid" },
};

// Category key → translation key (stored category strings stay ES so existing filtering still works)
const CAT_I18N = {
  "DIRECCIÓN DE ARTE": "cat_art",
  "MOTION DESIGN":     "cat_motion",
  "IA GENERATIVA":     "cat_ai",
};

// Translator. Falls back to the key itself when missing — surfaces gaps loudly.
function t(key, lang) {
  const entry = I18N[key];
  if (!entry) return key;
  return entry[lang] || entry.es || key;
}

window.I18N = I18N;
window.t = t;
window.PROJECT_I18N = PROJECT_I18N;
window.CAT_I18N = CAT_I18N;
