Fix and UI imporvements 3

This commit is contained in:
Urtzi Alfaro
2025-12-10 11:23:53 +01:00
parent 46f5158536
commit e116ac244c
20 changed files with 2311 additions and 2948 deletions

View File

@@ -171,14 +171,19 @@
"health": {
"production_on_schedule": "Production on schedule",
"production_delayed": "{count} production batch{count, plural, one {} other {es}} delayed",
"production_late_to_start": "{count} batch{count, plural, one {} other {es}} not started on time",
"production_delayed_and_late": "{delayed} batch{delayed, plural, one {} other {es}} delayed and {late} not started on time",
"production_issues": "{total} production issue{total, plural, one {} other {s}}",
"production_ai_prevented": "AI prevented {count} production delay{count, plural, one {} other {s}}",
"all_ingredients_in_stock": "All ingredients in stock",
"ingredients_out_of_stock": "{count} ingredient{count, plural, one {} other {s}} out of stock",
"inventory_ai_prevented": "AI prevented {count} inventory issue{count, plural, one {} other {s}}",
"no_pending_approvals": "No pending approvals",
"approvals_awaiting": "{count} purchase order{count, plural, one {} other {s}} awaiting approval",
"procurement_ai_created": "AI created {count} purchase order{count, plural, one {} other {s}} automatically",
"procurement_ai_prevented": "AI created {count} purchase order{count, plural, one {} other {s}} automatically",
"deliveries_on_track": "All deliveries on track",
"deliveries_overdue": "{count} deliver{count, plural, one {y} other {ies}} overdue",
"deliveries_ai_prevented": "AI prevented {count} delivery issue{count, plural, one {} other {s}}",
"deliveries_pending": "{count} pending deliver{count, plural, one {y} other {ies}}",
"all_systems_operational": "All systems operational",
"critical_issues": "{count} critical issue{count, plural, one {} other {s}}",
@@ -403,5 +408,76 @@
"delivered": "Delivered",
"failed": "Failed",
"distribution_routes": "Distribution Routes"
},
"new_dashboard": {
"system_status": {
"title": "System Status",
"issues_requiring_action": "{count, plural, one {# issue} other {# issues}} requiring your action",
"all_clear": "All systems running smoothly",
"never_run": "Never run",
"action_needed_label": "action needed",
"ai_prevented_label": "prevented by AI",
"last_run_label": "Last run",
"ai_prevented_details": "Issues Prevented by AI",
"ai_handling_rate": "AI Handling Rate",
"estimated_savings": "Estimated Savings",
"issues_prevented": "Issues Prevented",
"issue_prevented": "Issue prevented",
"saved": "Saved",
"and_more": "+{count} more"
},
"pending_purchases": {
"title": "Pending Purchases",
"count": "{count, plural, one {# order} other {# orders}} awaiting approval",
"no_pending": "No pending purchase orders",
"all_clear": "No purchase orders pending approval",
"po_number": "PO #{number}",
"supplier": "Supplier: {name}",
"approve": "Approve",
"reject": "Reject",
"view_details": "View Details",
"ai_reasoning": "AI created this PO because:",
"reasoning": {
"low_stock": "{ingredient} will run out in {days, plural, =0 {less than a day} one {# day} other {# days}}",
"low_stock_detailed": "{count, plural, one {# critical ingredient} other {# critical ingredients}} at risk: {products}. Earliest depletion in {days, plural, =0 {<1 day} one {1 day} other {# days}}, affecting {batches, plural, one {# batch} other {# batches}}. Potential loss: €{loss}",
"demand_forecast": "Demand for {product} is expected to increase by {increase}%"
}
},
"pending_deliveries": {
"title": "Pending Deliveries",
"count": "{count, plural, one {# delivery} other {# deliveries}} expected today",
"no_deliveries": "No deliveries expected today",
"all_clear": "No pending deliveries today",
"overdue_section": "Overdue Deliveries",
"today_section": "Expected Today",
"overdue_badge": "overdue",
"po_ref": "PO #{number}",
"overdue_by": "Overdue by {hours}",
"arriving_in": "Arriving in {hours}",
"call_supplier": "Call",
"mark_received": "Received"
},
"production_status": {
"title": "Production Status",
"count": "{count, plural, one {# batch} other {# batches}} today",
"no_production": "No production scheduled for today",
"all_clear": "No production scheduled for today",
"late_section": "Late to Start",
"running_section": "Currently Running",
"pending_section": "Pending Today",
"late_badge": "late",
"running_badge": "running",
"batch_info": "Batch #{number} - {quantity} units",
"should_have_started": "Should have started at {time}",
"started_at": "Started at {time}",
"starts_at": "Starts at {time}",
"start_batch": "Start",
"view_details": "View",
"ai_reasoning": "AI scheduled this batch because:",
"reasoning": {
"forecast_demand": "Predicted demand of {demand} units for {product}",
"customer_order": "Customer order from {customer}"
}
}
}
}

