feat: Complete frontend i18n implementation for dashboard components
- Updated TypeScript types to support reasoning_data field - Integrated useReasoningTranslation hook in all dashboard components: * ActionQueueCard: Translates PO reasoning_data and UI text * ProductionTimelineCard: Translates batch reasoning_data and UI text * OrchestrationSummaryCard: Translates all hardcoded English text * HealthStatusCard: Translates all hardcoded English text - Added missing translation keys to all language files (EN, ES, EU): * health_status: never, critical_issues, actions_needed * action_queue: total, critical, important * orchestration_summary: ready_to_plan, run_info, took, show_more/less * production_timeline: Complete rebuild with new keys - Components now support fallback for deprecated text fields - Full multilingual support: English, Spanish, Basque Dashboard is now fully translatable and will display reasoning in user's language.
This commit is contained in:
@@ -50,52 +50,55 @@
|
||||
"yellow": "Algunos elementos necesitan atención",
|
||||
"red": "Problemas críticos requieren acción inmediata",
|
||||
"last_updated": "Última actualización",
|
||||
"next_check": "Próxima verificación"
|
||||
"next_check": "Próxima verificación",
|
||||
"never": "Nunca",
|
||||
"critical_issues": "{{count}} problema{{count, plural, one {} other {s}}} crítico{{count, plural, one {} other {s}}}",
|
||||
"actions_needed": "{{count}} acción{{count, plural, one {} other {es}}} necesaria{{count, plural, one {} other {s}}}"
|
||||
},
|
||||
"action_queue": {
|
||||
"title": "Qué Necesita Tu Atención",
|
||||
"why_needed": "Por qué es necesario esto:",
|
||||
"what_if_not": "¿Qué pasa si no hago esto?",
|
||||
"estimated_time": "Tiempo estimado: {{minutes}} min",
|
||||
"estimated_time": "Tiempo estimado",
|
||||
"all_caught_up": "¡Todo al día!",
|
||||
"no_actions": "No hay acciones que requieran tu atención en este momento.",
|
||||
"show_more": "Mostrar {{count}} Acción{{plural}} Más",
|
||||
"show_more": "Mostrar {{count}} Acción{{count, plural, one {} other {es}}} Más",
|
||||
"show_less": "Mostrar Menos",
|
||||
"critical_badge": "{{count}} crítico{{plural}}",
|
||||
"important_badge": "{{count}} importante{{plural}}"
|
||||
"total": "total",
|
||||
"critical": "críticas",
|
||||
"important": "importantes"
|
||||
},
|
||||
"orchestration_summary": {
|
||||
"title": "Anoche Planifiqué Tu Día",
|
||||
"no_runs": "Listo para Planificar Tu Día en la Panadería",
|
||||
"no_runs_message": "El sistema aún no ha ejecutado la planificación diaria. Haz clic en 'Ejecutar Planificación Diaria' para generar tu primer plan.",
|
||||
"run_number": "Ejecución de orquestación #{{number}}",
|
||||
"duration": "Tardó {{seconds}}s",
|
||||
"pos_created": "Creé {{count}} orden{{plural}} de compra",
|
||||
"batches_created": "Programé {{count}} lote{{plural}} de producción",
|
||||
"no_actions": "¡No se necesitan nuevas acciones - todo está en marcha!",
|
||||
"ready_to_plan": "Listo Para Planificar Tu Día en la Panadería",
|
||||
"run_planning": "Ejecutar Planificación Diaria",
|
||||
"run_info": "Ejecución de orquestación #{{runNumber}}",
|
||||
"took": "Duró {{seconds}}s",
|
||||
"created_pos": "{{count}} orden{{count, plural, one {} other {es}}} de compra creada{{count, plural, one {} other {s}}}",
|
||||
"scheduled_batches": "{{count}} lote{{count, plural, one {} other {s}}} de producción programado{{count, plural, one {} other {s}}}",
|
||||
"show_more": "Mostrar {{count}} más",
|
||||
"show_less": "Mostrar menos",
|
||||
"no_actions": "¡No se necesitan nuevas acciones - todo va según lo planeado!",
|
||||
"based_on": "Basado en:",
|
||||
"customer_orders": "{{count}} pedido{{plural}} de cliente{{plural}}",
|
||||
"customer_orders": "{{count}} pedido{{count, plural, one {} other {s}}} de cliente",
|
||||
"historical_demand": "Demanda histórica",
|
||||
"inventory_levels": "Niveles de inventario",
|
||||
"ai_optimization": "Optimización con IA",
|
||||
"actions_required": "{{count}} elemento{{plural}} necesita{{verb}} tu aprobación antes de proceder"
|
||||
"ai_optimization": "Optimización por IA",
|
||||
"actions_required": "{{count}} elemento{{count, plural, one {} other {s}}} necesita{{count, plural, one {} other {n}}} tu aprobación antes de continuar"
|
||||
},
|
||||
"production_timeline": {
|
||||
"title": "Línea de Tiempo de Producción de Hoy",
|
||||
"no_batches": "No hay lotes de producción programados para hoy",
|
||||
"status": {
|
||||
"pending": "Pendiente",
|
||||
"in_progress": "En Proceso",
|
||||
"completed": "Completado",
|
||||
"cancelled": "Cancelado"
|
||||
},
|
||||
"ready_by": "Listo para {{time}}",
|
||||
"priority": {
|
||||
"low": "Prioridad Baja",
|
||||
"normal": "Normal",
|
||||
"high": "Prioridad Alta",
|
||||
"urgent": "Urgente"
|
||||
}
|
||||
"title": "Tu Plan de Producción de Hoy",
|
||||
"no_production": "No Hay Producción Programada",
|
||||
"no_batches": "No hay lotes programados para producción hoy.",
|
||||
"ready_by": "Listo para",
|
||||
"start_batch": "Iniciar Lote",
|
||||
"pause_batch": "Pausar Lote",
|
||||
"completed": "Completado",
|
||||
"total": "Total",
|
||||
"done": "Hecho",
|
||||
"active": "Activo",
|
||||
"pending": "Pendiente",
|
||||
"view_full_schedule": "Ver Cronograma Completo de Producción"
|
||||
},
|
||||
"insights": {
|
||||
"savings": "Ahorros Esta Semana",
|
||||
|
||||
Reference in New Issue
Block a user