2025-11-07 18:24:38 +00:00
{
"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)"
} ,
feat: Add i18n support for AI insights with structured reasoning
Complete i18n implementation for internal service reasoning:
- Update AIInsight interface to include reasoning_data field
- Integrate useReasoningTranslation hook in AI Insights page
- Add translation keys for safety stock, price forecaster, and optimization
Translation coverage (EN/ES/EU):
- Safety Stock: statistical z-score, advanced variability, fixed percentage, errors
- Price Forecaster: price change predictions, volatility alerts, buying recommendations
- Optimization: EOQ calculations, MOQ/max constraints, tier pricing
Benefits:
- AI insights now display in user's preferred language
- Consistent with PO/Batch reasoning translation pattern
- Structured parameters enable rich, contextualized translations
- Falls back gracefully to description field if translation missing
Implementation:
- frontend/src/api/services/aiInsights.ts: Add reasoning_data to interface
- frontend/src/pages/app/analytics/ai-insights/AIInsightsPage.tsx: Translate insights
- frontend/src/locales/*/reasoning.json: Add safetyStock, priceForecaster, optimization keys
This completes the full i18n implementation for the bakery AI system.
2025-11-07 19:25:08 +00:00
"safetyStock" : {
"statistical_z_score" : "Safety stock calculated using statistical method (service level {{service_level}}%, z-score {{z_score}}). Based on demand std dev {{demand_std_dev}} and {{lead_time_days}}-day lead time. Result: {{safety_stock}} units." ,
"advanced_variability" : "Safety stock calculated with advanced variability analysis. Accounts for both demand variability (σ ={{demand_std_dev}}) and lead time uncertainty (σ ={{lead_time_std_dev}} days). Result: {{safety_stock}} units." ,
"fixed_percentage" : "Safety stock set at {{percentage}}% of {{lead_time_days}}-day demand ({{lead_time_demand}} units). Result: {{safety_stock}} units." ,
"error_lead_time_invalid" : "Cannot calculate safety stock: lead time ({{lead_time_days}} days) or demand std dev ({{demand_std_dev}}) is invalid." ,
"error_insufficient_data" : "Insufficient demand history for safety stock calculation ({{data_points}} data points, need {{min_required}})."
} ,
"priceForecaster" : {
"decrease_expected" : "Price expected to decrease {{change_pct}}% over next {{forecast_days}} days. Current: €{{current_price}}, forecast: €{{forecast_mean}}. Recommendation: Wait for better price." ,
"increase_expected" : "Price expected to increase {{change_pct}}% over next {{forecast_days}} days. Current: €{{current_price}}, forecast: €{{forecast_mean}}. Recommendation: Buy now to lock in current price." ,
"high_volatility" : "High price volatility detected (CV={{coefficient}}). Average daily price change: {{avg_daily_change_pct}}%. Recommendation: Wait for price dip." ,
"below_average" : "Current price €{{current_price}} is {{below_avg_pct}}% below historical average (€{{mean_price}}). Favorable buying opportunity." ,
"stable" : "Price is stable. Current: €{{current_price}}, forecast: €{{forecast_mean}} ({{expected_change_pct}}% change expected). Normal procurement timing recommended." ,
"insufficient_data" : "Insufficient price history for reliable forecast ({{history_days}} days available, need {{min_required_days}} days)."
} ,
"optimization" : {
"eoq_base" : "Economic Order Quantity calculated: {{eoq}} units (required: {{required_quantity}}, annual demand: {{annual_demand}}). Optimized for {{optimal_quantity}} units." ,
"moq_applied" : "Minimum order quantity constraint applied: {{moq}} units." ,
"max_applied" : "Maximum order quantity constraint applied: {{max_qty}} units." ,
"no_tiers" : "No price tiers available for this product. Base quantity: {{base_quantity}} units at €{{unit_price}} per unit." ,
"current_tier" : "Current pricing tier: €{{current_tier_price}} per unit for {{base_quantity}} units (total: €{{base_cost}})." ,
"tier_upgraded" : "Upgraded to better price tier! Ordering {{tier_min_qty}} units ({{additional_qty}} extra) at €{{tier_price}} per unit saves €{{savings}} compared to {{base_quantity}} units at €{{base_price}}."
} ,
2025-11-07 18:24:38 +00:00
"jtbd" : {
"health_status" : {
"green" : "Everything is running smoothly" ,
"yellow" : "Some items need attention" ,
"red" : "Critical issues require immediate action" ,
"last_updated" : "Last updated" ,
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.
2025-11-07 18:34:30 +00:00
"next_check" : "Next check" ,
"never" : "Never" ,
2025-11-15 21:21:06 +01:00
"critical_issues" : "{count} critical issue{count, plural, one {} other {s}}" ,
"actions_needed" : "{count} action{count, plural, one {} other {s}} needed"
2025-11-07 18:24:38 +00:00
} ,
"action_queue" : {
"title" : "What Needs Your Attention" ,
"why_needed" : "Why this is needed:" ,
"what_if_not" : "What happens if I don't do this?" ,
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.
2025-11-07 18:34:30 +00:00
"estimated_time" : "Estimated time" ,
2025-11-07 18:24:38 +00:00
"all_caught_up" : "All caught up!" ,
"no_actions" : "No actions requiring your attention right now." ,
2025-11-15 21:21:06 +01:00
"show_more" : "Show {count} More Action{count, plural, one {} other {s}}" ,
2025-11-07 18:24:38 +00:00
"show_less" : "Show Less" ,
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.
2025-11-07 18:34:30 +00:00
"total" : "total" ,
"critical" : "critical" ,
2025-11-15 21:21:06 +01:00
"important" : "important" ,
"consequences" : {
"delayed_delivery_impact" : "Delayed delivery may impact production schedule" ,
"immediate_action_required" : "Immediate action required to prevent production issues" ,
"some_features_limited" : "Some features are limited"
} ,
"actions" : {
"approve" : "Approve" ,
2025-11-18 07:17:17 +01:00
"reject" : "Reject" ,
2025-11-15 21:21:06 +01:00
"view_details" : "View Details" ,
"modify" : "Modify" ,
"dismiss" : "Dismiss" ,
"complete_setup" : "Complete Setup"
}
2025-11-07 18:24:38 +00:00
} ,
"orchestration_summary" : {
"title" : "Last Night I Planned Your Day" ,
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.
2025-11-07 18:34:30 +00:00
"ready_to_plan" : "Ready to Plan Your Bakery Day" ,
"run_planning" : "Run Daily Planning" ,
"run_info" : "Orchestration run #{{runNumber}}" ,
"took" : "Took {{seconds}}s" ,
2025-11-15 21:21:06 +01:00
"created_pos" : "Created {count} purchase order{count, plural, one {} other {s}}" ,
"scheduled_batches" : "Scheduled {count} production batch{count, plural, one {} other {es}}" ,
"show_more" : "Show {count} more" ,
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.
2025-11-07 18:34:30 +00:00
"show_less" : "Show less" ,
2025-11-07 18:24:38 +00:00
"no_actions" : "No new actions needed - everything is on track!" ,
"based_on" : "Based on:" ,
2025-11-15 21:21:06 +01:00
"customer_orders" : "{count} customer order{count, plural, one {} other {s}}" ,
2025-11-07 18:24:38 +00:00
"historical_demand" : "Historical demand" ,
"inventory_levels" : "Inventory levels" ,
"ai_optimization" : "AI optimization" ,
2025-11-15 21:21:06 +01:00
"actions_required" : "{count} item{count, plural, one {} other {s}} need{count, plural, one {s} other {}}} your approval before proceeding" ,
2025-11-13 16:01:08 +01:00
"no_tenant_error" : "No tenant ID found. Please ensure you're logged in." ,
"planning_started" : "Planning started successfully" ,
"planning_failed" : "Failed to start planning" ,
"planning_error" : "An error occurred while starting planning"
2025-11-07 18:24:38 +00:00
} ,
"production_timeline" : {
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.
2025-11-07 18:34:30 +00:00
"title" : "Your Production Plan Today" ,
"no_production" : "No Production Scheduled" ,
"no_batches" : "No batches are scheduled for production today." ,
"ready_by" : "Ready by" ,
"start_batch" : "Start Batch" ,
"pause_batch" : "Pause Batch" ,
"completed" : "Completed" ,
"total" : "Total" ,
"done" : "Done" ,
"active" : "Active" ,
"pending" : "Pending" ,
"view_full_schedule" : "View Full Production Schedule"
2025-11-07 18:24:38 +00:00
} ,
"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"
}
}
}