Improve the frontend

This commit is contained in:
Urtzi Alfaro
2025-10-21 19:50:07 +02:00
parent 05da20357d
commit 8d30172483
105 changed files with 14699 additions and 4630 deletions

View File

@@ -25,9 +25,30 @@
"real_time_alerts": "Real-time Alerts",
"procurement_today": "Procurement Today",
"production_today": "Production Today",
"tomorrow_procurement": "Tomorrow's Procurement",
"today_production": "Today's Production",
"pending_po_approvals": "Pending Purchase Orders",
"recent_activity": "Recent Activity",
"quick_actions": "Quick Actions"
},
"procurement": {
"title": "What needs to be bought for tomorrow?",
"empty": "All supplies ready for tomorrow",
"items_needed": "items needed"
},
"production": {
"title": "What needs to be produced today?",
"empty": "No production scheduled for today",
"batches_pending": "batches pending"
},
"po_approvals": {
"title": "What purchase orders need approval?",
"empty": "No purchase orders pending approval",
"pos_pending": "purchase orders pending approval",
"view_all": "View all orders",
"approve": "Approve",
"reject": "Reject"
},
"quick_actions": {
"add_new_bakery": "Add New Bakery",
"create_order": "Create Order",

View File

@@ -84,7 +84,7 @@
},
"smart_inventory": {
"title": "Smart Inventory",
"description": "Automatic stock control with predictive alerts, automated purchase orders, and cost optimization.",
"description": "Automatic stock control with predictive alerts, automated purchase orders, and real-time raw material cost optimization.",
"features": {
"alerts": "Automatic low stock alerts",
"orders": "Automated purchase orders",
@@ -93,7 +93,7 @@
},
"production_planning": {
"title": "Production Planning",
"description": "Automatically schedules daily production based on predictions, optimizes schedules and available resources.",
"description": "Automatically schedules daily production based on AI predictions, optimizes schedules, resources, and maximizes your ovens' efficiency.",
"features": {
"scheduling": "Automatic baking scheduling",
"oven": "Oven usage optimization",
@@ -102,7 +102,12 @@
},
"advanced_analytics": {
"title": "Advanced Analytics",
"description": "Real-time dashboards with key metrics"
"description": "Real-time dashboards with key business metrics, product profitability analysis, and customizable reports for data-driven decisions.",
"features": {
"realtime": "Real-time dashboards",
"profitability": "Product profitability analysis",
"reports": "Customizable reports"
}
},
"pos_integration": {
"title": "Integrated POS",
@@ -115,6 +120,10 @@
"automation": {
"title": "Automation",
"description": "Automatic processes that save time"
},
"cloud_based": {
"title": "Cloud-Based",
"description": "Access from anywhere, always up-to-date"
}
},
"benefits": {

View File

@@ -0,0 +1,124 @@
{
"page": {
"title": "Procurement Planning",
"description": "Manage purchase orders and procurement"
},
"modes": {
"ai": "AI Automatic",
"manual": "Manual"
},
"guideline": {
"title": "AI-Powered Automated Procurement System",
"description": "The AI system automatically generates procurement plans based on:",
"features": {
"forecasts": "Sales and production forecasts",
"inventory": "Current inventory levels",
"history": "Order history and consumption patterns",
"suppliers": "Trusted supplier relationships"
},
"note": "Approved plans are automatically converted into purchase orders."
},
"stats": {
"plans": {
"total": "Total Plans",
"active": "Active Plans",
"pending_requirements": "Pending Requirements",
"critical": "Critical",
"estimated_cost": "Estimated Cost",
"approved_cost": "Approved Cost"
},
"purchase_orders": {
"total": "Total Orders",
"pending_approval": "Pending Approval",
"urgent": "Urgent",
"due_this_week": "Due This Week",
"total_value": "Total Value",
"approved_value": "Approved Value"
}
},
"search": {
"plans_placeholder": "Search plans by number, status, or notes...",
"pos_placeholder": "Search by PO number, supplier, or reference..."
},
"filters": {
"status": "Status",
"priority": "Priority",
"supplier": "Supplier",
"all_statuses": "All statuses",
"all_priorities": "All"
},
"priority": {
"urgent": "Urgent",
"high": "High",
"normal": "Normal",
"low": "Low"
},
"show_archived": "Show completed/cancelled orders",
"actions": {
"create_po": "Create Purchase Order",
"execute_scheduler": "Execute Scheduler",
"executing": "Executing...",
"send_to_approval": "Send to Approval",
"send_to_supplier": "Send to Supplier",
"approve": "Approve",
"reject": "Reject",
"confirm": "Confirm",
"receive_items": "Receive Items",
"complete": "Complete",
"cancel": "Cancel",
"view_details": "View Details",
"cancel_po": "Cancel Order"
},
"empty_states": {
"plans": {
"title": "No procurement plans found",
"description": "Try adjusting your search or generate a new procurement plan",
"action": "Generate Procurement Plan"
},
"purchase_orders": {
"title": "No purchase orders found",
"description": "Create a manual purchase order or switch to AI mode to generate automatic plans",
"description_filtered": "No purchase orders match the selected filters",
"action": "Create Purchase Order"
}
},
"approval_modal": {
"approve_plan": "Approve Plan",
"reject_plan": "Reject Plan",
"approve_order": "Approve Order",
"reject_order": "Reject Order",
"notes_optional": "Notes (Optional)",
"notes_required": "Notes (Required)",
"plan_details": "Plan Details",
"order_details": "Order Details",
"requirements": "Requirements",
"estimated_cost": "Estimated Cost",
"suppliers": "Suppliers",
"supplier": "Supplier",
"total_amount": "Total Amount",
"priority": "Priority",
"cancel_button": "Cancel",
"processing": "Processing...",
"approval_placeholder": "Reason for approval...",
"rejection_placeholder": "Reason for rejection..."
},
"card": {
"po_prefix": "PO",
"plan_prefix": "Plan",
"delivery": "Delivery",
"no_date": "Not defined",
"no_supplier": "No supplier",
"ordered": "Ordered",
"reference": "Reference",
"trust_score": "Trust",
"preferred_supplier": "⭐ Preferred Supplier",
"auto_approve": "🤖 Auto-approve"
},
"messages": {
"confirm_send": "Send order {{po_number}} to supplier?",
"confirm_receive": "Confirm receipt of order {{po_number}}?",
"confirm_items": "Mark items as received for {{po_number}}?",
"confirm_complete": "Complete order {{po_number}}?",
"cancel_reason": "Why do you want to cancel order {{po_number}}?"
}
}

View File

@@ -25,9 +25,30 @@
"real_time_alerts": "Alertas en Tiempo Real",
"procurement_today": "Compras Hoy",
"production_today": "Producción Hoy",
"tomorrow_procurement": "Compras para Mañana",
"today_production": "Producción de Hoy",
"pending_po_approvals": "Órdenes de Compra Pendientes",
"recent_activity": "Actividad Reciente",
"quick_actions": "Acciones Rápidas"
},
"procurement": {
"title": "¿Qué necesito comprar para mañana?",
"empty": "Todos los suministros listos para mañana",
"items_needed": "artículos necesarios"
},
"production": {
"title": "¿Qué necesito producir hoy?",
"empty": "Sin producción programada para hoy",
"batches_pending": "lotes pendientes"
},
"po_approvals": {
"title": "¿Qué órdenes debo aprobar?",
"empty": "Sin órdenes pendientes de aprobación",
"pos_pending": "órdenes pendientes de aprobación",
"view_all": "Ver todas las órdenes",
"approve": "Aprobar",
"reject": "Rechazar"
},
"quick_actions": {
"add_new_bakery": "Agregar Nueva Panadería",
"create_order": "Crear Pedido",
@@ -48,7 +69,15 @@
"hours_ago": "hace {{count}} h",
"yesterday": "Ayer"
},
"severity": {
"urgent": "Urgente",
"high": "Alta",
"medium": "Media",
"low": "Baja"
},
"types": {
"alert": "Alerta",
"recommendation": "Recomendación",
"low_stock": "Stock Bajo",
"production_delay": "Retraso en Producción",
"quality_issue": "Problema de Calidad",
@@ -65,15 +94,42 @@
"acknowledged": "Reconocido",
"resolved": "Resuelto"
},
"types": {
"alert": "Alerta",
"recommendation": "Recomendación"
"filters": {
"search_placeholder": "Buscar alertas...",
"severity": "Severidad",
"category": "Categoría",
"time_range": "Periodo",
"show_snoozed": "Mostrar pospuestos",
"active_filters": "Filtros activos:",
"clear_all": "Limpiar filtros"
},
"grouping": {
"by_time": "Por tiempo",
"by_category": "Por categoría",
"by_similarity": "Similares",
"none": "Sin agrupar"
},
"recommended_actions": "Acciones Recomendadas",
"additional_details": "Detalles Adicionales",
"mark_as_read": "Marcar como leído",
"remove": "Eliminar",
"active_count": "{{count}} alertas activas"
"snooze": "Posponer",
"unsnooze": "Reactivar",
"active_count": "{{count}} alertas activas",
"empty_state": {
"no_results": "Sin resultados",
"all_clear": "Todo despejado",
"no_matches": "No hay alertas que coincidan con los filtros seleccionados",
"no_active": "No hay alertas activas en este momento"
},
"bulk_actions": {
"selected": "seleccionado",
"selected_plural": "seleccionados",
"select_all": "Seleccionar todos",
"deselect_all": "Deseleccionar todo",
"mark_read": "Marcar leídos",
"delete": "Eliminar"
}
},
"messages": {
"welcome": "Bienvenido de vuelta",

View File

@@ -84,7 +84,7 @@
},
"smart_inventory": {
"title": "Inventario Inteligente",
"description": "Control automático de stock con alertas predictivas, órdenes de compra automatizadas y optimización de costos.",
"description": "Control automático de stock con alertas predictivas, órdenes de compra automatizadas y optimización de costos de materias primas en tiempo real.",
"features": {
"alerts": "Alertas automáticas de stock bajo",
"orders": "Órdenes de compra automatizadas",
@@ -93,7 +93,7 @@
},
"production_planning": {
"title": "Planificación de Producción",
"description": "Programa automáticamente la producción diaria basada en predicciones, optimiza horarios y recursos disponibles.",
"description": "Programa automáticamente la producción diaria basada en predicciones de IA, optimiza horarios, recursos y maximiza la eficiencia de tus hornos.",
"features": {
"scheduling": "Programación automática de horneado",
"oven": "Optimización de uso de hornos",
@@ -102,7 +102,12 @@
},
"advanced_analytics": {
"title": "Analytics Avanzado",
"description": "Dashboards en tiempo real con métricas clave"
"description": "Dashboards en tiempo real con métricas clave de negocio, análisis de rentabilidad por producto y reportes personalizables para tomar decisiones basadas en datos.",
"features": {
"realtime": "Dashboards en tiempo real",
"profitability": "Análisis de rentabilidad por producto",
"reports": "Reportes personalizables"
}
},
"pos_integration": {
"title": "POS Integrado",
@@ -115,6 +120,10 @@
"automation": {
"title": "Automatización",
"description": "Procesos automáticos que ahorran tiempo"
},
"cloud_based": {
"title": "En la Nube",
"description": "Accede desde cualquier lugar, siempre actualizado"
}
},
"benefits": {

View File

@@ -0,0 +1,124 @@
{
"page": {
"title": "Planificación de Compras",
"description": "Gestiona órdenes de compra y aprovisionamiento"
},
"modes": {
"ai": "Automático IA",
"manual": "Manual"
},
"guideline": {
"title": "Sistema Automatizado de Compras con IA",
"description": "El sistema de IA genera automáticamente planes de compras basados en:",
"features": {
"forecasts": "Previsiones de ventas y producción",
"inventory": "Niveles de inventario actual",
"history": "Historial de pedidos y patrones de consumo",
"suppliers": "Relaciones con proveedores de confianza"
},
"note": "Los planes aprobados se convierten automáticamente en órdenes de compra."
},
"stats": {
"plans": {
"total": "Planes Totales",
"active": "Planes Activos",
"pending_requirements": "Requerimientos Pendientes",
"critical": "Críticos",
"estimated_cost": "Costo Estimado",
"approved_cost": "Costo Aprobado"
},
"purchase_orders": {
"total": "Órdenes Totales",
"pending_approval": "Pendientes Aprobación",
"urgent": "Urgentes",
"due_this_week": "Vencen Esta Semana",
"total_value": "Valor Total",
"approved_value": "Valor Aprobado"
}
},
"search": {
"plans_placeholder": "Buscar planes por número, estado o notas...",
"pos_placeholder": "Buscar por número de PO, proveedor o referencia..."
},
"filters": {
"status": "Estado",
"priority": "Prioridad",
"supplier": "Proveedor",
"all_statuses": "Todos los estados",
"all_priorities": "Todas"
},
"priority": {
"urgent": "Urgente",
"high": "Alta",
"normal": "Normal",
"low": "Baja"
},
"show_archived": "Mostrar órdenes completadas/canceladas",
"actions": {
"create_po": "Crear Orden de Compra",
"execute_scheduler": "Ejecutar Programador",
"executing": "Ejecutando...",
"send_to_approval": "Enviar a Aprobación",
"send_to_supplier": "Enviar a Proveedor",
"approve": "Aprobar",
"reject": "Rechazar",
"confirm": "Confirmar",
"receive_items": "Recibir Artículos",
"complete": "Completar",
"cancel": "Cancelar",
"view_details": "Ver Detalles",
"cancel_po": "Cancelar Orden"
},
"empty_states": {
"plans": {
"title": "No se encontraron planes de compra",
"description": "Intenta ajustar la búsqueda o generar un nuevo plan de compra",
"action": "Generar Plan de Compra"
},
"purchase_orders": {
"title": "No se encontraron órdenes de compra",
"description": "Crea una orden de compra manual o cambia al modo IA para generar planes automáticos",
"description_filtered": "No hay órdenes de compra que coincidan con los filtros",
"action": "Crear Orden de Compra"
}
},
"approval_modal": {
"approve_plan": "Aprobar Plan",
"reject_plan": "Rechazar Plan",
"approve_order": "Aprobar Orden",
"reject_order": "Rechazar Orden",
"notes_optional": "Notas (Opcional)",
"notes_required": "Notas (Requerido)",
"plan_details": "Detalles del Plan",
"order_details": "Detalles de la Orden",
"requirements": "Requerimientos",
"estimated_cost": "Costo Estimado",
"suppliers": "Proveedores",
"supplier": "Proveedor",
"total_amount": "Monto Total",
"priority": "Prioridad",
"cancel_button": "Cancelar",
"processing": "Procesando...",
"approval_placeholder": "Razón de aprobación...",
"rejection_placeholder": "Razón de rechazo..."
},
"card": {
"po_prefix": "PO",
"plan_prefix": "Plan",
"delivery": "Entrega",
"no_date": "No definida",
"no_supplier": "Sin proveedor",
"ordered": "Pedido",
"reference": "Referencia",
"trust_score": "Confianza",
"preferred_supplier": "⭐ Proveedor Preferido",
"auto_approve": "🤖 Auto-aprobable"
},
"messages": {
"confirm_send": "¿Enviar la orden {{po_number}} al proveedor?",
"confirm_receive": "¿Confirmar recepción de la orden {{po_number}}?",
"confirm_items": "¿Marcar items como recibidos para {{po_number}}?",
"confirm_complete": "¿Completar la orden {{po_number}}?",
"cancel_reason": "¿Por qué deseas cancelar la orden {{po_number}}?"
}
}

View File

@@ -25,9 +25,30 @@
"real_time_alerts": "Denbora Errealeko Alertak",
"procurement_today": "Gaurko Erosketak",
"production_today": "Gaurko Ekoizpena",
"tomorrow_procurement": "Biarko Erosketak",
"today_production": "Gaurko Ekoizpena",
"pending_po_approvals": "Erosketa Aginduak Zain",
"recent_activity": "Azken Jarduera",
"quick_actions": "Ekintza Azkarrak"
},
"procurement": {
"title": "Zer erosi behar da biarko?",
"empty": "Hornikuntza guztiak prest biarko",
"items_needed": "elementu behar dira"
},
"production": {
"title": "Zer ekoiztu behar da gaur?",
"empty": "Ez dago ekoizpen programaturik gaur",
"batches_pending": "sortak zain"
},
"po_approvals": {
"title": "Zein erosketa agindu onartu behar ditut?",
"empty": "Ez dago erosketa aginduk onartzeko zain",
"pos_pending": "erosketa aginduak onartzeko zain",
"view_all": "Ikusi agindu guztiak",
"approve": "Onartu",
"reject": "Baztertu"
},
"quick_actions": {
"add_new_bakery": "Okindegi Berria Gehitu",
"create_order": "Eskaera Sortu",

View File

@@ -84,7 +84,7 @@
},
"smart_inventory": {
"title": "Inbentario Adimenduna",
"description": "Stock kontrol automatikoa alerta aurreikuspenekin, erosketako agindu automatizatuekin eta kostu optimizazioarekin.",
"description": "Stock kontrol automatikoa alerta aurreikuspenekin, erosketako agindu automatizatuekin eta lehengaien kostu optimizazio erreala denbora errealean.",
"features": {
"alerts": "Stock baxuko alerta automatikoak",
"orders": "Erosketako agindu automatizatuak",
@@ -93,7 +93,7 @@
},
"production_planning": {
"title": "Ekoizpen Planifikazioa",
"description": "Automatikoki programatu egunero ekoizpena aurreikuspenen arabera, optimizatu ordutegiak eta eskuragarri dauden baliabideak.",
"description": "Automatikoki programatu egunero ekoizpena AA aurreikuspenen arabera, optimizatu ordutegiak, baliabideak eta maximizatu zure labeen eraginkortasuna.",
"features": {
"scheduling": "Labe programazio automatikoa",
"oven": "Labe erabilera optimizazioa",
@@ -102,7 +102,12 @@
},
"advanced_analytics": {
"title": "Analitika Aurreratua",
"description": "Denbora errealeko panelak metrika gakoekin"
"description": "Denbora errealeko panelak negozioaren metrika gakoekin, produktu errentagarritasun analisia eta txosten pertsonalizagarriak datuetan oinarritutako erabakiak hartzeko.",
"features": {
"realtime": "Denbora errealeko panelak",
"profitability": "Produktu errentagarritasun analisia",
"reports": "Txosten pertsonalizagarriak"
}
},
"pos_integration": {
"title": "POS Integratua",
@@ -115,6 +120,10 @@
"automation": {
"title": "Automatizazioa",
"description": "Denbora aurrezten duten prozesu automatikoak"
},
"cloud_based": {
"title": "Hodeian",
"description": "Sartu edozein lekutatik, beti eguneratuta"
}
},
"benefits": {

View File

@@ -0,0 +1,124 @@
{
"page": {
"title": "Erosketen Plangintza",
"description": "Kudeatu erosketa-aginduak eta hornidura"
},
"modes": {
"ai": "IA Automatikoa",
"manual": "Eskuzkoa"
},
"guideline": {
"title": "IArekin Erosketen Sistema Automatizatua",
"description": "IA sistemak automatikoki sortzen ditu erosketa-planak oinarrituta:",
"features": {
"forecasts": "Salmenta eta ekoizpen aurreikuspenak",
"inventory": "Gaur egungo inbentario mailak",
"history": "Eskaeren historia eta kontsumoko ereduak",
"suppliers": "Hornitzaile fidagarriekin harremanak"
},
"note": "Onartutako planak automatikoki erosketa-agindu bihurtzen dira."
},
"stats": {
"plans": {
"total": "Plan Guztiak",
"active": "Plan Aktiboak",
"pending_requirements": "Eskakizun Zain",
"critical": "Kritikoak",
"estimated_cost": "Aurreikusitako Kostua",
"approved_cost": "Onartutako Kostua"
},
"purchase_orders": {
"total": "Agindu Guztiak",
"pending_approval": "Onarpen Zain",
"urgent": "Premiazkoak",
"due_this_week": "Aste Honetan Iraungitzen",
"total_value": "Balio Osoa",
"approved_value": "Onartutako Balioa"
}
},
"search": {
"plans_placeholder": "Bilatu planak zenbaki, egoera edo oharren arabera...",
"pos_placeholder": "Bilatu EA zenbaki, hornitzaile edo erreferentziaren arabera..."
},
"filters": {
"status": "Egoera",
"priority": "Lehentasuna",
"supplier": "Hornitzailea",
"all_statuses": "Egoera guztiak",
"all_priorities": "Guztiak"
},
"priority": {
"urgent": "Premiazkoa",
"high": "Handia",
"normal": "Normala",
"low": "Baxua"
},
"show_archived": "Erakutsi osatutako/bertan behera utzitako aginduak",
"actions": {
"create_po": "Sortu Erosketa Agindua",
"execute_scheduler": "Exekutatu Programatzailea",
"executing": "Exekutatzen...",
"send_to_approval": "Bidali Onarpenera",
"send_to_supplier": "Bidali Hornitzaileari",
"approve": "Onartu",
"reject": "Baztertu",
"confirm": "Berretsi",
"receive_items": "Jaso Artikuluak",
"complete": "Osatu",
"cancel": "Ezeztatu",
"view_details": "Ikusi Xehetasunak",
"cancel_po": "Ezeztatu Agindua"
},
"empty_states": {
"plans": {
"title": "Ez da erosketa-planik aurkitu",
"description": "Saiatu bilaketa doituz edo plan berri bat sortuz",
"action": "Sortu Erosketa Plana"
},
"purchase_orders": {
"title": "Ez da erosketa-agindurik aurkitu",
"description": "Sortu eskuzko erosketa-agindu bat edo aldatu IA modura plan automatikoak sortzeko",
"description_filtered": "Ez dago filtroekin bat datorren erosketa-agindurik",
"action": "Sortu Erosketa Agindua"
}
},
"approval_modal": {
"approve_plan": "Onartu Plana",
"reject_plan": "Baztertu Plana",
"approve_order": "Onartu Agindua",
"reject_order": "Baztertu Agindua",
"notes_optional": "Oharrak (Aukerakoa)",
"notes_required": "Oharrak (Beharrezkoa)",
"plan_details": "Planaren Xehetasunak",
"order_details": "Aginduaren Xehetasunak",
"requirements": "Eskakizunak",
"estimated_cost": "Aurreikusitako Kostua",
"suppliers": "Hornitzaileak",
"supplier": "Hornitzailea",
"total_amount": "Zenbateko Osoa",
"priority": "Lehentasuna",
"cancel_button": "Ezeztatu",
"processing": "Prozesatzen...",
"approval_placeholder": "Onarpenaren arrazoia...",
"rejection_placeholder": "Bazterketaren arrazoia..."
},
"card": {
"po_prefix": "EA",
"plan_prefix": "Plana",
"delivery": "Entrega",
"no_date": "Zehaztugabea",
"no_supplier": "Hornitzailerik gabe",
"ordered": "Eskatua",
"reference": "Erreferentzia",
"trust_score": "Konfiantza",
"preferred_supplier": "⭐ Hornitzaile Hobetsia",
"auto_approve": "🤖 Auto-onartua"
},
"messages": {
"confirm_send": "Bidali {{po_number}} agindua hornitzaileari?",
"confirm_receive": "Berretsi {{po_number}} aginduaren harrera?",
"confirm_items": "Markatu artikuluak jasota {{po_number}} aginduarentzat?",
"confirm_complete": "Osatu {{po_number}} agindua?",
"cancel_reason": "Zergatik ezeztatu nahi duzu {{po_number}} agindua?"
}
}