View File

@@ -198,14 +198,19 @@
"health": {
"production_on_schedule": "Producción a tiempo",
"production_delayed": "{count} lote{count, plural, one {} other {s}} de producción retrasado{count, plural, one {} other {s}}",
"production_late_to_start": "{count} lote{count, plural, one {} other {s}} no iniciado{count, plural, one {} other {s}} a tiempo",
"production_delayed_and_late": "{delayed} lote{delayed, plural, one {} other {s}} retrasado{delayed, plural, one {} other {s}} y {late} no iniciado{late, plural, one {} other {s}}",
"production_issues": "{total} problema{total, plural, one {} other {s}} de producción",
"production_ai_prevented": "IA evitó {count} retraso{count, plural, one {} other {s}} de producción",
"all_ingredients_in_stock": "Todos los ingredientes en stock",
"ingredients_out_of_stock": "{count} ingrediente{count, plural, one {} other {s}} sin stock",
"inventory_ai_prevented": "IA evitó {count} problema{count, plural, one {} other {s}} de inventario",
"no_pending_approvals": "Sin aprobaciones pendientes",
"approvals_awaiting": "{count} orden{count, plural, one {} other {es}} de compra esperando aprobación",
"procurement_ai_created": "IA creó {count} orden{count, plural, one {} other {es}} de compra automáticamente",
"procurement_ai_prevented": "IA creó {count} orden{count, plural, one {} other {es}} de compra automáticamente",
"deliveries_on_track": "Todas las entregas a tiempo",
"deliveries_overdue": "{count} entrega{count, plural, one {} other {s}} atrasada{count, plural, one {} other {s}}",
"deliveries_ai_prevented": "IA evitó {count} problema{count, plural, one {} other {s}} de entrega",
"deliveries_pending": "{count} entrega{count, plural, one {} other {s}} pendiente{count, plural, one {} other {s}}",
"all_systems_operational": "Todos los sistemas operativos",
"critical_issues": "{count} problema{count, plural, one {} other {s}} crítico{count, plural, one {} other {s}}",
@@ -452,5 +457,76 @@
"delivered": "Entregada",
"failed": "Fallida",
"distribution_routes": "Rutas de Distribución"
},
"new_dashboard": {
"system_status": {
"title": "Estado del Sistema",
"issues_requiring_action": "{count, plural, one {# problema requiere} other {# problemas requieren}} tu acción",
"all_clear": "Todos los sistemas funcionan correctamente",
"never_run": "Nunca ejecutado",
"action_needed_label": "acción requerida",
"ai_prevented_label": "evitados por IA",
"last_run_label": "Última ejecución",
"ai_prevented_details": "Problemas Evitados por IA",
"ai_handling_rate": "Tasa de Gestión IA",
"estimated_savings": "Ahorros Estimados",
"issues_prevented": "Problemas Evitados",
"issue_prevented": "Problema evitado",
"saved": "Ahorrado",
"and_more": "+{count} más"
},
"pending_purchases": {
"title": "Compras Pendientes",
"count": "{count, plural, one {# orden} other {# órdenes}} esperando aprobación",
"no_pending": "Sin órdenes de compra pendientes",
"all_clear": "Sin órdenes de compra pendientes de aprobación",
"po_number": "OC #{number}",
"supplier": "Proveedor: {name}",
"approve": "Aprobar",
"reject": "Rechazar",
"view_details": "Ver Detalles",
"ai_reasoning": "IA creó esta OC porque:",
"reasoning": {
"low_stock": "{ingredient} se agotará en {days, plural, =0 {menos de un día} one {# día} other {# días}}",
"low_stock_detailed": "{count, plural, one {# ingrediente crítico} other {# ingredientes críticos}} en riesgo: {products}. Agotamiento más temprano en {days, plural, =0 {<1 día} one {1 día} other {# días}}, afectando {batches, plural, one {# lote} other {# lotes}}. Pérdida potencial: €{loss}",
"demand_forecast": "Se espera que la demanda de {product} aumente un {increase}%"
}
},
"pending_deliveries": {
"title": "Entregas Pendientes",
"count": "{count, plural, one {# entrega} other {# entregas}} esperadas hoy",
"no_deliveries": "Sin entregas esperadas hoy",
"all_clear": "Sin entregas pendientes hoy",
"overdue_section": "Entregas Atrasadas",
"today_section": "Esperadas Hoy",
"overdue_badge": "atrasada",
"po_ref": "OC #{number}",
"overdue_by": "Atrasada {hours}",
"arriving_in": "Llega en {hours}",
"call_supplier": "Llamar",
"mark_received": "Recibido"
},
"production_status": {
"title": "Estado de Producción",
"count": "{count, plural, one {# lote} other {# lotes}} hoy",
"no_production": "Sin producción programada para hoy",
"all_clear": "Sin producción programada para hoy",
"late_section": "Atrasados para Empezar",
"running_section": "En Ejecución",
"pending_section": "Pendientes Hoy",
"late_badge": "atrasado",
"running_badge": "en curso",
"batch_info": "Lote #{number} - {quantity} unidades",
"should_have_started": "Debía empezar a las {time}",
"started_at": "Empezó a las {time}",
"starts_at": "Empieza a las {time}",
"start_batch": "Iniciar",
"view_details": "Ver",
"ai_reasoning": "IA programó este lote porque:",
"reasoning": {
"forecast_demand": "Demanda prevista de {demand} unidades para {product}",
"customer_order": "Pedido del cliente {customer}"
}
}
}
}

