feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
{
"priority" : {
"critical" : "Crítico" ,
"important" : "Importante" ,
"standard" : "Estándar" ,
"info" : "Info"
} ,
"type_class" : {
"action_needed" : "Acción Requerida" ,
"prevented_issue" : "Problema Prevenido" ,
"trend_warning" : "Aviso de Tendencia" ,
"escalation" : "Escalación" ,
"information" : "Información"
} ,
"context" : {
"already_addressed" : "La IA ya gestionó esto" ,
"financial_impact" : "€{amount} en riesgo" ,
"time_until" : "Necesita decisión en {time}" ,
"can_user_fix" : "Puedes solucionarlo" ,
"requires_supplier" : "Requiere {supplier}" ,
"prevented_savings" : "Ahorrado €{amount}" ,
"grouped_count" : "{count} agrupadas"
} ,
"actions" : {
"approve_po" : "Aprobar pedido €{amount}" ,
"reject_po" : "Rechazar pedido" ,
2025-12-09 13:45:09 +01:00
"modify_po" : "Modificar pedido" ,
2025-12-05 20:07:01 +01:00
"view_po_details" : "Ver detalles" ,
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
"call_supplier" : "Llamar a {supplier} ({phone})" ,
"see_reasoning" : "Ver razonamiento completo" ,
"complete_receipt" : "Completar recepción de stock" ,
"mark_received" : "Marcar como recibido" ,
"adjust_production" : "Ajustar calendario de producción" ,
"snooze" : "Posponer {hours}h" ,
"mark_read" : "Marcar como leído" ,
"dismiss" : "Descartar" ,
"navigate" : "Ver detalles" ,
"notify_customer" : "Notificar a {customer}" ,
"cancel_auto_action" : "Cancelar acción automática"
} ,
"orchestration" : {
"reasoning_title" : "🤖 Razonamiento del Orquestador Diario" ,
"analyzed_title" : "Esta mañana, analicé:" ,
"actions_taken" : "Así que programé:" ,
"prevented_issues" : "✅ Problemas Prevenidos" ,
"estimated_impact" : "Impacto Estimado" ,
"impact_description" : "Ahorros por prevención de pedidos urgentes, faltas de stock y desperdicios" ,
"last_run" : "Última ejecución" ,
2025-12-09 13:45:09 +01:00
"what_ai_did" : "Lo que hizo la IA por ti" ,
"ai_generated_po" : "PO Generada por IA"
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
2025-12-05 20:07:01 +01:00
"ai_reasoning_label" : "Razonamiento de IA" ,
2025-11-27 15:52:40 +01:00
"no_reasoning_available" : "No hay razonamiento disponible" ,
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
"metrics" : {
"hours" : "{count, plural, =1 {# hora} other {# horas}}" ,
"minutes" : "{count, plural, =1 {# minuto} other {# minutos}}" ,
"days" : "{count, plural, =1 {# día} other {# días}}"
} ,
"escalated" : "Escalado" ,
"hub" : {
"tab_list_label" : "Categorías de alertas" ,
"tabs" : {
"all" : "Todas las Alertas" ,
"all_description" : "Todas las alertas de tu panadería" ,
"for_me" : "Para Mí" ,
"for_me_description" : "Alertas asignadas a ti o que requieren tu acción" ,
"archived" : "Archivadas" ,
"archived_description" : "Alertas resueltas y descartadas"
} ,
"toggle_filters" : "Activar/desactivar filtros" ,
"filters" : "Filtros" ,
"active" : "Activos"
} ,
"auto_action" : {
"title" : "Acción Automática Pendiente" ,
"remaining" : "restante" ,
"financial_impact" : "Impacto:" ,
"cancel_button" : "Cancelar Acción Automática" ,
"cancelling" : "Cancelando..." ,
"cancelled_title" : "Acción Automática Cancelada" ,
"cancelled_message" : "La acción automática ha sido prevenida. Ahora puedes gestionarlo manualmente." ,
"completed_title" : "Acción Automática Ejecutada" ,
"help_text" : "La IA ejecutará automáticamente esta acción cuando expire el temporizador. Haz clic en \"Cancelar\" para prevenirlo y gestionarlo manualmente." ,
"urgency" : {
"critical" : "URGENTE" ,
"warning" : "PRONTO" ,
"info" : "PROGRAMADO"
}
} ,
"priority_explainer" : {
"title" : "Entendiendo las Puntuaciones de Prioridad" ,
"subtitle" : "Cómo la IA calcula qué necesita tu atención primero" ,
"overview" : {
"title" : "La Puntuación de Prioridad (0-100)" ,
"description" : "Cada alerta recibe una puntuación de prioridad de 0-100 basada en cuatro componentes ponderados. Esto te ayuda a enfocarte en lo que realmente importa para tu panadería."
} ,
"example_alert" : "Prioridad de Alerta de Ejemplo" ,
"level" : {
"critical" : "CRÍTICO" ,
"important" : "IMPORTANTE" ,
"standard" : "ESTÁNDAR" ,
"info" : "INFO"
} ,
"components_title" : "Componentes de la Puntuación" ,
"weight" : "peso" ,
"business_impact" : {
"name" : "Impacto Empresarial" ,
"description" : "Consecuencias financieras, pedidos afectados, satisfacción del cliente" ,
"example1" : "€500 en ingresos potenciales en riesgo" ,
"example2" : "10 pedidos de clientes afectados" ,
"example3" : "Alto impacto en la satisfacción del cliente"
} ,
"urgency" : {
"name" : "Urgencia" ,
"description" : "Sensibilidad temporal, plazos, potencial de escalada" ,
"example1" : "Plazo en 2 horas" ,
"example2" : "Falta de stock inminente (4 horas)" ,
"example3" : "Ventana de producción cerrándose pronto"
} ,
"agency" : {
"name" : "Capacidad de Acción del Usuario" ,
"description" : "¿Puedes tomar acción? ¿Tienes control sobre el resultado?" ,
"example1" : "Requiere tu aprobación" ,
"example2" : "Acción con un clic disponible" ,
"example3" : "Decisión necesaria dentro de tu autoridad"
} ,
"confidence" : {
"name" : "Confianza de la IA" ,
"description" : "¿Qué tan segura está la IA sobre la validez de esta alerta?" ,
"example1" : "Basado en patrones históricos (95% coincidencia)" ,
"example2" : "Calidad de datos: Alta" ,
"example3" : "Precisión de predicción validada"
} ,
"formula_title" : "La Fórmula" ,
"footer" : "Esta puntuación ayuda a la IA a priorizar alertas, asegurando que veas los problemas más importantes primero." ,
"got_it" : "¡Entendido!"
} ,
"trend" : {
"near_threshold" : "Cerca del umbral"
} ,
"action_preview" : {
"title" : "Vista Previa de Acción" ,
"outcome" : "Qué sucederá" ,
"financial_impact" : "Impacto Financiero" ,
"affected_systems" : "Sistemas Afectados" ,
"reversible" : "Esta acción se puede deshacer" ,
"not_reversible" : "Esta acción no se puede deshacer" ,
2025-11-27 15:52:40 +01:00
"confidence" : "Confianza de IA: {confidence}%" ,
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
"cancel" : "Cancelar" ,
"confirm" : "Confirmar Acción"
} ,
"response_time" : {
"title" : "Rendimiento de Tiempo de Respuesta" ,
"subtitle" : "Qué tan rápido respondes a las alertas" ,
"on_time" : "A Tiempo" ,
"alerts" : "alertas" ,
"average" : "Promedio" ,
"target" : "Objetivo" ,
"on_time_responses" : "Respuestas a Tiempo" ,
"needs_improvement" : "Necesita mejora" ,
"benchmark_title" : "Perspectiva de Rendimiento" ,
"excellent" : "¡Excelente! Estás respondiendo más rápido que el 80% de las panaderías. ¡Sigue así!" ,
"good" : "¡Buen trabajo! Intenta responder a alertas críticas dentro del tiempo objetivo para mejorar aún más." ,
"needs_work" : "Respuestas más rápidas a alertas críticas pueden prevenir problemas y ahorrar dinero. Intenta cumplir los tiempos objetivo." ,
"tip" : "Consejo: Activa las notificaciones móviles para responder más rápido a alertas críticas"
} ,
"alerts" : {
"critical_stock_shortage" : {
2025-11-27 15:52:40 +01:00
"title" : "🚨 Stock Crítico: {ingredient_name}" ,
"message_with_po_pending" : "Solo {current_stock}kg de {ingredient_name} (necesitas {required_stock}kg). Ya creé {po_id} para entrega el {delivery_day_name}. Por favor aprueba €{po_amount}." ,
"message_with_po_created" : "Solo {current_stock}kg de {ingredient_name} (necesitas {required_stock}kg). Ya creé {po_id}. Revisa y aprueba €{po_amount}." ,
"message_with_hours" : "Solo {current_stock}kg de {ingredient_name} disponibles (necesitas {required_stock}kg en {hours_until} horas)." ,
"message_with_date" : "Solo {current_stock}kg de {ingredient_name} disponibles (necesitas {required_stock}kg para producción del {production_day_name})." ,
"message_generic" : "Solo {current_stock}kg de {ingredient_name} disponibles (necesitas {required_stock}kg)."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"low_stock" : {
2025-11-27 15:52:40 +01:00
"title" : "⚠️ Stock Bajo: {ingredient_name}" ,
"message_with_po" : "Stock de {ingredient_name}: {current_stock}kg (mínimo: {minimum_stock}kg). Ya programé PO para reposición." ,
"message_generic" : "Stock de {ingredient_name}: {current_stock}kg (mínimo: {minimum_stock}kg). Considera hacer un pedido."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"stock_depleted" : {
"title" : "📦 Stock Agotado por Pedido" ,
2025-11-27 15:52:40 +01:00
"message_with_supplier" : "Pedido #{order_id} requiere {ingredient_name} pero está agotado. Contacta a {supplier_name} ({supplier_phone})." ,
"message_generic" : "Pedido #{order_id} requiere {ingredient_name} pero está agotado. Acción inmediata requerida."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"ingredient_shortage" : {
"title" : "⚠️ Falta de Ingrediente en Producción" ,
2025-11-27 15:52:40 +01:00
"message_with_customers" : "{ingredient_name} insuficiente para lotes en curso. {affected_orders} pedidos afectados ({customer_names}). Stock actual: {current_stock}kg, necesario: {required_stock}kg." ,
"message_generic" : "{ingredient_name} insuficiente para lotes en curso. Stock actual: {current_stock}kg, necesario: {required_stock}kg."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"expired_products" : {
"title" : "🚫 Productos Caducados o por Caducar" ,
2025-11-27 15:52:40 +01:00
"message_with_names" : "{count} productos caducando: {product_names}. Valor total: €{total_value}." ,
"message_generic" : "{count} productos caducando. Valor total: €{total_value}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"production_delay" : {
2025-11-27 15:52:40 +01:00
"title" : "⏰ Retraso en Producción: {batch_name}" ,
"message_with_customers" : "Lote {batch_name} retrasado {delay_minutes} minutos. Clientes afectados: {customer_names}. Hora entrega original: {scheduled_time}." ,
"message_with_orders" : "Lote {batch_name} retrasado {delay_minutes} minutos. {affected_orders} pedidos afectados. Hora entrega original: {scheduled_time}." ,
"message_generic" : "Lote {batch_name} retrasado {delay_minutes} minutos. Hora entrega original: {scheduled_time}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"equipment_failure" : {
2025-11-27 15:52:40 +01:00
"title" : "🔧 Fallo de Equipo: {equipment_name}" ,
"message_with_batches" : "{equipment_name} falló. {affected_batches} lotes en producción afectados ({batch_names})." ,
"message_generic" : "{equipment_name} falló. Requiere reparación inmediata."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"maintenance_required" : {
2025-11-27 15:52:40 +01:00
"title" : "🔧 Mantenimiento Requerido: {equipment_name}" ,
"message_with_hours" : "{equipment_name} requiere mantenimiento en {hours_until} horas. Programa ahora para evitar interrupciones." ,
"message_with_days" : "{equipment_name} requiere mantenimiento en {days_until} días. Programa antes del {maintenance_date}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"low_equipment_efficiency" : {
2025-11-27 15:52:40 +01:00
"title" : "📉 Baja Eficiencia: {equipment_name}" ,
"message" : "{equipment_name} operando a {efficiency_percent}% eficiencia (esperado: >{threshold_percent}%). Considera mantenimiento."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"order_overload" : {
"title" : "📊 Sobrecarga de Pedidos" ,
2025-11-27 15:52:40 +01:00
"message_with_orders" : "Capacidad sobrecargada en {overload_percent}%. {total_orders} pedidos programados, capacidad: {capacity_orders}. Considera ajustar el calendario." ,
"message_generic" : "Capacidad sobrecargada en {overload_percent}%. Considera ajustar el calendario de producción."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"supplier_delay" : {
2025-11-27 15:52:40 +01:00
"title" : "🚚 Retraso de Proveedor: {supplier_name}" ,
"message" : "{supplier_name} retrasó entrega de {ingredient_name} (PO: {po_id}). Nueva fecha: {new_delivery_date}. Original: {original_delivery_date}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"temperature_breach" : {
"title" : "🌡️ Violación de Temperatura" ,
2025-11-27 15:52:40 +01:00
"message" : "Temperatura {location}: {current_temp}°C (rango: {min_temp}°C-{max_temp}°C). Duración: {duration_minutes} minutos."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"demand_surge_weekend" : {
"title" : "📈 Aumento de Demanda: Fin de Semana" ,
2025-11-27 15:52:40 +01:00
"message" : "Demanda esperada {surge_percent}% mayor para {weekend_date}. Productos afectados: {products}. Considera aumentar producción."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"weather_impact_alert" : {
"title" : "🌦️ Impacto Climático Esperado" ,
2025-11-27 15:52:40 +01:00
"message" : "{weather_condition} esperado {date}. Impacto en demanda: {impact_percent}%. Productos afectados: {products}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"holiday_preparation" : {
2025-11-27 15:52:40 +01:00
"title" : "🎉 Preparación para Festivo: {holiday_name}" ,
"message" : "{holiday_name} en {days_until} días ({holiday_date}). Demanda esperada {expected_increase}% mayor. Productos clave: {products}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"severe_weather_impact" : {
"title" : "⛈️ Impacto Climático Severo" ,
2025-11-27 15:52:40 +01:00
"message" : "{weather_condition} severo esperado {date}. Impacto en demanda: {impact_percent}%. Considera ajustar horarios de entrega."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"unexpected_demand_spike" : {
"title" : "📊 Pico de Demanda Inesperado" ,
2025-11-27 15:52:40 +01:00
"message" : "Demanda aumentó {spike_percent}% para {products}. Stock actual podría agotarse en {hours_until_stockout} horas."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"demand_pattern_optimization" : {
"title" : "💡 Optimización de Patrón de Demanda" ,
2025-11-27 15:52:40 +01:00
"message" : "Patrón detectado: {pattern_description}. Recomienda ajustar producción de {products} para optimizar eficiencia."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"inventory_optimization" : {
"title" : "📦 Optimización de Inventario" ,
2025-11-27 15:52:40 +01:00
"message" : "{ingredient_name} consistentemente sobre-stock por {excess_percent}%. Recomienda reducir pedido a {recommended_amount}kg."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"production_efficiency" : {
"title" : "⚡ Oportunidad de Eficiencia en Producción" ,
2025-11-27 15:52:40 +01:00
"message" : "{product_name} más eficiente a las {suggested_time}. Tiempo de producción {time_saved} minutos menor ({savings_percent}% ahorro)."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"sales_opportunity" : {
"title" : "💰 Oportunidad de Ventas" ,
2025-11-27 15:52:40 +01:00
"message" : "Alta demanda de {products} detectada. Considera producción adicional. Ingresos potenciales: €{potential_revenue}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"seasonal_adjustment" : {
"title" : "🍂 Ajuste Estacional Recomendado" ,
2025-11-27 15:52:40 +01:00
"message" : "Temporada {season} acercándose. Ajusta producción de {products} basado en tendencias históricas ({adjustment_percent}% {adjustment_direction})."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"cost_reduction" : {
"title" : "💵 Oportunidad de Reducción de Costos" ,
2025-11-27 15:52:40 +01:00
"message" : "Cambiando a {alternative_ingredient} puede ahorrar €{savings_amount}/mes. Calidad similar, menor costo."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"waste_reduction" : {
"title" : "♻️ Oportunidad de Reducción de Desperdicio" ,
2025-11-27 15:52:40 +01:00
"message" : "{product_name} desperdicio alto ({waste_percent}%). Recomienda reducir lote a {recommended_quantity} unidades."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"quality_improvement" : {
"title" : "⭐ Mejora de Calidad Recomendada" ,
2025-11-27 15:52:40 +01:00
"message" : "{issue_description} detectado en {product_name}. Acción recomendada: {recommended_action}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"customer_satisfaction" : {
"title" : "😊 Oportunidad de Satisfacción del Cliente" ,
2025-11-27 15:52:40 +01:00
"message" : "Cliente {customer_name} consistentemente ordena {product_name}. Considera oferta especial o programa de lealtad."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"energy_optimization" : {
"title" : "⚡ Optimización de Energía" ,
2025-11-27 15:52:40 +01:00
"message" : "Uso de energía para {equipment_name} pico a las {peak_time}. Cambiando a {off_peak_start}-{off_peak_end} puede ahorrar €{savings_amount}/mes."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"staff_optimization" : {
"title" : "👥 Optimización de Personal" ,
2025-11-27 15:52:40 +01:00
"message" : "{shift_name} sobrestimado por {excess_percent}%. Considera ajustar niveles de personal para reducir costos laborales."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"po_approval_needed" : {
2025-11-27 15:52:40 +01:00
"title" : "Orden de Compra #{po_number} requiere aprobación" ,
"message" : "Orden de compra para {supplier_name} por un total de {currency} {total_amount} pendiente de aprobación. Entrega requerida para {required_delivery_date}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
} ,
"production_batch_start" : {
2025-11-27 15:52:40 +01:00
"title" : "Lote de Producción Listo: {product_name}" ,
"message" : "Lote #{batch_number} ({quantity_planned} {unit} de {product_name}) está listo para comenzar. Prioridad: {priority}."
feat(dashboard): Add i18n support for action buttons
- Create getActionLabelKey() mapper function for action types
- Map action types (approve_po, call_supplier, etc.) to i18n keys
- Extract parameters from metadata (amount, supplier, customer, hours)
- Update button rendering to use translations instead of backend strings
Translation updates:
- Add missing action keys: reject_po, complete_receipt, mark_received
- Spanish translations: "Rechazar pedido", "Completar recepción", etc.
- Basque translations: "Baztertu eskaera", "Osatu stockaren harrera", etc.
Action buttons now respect user's language preference (EN/ES/EU)
instead of showing hardcoded backend strings.
Fixes: Issue #4 - Missing i18n for action buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 07:40:12 +01:00
}
}
}