2025-11-07 18:24:38 +00:00
{
"purchaseOrder" : {
2025-11-07 23:00:36 +00:00
"low_stock_detection" : "{{supplier_name}}-rentzat stock baxua. {{product_names_joined}}-ren egungo stocka {{days_until_stockout}} egunetan amaituko da." ,
2025-11-07 18:24:38 +00:00
"forecast_demand" : "{{supplier_name}}-ren {{product_names_joined}}-rentzat {{forecast_period_days}} eguneko eskaera aurreikuspenean oinarritutako eskaera programatua." ,
"safety_stock_replenishment" : "{{supplier_name}}-ren {{product_names_joined}}-rentzat segurtasun stockaren birjartzea." ,
"supplier_contract" : "{{supplier_name}}-rekin kontratuaren arabera programatutako eskaera." ,
"seasonal_demand" : "{{supplier_name}}-ren {{product_names_joined}}-rentzat denboraldiko eskaeraren prestaketa." ,
"production_requirement" : "{{supplier_name}}-ren hurrengo ekoizpen loteetarako beharrezkoa." ,
"manual_request" : "{{supplier_name}}-ren {{product_names_joined}}-rentzat eskuzko erosketa eskaera."
} ,
"productionBatch" : {
"forecast_demand" : "Aurreikuspenen arabera programatua: {{predicted_demand}} {{product_name}} behar dira (egungo stocka: {{current_stock}}). Konfiantza: {{confidence_score}}%." ,
"customer_order" : "{{customer_name}}-rentzat bezeroaren eskaera: {{order_quantity}} {{product_name}} (Eskaera #{{order_number}}) - entrega {{delivery_date}}." ,
"stock_replenishment" : "{{product_name}}-rentzat stockaren birjartzea - egungo maila minimoa baino txikiagoa." ,
"seasonal_preparation" : "{{product_name}}-rentzat denboraldiko prestaketa lotea." ,
"promotion_event" : "Promozio ekitaldirako ekoizpena - {{product_name}}." ,
"urgent_order" : "{{product_name}}-ren berehalako ekoizpena behar duen eskaera larria." ,
"regular_schedule" : "{{product_name}}-ren ohiko ekoizpen programatua."
} ,
"consequence" : {
"stockout_risk" : "Stock amaitzeko arriskua {{impact_days}} egunetan. Produktu kaltetuak: {{affected_products_joined}}." ,
"insufficient_supply" : "{{impact_days}} eguneko aldirako hornidura ez nahikoa." ,
"production_delay" : "{{delay_hours}} orduko ekoizpen atzerapena posiblea." ,
"customer_commitment" : "Bezeroari entregatzeko konpromisoa arriskuan." ,
"quality_issue" : "Kalitate estandarrak arriskuan egon daitezke." ,
"cost_increase" : "Materialen kostuak %{{percentage}} gehitu daitezke."
} ,
"severity" : {
"critical" : "Kritikoa" ,
"high" : "Altua" ,
"medium" : "Ertaina" ,
"low" : "Baxua"
} ,
"triggers" : {
"orchestrator_auto" : "Automatikoa (Orkestatzailea)" ,
"manual" : "Eskuzko Eskaera" ,
"customer_order" : "Bezeroaren Eskaera" ,
"forecast" : "Eskaeraren Aurreikuspena" ,
"inventory_alert" : "Inbentarioaren Alerta"
} ,
"errors" : {
"INSUFFICIENT_DATA" : "Datu historiko ez nahikoa kalkulu zehatzerako" ,
"INVALID_PARAMETERS" : "Emandako parametroak ez baliodunak" ,
"LEAD_TIME_INVALID" : "Entrega denbora edo eskaeraren desbideratzea zero edo negatiboa da" ,
"NO_DEMAND_DATA" : "Ez dago eskaeraren datu historikorik eskuragarri (gutxienez 2 datu puntu behar dira)"
} ,
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" : "Segurtasun-stock kalkulatua metodo estatistikoarekin (zerbitzu-maila {{service_level}}%, z-score {{z_score}}). Eskaeraren desbideratze estandarrean {{demand_std_dev}} eta {{lead_time_days}} eguneko entrega-denboran oinarrituta. Emaitza: {{safety_stock}} unitate." ,
"advanced_variability" : "Segurtasun-stock kalkulatua aldakortasun-analisi aurreratuarekin. Eskaeraren aldakortasuna (σ ={{demand_std_dev}}) eta entrega-denboraren ziurgabetasuna (σ ={{lead_time_std_dev}} egun) kontuan hartzen ditu. Emaitza: {{safety_stock}} unitate." ,
"fixed_percentage" : "Segurtasun-stock ezarri da {{lead_time_days}} eguneko eskaeraren {{percentage}}%n ({{lead_time_demand}} unitate). Emaitza: {{safety_stock}} unitate." ,
"error_lead_time_invalid" : "Ezin da segurtasun-stock kalkulatu: entrega-denbora ({{lead_time_days}} egun) edo eskaeraren desbideratze estandarra ({{demand_std_dev}}) ez dira baliodunak." ,
"error_insufficient_data" : "Eskaeraren historiala ez da nahikoa segurtasun-stock kalkulatzeko ({{data_points}} datu puntu, {{min_required}} behar dira)."
} ,
"priceForecaster" : {
"decrease_expected" : "Espero da prezioa {{change_pct}}% jaitsiko dela hurrengo {{forecast_days}} egunetan. Oraingoa: €{{current_price}}, aurreikuspena: €{{forecast_mean}}. Gomendio: Itxaron prezio hobeago baterako." ,
"increase_expected" : "Espero da prezioa {{change_pct}}% igoko dela hurrengo {{forecast_days}} egunetan. Oraingoa: €{{current_price}}, aurreikuspena: €{{forecast_mean}}. Gomendio: Erosi orain oraingo prezioa ziurtatzeko." ,
"high_volatility" : "Prezio-aldakortasun altua detektatu da (CV={{coefficient}}). Prezioaren eguneko batez besteko aldaketa: {{avg_daily_change_pct}}%. Gomendio: Itxaron prezioaren jaitsierara." ,
"below_average" : "Oraingo prezioa €{{current_price}} batez besteko historikoaren (€{{mean_price}}) {{below_avg_pct}}% azpitik dago. Erosketa-aukera egokia." ,
"stable" : "Prezioa egonkorra da. Oraingoa: €{{current_price}}, aurreikuspena: €{{forecast_mean}} ({{expected_change_pct}}% aldaketa espero da). Ohiko erosketa-denbora gomendatzen da." ,
"insufficient_data" : "Prezioen historiala ez da nahikoa aurreikuspen fidagarrirako ({{history_days}} egun eskuragarri, {{min_required_days}} egun behar dira)."
} ,
"optimization" : {
"eoq_base" : "Eskaera Kantitate Ekonomikoa kalkulatu da: {{eoq}} unitate (beharrezkoa: {{required_quantity}}, urteko eskaera: {{annual_demand}}). {{optimal_quantity}} unitatetan optimizatuta." ,
"moq_applied" : "Gutxieneko eskaera-kantitatearen murrizketa aplikatu da: {{moq}} unitate." ,
"max_applied" : "Gehienezko eskaera-kantitatearen murrizketa aplikatu da: {{max_qty}} unitate." ,
"no_tiers" : "Ez dago prezio-mailarik eskuragarri produktu honetarako. Oinarrizko kantitatea: {{base_quantity}} unitate €{{unit_price}} unitateko." ,
"current_tier" : "Oraingo prezio-maila: €{{current_tier_price}} unitateko {{base_quantity}} unitateko (guztira: €{{base_cost}})." ,
"tier_upgraded" : "Prezio-maila hobea lortu da! {{tier_min_qty}} unitate eskatzeak ({{additional_qty}} gehiago) €{{tier_price}} unitateko €{{savings}} aurrezten ditu {{base_quantity}} unitateri €{{base_price}}n konparatuta."
} ,
2025-11-07 18:24:38 +00:00
"jtbd" : {
"health_status" : {
"green" : "Dena ondo dabil" ,
"yellow" : "Elementu batzuek arreta behar dute" ,
"red" : "Arazo kritikoek ekintza berehalakoa behar dute" ,
"last_updated" : "Azken eguneratzea" ,
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" : "Hurrengo egiaztapena" ,
"never" : "Inoiz ez" ,
"critical_issues" : "{{count}} arazo kritiko" ,
"actions_needed" : "{{count}} ekintza behar"
2025-11-07 18:24:38 +00:00
} ,
"action_queue" : {
"title" : "Zer Behar Du Zure Arreta" ,
"why_needed" : "Zergatik behar da hau:" ,
"what_if_not" : "Zer gertatzen da hau egiten ez badut?" ,
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" : "Estimatutako denbora" ,
2025-11-07 18:24:38 +00:00
"all_caught_up" : "Dena egunean!" ,
"no_actions" : "Ez dago une honetan zure arreta behar duen ekintzarik." ,
2025-11-15 21:21:06 +01:00
"show_more" : "Erakutsi {count} Ekintza gehiago" ,
2025-11-07 18:24:38 +00:00
"show_less" : "Erakutsi Gutxiago" ,
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" : "guztira" ,
"critical" : "kritiko" ,
2025-11-15 21:21:06 +01:00
"important" : "garrantzitsu" ,
"consequences" : {
"delayed_delivery_impact" : "Entregatze atzerapena ekoizpen programan eragina izan dezake" ,
"immediate_action_required" : "Berehalako ekintza behar da ekoizpen arazoak saihesteko" ,
"some_features_limited" : "Funtzio batzuk mugatuta daude"
} ,
"actions" : {
"approve" : "Onartu" ,
2025-11-18 07:17:17 +01:00
"reject" : "Baztertu" ,
2025-11-15 21:21:06 +01:00
"view_details" : "Xehetasunak Ikusi" ,
"modify" : "Aldatu" ,
"dismiss" : "Baztertu" ,
"complete_setup" : "Osatu Konfigurazioa"
}
2025-11-07 18:24:38 +00:00
} ,
"orchestration_summary" : {
"title" : "Bart Gauean Zure Eguna Planifikatu Nuen" ,
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" : "Zure Okindegiko Eguna Planifikatzeko Prest" ,
"run_planning" : "Exekutatu Eguneko Plangintza" ,
"run_info" : "Orkestazio exekuzioa #{{runNumber}}" ,
"took" : "{{seconds}}s behar izan zituen" ,
"created_pos" : "{{count}} erosketa agindu sortu" ,
"scheduled_batches" : "{{count}} ekoizpen lote programatu" ,
"show_more" : "Erakutsi {{count}} gehiago" ,
"show_less" : "Erakutsi gutxiago" ,
2025-11-07 18:24:38 +00:00
"no_actions" : "Ez dira ekintza berriak behar - dena bidean dago!" ,
"based_on" : "Oinarrituta:" ,
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
"customer_orders" : "{{count}} bezero eskaera" ,
2025-11-07 18:24:38 +00:00
"historical_demand" : "Eskaera historikoa" ,
"inventory_levels" : "Inbentario mailak" ,
"ai_optimization" : "IA optimizazioa" ,
2025-11-13 16:01:08 +01:00
"actions_required" : "{{count}} elementuk zure onespena behar du aurrera jarraitu aurretik" ,
"no_tenant_error" : "Ez da inquilino ID aurkitu. Mesedez, ziurtatu saioa hasi duzula." ,
"planning_started" : "Plangintza behar bezala hasi da" ,
"planning_failed" : "Errorea plangintza hastean" ,
"planning_error" : "Errore bat gertatu da plangintza hastean"
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" : "Zure Gaurko Ekoizpen Plana" ,
"no_production" : "Ez Dago Ekoizpenik Programatuta" ,
"no_batches" : "Ez dago loterik programatuta gaur ekoizpenerako." ,
"ready_by" : "Prest egongo da" ,
"start_batch" : "Hasi Lotea" ,
"pause_batch" : "Pausatu Lotea" ,
"completed" : "Osatua" ,
"total" : "Guztira" ,
"done" : "Eginda" ,
"active" : "Aktibo" ,
"pending" : "Zain" ,
"view_full_schedule" : "Ikusi Ekoizpen Egutegi Osoa"
2025-11-07 18:24:38 +00:00
} ,
"insights" : {
"savings" : "Aste Honetako Aurrezkiak" ,
"inventory" : "Inbentarioaren Egoera" ,
"waste" : "Hondakinen Murrizketa" ,
"deliveries" : "Garaiz Entregatutakoak"
} ,
"actions" : {
"approve" : "Onetsi" ,
"view_details" : "Ikusi Xehetasunak" ,
"modify" : "Aldatu" ,
"start_batch" : "Hasi Lotea" ,
"pause_batch" : "Pausatu" ,
"complete_setup" : "Osatu Konfigurazioa" ,
"dismiss" : "Baztertu" ,
"view_alert" : "Ikusi Xehetasunak" ,
"run_planning" : "Exekutatu Eguneko Plangintza"
}
2025-11-20 19:14:49 +01:00
} ,
"types" : {
"low_stock_detection" : "Stock baxua detektatu da {{product_name}}-(e)rako. Stocka {{days_until_stockout}} egunetan agortuko da." ,
"stockout_prevention" : "Osagai kritikoen desabastetzea saihestea" ,
"forecast_demand" : "Eskari aurreikuspenean oinarrituta: {{predicted_demand}} unitate aurreikusita ({{confidence_score}}% konfiantza)" ,
"customer_orders" : "Bezeroen eskaera bermatuen betetze" ,
"seasonal_demand" : "Aurreikusitako sasoiko eskariaren igoera" ,
"inventory_replenishment" : "Inbentario berritze erregularra" ,
"production_schedule" : "Ekoizpen sorta programatua" ,
"other" : "Berritze estandarra"
2025-11-07 18:24:38 +00:00
}
}