{
  "home": "Inicio",
  "hello": "Hola, soy",
  "backend_dev": "Desarrollador Backend",
  "hero_desc": "Desarrollador Odoo con 23+ módulos en producción para 10 empresas. Python, PostgreSQL, OWL, CFDI y APIs REST.",
  "contact_me": "Contáctame",
  "view_projects": "Ver proyectos",
  "about": "Sobre mí",
  "about_title": "Desarrollador Backend con enfoque en Python",
  "about_desc1": "Desarrollador backend Python con experiencia en módulos Odoo, integraciones XML-RPC y bases de datos PostgreSQL. Inglés avanzado.",
  "about_desc2": "Formación en administración Linux (Red Hat). Enfocado en código limpio que resuelva problemas reales.",
  "highlight_python": "Python & Odoo",
  "highlight_python_desc": "Módulos personalizados",
  "highlight_db": "PostgreSQL",
  "highlight_db_desc": "Bases de datos",
  "highlight_linux": "Linux",
  "highlight_linux_desc": "Red Hat Certificado",
  "highlight_english": "Inglés Avanzado",
  "highlight_english_desc": "Avanzado",
  "experience_nav": "Experiencia",
  "experience_title": "Experiencia Profesional",
  "exp_odoo_title": "Consultor Técnico / Desarrollador Odoo",
  "exp_odoo_company": "Integra Informática Administrativa",
  "exp_odoo_subtitle": "Odoo 17/18/19 · Python · PostgreSQL · ORM · Owl · XML-RPC",
  "exp_odoo_period": "Ago 2025 — Presente",
  "exp_present": "Presente",
  "exp_odoo_desc": "Módulos en producción para múltiples clientes: reabastecimiento multi-almacén, postnómina con dashboard Owl e integración de datos en tiempo real.",
  "exp_odoo_1": "Reabastecimiento en cascada multi-almacén con sourcing parcial, stock mínimo configurable y transferencias batch",
  "exp_odoo_2": "Dashboard de postnómina con Owl: vistas múltiples, gauges SVG, tracking de dispersión y filtrado avanzado",
  "exp_odoo_3": "Integración con Watchdog: monitoreo de directorios, parseo XML/CSV/JSON y creación automática de registros vía XML-RPC",
  "exp_odoo_4": "Integración CFDI: timbrado automático, detección de bancos mexicanos, layouts bancarios y comprobantes SPEI",
  "exp_odoo_5": "Reportes QWeb avanzados: pólizas de nómina por departamento, facturación CFDI y dispersión multi-concepto",
  "exp_odoo_6": "Detección automática de contactos bancarios con normalización Unicode, extracción de RFC y matching difuso",
  "exp_odoo_7": "Override de procurement core (_run_pull) con resolución dinámica de almacenes y encadenamiento de movimientos",
  "exp_odoo_8": "API REST con endpoints de dashboard, reconciliación de pagos y generación batch de PDFs",
  "exp_odoo_9": "Migración de módulos Odoo v17 → v18, adaptando modelos, vistas y componentes Owl",
  "exp_odoo_10": "Herencia de 6+ modelos estándar (account.move, hr.payslip.run, stock.rule, etc.) con lógica personalizada",
  "metric_odoo_1": "Multi-almacén",
  "metric_odoo_2": "Dashboard Owl",
  "metric_odoo_3": "API REST",
  "metric_odoo_4": "CFDI",
  "show_more": "Ver más",
  "show_less": "Ver menos",
  "exp_ss_title": "Programador Full Stack",
  "exp_ss_company": "Biblioteca FCFM-UANL",
  "exp_ss_subtitle": "Flask · SQL Server · SQLite · 3 Sistemas en Producción",
  "exp_ss_period": "Ene 2025 — Jun 2025 · Contrato por proyecto (6 meses)",
  "exp_ss_desc": "3 sistemas para la biblioteca FCFM-UANL: préstamos, control de asistencia e inventario. Arquitectura dual de BD, dashboards y reportes. Desplegados en producción.",
  "exp_ss_1": "Sistema de préstamos: monitoreo en tiempo real, dashboard analítico con Chart.js y cierre automático de sesiones",
  "exp_ss_2": "Registro de entradas y salidas: autenticación bcrypt, control por roles y reportes de asistencia",
  "exp_ss_3": "Inventario de libros: app de escritorio con escaneo de código de barras y merge de bases de datos",
  "exp_ss_4": "Reportes PDF y Excel con formato avanzado y análisis de datos con Pandas",
  "exp_ss_5": "Arquitectura dual SQLite + SQL Server con queries parametrizadas",
  "exp_ss_6": "Importación masiva desde Excel/CSV con validación y resolución de conflictos",
  "exp_ss_7": "Despliegue en producción con Waitress y compilación a ejecutables con PyInstaller",
  "metric_ss_1": "3 Sistemas",
  "metric_ss_2": "Dual DB",
  "metric_ss_3": "Dashboards",
  "metric_ss_4": "Producción",
  "skills": "Habilidades",
  "tech_skills": "Habilidades Técnicas",
  "backend_databases": "Backend & Bases de Datos",
  "web_development": "Desarrollo Web",
  "devops_tools": "DevOps & Herramientas",
  "programming_languages": "Lenguajes de Programación",
  "projects": "Proyectos Destacados",
  "projectsh": "Proyectos",
  "more_projects": "Todos mis Proyectos",
  "book_management": "Gestión de Libros de Acervo",
  "book_desc": "Sistema web con 13+ endpoints para gestión de préstamos, monitoreo de computadoras en tiempo real, dashboard analítico con Chart.js, reportes PDF/Excel, importación masiva y tareas programadas con APScheduler.",
  "attendance": "Registro de Entradas y Salidas",
  "attendance_desc": "Sistema de control de asistencias con autenticación bcrypt, roles Admin/Usuario, estadísticas por alumno (días, horas, promedios), reportes Excel/PDF y cierre automático de registros.",
  "timer-title": "Cronómetro para Cubo Rubik",
  "timer-desc": "Cronómetro web en React para speedcubing con inspección, estadísticas, visualización 2D y personalización.",
  "inventory": "Inventario de Libros",
  "inventory_desc": "App de escritorio con escaneo de código de barras, búsqueda con normalización Unicode, merge de múltiples bases de datos con detección de conflictos, historial de auditoría y exportación a 5 reportes Excel.",
  "portafolio": "Portafolio",
  "portafolio_desc": "Portafolio personal con todos mis proyectos y habilidades de programación.",
  "demo": "Demo",
  "code": "Código",
  "education": "Formación",
  "degree": "Licenciatura en Ciencias Computacionales",
  "university": "Universidad Autónoma de Nuevo León, Facultad de Ciencias Físico Matemáticas",
  "certifications": "Certificaciones Técnicas",
  "rh124": "Red Hat System Administration I (RH124)",
  "rh124_desc": "Red Hat System Administration I",
  "rh134": "Red Hat System Administration II (RH134)",
  "rh134_desc": "Red Hat System Administration II",
  "rh294": "Red Hat Enterprise Linux Automation with Ansible (RH294)",
  "rh294_desc": "Red Hat Enterprise Linux Automation with Ansible",
  "view_certificate": "Ver Certificado",
  "recognitions": "Reconocimientos",
  "recommendation": "Reconocimiento por la elaboración de 3 sistemas para biblioteca",
  "recommendation_desc": "Reconocimiento por la elaboración de los sistemas: Entradas y Salidas, Registro de Libros de Acervo e Inventario de Libros.",
  "view_letter": "Ver Carta",
  "egel_award": "EGEL-CENEVAL",
  "egel_desc": "Testimonio de Desempeño Sobresaliente en el EGEL de Ciencias Computacionales, otorgado por CENEVAL.",
  "testimonials": "Testimonios",
  "testimonial1_text": "\"Jesús Garza demostró ser un elemento muy valioso por su gran responsabilidad y atención al detalle. Su iniciativa y compromiso superaron las expectativas, logrando mejoras significativas en los procesos internos de nuestra Biblioteca.\"",
  "testimonial1_name": "Dra. Aleida Magdalena Gil González",
  "testimonial1_position": "Subdirectora de Calidad e Innovación Educativa, FCFM - UANL",
  "stat_projects": "Empresas Atendidas",
  "stat_modules": "Módulos Odoo",
  "stat_certs": "Certificaciones Red Hat",
  "stat_tech": "Tecnologías",
  "status_available": "Disponible para trabajar",
  "contact": "Contacto",
  "contact_title": "Trabajemos juntos",
  "contact_intro": "¿Tienes un proyecto en mente o quieres colaborar? No dudes en contactarme.",
  "email": "Email",
  "github": "GitHub",
  "name": "Nombre",
  "subject": "Asunto",
  "message": "Mensaje",
  "send_message": "Enviar Mensaje",
  "dimension_title": "Dimensión paralela",
  "dimension_subtitle": "Haz click en el portal para entrar",
  "dimension_enter": "Entrar",
  "dimension_fluids": "Mundo de Fluidos",
  "dimension_tubes": "Mundo de Tubos",
  "dim_fluids_name": "FLUIDOS",
  "dim_tubes_name": "TUBOS",
  "dim_fluids_spec": "Navier-Stokes · WebGL · ∂ρ/∂t = 0",
  "dim_tubes_spec": "WebGPU · 3D Geometry · cursor.fx",
  "dim_enter": "[ INGRESAR → ]",
  "dimension_exit_btn": "Volver",
  "portal_title": "Dimensión paralela",
  "download_cv": "Descargar CV",
  "rights": "© {year} Jesús Gerardo Garza García. Todos los derechos reservados.",
  "odoo_modules_nav": "Módulos Odoo",
  "odoo_modules_title": "Módulos Odoo",
  "mod_total": "23 módulos",
  "mod_clients": "10 clientes",
  "mod_areas": "6 áreas funcionales",
  "mod_clients_title": "Empresas Atendidas",
  "client_avalia_short": "Finanzas",
  "client_dimex_short": "Fiscal",
  "client_casaguerra_short": "Facturación",
  "client_cosesa_short": "Contabilidad",
  "client_forrajera_short": "Inventario",
  "client_recavisa_short": "Aduanas",
  "client_interenter_short": "Almacén",
  "client_fgh_short": "Ventas",
  "client_invent_short": "Compras",
  "client_ikigai_short": "EDI Almacén",
  "mod_cat_accounting": "Contabilidad y Cumplimiento Fiscal",
  "mod_cat_accounting_count": "9 módulos · Avalia, Dimex, Casa Guerra, Cosesa",
  "mod_cat_payroll": "Nómina y Recursos Humanos",
  "mod_cat_payroll_count": "6 módulos · Avalia, Casa Guerra, Recavisa",
  "mod_cat_inventory": "Inventario y Almacén",
  "mod_cat_inventory_count": "4 módulos · Forrajera Elizondo, Recavisa, Interenter",
  "mod_cat_sales": "Ventas y Compras",
  "mod_cat_sales_count": "2 módulos · FGH, Invent",
  "mod_cat_api": "Integraciones y API",
  "mod_cat_api_count": "1 módulo · Ikigai",
  "mod_cat_uiux": "Herramientas UI/UX",
  "mod_cat_uiux_count": "1 módulo · Interenter",
  "mod_formatos": "Suite de Reportes Financieros — Grupo Avalia",
  "mod_formatos_desc": "Automatizó la generación de 9 reportes fiscales para un grupo financiero que administra pensiones y nómina de +500 beneficiarios. Herencia del motor de reportes nativo, generación de Excel con openpyxl, dashboard OWL con assets frontend y sincronización con sistema SAFI vía cron.",
  "mod_bank_balance": "Control de Conciliación Bancaria",
  "mod_bank_balance_desc": "Resolvió un problema crítico donde Odoo mostraba saldos bancarios vacíos al depender de la conciliación nativa. Sincronización bidireccional con flag de contexto anti-loop, importación masiva desde Excel, inserción dinámica de columnas en workbooks existentes y auditoría completa con mail.thread.",
  "mod_aged_days": "Visibilidad de Cartera Vencida",
  "mod_aged_days_desc": "Dio a cobranza visibilidad instantánea de los días vencidos por factura — información crítica para flujo de efectivo que Odoo omite. Extensión del report engine con custom expressions, post_init_hook y uninstall_hook para instalación/desinstalación sin residuos.",
  "mod_base_efectivo": "Corrección Fiscal de Anticipos — DIOT",
  "mod_base_efectivo_desc": "Evitó declaraciones incorrectas ante el SAT que arriesgaban multas fiscales: Odoo generaba asientos de base efectivo con fecha de conciliación en vez de fecha de pago. Override de _compute_max_date() en account.partial.reconcile para forzar la fecha del flujo real de efectivo.",
  "mod_anticipo": "Reconocimiento Automático de IVA en Anticipos",
  "mod_anticipo_desc": "Automatizó un proceso manual mensual que causaba errores en la DIOT. Override de action_post() para generar asientos de base efectivo al registrar anticipos, cálculo inverso de IVA (total / 1.16 × 0.16), manejo de tags fiscales y prevención inteligente de duplicados en conciliación.",
  "mod_rep": "Comprobante de Pago con Cumplimiento SAT",
  "mod_rep_desc": "Reemplazó el formato genérico de Odoo con un REP profesional que cumple 100% los requisitos del SAT. Parsing de XML CFDI 4.0 con namespaces SAT y complemento Pagos20, extracción de nodos TrasladoDR y DoctoRelacionado, generación de QR y sellos digitales.",
  "mod_holidays": "Gestión Automatizada de Vacaciones",
  "mod_holidays_desc": "Eliminó consultas manuales de saldo que RH respondía decenas de veces al mes. Campo computado que calcula asignaciones vigentes menos ausencias en todos los estados, reporte QWeb en formato media carta (216×139mm) con áreas de firma y binding directo al modelo hr.leave.",
  "mod_payroll_report": "Reportes de Nómina Auto-configurables",
  "mod_payroll_report_desc": "Un solo reporte que se adapta a cualquier estructura salarial sin intervención de desarrollo. Columnas generadas dinámicamente desde reglas salariales con flag add_to_report, ordenadas por tipo (percepciones → deducciones → otros), exportación Excel con xlsxwriter y filtros multi-empresa/periodo.",
  "mod_odessa": "Integración Nómina ↔ Caja de Ahorro",
  "mod_odessa_desc": "Eliminó horas de captura manual cada quincena entre dos sistemas. 3 wizards especializados (exportar MOPER, importar descuentos, confirmar), mapping configurable entre claves ODESSA y reglas salariales, y 5 reglas de nómina para ahorro, préstamos y seguros.",
  "mod_stock_location": "Trazabilidad de Inventario Multi-ubicación",
  "mod_stock_location_desc": "Resolvió una limitación de Odoo que solo mostraba totales agregados, impidiendo auditorías precisas. Algoritmo de boundary-crossing que lee quants actuales, revierte movimientos posteriores a la fecha de corte y redistribuye transferencias internas, con soporte para BOMs fantasma (kits).",
  "mod_pedimento": "Control de Cumplimiento Aduanal",
  "mod_pedimento_desc": "Previene multas aduanales al detectar facturas timbradas sin pedimento en el XML — un error invisible que podría costar miles en sanciones. Modelo con auto-refresh via override de web_search_read(), indicadores CFDI por colores y migración automática de SQL VIEW a modelo regular en _auto_init().",
  "mod_quant_unrestrict": "Corrección Rápida de Lotes en Inventario",
  "mod_quant_unrestrict_desc": "Eliminó un proceso de 15+ minutos por corrección que requería ajustes de inventario complejos. Override quirúrgico de _get_forbidden_fields_write() para remover lot_id de campos prohibidos — solución mínima de 4 líneas usando el mecanismo nativo de Odoo.",
  "mod_import_lots": "Recepción Masiva de Series/Lotes",
  "mod_import_lots_desc": "Aceleró la recepción en almacén eliminando la captura uno por uno que causaba cuellos de botella. Override de split_lots() en stock.move que normaliza comas a saltos de línea antes del método nativo — retrocompatible y sin efectos secundarios.",
  "mod_catalogo": "Gestión Inteligente de Catálogo de Productos",
  "mod_catalogo_desc": "Resolvió la saturación de selectores que confundía al equipo de ventas con +35,000 productos. Override de _name_search() en product.template y product.product con filtrado por contexto, dominio dinámico en líneas de orden y toggle transparente sin cambiar de vista.",
  "mod_proyecto": "Automatización de Compras a Proyectos",
  "mod_proyecto_desc": "Eliminó pasos manuales en el flujo compra→proyecto que causaban errores de asignación. Parsing de analytic_distribution (JSON dict de Odoo 17+), agrupación de líneas por cuenta del plan \"Proyectos\", creación automatizada de cadena completa PO → Picking → Moves → Confirmación.",
  "mod_edi": "EDI IKIGAI — Avisos a Middleware (944/945)",
  "mod_edi_desc": "Integró el almacén de Odoo con SAP vía el middleware IKIGAI sin que Odoo arme el EDI. Al validar un albarán, Odoo dispara un webhook \"edi.ready\" (944 recepción / 945 salida / 947 / 852) con token e idempotencia; el middleware consulta Odoo, genera el X12 y lo envía por AS2. Incluye bitácora request/response, llave de idempotencia única y reintento por cron.",
  "mod_columns": "Restauración de Usabilidad en Órdenes",
  "mod_columns_desc": "Restauró la usabilidad perdida en Odoo 17+ que causaba errores de captura en ventas, compras y facturas. Patch de componentes OWL sobre ProductLabelSectionAndNoteListRender.getActiveColumns() y SaleOrderLineListRenderer, respetando el sistema de optional fields nativo.",
  "mod_currency": "Corrección de Tipo de Cambio MX (Banxico/DOF)",
  "mod_currency_desc": "Alineó el tipo de cambio con la fecha del DOF para evitar diferencias en CFDI y contabilidad. Banxico etiqueta el Fix (SF43718) con la fecha de aplicación; el módulo consulta la API SIE de Banxico y resta un día para empatar con la publicación oficial del DOF.",
  "mod_mxreports": "Reportes SAT XML — Complementario y Pólizas",
  "mod_mxreports_desc": "Cubrió requerimientos del SAT en auditorías y devoluciones. Genera el Balance de Comprobación Complementario (TipoEnvio=\"C\" con FechaModBal) y las Pólizas Contables del periodo por tipo de solicitud: fiscalización, compulsa, devolución y compensación.",
  "mod_intercompany": "Sincronización de Cancelación Intercompañía",
  "mod_intercompany_desc": "Eliminó facturas de proveedor huérfanas tras cancelar ventas entre empresas del grupo. Cuando se cancela una factura de cliente que generó una factura de proveedor intercompañía, propaga la cancelación a la otra empresa de forma automática.",
  "mod_sua": "Cálculo y Exportación IMSS / SUA",
  "mod_sua_desc": "Centralizó el cumplimiento IMSS de un patrón dentro de Odoo. Wizards de cálculo mensual y bimestral (IMSS, INFONAVIT, FONACOT), simulación, valor UMA y registro patronal, con exportación de CFDI de nómina al formato del SUA para conciliar contra el sistema del IMSS.",
  "mod_ptu": "Cálculo de PTU",
  "mod_ptu_desc": "Automatizó el reparto anual de utilidades que se hacía en hojas de cálculo. Calcula la Participación de los Trabajadores en las Utilidades por días trabajados y salarios devengados, con importador desde Excel e integración con reglas de nómina y CFDI.",
  "mod_timbrado": "Timbrado de Nómina en Paralelo",
  "mod_timbrado_desc": "Aceleró el timbrado masivo de nómina que se atoraba en lotes grandes. Procesa las llamadas al PAC de forma concurrente manteniendo las escrituras ORM en el hilo principal, con modo rápido (omite PDF/chatter inmediato) y una acción planificada que genera los PDFs pendientes.",
  "mod_extra": "+ 3 módulos complementarios: automatización de impuestos en productos nuevos, validación de precios de proveedor con 35 puntos de control, y flujo de remisión integrado en entregas.",
  "stack_label": "// stack · líneas de código por lenguaje",
  "shell_hint": "Escribe un comando (prueba: help, ls, neofetch, sudo hire) · Tab autocompleta · ↑↓ historial",
  "shell_welcome": "Mini-shell interactiva. Escribe <b>help</b> para ver los comandos.",
  "theme_toggle": "TEMA",
  "nav_label": "// Navegación",
  "sidebar_loc": "Monterrey, MX",
  "hero_role": "Backend Engineer · Python · Odoo",
  "neofetch_uptime": "23 módulos · 10 clientes · 3 certs",
  "mail_hint_send": "Enviar",
  "footer_exit": "exit 0",
  "cmd_about": "Sobre mí",
  "cmd_experience": "Experiencia profesional",
  "cmd_modules": "Listar módulos Odoo",
  "cmd_projects": "Ver proyectos en JSON",
  "cmd_skills": "Stack técnico",
  "cmd_education": "Formación y certificaciones",
  "cmd_contact": "Escribir un mensaje",
  "cmd_theme": "Cambiar tema (claro/oscuro)",
  "cmd_lang_es": "Cambiar idioma a Español",
  "cmd_lang_en": "Cambiar idioma a Inglés",
  "cmd_cv": "Descargar CV",
  "cmd_github": "Abrir perfil de GitHub",
  "cmd_mail": "Enviar correo electrónico",
  "cmd_branches": "Ver otras versiones del portafolio",
  "archive_label": "// Archivo",
  "branches_intro": "Cada rama es una versión completa del portafolio. Selecciona una para visitarla.",
  "branch_terminal_desc": "Sesión de terminal. Tipografía mono, command palette (Ctrl+K), prompts y status bar tipo vim.",
  "branch_minimalist_desc": "Editorial. Secciones full-width, mucho espacio en blanco, sin decoración. Tipografía como protagonista.",
  "branch_gateway_desc": "Split-panel sticky-left. Portal a dimensiones paralelas: WebGL Fluids (Navier-Stokes) y WebGPU Tubes.",
  "branch_current": "// versión actual",
  "branches_close": "cerrar",
  "branches_toggle": "alternar",
  "mail_status_sending": "Enviando mensaje...",
  "mail_status_sent": "Mensaje enviado. Responderé a la brevedad.",
  "mail_status_error": "No se pudo enviar el mensaje. Inténtalo de nuevo o escríbeme directo a <a href=\"mailto:jesusgarzacia@hotmail.com\">jesusgarzacia@hotmail.com</a>.",
  "mail_btn_sending": "Enviando...",
  "now_working_label": "now_working:",
  "now_working_val": "módulo IMSS/SUA · Recavisa",
  "cmd_colorscheme": "Cambiar paleta de colores",
  "cmd_man": "Manual page sobre Jesús",
  "cmd_htop": "Ver clientes activos como procesos",
  "cmd_rubik": "Cubo de Rubik interactivo",
  "rubik_hint_keys": "arrastra para rotar · doble click = re-centrar · U D L R F B · shift=inverso · 3×3 también M E S · espacio=scramble · 0=reset",
  "cmd_build": "Compilar y testear los 23 módulos Odoo",
  "cmd_vim": "Abrir un módulo Odoo en vim",
  "cmd_hire": "Info pack para reclutadores",
  "cmd_shell": "Shell interactiva en el hero",
  "cmd_help": "Abrir cheatsheet de atajos",
  "cmd_history": "Historial de comandos ejecutados",
  "contrib_label": "// commits · últimos 12 meses",
  "contrib_less": "menos",
  "contrib_more": "más",
  "success_cases_title": "Casos de éxito",
  "success_cases_intro": "Resumen ejecutivo de entregables con impacto medible en operación, cumplimiento y flujo de efectivo.",
  "case_expand_hint": "ver detalle",
  "case_problem_label": "Problema:",
  "case_solution_label": "Solución técnica:",
  "case_stack_label": "Stack:",
  "case_metrics_label": "Métricas:",
  "case_avalia_title": "Avalia · Conciliación bancaria con visibilidad operativa",
  "case_avalia_problem": "Tesorería dependía de conciliaciones manuales y Odoo mostraba saldos incompletos durante el día.",
  "case_avalia_solution": "Diseñé un módulo de sincronización bidireccional con protección anti-loop por contexto, importación masiva desde Excel y auditoría con mail.thread para trazar cada ajuste.",
  "case_avalia_stack": "Python · Odoo ORM · openpyxl · mail.thread",
  "case_avalia_metrics": "-70% tiempo de conciliación diaria · 0 saldos vacíos en cierre · +100% trazabilidad de cambios",
  "case_pedimento_title": "Recavisa · Cumplimiento aduanal CFDI + pedimentos",
  "case_pedimento_problem": "Facturas timbradas sin pedimento detectadas tarde, con riesgo real de sanción y retrabajo contable.",
  "case_pedimento_solution": "Implementé validaciones sobre XML CFDI en tiempo de consulta, alertas visuales por severidad y migración segura de SQL VIEW a modelo ORM para mantener compatibilidad evolutiva.",
  "case_pedimento_stack": "Python · l10n_mx_edi · XML parsing · web_search_read override",
  "case_pedimento_metrics": "Detección temprana antes de cierre mensual · 0 incidencias críticas de pedimento tras despliegue",
  "case_payroll_title": "Casa Guerra · Reporte de nómina auto-configurable",
  "case_payroll_problem": "Cada cambio en reglas salariales exigía soporte técnico para rehacer formatos de reporte.",
  "case_payroll_solution": "Construí un generador dinámico de columnas basado en salary rules con exportación xlsxwriter, filtros por periodo/empresa y orden lógico por tipo de percepción.",
  "case_payroll_stack": "Python · hr_payroll · xlsxwriter · wizard patterns",
  "case_payroll_metrics": "De horas a minutos por reporte · 0 ajustes manuales de formato en operación regular",
  "case_edi_title": "Ikigai · Avisos EDI de Odoo al middleware (SAP)",
  "case_edi_problem": "Sincronizar movimientos de almacén con SAP por EDI sin cargar a Odoo con la complejidad de armar y transmitir los documentos X12.",
  "case_edi_solution": "Diseñé el lado Odoo del protocolo de avisos: al validar albaranes se dispara un webhook \"edi.ready\" (944/945/947/852) con token e idempotencia; el middleware consulta Odoo, genera el X12 y lo envía por AS2. Agregué bitácora con evidencia request/response, llave de idempotencia única y reintento por cron que no duplica.",
  "case_edi_stack": "Python · stock · requests (webhook) · idempotencia · ir.cron · X12/AS2",
  "case_edi_metrics": "Cero EDI duplicados por idempotencia · reintento automático de fallos transitorios · trazabilidad completa de cada aviso",
  "case_stock_title": "Forrajera Elizondo · Trazabilidad por ubicación",
  "case_stock_problem": "El equipo no podía auditar inventario histórico por ubicación: solo había totales agregados.",
  "case_stock_solution": "Implementé algoritmo de boundary-crossing que reconstruye estado por fecha de corte, revirtiendo movimientos posteriores y contemplando transferencias internas y kits.",
  "case_stock_stack": "Python · stock.quant · stock.move.line · BOM kits",
  "case_stock_metrics": "Auditorías más rápidas y confiables · reducción de ajustes por diferencias no explicadas",
  "case_sua_title": "Recavisa · Cumplimiento IMSS y exportación al SUA",
  "case_sua_problem": "El cálculo de cuotas IMSS, INFONAVIT y FONACOT se hacía fuera de Odoo y se recapturaba en el SUA, con riesgo de diferencias y retrabajo cada mes y bimestre.",
  "case_sua_solution": "Construí un módulo con wizards de cálculo mensual y bimestral, simulación, valor UMA y registro patronal, que exporta el CFDI de nómina al formato del SUA para conciliar directo contra el sistema del IMSS.",
  "case_sua_stack": "Python · om_hr_payroll · IMSS / INFONAVIT / FONACOT · UMA · wizards",
  "case_sua_metrics": "Cálculo y exportación dentro de Odoo · conciliación directa contra el SUA · menos recaptura manual",
  "case_timbrado_title": "Avalia · Timbrado de nómina masivo en paralelo",
  "case_timbrado_problem": "Timbrar lotes grandes de nómina tardaba demasiado: cada recibo llamaba al PAC en serie y bloqueaba la operación.",
  "case_timbrado_solution": "Paralelicé las llamadas al PAC con un pool de hilos manteniendo las escrituras ORM en el hilo principal (el cursor de PostgreSQL no es thread-safe), con modo rápido que omite PDF/chatter inmediato y una acción planificada que genera los PDFs pendientes.",
  "case_timbrado_stack": "Python · ThreadPoolExecutor · PAC l10n_mx · ir.cron",
  "case_timbrado_metrics": "Timbrado masivo mucho más rápido en lotes grandes · la operación no se bloquea durante el proceso",
  "cheat_cat_overlays": "Overlays",
  "cheat_palette": "Command palette",
  "cheat_branches": "Branch picker",
  "cheat_history": "History overlay",
  "cheat_help": "Este cheatsheet",
  "cheat_escape": "Cerrar overlay activo",
  "cheat_q_htop": "Salir de htop",
  "cheat_cat_navigation": "Navegación",
  "cheat_arrows": "Mover selección",
  "cheat_enter": "Ejecutar comando seleccionado",
  "cheat_send_mail": "Enviar formulario de contacto",
  "cheat_cat_rubik": "Rubik",
  "cheat_rubik_faces": "Giros de cara",
  "cheat_rubik_prime": "Giro inverso",
  "cheat_rubik_slice": "Slices en 3x3",
  "cheat_rubik_scramble": "Scramble",
  "cheat_rubik_reset": "Reset",
  "cheat_rubik_recenter": "Recentrar cámara",
  "cheat_rubik_drag": "Rotar cámara",
  "cheat_cat_easter": "Easter eggs",
  "cheat_konami": "Modo CRT",
  "cheat_logo": "Abrir dev panel",
  "cheat_fortune": "Quote aleatoria al cargar",
  "cheat_total": "17 shortcuts",
  "history_empty": "Aún no ejecutas comandos desde el palette.",
  "history_nav": "navegar",
  "history_run": "ejecutar"
}
