feat: Implement complete i18n support for reasoning data
Created comprehensive multilingual translation system for JTBD dashboard reasoning fields. Backend generates structured data, frontend translates using i18n in EN, ES, and EU (Euskara). Frontend Changes: 1. Created reasoning.json translation files (EN, ES, EU) - Purchase order reasoning types - Production batch reasoning types - Consequence translations - Severity levels - Error codes - All JTBD dashboard UI text 2. Created useReasoningTranslation hook - translatePOReasonng() - For purchase orders - translateBatchReasoning() - For production batches - translateConsequence() - For consequences - translateSeverity() - For severity levels - translateError() - For error codes - useReasoningFormatter() - Higher-level formatting Translation Examples: EN: "Low stock for Harinas del Norte. Stock runs out in 3 days." ES: "Stock bajo para Harinas del Norte. Se agota en 3 días." EU: "Harinas del Norte-rentzat stock baxua. 3 egunetan amaituko da." Documentation: - Created REASONING_I18N_AUDIT.md with full audit of hardcoded text - Identified all files needing updates - Documented strategy for backend error codes Next Steps: - Update dashboard components to use translations - Fix demo seed scripts - Fix backend services to return error codes
This commit is contained in:
118
frontend/src/locales/en/reasoning.json
Normal file
118
frontend/src/locales/en/reasoning.json
Normal file
@@ -0,0 +1,118 @@
|
||||
{
|
||||
"purchaseOrder": {
|
||||
"low_stock_detection": "Low stock for {{supplier_name}}. Current stock of {{product_names_joined}} will run out in {{days_until_stockout}} days.",
|
||||
"forecast_demand": "Order scheduled based on {{forecast_period_days}}-day demand forecast for {{product_names_joined}} from {{supplier_name}}.",
|
||||
"safety_stock_replenishment": "Replenishing safety stock for {{product_names_joined}} from {{supplier_name}}.",
|
||||
"supplier_contract": "Scheduled order per contract with {{supplier_name}}.",
|
||||
"seasonal_demand": "Seasonal demand preparation for {{product_names_joined}} from {{supplier_name}}.",
|
||||
"production_requirement": "Required for upcoming production batches from {{supplier_name}}.",
|
||||
"manual_request": "Manual purchase request for {{product_names_joined}} from {{supplier_name}}."
|
||||
},
|
||||
"productionBatch": {
|
||||
"forecast_demand": "Scheduled based on forecast: {{predicted_demand}} {{product_name}} needed (current stock: {{current_stock}}). Confidence: {{confidence_score}}%.",
|
||||
"customer_order": "Customer order for {{customer_name}}: {{order_quantity}} {{product_name}} (Order #{{order_number}}) - delivery {{delivery_date}}.",
|
||||
"stock_replenishment": "Stock replenishment for {{product_name}} - current level below minimum.",
|
||||
"seasonal_preparation": "Seasonal preparation batch for {{product_name}}.",
|
||||
"promotion_event": "Production for promotional event - {{product_name}}.",
|
||||
"urgent_order": "Urgent order requiring immediate production of {{product_name}}.",
|
||||
"regular_schedule": "Regular scheduled production of {{product_name}}."
|
||||
},
|
||||
"consequence": {
|
||||
"stockout_risk": "Stock-out risk in {{impact_days}} days. Products affected: {{affected_products_joined}}.",
|
||||
"insufficient_supply": "Insufficient supply for {{impact_days}}-day period.",
|
||||
"production_delay": "Potential production delay of {{delay_hours}} hours.",
|
||||
"customer_commitment": "Customer delivery commitment at risk.",
|
||||
"quality_issue": "Quality standards may be compromised.",
|
||||
"cost_increase": "Material costs may increase by {{percentage}}%."
|
||||
},
|
||||
"severity": {
|
||||
"critical": "Critical",
|
||||
"high": "High",
|
||||
"medium": "Medium",
|
||||
"low": "Low"
|
||||
},
|
||||
"triggers": {
|
||||
"orchestrator_auto": "Automatic (Orchestrator)",
|
||||
"manual": "Manual Request",
|
||||
"customer_order": "Customer Order",
|
||||
"forecast": "Demand Forecast",
|
||||
"inventory_alert": "Inventory Alert"
|
||||
},
|
||||
"errors": {
|
||||
"INSUFFICIENT_DATA": "Insufficient historical data for accurate calculation",
|
||||
"INVALID_PARAMETERS": "Invalid parameters provided",
|
||||
"LEAD_TIME_INVALID": "Lead time or demand deviation is zero or negative",
|
||||
"NO_DEMAND_DATA": "No historical demand data available (minimum 2 data points required)"
|
||||
},
|
||||
"jtbd": {
|
||||
"health_status": {
|
||||
"green": "Everything is running smoothly",
|
||||
"yellow": "Some items need attention",
|
||||
"red": "Critical issues require immediate action",
|
||||
"last_updated": "Last updated",
|
||||
"next_check": "Next check"
|
||||
},
|
||||
"action_queue": {
|
||||
"title": "What Needs Your Attention",
|
||||
"why_needed": "Why this is needed:",
|
||||
"what_if_not": "What happens if I don't do this?",
|
||||
"estimated_time": "Estimated time: {{minutes}} min",
|
||||
"all_caught_up": "All caught up!",
|
||||
"no_actions": "No actions requiring your attention right now.",
|
||||
"show_more": "Show {{count}} More Action{{plural}}",
|
||||
"show_less": "Show Less",
|
||||
"critical_badge": "{{count}} critical",
|
||||
"important_badge": "{{count}} important"
|
||||
},
|
||||
"orchestration_summary": {
|
||||
"title": "Last Night I Planned Your Day",
|
||||
"no_runs": "Ready to Plan Your Bakery Day",
|
||||
"no_runs_message": "The system hasn't run daily planning yet. Click 'Run Daily Planning' to generate your first plan.",
|
||||
"run_number": "Orchestration run #{{number}}",
|
||||
"duration": "Took {{seconds}}s",
|
||||
"pos_created": "Created {{count}} purchase order{{plural}}",
|
||||
"batches_created": "Scheduled {{count}} production batch{{plural}}",
|
||||
"no_actions": "No new actions needed - everything is on track!",
|
||||
"based_on": "Based on:",
|
||||
"customer_orders": "{{count}} customer order{{plural}}",
|
||||
"historical_demand": "Historical demand",
|
||||
"inventory_levels": "Inventory levels",
|
||||
"ai_optimization": "AI optimization",
|
||||
"actions_required": "{{count}} item{{plural}} need{{verb}} your approval before proceeding"
|
||||
},
|
||||
"production_timeline": {
|
||||
"title": "Today's Production Timeline",
|
||||
"no_batches": "No production batches scheduled for today",
|
||||
"status": {
|
||||
"pending": "Pending",
|
||||
"in_progress": "In Progress",
|
||||
"completed": "Completed",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"ready_by": "Ready by {{time}}",
|
||||
"priority": {
|
||||
"low": "Low Priority",
|
||||
"normal": "Normal",
|
||||
"high": "High Priority",
|
||||
"urgent": "Urgent"
|
||||
}
|
||||
},
|
||||
"insights": {
|
||||
"savings": "Savings This Week",
|
||||
"inventory": "Inventory Status",
|
||||
"waste": "Waste Reduction",
|
||||
"deliveries": "On-Time Deliveries"
|
||||
},
|
||||
"actions": {
|
||||
"approve": "Approve",
|
||||
"view_details": "View Details",
|
||||
"modify": "Modify",
|
||||
"start_batch": "Start Batch",
|
||||
"pause_batch": "Pause",
|
||||
"complete_setup": "Complete Setup",
|
||||
"dismiss": "Dismiss",
|
||||
"view_alert": "View Details",
|
||||
"run_planning": "Run Daily Planning"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user