View File

@@ -395,5 +395,76 @@
"delivered": "Entregatua",
"failed": "Huts egin du",
"distribution_routes": "Banaketa Ibilbideak"
},
"new_dashboard": {
"system_status": {
"title": "Sistema Egoera",
"issues_requiring_action": "{count, plural, one {# arazok} other {# arazok}} zure ekintza behar {count, plural, one {du} other {dute}}",
"all_clear": "Sistema guztiak ondo dabiltza",
"never_run": "Inoiz exekutatu gabe",
"action_needed_label": "ekintza behar",
"ai_prevented_label": "IAk saihestua",
"last_run_label": "Azken exekuzioa",
"ai_prevented_details": "IAk Saihestutako Arazoak",
"ai_handling_rate": "IA Kudeaketa Tasa",
"estimated_savings": "Aurrezki Estimatuak",
"issues_prevented": "Saihestutako Arazoak",
"issue_prevented": "Arazo saihestua",
"saved": "Aurreztua",
"and_more": "+{count} gehiago"
},
"pending_purchases": {
"title": "Erosketa Zain",
"count": "{count, plural, one {# agindu} other {# agindu}} onarpenaren zai",
"no_pending": "Ez dago erosketa-agindu zain",
"all_clear": "Ez dago erosketa-agindu onartzeko zain",
"po_number": "EA #{number}",
"supplier": "Hornitzailea: {name}",
"approve": "Onartu",
"reject": "Baztertu",
"view_details": "Xehetasunak Ikusi",
"ai_reasoning": "IAk EA hau sortu zuen zeren:",
"reasoning": {
"low_stock": "{ingredient} {days, plural, =0 {egun bat baino gutxiago} one {# egunean} other {# egunetan}} agortuko da",
"low_stock_detailed": "{count, plural, one {# osagai kritiko} other {# osagai kritiko}} arriskuan: {products}. Lehen agortze {days, plural, =0 {<1 egun} one {1 egun} other {# egun}}, {batches, plural, one {# lote} other {# lote}} ukituz. Galera potentziala: €{loss}",
"demand_forecast": "{product} produktuaren eskaria %{increase} igotzea espero da"
}
},
"pending_deliveries": {
"title": "Entrega Zain",
"count": "{count, plural, one {# entrega} other {# entrega}} gaur espero",
"no_deliveries": "Ez dago entregarik gaur esperatzen",
"all_clear": "Ez dago entregarik zain gaur",
"overdue_section": "Atzeratutako Entregak",
"today_section": "Gaur Esperatzen",
"overdue_badge": "atzeratua",
"po_ref": "EA #{number}",
"overdue_by": "{hours} atzeratuta",
"arriving_in": "{hours} barru iristen",
"call_supplier": "Deitu",
"mark_received": "Jasota"
},
"production_status": {
"title": "Ekoizpen Egoera",
"count": "{count, plural, one {# lote} other {# lote}} gaur",
"no_production": "Ez dago ekoizpenik programatuta gaur",
"all_clear": "Ez dago ekoizpenik programatuta gaur",
"late_section": "Hasteko Atzeratua",
"running_section": "Martxan",
"pending_section": "Gaur Zain",
"late_badge": "atzeratua",
"running_badge": "martxan",
"batch_info": "Lote #{number} - {quantity} unitate",
"should_have_started": "{time}-an hasi behar zen",
"started_at": "{time}-an hasi zen",
"starts_at": "{time}-an hasiko da",
"start_batch": "Hasi",
"view_details": "Ikusi",
"ai_reasoning": "IAk lote hau programatu zuen zeren:",
"reasoning": {
"forecast_demand": "{product}-rentzat {demand} unitateko eskaria aurreikusita",
"customer_order": "{customer} bezeroaren eskaera"
}
}
}
}