Improve UI and traslations
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
},
|
||||
"post": {
|
||||
"read_more": "Read full article",
|
||||
"read_time": "{{time}} min"
|
||||
"read_time": "{time} min"
|
||||
},
|
||||
"categories": {
|
||||
"management": "Management",
|
||||
|
||||
@@ -351,12 +351,6 @@
|
||||
"terms": "Terms",
|
||||
"cookies": "Cookies"
|
||||
},
|
||||
"social_follow": "Follow us on social media",
|
||||
"social_labels": {
|
||||
"twitter": "Twitter",
|
||||
"linkedin": "LinkedIn",
|
||||
"github": "GitHub"
|
||||
},
|
||||
"made_with_love": "Made with love in Madrid"
|
||||
},
|
||||
"breadcrumbs": {
|
||||
|
||||
83
frontend/src/locales/en/contact.json
Normal file
83
frontend/src/locales/en/contact.json
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"hero": {
|
||||
"badge": "Contact & Support",
|
||||
"title": "We Are Here to",
|
||||
"title_accent": "Help You",
|
||||
"subtitle": "Have questions? Need help? Our team is ready to assist you"
|
||||
},
|
||||
"methods": {
|
||||
"title": "Multiple Ways to Contact",
|
||||
"subtitle": "Choose the method that suits you best",
|
||||
"email": {
|
||||
"title": "Email",
|
||||
"description": "support@panaderia-ia.com",
|
||||
"detail": "Response in less than 4 hours"
|
||||
},
|
||||
"phone": {
|
||||
"title": "Phone",
|
||||
"description": "+34 XXX XXX XXX",
|
||||
"detail": "Monday to Friday: 10:00 - 19:00 CET"
|
||||
},
|
||||
"office": {
|
||||
"title": "Office",
|
||||
"description": "Madrid, Spain",
|
||||
"detail": "By appointment only"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"title": "Send Us a Message",
|
||||
"subtitle": "Complete the form and we will get back to you as soon as possible",
|
||||
"success": {
|
||||
"title": "Message sent!",
|
||||
"message": "We will get back to you soon."
|
||||
},
|
||||
"error": {
|
||||
"title": "Error sending.",
|
||||
"message": "Please try again."
|
||||
},
|
||||
"fields": {
|
||||
"name": "Full Name",
|
||||
"name_placeholder": "Your name",
|
||||
"email": "Email",
|
||||
"email_placeholder": "you@email.com",
|
||||
"phone": "Phone (optional)",
|
||||
"phone_placeholder": "+34 XXX XXX XXX",
|
||||
"bakery_name": "Your Bakery Name (optional)",
|
||||
"bakery_name_placeholder": "Example Bakery",
|
||||
"type": "Query Type",
|
||||
"type_options": {
|
||||
"general": "General Inquiry",
|
||||
"technical": "Technical Support",
|
||||
"sales": "Commercial Information",
|
||||
"feedback": "Feedback/Suggestions"
|
||||
},
|
||||
"subject": "Subject",
|
||||
"subject_placeholder": "How can we help you?",
|
||||
"message": "Message",
|
||||
"message_placeholder": "Tell us more about your inquiry or problem..."
|
||||
},
|
||||
"submit": "Send Message",
|
||||
"sending": "Sending...",
|
||||
"privacy": "By sending this form, you accept our <privacyLink>Privacy Policy</privacyLink>",
|
||||
"required_indicator": "*"
|
||||
},
|
||||
"footer": {
|
||||
"hours": {
|
||||
"title": "Service Hours",
|
||||
"email": {
|
||||
"label": "Email:",
|
||||
"detail": "24/7 (response in less than 4 hours during business hours)"
|
||||
},
|
||||
"phone": {
|
||||
"label": "Phone:",
|
||||
"detail": "Monday to Friday: 10:00 - 19:00 CET (active clients only)"
|
||||
}
|
||||
},
|
||||
"faq": {
|
||||
"title": "Looking for Quick Answers?",
|
||||
"description": "Many questions are already answered in our Help Center and Documentation",
|
||||
"help_center": "View Help Center →",
|
||||
"docs": "Read Documentation →"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -163,7 +163,7 @@
|
||||
"active_count": "{count} active alerts"
|
||||
},
|
||||
"production": {
|
||||
"scheduled_based_on": "Scheduled based on {{type}}",
|
||||
"scheduled_based_on": "Scheduled based on {type}",
|
||||
"status": {
|
||||
"completed": "COMPLETED",
|
||||
"in_progress": "IN PROGRESS",
|
||||
@@ -198,26 +198,26 @@
|
||||
},
|
||||
"health": {
|
||||
"production_on_schedule": "Production on schedule",
|
||||
"production_delayed": "{count} production batch{count, plural, one {} other {es}} delayed",
|
||||
"production_late_to_start": "{count} batch{count, plural, one {} other {es}} not started on time",
|
||||
"production_delayed_and_late": "{delayed} batch{delayed, plural, one {} other {es}} delayed and {late} not started on time",
|
||||
"production_delayed": "{count} production batch{count, plural, one {} other {es} delayed}",
|
||||
"production_late_to_start": "{count} batch{count, plural, one {} other {es} not started on time}",
|
||||
"production_delayed_and_late": "{delayed} batch{delayed, plural, one {} other {es} delayed and {late} not started on time}",
|
||||
"production_issues": "{total} production issue{total, plural, one {} other {s}}",
|
||||
"production_ai_prevented": "AI prevented {count} production delay{count, plural, one {} other {s}}",
|
||||
"all_ingredients_in_stock": "All ingredients in stock",
|
||||
"ingredients_out_of_stock": "{count} ingredient{count, plural, one {} other {s}} out of stock",
|
||||
"ingredients_out_of_stock": "{count} ingredient{count, plural, one {} other {s} out of stock}",
|
||||
"inventory_ai_prevented": "AI prevented {count} inventory issue{count, plural, one {} other {s}}",
|
||||
"no_pending_approvals": "No pending approvals",
|
||||
"approvals_awaiting": "{count} purchase order{count, plural, one {} other {s}} awaiting approval",
|
||||
"procurement_ai_prevented": "AI created {count} purchase order{count, plural, one {} other {s}} automatically",
|
||||
"approvals_awaiting": "{count} purchase order{count, plural, one {} other {s} awaiting approval}",
|
||||
"procurement_ai_prevented": "AI created {count} purchase order{count, plural, one {} other {s} automatically}",
|
||||
"deliveries_on_track": "All deliveries on track",
|
||||
"deliveries_overdue": "{count} deliver{count, plural, one {y} other {ies}} overdue",
|
||||
"deliveries_overdue": "{count} deliver{count, plural, one {y} other {ies} overdue}",
|
||||
"deliveries_ai_prevented": "AI prevented {count} delivery issue{count, plural, one {} other {s}}",
|
||||
"deliveries_pending": "{count} pending deliver{count, plural, one {y} other {ies}}",
|
||||
"all_systems_operational": "All systems operational",
|
||||
"critical_issues": "{count} critical issue{count, plural, one {} other {s}}",
|
||||
"headline_green": "Your bakery is running smoothly",
|
||||
"headline_yellow_approvals": "Please review {count} pending approval{count, plural, one {} other {s}}",
|
||||
"headline_yellow_alerts": "You have {count} alert{count, plural, one {} other {s}} needing attention",
|
||||
"headline_yellow_alerts": "You have {count} alert{count, plural, one {} other {s} needing attention}",
|
||||
"headline_yellow_general": "Some items need your attention",
|
||||
"headline_red": "Critical issues require immediate action"
|
||||
},
|
||||
@@ -287,7 +287,7 @@
|
||||
"user_needed": "User Needed",
|
||||
"needs_review": "needs your review",
|
||||
"all_handled": "all handled by AI",
|
||||
"prevented_badge": "{count} issue{{count, plural, one {} other {s}}} prevented",
|
||||
"prevented_badge": "{count} issue{count, plural, one {} other {s} prevented}",
|
||||
"prevented_description": "AI proactively handled these before they became problems",
|
||||
"analyzed_title": "What I Analyzed",
|
||||
"actions_taken": "What I Did",
|
||||
@@ -400,7 +400,7 @@
|
||||
"no_forecast_data": "No forecast data available",
|
||||
"no_performance_data": "No performance data available",
|
||||
"no_distribution_data": "No distribution data available",
|
||||
"performance_based_on": "Performance based on {{metric}} over {{period}} days",
|
||||
"performance_based_on": "Performance based on {metric} over {period} days",
|
||||
"ranking": "Ranking",
|
||||
"rank": "Rank",
|
||||
"outlet": "Outlet",
|
||||
@@ -585,7 +585,7 @@
|
||||
"new_dashboard": {
|
||||
"system_status": {
|
||||
"title": "System Status",
|
||||
"issues_requiring_action": "{count, plural, one {# issue} other {# issues}} requiring your action",
|
||||
"issues_requiring_action": "{count, plural, one {# issue} other {# issues} requiring your action}",
|
||||
"all_clear": "All systems running smoothly",
|
||||
"never_run": "Never run",
|
||||
"action_needed_label": "action needed",
|
||||
@@ -602,7 +602,7 @@
|
||||
},
|
||||
"pending_purchases": {
|
||||
"title": "Pending Purchases",
|
||||
"count": "{count, plural, one {# order} other {# orders}} awaiting approval",
|
||||
"count": "{count, plural, one {# order} other {# orders} awaiting approval}",
|
||||
"no_pending": "No pending purchase orders",
|
||||
"all_clear": "No purchase orders pending approval",
|
||||
"po_number": "PO #{number}",
|
||||
@@ -613,10 +613,10 @@
|
||||
"ai_reasoning": "AI created this PO because:",
|
||||
"reasoning": {
|
||||
"low_stock": "{ingredient} will run out in {days, plural, =0 {less than a day} one {# day} other {# days}}",
|
||||
"low_stock_detailed": "{count, plural, one {# critical ingredient} other {# critical ingredients}} at risk: {products}. Earliest depletion in {days, plural, =0 {<1 day} one {1 day} other {# days}}, affecting {batches, plural, one {# batch} other {# batches}}. Potential loss: €{loss}",
|
||||
"low_stock_detailed": "{count, plural, one {# critical ingredient} other {# critical ingredients} at risk: {products}. Earliest depletion in {days, plural, =0 {<1 day} one {1 day} other {# days}, affecting {batches, plural, one {# batch} other {# batches}. Potential loss: €{loss}}",
|
||||
"demand_forecast": "Demand for {product} is expected to increase by {increase}%",
|
||||
"production_requirement": "{products} needed for {batches, plural, one {# batch} other {# batches}} of production in {days, plural, =0 {less than a day} one {# day} other {# days}}",
|
||||
"safety_stock": "Safety stock replenishment: {count, plural, one {# product} other {# products}} (current: {current}, target: {target})",
|
||||
"production_requirement": "{products} needed for {batches, plural, one {# batch} other {# batches} of production in {days, plural, =0 {less than a day} one {# day} other {# days}}",
|
||||
"safety_stock": "Safety stock replenishment: {count, plural, one {# product} other {# products} (current: {current}, target: {target})}",
|
||||
"supplier_contract": "Contract with {supplier} for {products}",
|
||||
"seasonal_demand": "Seasonal increase of {increase}% in {products} for {season}",
|
||||
"forecast_demand": "Forecasted demand for {product} with {confidence}% confidence for next {period, plural, one {# day} other {# days}}"
|
||||
@@ -672,7 +672,7 @@
|
||||
},
|
||||
"pending_deliveries": {
|
||||
"title": "Pending Deliveries",
|
||||
"count": "{count, plural, one {# delivery} other {# deliveries}} expected today",
|
||||
"count": "{count, plural, one {# delivery} other {# deliveries} expected today}",
|
||||
"no_deliveries": "No deliveries expected today",
|
||||
"all_clear": "No pending deliveries today",
|
||||
"overdue_section": "Overdue Deliveries",
|
||||
@@ -686,7 +686,7 @@
|
||||
},
|
||||
"production_status": {
|
||||
"title": "Production Status",
|
||||
"count": "{count, plural, one {# batch} other {# batches}} today",
|
||||
"count": "{count, plural, one {# batch} other {# batches} today}",
|
||||
"no_production": "No production scheduled for today",
|
||||
"all_clear": "No production scheduled for today",
|
||||
"late_section": "Late to Start",
|
||||
@@ -738,7 +738,7 @@
|
||||
"batch_delayed": "Batch Start Delayed",
|
||||
"generic": "Production Alert",
|
||||
"active": "Active",
|
||||
"affected_orders": "{count, plural, one {# order} other {# orders}} affected",
|
||||
"affected_orders": "{count, plural, one {# order} other {# orders} affected}",
|
||||
"delay_hours": "{hours}h delay",
|
||||
"financial_impact": "€{amount} impact",
|
||||
"urgent_in": "Urgent in {hours}h"
|
||||
|
||||
@@ -170,11 +170,6 @@
|
||||
}
|
||||
],
|
||||
"contact": {
|
||||
"liveChat": {
|
||||
"title": "Live Chat",
|
||||
"description": "Immediate response from 9:00 to 21:00",
|
||||
"action": "Start Chat"
|
||||
},
|
||||
"email": {
|
||||
"title": "Email",
|
||||
"description": "Response in less than 4 hours",
|
||||
@@ -187,7 +182,6 @@
|
||||
"action": "View Docs"
|
||||
},
|
||||
"hours": {
|
||||
"liveChat": "Monday to Friday 9:00 - 21:00, Saturdays 10:00 - 18:00",
|
||||
"email": "24/7 (response within 4 hours during business hours)",
|
||||
"phone": "Monday to Friday 10:00 - 19:00 (active customers only)"
|
||||
}
|
||||
@@ -209,4 +203,4 @@
|
||||
"action": "Read Tips"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -138,7 +138,7 @@
|
||||
"validation": {
|
||||
"no_line_items": "At least one line item is required",
|
||||
"at_least_one_lot": "At least one lot is required for each line item",
|
||||
"lot_quantity_mismatch": "Lot quantities ({{actual}}) must sum to actual quantity ({{expected}})",
|
||||
"lot_quantity_mismatch": "Lot quantities ({actual}) must sum to actual quantity ({expected})",
|
||||
"expiration_required": "Expiration date is required",
|
||||
"quantity_required": "Quantity must be greater than 0"
|
||||
},
|
||||
|
||||
@@ -92,9 +92,9 @@
|
||||
},
|
||||
|
||||
"messages": {
|
||||
"training_started": "Training started for {{name}}",
|
||||
"training_started": "Training started for {name}",
|
||||
"training_error": "Error starting training",
|
||||
"retraining_started": "Retraining started for {{name}}",
|
||||
"retraining_started": "Retraining started for {name}",
|
||||
"retraining_error": "Error retraining model"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,8 +223,8 @@
|
||||
"deployment": "Deployment",
|
||||
"processing": "Processing..."
|
||||
},
|
||||
"estimated_time": "Estimated time: {{minutes}} minutes",
|
||||
"estimated_time_remaining": "Estimated time remaining: {{time}}",
|
||||
"estimated_time": "Estimated time: {minutes} minutes",
|
||||
"estimated_time_remaining": "Estimated time remaining: {time}",
|
||||
"description": "We're creating a personalized AI model for your bakery based on your historical data.",
|
||||
"training_info": {
|
||||
"title": "What happens during training?",
|
||||
|
||||
@@ -115,10 +115,10 @@
|
||||
"auto_approve": "🤖 Auto-approve"
|
||||
},
|
||||
"messages": {
|
||||
"confirm_send": "Send order {{po_number}} to supplier?",
|
||||
"confirm_receive": "Confirm receipt of order {{po_number}}?",
|
||||
"confirm_items": "Mark items as received for {{po_number}}?",
|
||||
"confirm_complete": "Complete order {{po_number}}?",
|
||||
"cancel_reason": "Why do you want to cancel order {{po_number}}?"
|
||||
"confirm_send": "Send order {po_number} to supplier?",
|
||||
"confirm_receive": "Confirm receipt of order {po_number}?",
|
||||
"confirm_items": "Mark items as received for {po_number}?",
|
||||
"confirm_complete": "Complete order {po_number}?",
|
||||
"cancel_reason": "Why do you want to cancel order {po_number}?"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"orchestration": {
|
||||
"daily_summary": "{purchase_orders_count, plural, =0 {} =1 {Created 1 purchase order} other {Created {purchase_orders_count} purchase orders}}{purchase_orders_count, plural, =0 {} other { and }}{production_batches_count, plural, =0 {no production batches} =1 {scheduled 1 production batch} other {scheduled {production_batches_count} production batches}}. {critical_items_count, plural, =0 {All items in stock.} =1 {1 critical item needs attention} other {{critical_items_count} critical items need attention}}{total_financial_impact_eur, select, 0 {} other { (€{total_financial_impact_eur} at risk)}}{min_depletion_hours, select, 0 {} other { - {min_depletion_hours}h until stockout}}."
|
||||
"daily_summary": "{purchase_orders_count, plural, =0 {} =1 {Created 1 purchase order} other {Created {purchase_orders_count} purchase orders}{purchase_orders_count, plural, =0 {} other { and }{production_batches_count, plural, =0 {no production batches} =1 {scheduled 1 production batch} other {scheduled {production_batches_count} production batches}. {critical_items_count, plural, =0 {All items in stock.} =1 {1 critical item needs attention} other {critical_items_count} critical items need attention}{total_financial_impact_eur, select, 0 {} other { (€{total_financial_impact_eur} at risk)}{min_depletion_hours, select, 0 {} other { - {min_depletion_hours}h until stockout}.}}"
|
||||
},
|
||||
"purchaseOrder": {
|
||||
"low_stock_detection": "Low stock for {supplier_name}. Current stock of {product_names_joined} will run out in {days_until_stockout} days.",
|
||||
"low_stock_detection_detailed": "{critical_product_count, plural, =1 {{critical_products_0} will deplete in {min_depletion_hours} hours} other {{critical_product_count} critical items running low}}. With {supplier_name}'s {supplier_lead_time_days}-day delivery, we must order {order_urgency, select, critical {IMMEDIATELY} urgent {TODAY} important {soon} other {now}} to prevent {affected_batches_count, plural, =0 {production delays} =1 {disruption to {affected_batches_0}} other {{affected_batches_count} batch disruptions}}{potential_loss_eur, select, 0 {} other { (€{potential_loss_eur} at risk)}}.",
|
||||
"low_stock_detection_detailed": "{critical_product_count, plural, =1 {critical_products_0} will deplete in {min_depletion_hours} hours} other {critical_product_count} critical items running low}. With {supplier_name}'s {supplier_lead_time_days}-day delivery, we must order {order_urgency, select, critical {IMMEDIATELY} urgent {TODAY} important {soon} other {now} to prevent {affected_batches_count, plural, =0 {production delays} =1 {disruption to {affected_batches_0} other {affected_batches_count} batch disruptions}{potential_loss_eur, select, 0 {} other { (€{potential_loss_eur} at risk)}.}}",
|
||||
"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}.",
|
||||
@@ -23,12 +23,12 @@
|
||||
"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.",
|
||||
"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}}%."
|
||||
"cost_increase": "Material costs may increase by {percentage}%."
|
||||
},
|
||||
"severity": {
|
||||
"critical": "Critical",
|
||||
@@ -50,27 +50,27 @@
|
||||
"NO_DEMAND_DATA": "No historical demand data available (minimum 2 data points required)"
|
||||
},
|
||||
"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}})."
|
||||
"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)."
|
||||
"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}}."
|
||||
"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}."
|
||||
},
|
||||
"jtbd": {
|
||||
"health_status": {
|
||||
@@ -80,12 +80,12 @@
|
||||
"green_simple": "✅ Everything is ready for today",
|
||||
"yellow_simple": "⚠️ Some items need attention",
|
||||
"red_simple": "🔴 Critical issues require action",
|
||||
"yellow_simple_with_count": "⚠️ {count} action{count, plural, one {} other {s}} needed",
|
||||
"yellow_simple_with_count": "⚠️ {count} action{count, plural, one {} other {s} needed}",
|
||||
"last_updated": "Last updated",
|
||||
"next_check": "Next check",
|
||||
"never": "Never",
|
||||
"critical_issues": "{count} critical issue{count, plural, one {} other {s}}",
|
||||
"actions_needed": "{count} action{count, plural, one {} other {s}} needed"
|
||||
"actions_needed": "{count} action{count, plural, one {} other {s} needed}"
|
||||
},
|
||||
"action_queue": {
|
||||
"title": "What Needs Your Attention",
|
||||
@@ -131,7 +131,7 @@
|
||||
"historical_demand": "Historical demand",
|
||||
"inventory_levels": "Inventory levels",
|
||||
"ai_optimization": "AI optimization",
|
||||
"actions_required": "{count} item{count, plural, one {} other {s}} need{count, plural, one {s} other {}}} your approval before proceeding",
|
||||
"actions_required": "{count} item{count, plural, one {} other {s} need{count, plural, one {s} other {} your approval before proceeding}}",
|
||||
"no_tenant_error": "No tenant ID found. Please ensure you're logged in.",
|
||||
"planning_started": "Planning started successfully",
|
||||
"planning_failed": "Failed to start planning",
|
||||
@@ -170,9 +170,9 @@
|
||||
}
|
||||
},
|
||||
"types": {
|
||||
"low_stock_detection": "Low stock detected for {{product_name}}. Stock will run out in {{days_until_stockout}} days.",
|
||||
"low_stock_detection": "Low stock detected for {product_name}. Stock will run out in {days_until_stockout} days.",
|
||||
"stockout_prevention": "Preventing stockout for critical ingredients",
|
||||
"forecast_demand": "Based on demand forecast: {{predicted_demand}} units predicted ({{confidence_score}}% confidence)",
|
||||
"forecast_demand": "Based on demand forecast: {predicted_demand} units predicted ({confidence_score}% confidence)",
|
||||
"customer_orders": "Fulfilling confirmed customer orders",
|
||||
"seasonal_demand": "Anticipated seasonal demand increase",
|
||||
"inventory_replenishment": "Regular inventory replenishment",
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"add_another": "Add Another Supplier",
|
||||
"manage_products": "Manage Products",
|
||||
"products": "products",
|
||||
"products_for": "Products for {{name}}",
|
||||
"products_for": "Products for {name}",
|
||||
"add_products": "Add Products",
|
||||
"no_products_available": "No products available",
|
||||
"select_products": "Select Products",
|
||||
@@ -115,6 +115,7 @@
|
||||
"expiration_past": "Expiration date is in the past",
|
||||
"expiring_soon": "Warning: This ingredient expires very soon!"
|
||||
},
|
||||
"batch_label": "Batch",
|
||||
"templates": {
|
||||
"basic-bakery": "Basic Bakery Ingredients",
|
||||
"basic-bakery-desc": "Essential ingredients for any bakery",
|
||||
@@ -130,6 +131,9 @@
|
||||
"why": "Recipes connect your inventory to production. The system will calculate exact costs per item, track ingredient consumption, and help you optimize your menu profitability.",
|
||||
"quick_start": "Recipe Templates",
|
||||
"quick_start_desc": "Start with proven recipes and customize to your needs",
|
||||
"template_ingredients": "Ingredients:",
|
||||
"template_instructions": "Instructions:",
|
||||
"template_tips": "Tips:",
|
||||
"category": {
|
||||
"breads": "Breads",
|
||||
"pastries": "Pastries",
|
||||
@@ -219,17 +223,29 @@
|
||||
"fields": {
|
||||
"name": "Full Name",
|
||||
"email": "Email Address",
|
||||
"password": "Password",
|
||||
"confirm_password": "Confirm Password",
|
||||
"phone": "Phone",
|
||||
"role": "Role"
|
||||
},
|
||||
"placeholders": {
|
||||
"name": "e.g., María García",
|
||||
"email": "e.g., maria@panaderia.com"
|
||||
"email": "e.g., maria@panaderia.com",
|
||||
"password": "••••••••",
|
||||
"confirm_password": "••••••••",
|
||||
"phone": "+34 600 000 000"
|
||||
},
|
||||
"email_hint": "This will be used as their username to log in",
|
||||
"password_hint": "Minimum 8 characters",
|
||||
"errors": {
|
||||
"name_required": "Name is required",
|
||||
"email_required": "Email is required",
|
||||
"email_invalid": "Invalid email format",
|
||||
"email_duplicate": "This email is already added"
|
||||
"email_duplicate": "This email is already added",
|
||||
"password_required": "Password is required",
|
||||
"password_min_length": "Password must be at least 8 characters",
|
||||
"confirm_password_required": "Please confirm the password",
|
||||
"passwords_mismatch": "Passwords do not match"
|
||||
}
|
||||
},
|
||||
"review": {
|
||||
@@ -250,7 +266,7 @@
|
||||
"quality_title": "Quality Check Templates",
|
||||
"required": "Required",
|
||||
"ready_title": "Your Bakery is Ready to Go!",
|
||||
"ready_message": "You've successfully configured {{suppliers}} suppliers, {{ingredients}} ingredients, and {{recipes}} recipes. Click 'Complete Setup' to finish and start using the system.",
|
||||
"ready_message": "You've successfully configured {suppliers} suppliers, {ingredients} ingredients, and {recipes} recipes. Click 'Complete Setup' to finish and start using the system.",
|
||||
"help": "Need to make changes? Use the \"Back\" button to return to any step."
|
||||
},
|
||||
"completion": {
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
},
|
||||
"delete": {
|
||||
"title": "Remove Product from Supplier",
|
||||
"description": "Are you sure you want to remove {{product}} from this supplier's price list?"
|
||||
"description": "Are you sure you want to remove {product} from this supplier's price list?"
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
|
||||
Reference in New Issue
Block a user