/* ============================================================
   i18n — Castellano (es) y Català (ca)
   Aplica a los textos principales de la interfaz. Pub/sub vía evento.
   ============================================================ */

const I18N = {
  es: {
    // nav
    'group.tools': 'Herramientas',
    'group.workspace': 'Mi espacio',
    'nav.inicio': 'Inicio',
    'nav.chat': 'Chat legal',
    'nav.contract': 'Generar contrato',
    'nav.review': 'Revisar documento',
    'nav.alerts': 'Alertas fiscales',
    'nav.risks': 'Análisis de riesgos',
    'nav.hacienda': 'Asistente con Hacienda',
    'nav.library': 'Biblioteca legal',
    'nav.history': 'Historial',
    'nav.settings': 'Configuración',
    // titles
    'title.inicio': 'Inicio',
    'sub.inicio': 'Tu resumen legal y fiscal de un vistazo',
    'sub.chat': 'Tu asesor legal inteligente, disponible 24/7',
    'sub.contract': 'Crea contratos conformes a la ley española',
    'sub.review': 'Detecta riesgos antes de firmar',
    'sub.alerts': 'No pierdas ningún plazo con Hacienda',
    'title.library': 'Biblioteca legal',
    'sub.library': 'Plantillas de contratos listas para personalizar',
    'title.history': 'Historial',
    'sub.history': 'Tus conversaciones y documentos guardados',
    'sub.settings': 'Tu cuenta y preferencias',
    // dashboard
    'dash.greetingMorning': 'Buenos días',
    'dash.greetingAfternoon': 'Buenas tardes',
    'dash.greetingEvening': 'Buenas noches',
    'dash.welcome': 'Esto es lo que tienes pendiente hoy.',
    'dash.quickActions': 'Acciones rápidas',
    'dash.qa.chat': 'Nueva consulta',
    'dash.qa.chatDesc': 'Pregunta cualquier duda legal',
    'dash.qa.contract': 'Generar contrato',
    'dash.qa.contractDesc': 'Crea un contrato en minutos',
    'dash.qa.review': 'Revisar documento',
    'dash.qa.reviewDesc': 'Analiza un contrato antes de firmar',
    'dash.deadlines': 'Próximos plazos fiscales',
    'dash.viewAll': 'Ver todo',
    'dash.recent': 'Documentos recientes',
    'dash.recentEmpty': 'Aún no has generado documentos. Crea tu primer contrato y aparecerá aquí.',
    'dash.recentChats': 'Conversaciones recientes',
    'dash.chatsEmpty': 'Tus conversaciones con Lexly aparecerán aquí.',
    'dash.days': 'días',
    'dash.day': 'día',
    'dash.openContract': 'Generar ahora',
    // history
    'hist.tabChats': 'Conversaciones',
    'hist.tabContracts': 'Contratos',
    'hist.emptyChats': 'Todavía no tienes conversaciones guardadas',
    'hist.emptyChatsDesc': 'Cuando hables con Lexly, tus conversaciones se guardarán aquí para que puedas retomarlas.',
    'hist.emptyContracts': 'Todavía no has generado contratos',
    'hist.emptyContractsDesc': 'Los contratos que generes se guardarán aquí, listos para reabrir y descargar.',
    'hist.startChat': 'Empezar una consulta',
    'hist.newContract': 'Generar un contrato',
    'hist.open': 'Abrir',
    'hist.delete': 'Eliminar',
    'hist.clearAll': 'Vaciar historial',
    'hist.messages': 'mensajes',
    // library
    'lib.search': 'Buscar plantilla…',
    'lib.docs': 'plantillas',
    'lib.use': 'Usar plantilla',
    'lib.noResults': 'No encontramos plantillas',
    'lib.noResultsDesc': 'Prueba con otro término de búsqueda.',
    'lib.guestNote': 'Crea una cuenta gratis para generar contratos a partir de estas plantillas.',
    // badges
    'badge.encrypted': 'Datos cifrados',
    'badge.gdpr': 'Cumple RGPD',
    'badge.law': 'Conforme a Ley 34/2006',
    // header
    'header.howItWorks': 'Cómo funciona',
    'header.guest': 'Invitado',
    'header.pro': 'Plan Profesional',
    // common
    'common.disclaimer': 'Lexly ofrece información legal, no asesoramiento jurídico profesional.',
  },
  ca: {
    'group.tools': 'Eines',
    'group.workspace': 'El meu espai',
    'nav.inicio': 'Inici',
    'nav.chat': 'Xat legal',
    'nav.contract': 'Generar contracte',
    'nav.review': 'Revisar document',
    'nav.alerts': 'Alertes fiscals',
    'nav.risks': 'Anàlisi de riscos',
    'nav.hacienda': 'Assistent amb Hisenda',
    'nav.library': 'Biblioteca legal',
    'nav.history': 'Historial',
    'nav.settings': 'Configuració',
    'title.inicio': 'Inici',
    'sub.inicio': 'El teu resum legal i fiscal amb una ullada',
    'sub.chat': 'El teu assessor legal intel·ligent, disponible 24/7',
    'sub.contract': 'Crea contractes conformes a la llei espanyola',
    'sub.review': 'Detecta riscos abans de signar',
    'sub.alerts': 'No perdis cap termini amb Hisenda',
    'title.library': 'Biblioteca legal',
    'sub.library': 'Plantilles de contractes a punt per personalitzar',
    'title.history': 'Historial',
    'sub.history': 'Les teves converses i documents desats',
    'sub.settings': 'El teu compte i preferències',
    'dash.greetingMorning': 'Bon dia',
    'dash.greetingAfternoon': 'Bona tarda',
    'dash.greetingEvening': 'Bona nit',
    'dash.welcome': 'Això és el que tens pendent avui.',
    'dash.quickActions': 'Accions ràpides',
    'dash.qa.chat': 'Nova consulta',
    'dash.qa.chatDesc': 'Pregunta qualsevol dubte legal',
    'dash.qa.contract': 'Generar contracte',
    'dash.qa.contractDesc': 'Crea un contracte en minuts',
    'dash.qa.review': 'Revisar document',
    'dash.qa.reviewDesc': 'Analitza un contracte abans de signar',
    'dash.deadlines': 'Propers terminis fiscals',
    'dash.viewAll': 'Veure-ho tot',
    'dash.recent': 'Documents recents',
    'dash.recentEmpty': 'Encara no has generat documents. Crea el teu primer contracte i apareixerà aquí.',
    'dash.recentChats': 'Converses recents',
    'dash.chatsEmpty': 'Les teves converses amb Lexly apareixeran aquí.',
    'dash.days': 'dies',
    'dash.day': 'dia',
    'dash.openContract': 'Generar ara',
    'hist.tabChats': 'Converses',
    'hist.tabContracts': 'Contractes',
    'hist.emptyChats': 'Encara no tens converses desades',
    'hist.emptyChatsDesc': 'Quan parlis amb Lexly, les converses es desaran aquí perquè puguis reprendre-les.',
    'hist.emptyContracts': 'Encara no has generat contractes',
    'hist.emptyContractsDesc': 'Els contractes que generis es desaran aquí, a punt per reobrir i descarregar.',
    'hist.startChat': 'Començar una consulta',
    'hist.newContract': 'Generar un contracte',
    'hist.open': 'Obrir',
    'hist.delete': 'Eliminar',
    'hist.clearAll': 'Buidar historial',
    'hist.messages': 'missatges',
    'lib.search': 'Cercar plantilla…',
    'lib.docs': 'plantilles',
    'lib.use': 'Usar plantilla',
    'lib.noResults': 'No hem trobat plantilles',
    'lib.noResultsDesc': 'Prova amb un altre terme de cerca.',
    'lib.guestNote': 'Crea un compte gratis per generar contractes a partir d’aquestes plantilles.',
    'badge.encrypted': 'Dades xifrades',
    'badge.gdpr': 'Compleix RGPD',
    'badge.law': 'Conforme a la Llei 34/2006',
    'header.howItWorks': 'Com funciona',
    'header.guest': 'Convidat',
    'header.pro': 'Pla Professional',
    'common.disclaimer': 'Lexly ofereix informació legal, no assessorament jurídic professional.',
  },
};

function lxGetLang() {
  try { const l = localStorage.getItem('lexly_lang'); if (l === 'ca' || l === 'es') return l; } catch (e) {}
  return 'es';
}
function lxSetLang(l) {
  try { localStorage.setItem('lexly_lang', l); } catch (e) {}
  window.dispatchEvent(new CustomEvent('lexly-lang', { detail: l }));
}
function makeT(lang) {
  return (key) => (I18N[lang] && I18N[lang][key]) || I18N.es[key] || key;
}
function useLang() {
  const [lang, setLang] = useState(lxGetLang);
  useEffect(() => {
    const h = (e) => setLang(e.detail || lxGetLang());
    window.addEventListener('lexly-lang', h);
    return () => window.removeEventListener('lexly-lang', h);
  }, []);
  const change = (l) => { lxSetLang(l); setLang(l); };
  return [lang, change, makeT(lang)];
}

Object.assign(window, { I18N, useLang, makeT, lxGetLang, lxSetLang });
