Files
Autoparts-DB/pos/static/js/i18n.min.js
consultoria-as 21959f1b37 FASE 7d: Lazy Loading + Minificación + Auto-serve minified
Cambios implementados:

1. Lazy loading de imágenes:
   - catalog.js: loading="lazy" decoding="async" en part cards y detail panel
   - inventory.js: lazy loading en imagen de detalle de item

2. Minificación de assets:
   - scripts/minify-assets.sh: minifica JS (terser) y CSS para POS y Dashboard
   - 25 archivos .min.js + 5 .min.css generados en pos/static/
   - 14 archivos .min.js + 8 .min.css generados en dashboard/

3. Nginx auto-serve minified:
   - try_files $1.min.js antes de servir .js original
   - try_files $1.min.css antes de servir .css original
   - Transparente para los templates HTML (cero cambios en HTML)

4. Cache warming script:
   - scripts/warm_vehicle_cache.py: pobla Redis con vehicle info por batches
   - Mitiga DISTINCT ON + 4 JOINs sobre 2B filas
   - Corre en background, procesa ~1.5M parts

Tests: 73/73 pasando
2026-04-27 08:34:24 +00:00

1 line
5.7 KiB
JavaScript

var I18N={es:{dashboard:"Dashboard",pos:"Punto de Venta",catalog:"Catalogo",inventory:"Inventario",diagrams:"Diagramas",customers:"Clientes",invoicing:"Facturacion",accounting:"Contabilidad",reports:"Reportes",fleet:"Flotillas",whatsapp:"WhatsApp",config:"Configuracion",nav_main:"Principal",nav_management:"Gestion",nav_system:"Sistema",search:"Buscar",save:"Guardar",cancel:"Cancelar",delete:"Eliminar",edit:"Editar",new:"Nuevo",close:"Cerrar",confirm:"Confirmar",back:"Regresar",next:"Siguiente",print:"Imprimir",export:"Exportar",import:"Importar",refresh:"Actualizar",loading:"Cargando...",no_results:"Sin resultados",error:"Error",success:"Exito",warning:"Advertencia",total:"Total",subtotal:"Subtotal",tax:"IVA",price:"Precio",unit_price:"Precio Unitario",cost:"Costo",discount:"Descuento",margin:"Margen",profit:"Utilidad",balance:"Saldo",amount:"Monto",quantity:"Cantidad",stock:"Existencias",min_stock:"Minimo",max_stock:"Maximo",sku:"SKU",barcode:"Codigo de Barras",brand:"Marca",category:"Categoria",description:"Descripcion",location:"Ubicacion",name:"Nombre",date:"Fecha",status:"Estado",actions:"Acciones",id:"ID",type:"Tipo",notes:"Notas",charge:"Cobrar",quote:"Cotizacion",layaway:"Apartado",credit:"Credito",cash:"Efectivo",transfer:"Transferencia",card:"Tarjeta",mixed:"Mixto",change:"Cambio",customer:"Cliente",general_public:"Publico General",sale:"Venta",sales:"Ventas",ticket:"Ticket",receipt:"Recibo",payment:"Pago",payment_method:"Metodo de Pago",add_to_cart:"Agregar",clear_cart:"Limpiar Carrito",hold_sale:"Pausar Venta",recall_sale:"Retomar Venta",cancel_sale:"Cancelar Venta",confirm_payment:"Confirmar Pago",cash_received:"Efectivo Recibido",amount_due:"Total a Pagar",remaining:"Faltante",phone:"Telefono",email:"Correo",address:"Direccion",rfc:"RFC",credit_limit:"Limite de Credito",credit_balance:"Saldo de Credito",price_tier:"Nivel de Precio",invoice:"Factura",cfdi:"CFDI",stamp:"Timbrar",cancel_invoice:"Cancelar Factura",appearance:"Apariencia",business_data:"Datos de la Empresa",employees:"Empleados",printers:"Impresoras",branches:"Sucursales",fiscal_params:"Parametros Fiscales",system_prefs:"Preferencias del Sistema",currency_config:"Moneda",language:"Idioma",theme:"Tema",dark_theme:"Tema oscuro",light_theme:"Tema claro",logout:"Cerrar sesion",currency:"Moneda",exchange_rate:"Tipo de Cambio",default_currency:"Moneda Predeterminada",mxn:"Peso Mexicano",usd:"Dolar Estadounidense",role_owner:"Dueno",role_admin:"Administrador",role_cashier:"Cajero",role_warehouse:"Almacen",role_accountant:"Contador",daily_sales:"Ventas del Dia",weekly_sales:"Ventas de la Semana",monthly_sales:"Ventas del Mes",top_products:"Productos Mas Vendidos",low_stock:"Bajo Stock",vehicle:"Vehiculo",plate:"Placa",vin:"VIN",mileage:"Kilometraje",yes:"Si",no:"No",all:"Todos",active:"Activo",inactive:"Inactivo",pending:"Pendiente",completed:"Completado",cancelled:"Cancelado"},en:{dashboard:"Dashboard",pos:"Point of Sale",catalog:"Catalog",inventory:"Inventory",diagrams:"Diagrams",customers:"Customers",invoicing:"Invoicing",accounting:"Accounting",reports:"Reports",fleet:"Fleet",whatsapp:"WhatsApp",config:"Settings",nav_main:"Main",nav_management:"Management",nav_system:"System",search:"Search",save:"Save",cancel:"Cancel",delete:"Delete",edit:"Edit",new:"New",close:"Close",confirm:"Confirm",back:"Back",next:"Next",print:"Print",export:"Export",import:"Import",refresh:"Refresh",loading:"Loading...",no_results:"No results",error:"Error",success:"Success",warning:"Warning",total:"Total",subtotal:"Subtotal",tax:"Tax",price:"Price",unit_price:"Unit Price",cost:"Cost",discount:"Discount",margin:"Margin",profit:"Profit",balance:"Balance",amount:"Amount",quantity:"Quantity",stock:"Stock",min_stock:"Minimum",max_stock:"Maximum",sku:"SKU",barcode:"Barcode",brand:"Brand",category:"Category",description:"Description",location:"Location",name:"Name",date:"Date",status:"Status",actions:"Actions",id:"ID",type:"Type",notes:"Notes",charge:"Charge",quote:"Quote",layaway:"Layaway",credit:"Credit",cash:"Cash",transfer:"Transfer",card:"Card",mixed:"Mixed",change:"Change",customer:"Customer",general_public:"Walk-in Customer",sale:"Sale",sales:"Sales",ticket:"Ticket",receipt:"Receipt",payment:"Payment",payment_method:"Payment Method",add_to_cart:"Add",clear_cart:"Clear Cart",hold_sale:"Hold Sale",recall_sale:"Recall Sale",cancel_sale:"Cancel Sale",confirm_payment:"Confirm Payment",cash_received:"Cash Received",amount_due:"Amount Due",remaining:"Remaining",phone:"Phone",email:"Email",address:"Address",rfc:"Tax ID (RFC)",credit_limit:"Credit Limit",credit_balance:"Credit Balance",price_tier:"Price Tier",invoice:"Invoice",cfdi:"CFDI",stamp:"Stamp",cancel_invoice:"Cancel Invoice",appearance:"Appearance",business_data:"Business Info",employees:"Employees",printers:"Printers",branches:"Branches",fiscal_params:"Tax Settings",system_prefs:"System Preferences",currency_config:"Currency",language:"Language",theme:"Theme",dark_theme:"Dark theme",light_theme:"Light theme",logout:"Log out",currency:"Currency",exchange_rate:"Exchange Rate",default_currency:"Default Currency",mxn:"Mexican Peso",usd:"US Dollar",role_owner:"Owner",role_admin:"Administrator",role_cashier:"Cashier",role_warehouse:"Warehouse",role_accountant:"Accountant",daily_sales:"Daily Sales",weekly_sales:"Weekly Sales",monthly_sales:"Monthly Sales",top_products:"Top Products",low_stock:"Low Stock",vehicle:"Vehicle",plate:"Plate",vin:"VIN",mileage:"Mileage",yes:"Yes",no:"No",all:"All",active:"Active",inactive:"Inactive",pending:"Pending",completed:"Completed",cancelled:"Cancelled"}},currentLang=localStorage.getItem("pos_lang")||"es";window.t=function(e){return I18N[currentLang]&&I18N[currentLang][e]||I18N.es&&I18N.es[e]||e},window.setLang=function(e){currentLang=e,localStorage.setItem("pos_lang",e),location.reload()},window.getLang=function(){return currentLang};