feat: Add backward navigation and comprehensive i18n support
- Implement backward navigation in onboarding wizard with state persistence - Add comprehensive setup wizard translations (Spanish, English, Basque) - Add configuration widget translations for dashboard - Support for Suppliers, Recipes, Quality, and Team setup steps New translation files: - setup_wizard.json for all 3 languages (es, en, eu) - Added config section to dashboard.json files Key improvements: - Users can now navigate backwards through wizard steps - All setup wizard steps now have proper i18n support - Configuration progress widget fully translated
This commit is contained in:
@@ -409,6 +409,16 @@ const OnboardingWizardContent: React.FC = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleGoToPrevious = () => {
|
||||||
|
if (currentStepIndex > 0) {
|
||||||
|
const previousStep = VISIBLE_STEPS[currentStepIndex - 1];
|
||||||
|
console.log(`⬅️ Going back from "${currentStep.id}" to "${previousStep.id}"`);
|
||||||
|
setCurrentStepIndex(currentStepIndex - 1);
|
||||||
|
} else {
|
||||||
|
console.warn('⚠️ Already at first step, cannot go back');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// Show loading state
|
// Show loading state
|
||||||
if (!isNewTenant && (isLoadingProgress || !isInitialized)) {
|
if (!isNewTenant && (isLoadingProgress || !isInitialized)) {
|
||||||
return (
|
return (
|
||||||
@@ -518,7 +528,7 @@ const OnboardingWizardContent: React.FC = () => {
|
|||||||
<CardBody padding="md">
|
<CardBody padding="md">
|
||||||
<StepComponent
|
<StepComponent
|
||||||
onNext={() => {}}
|
onNext={() => {}}
|
||||||
onPrevious={() => {}}
|
onPrevious={handleGoToPrevious}
|
||||||
onComplete={handleStepComplete}
|
onComplete={handleStepComplete}
|
||||||
onUpdate={handleStepUpdate}
|
onUpdate={handleStepUpdate}
|
||||||
isFirstStep={currentStepIndex === 0}
|
isFirstStep={currentStepIndex === 0}
|
||||||
|
|||||||
@@ -132,6 +132,30 @@
|
|||||||
"last_30_days": "Last 30 days",
|
"last_30_days": "Last 30 days",
|
||||||
"last_90_days": "Last 90 days"
|
"last_90_days": "Last 90 days"
|
||||||
},
|
},
|
||||||
|
"config": {
|
||||||
|
"title": "Complete Your Bakery Setup",
|
||||||
|
"subtitle": "Configure essential features to get started",
|
||||||
|
"inventory": "Inventory",
|
||||||
|
"suppliers": "Suppliers",
|
||||||
|
"recipes": "Recipes",
|
||||||
|
"quality": "Quality Standards",
|
||||||
|
"add_ingredients": "Add at least {{count}} ingredients",
|
||||||
|
"add_supplier": "Add your first supplier",
|
||||||
|
"add_recipe": "Create your first recipe",
|
||||||
|
"add_quality": "Add quality checks (optional)",
|
||||||
|
"sections_complete": "sections complete",
|
||||||
|
"added": "added",
|
||||||
|
"recommended": "recommended",
|
||||||
|
"next_step": "Next Step",
|
||||||
|
"configure": "Configure",
|
||||||
|
"features_unlocked": "Features Unlocked!",
|
||||||
|
"features": {
|
||||||
|
"inventory_tracking": "Inventory Tracking",
|
||||||
|
"purchase_orders": "Purchase Orders",
|
||||||
|
"production_planning": "Production Planning",
|
||||||
|
"cost_analysis": "Cost Analysis"
|
||||||
|
}
|
||||||
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"failed_to_load_stats": "Failed to load dashboard statistics. Please try again."
|
"failed_to_load_stats": "Failed to load dashboard statistics. Please try again."
|
||||||
}
|
}
|
||||||
|
|||||||
276
frontend/src/locales/en/setup_wizard.json
Normal file
276
frontend/src/locales/en/setup_wizard.json
Normal file
@@ -0,0 +1,276 @@
|
|||||||
|
{
|
||||||
|
"why_this_matters": "Why This Matters",
|
||||||
|
"optional": "Optional",
|
||||||
|
"navigation": {
|
||||||
|
"continue": "Continue →",
|
||||||
|
"back": "← Back",
|
||||||
|
"skip": "Skip for now"
|
||||||
|
},
|
||||||
|
"welcome": {
|
||||||
|
"title": "Excellent! Your AI is Ready",
|
||||||
|
"subtitle": "Now let's set up your bakery's daily operations so the system can help you manage:",
|
||||||
|
"feature_inventory": "Inventory Tracking",
|
||||||
|
"feature_inventory_desc": "Real-time stock levels & reorder alerts",
|
||||||
|
"feature_recipes": "Recipe Costing",
|
||||||
|
"feature_recipes_desc": "Automatic cost calculation & profitability analysis",
|
||||||
|
"feature_quality": "Quality Monitoring",
|
||||||
|
"feature_quality_desc": "Track standards & production quality",
|
||||||
|
"feature_team": "Team Coordination",
|
||||||
|
"feature_team_desc": "Assign tasks & track responsibilities",
|
||||||
|
"time_estimate": "Takes about 15-20 minutes",
|
||||||
|
"save_resume": "You can save progress and resume anytime",
|
||||||
|
"skip": "I'll Do This Later",
|
||||||
|
"get_started": "Let's Get Started! →"
|
||||||
|
},
|
||||||
|
"suppliers": {
|
||||||
|
"why": "Suppliers are the source of your ingredients. Setting them up now lets you track costs, manage orders, and analyze supplier performance.",
|
||||||
|
"added_count": "{{count}} supplier added",
|
||||||
|
"added_count_plural": "{{count}} suppliers added",
|
||||||
|
"minimum_met": "Minimum requirement met",
|
||||||
|
"add_minimum": "Add at least 1 supplier to continue",
|
||||||
|
"your_suppliers": "Your Suppliers",
|
||||||
|
"confirm_delete": "Are you sure you want to delete this supplier?",
|
||||||
|
"edit_supplier": "Edit Supplier",
|
||||||
|
"add_supplier": "Add Supplier",
|
||||||
|
"add_first": "Add Your First Supplier",
|
||||||
|
"add_another": "Add Another Supplier",
|
||||||
|
"manage_products": "Manage Products",
|
||||||
|
"products": "products",
|
||||||
|
"products_for": "Products for {{name}}",
|
||||||
|
"add_products": "Add Products",
|
||||||
|
"no_products_available": "No products available",
|
||||||
|
"select_products": "Select Products",
|
||||||
|
"unit_price": "Price",
|
||||||
|
"unit": "Unit",
|
||||||
|
"min_qty": "Min Qty",
|
||||||
|
"add_new_product": "Add New Product",
|
||||||
|
"save_products": "Save",
|
||||||
|
"no_products_warning": "Add at least 1 product to enable automatic purchase orders",
|
||||||
|
"fields": {
|
||||||
|
"name": "Supplier Name",
|
||||||
|
"type": "Type",
|
||||||
|
"contact_person": "Contact Person",
|
||||||
|
"phone": "Phone",
|
||||||
|
"email": "Email"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "e.g., Molinos SA, Distribuidora López",
|
||||||
|
"contact_person": "e.g., Juan Pérez",
|
||||||
|
"phone": "e.g., +54 11 1234-5678",
|
||||||
|
"email": "e.g., ventas@proveedor.com"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Name is required",
|
||||||
|
"email_invalid": "Invalid email format"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inventory": {
|
||||||
|
"why": "Inventory items are the building blocks of your recipes. Once set up, the system will track quantities, alert you when stock is low, and help you calculate recipe costs.",
|
||||||
|
"quick_start": "Quick Start",
|
||||||
|
"quick_start_desc": "Import common ingredients to get started quickly",
|
||||||
|
"essential": "Essential Ingredients",
|
||||||
|
"common": "Common Ingredients",
|
||||||
|
"packaging": "Packaging",
|
||||||
|
"import_all": "Import All",
|
||||||
|
"templates_hint": "Click any item to customize before adding, or use \"Import All\" for quick setup",
|
||||||
|
"show_templates": "Show Quick Start Templates",
|
||||||
|
"added_count": "{{count}} ingredient added",
|
||||||
|
"added_count_plural": "{{count}} ingredients added",
|
||||||
|
"minimum_met": "Minimum requirement met",
|
||||||
|
"need_more": "Need {{count}} more",
|
||||||
|
"your_ingredients": "Your Ingredients",
|
||||||
|
"add_ingredient": "Add Ingredient",
|
||||||
|
"edit_ingredient": "Edit Ingredient",
|
||||||
|
"add_first": "Add Your First Ingredient",
|
||||||
|
"add_another": "Add Another Ingredient",
|
||||||
|
"confirm_delete": "Are you sure you want to delete this ingredient?",
|
||||||
|
"add_stock": "Add Initial Stock",
|
||||||
|
"quantity": "Quantity",
|
||||||
|
"expiration_date": "Expiration Date",
|
||||||
|
"supplier": "Supplier",
|
||||||
|
"batch_number": "Batch/Lot Number",
|
||||||
|
"stock_help": "Expiration tracking helps prevent waste and enables FIFO inventory management",
|
||||||
|
"add_another_lot": "+ Add Another Lot",
|
||||||
|
"add_another_stock": "Add Another Stock Lot",
|
||||||
|
"add_initial_stock": "Add Initial Stock (Optional)",
|
||||||
|
"fields": {
|
||||||
|
"name": "Ingredient Name",
|
||||||
|
"category": "Category",
|
||||||
|
"unit": "Unit of Measure",
|
||||||
|
"brand": "Brand",
|
||||||
|
"cost": "Standard Cost"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "e.g., Harina 000, Levadura fresca",
|
||||||
|
"brand": "e.g., Molinos Río",
|
||||||
|
"cost": "e.g., 150.00"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Name is required",
|
||||||
|
"cost_invalid": "Cost must be a valid number",
|
||||||
|
"threshold_invalid": "Threshold must be a valid number"
|
||||||
|
},
|
||||||
|
"stock_errors": {
|
||||||
|
"quantity_required": "Quantity must be greater than zero",
|
||||||
|
"expiration_past": "Expiration date is in the past",
|
||||||
|
"expiring_soon": "Warning: This ingredient expires very soon!"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"recipes": {
|
||||||
|
"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",
|
||||||
|
"category": {
|
||||||
|
"breads": "Breads",
|
||||||
|
"pastries": "Pastries",
|
||||||
|
"cakes": "Cakes & Tarts",
|
||||||
|
"cookies": "Cookies"
|
||||||
|
},
|
||||||
|
"use_template": "Use Template",
|
||||||
|
"templates_hint": "Templates will automatically match your ingredients. Review and adjust as needed.",
|
||||||
|
"show_templates": "Show Recipe Templates",
|
||||||
|
"prerequisites_title": "More ingredients needed",
|
||||||
|
"prerequisites_desc": "You need at least 2 ingredients in your inventory before creating recipes. Go back to the Inventory step to add more ingredients.",
|
||||||
|
"added_count": "{{count}} recipe added",
|
||||||
|
"added_count_plural": "{{count}} recipes added",
|
||||||
|
"minimum_met": "{{count}} recipe(s) added - Ready to continue!",
|
||||||
|
"your_recipes": "Your Recipes",
|
||||||
|
"yield_label": "Yield",
|
||||||
|
"add_recipe": "Add Recipe",
|
||||||
|
"add_first": "Add Your First Recipe",
|
||||||
|
"add_another": "Add Another Recipe",
|
||||||
|
"add_new_ingredient": "Add New Ingredient",
|
||||||
|
"select_ingredient": "Select...",
|
||||||
|
"add_ingredient": "Add Ingredient",
|
||||||
|
"no_ingredients": "No ingredients added yet",
|
||||||
|
"confirm_delete": "Are you sure you want to delete this recipe?",
|
||||||
|
"fields": {
|
||||||
|
"name": "Recipe Name",
|
||||||
|
"finished_product": "Finished Product",
|
||||||
|
"yield_quantity": "Yield Quantity",
|
||||||
|
"yield_unit": "Unit",
|
||||||
|
"ingredients": "Ingredients"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "e.g., Baguette, Croissant",
|
||||||
|
"finished_product": "Select finished product..."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Recipe name is required",
|
||||||
|
"finished_product_required": "Finished product is required",
|
||||||
|
"yield_invalid": "Yield must be a positive number",
|
||||||
|
"ingredients_required": "At least one ingredient is required",
|
||||||
|
"ingredient_required": "Ingredient is required",
|
||||||
|
"quantity_invalid": "Quantity must be positive"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"quality": {
|
||||||
|
"why": "Quality checks ensure consistent output and help you identify issues early. Define what \"good\" looks like for each stage of production.",
|
||||||
|
"optional_note": "You can skip this and configure quality checks later",
|
||||||
|
"added_count": "{{count}} quality check added",
|
||||||
|
"added_count_plural": "{{count}} quality checks added",
|
||||||
|
"recommended_met": "Recommended amount met",
|
||||||
|
"recommended": "2+ recommended (optional)",
|
||||||
|
"your_checks": "Your Quality Checks",
|
||||||
|
"add_check": "Add Quality Check",
|
||||||
|
"add_first": "Add Your First Quality Check",
|
||||||
|
"add_another": "Add Another Quality Check",
|
||||||
|
"fields": {
|
||||||
|
"name": "Check Name",
|
||||||
|
"check_type": "Check Type",
|
||||||
|
"description": "Description",
|
||||||
|
"stages": "Applicable Stages",
|
||||||
|
"required": "Required check (must be completed)",
|
||||||
|
"critical": "Critical check (failure stops production)"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "e.g., Crust color check, Dough temperature",
|
||||||
|
"description": "What should be checked and why..."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Name is required",
|
||||||
|
"stages_required": "At least one stage is required"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"team": {
|
||||||
|
"why": "Adding team members allows you to assign tasks, track who does what, and give everyone the tools they need to work efficiently.",
|
||||||
|
"optional_note": "You can add team members now or invite them later from settings",
|
||||||
|
"invitation_note": "Team members will receive invitation emails once you complete the setup wizard.",
|
||||||
|
"added_count": "{{count}} team member added",
|
||||||
|
"added_count_plural": "{{count}} team members added",
|
||||||
|
"your_team": "Your Team Members",
|
||||||
|
"add_member": "Add Team Member",
|
||||||
|
"add_first": "Add Your First Team Member",
|
||||||
|
"add_another": "Add Another Team Member",
|
||||||
|
"skip_message": "Working alone for now? No problem!",
|
||||||
|
"skip_hint": "You can always invite team members later from Settings → Team",
|
||||||
|
"fields": {
|
||||||
|
"name": "Full Name",
|
||||||
|
"email": "Email Address",
|
||||||
|
"role": "Role"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "e.g., María García",
|
||||||
|
"email": "e.g., maria@panaderia.com"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Name is required",
|
||||||
|
"email_required": "Email is required",
|
||||||
|
"email_invalid": "Invalid email format",
|
||||||
|
"email_duplicate": "This email is already added"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"review": {
|
||||||
|
"title": "Review Your Setup",
|
||||||
|
"subtitle": "Let's review everything you've configured. You can go back and make changes if needed.",
|
||||||
|
"suppliers": "Suppliers",
|
||||||
|
"ingredients": "Ingredients",
|
||||||
|
"recipes": "Recipes",
|
||||||
|
"quality": "Quality Checks",
|
||||||
|
"suppliers_title": "Suppliers",
|
||||||
|
"more": "more",
|
||||||
|
"ingredients_title": "Inventory Items",
|
||||||
|
"total_cost": "Total value",
|
||||||
|
"recipes_title": "Recipes",
|
||||||
|
"avg_ingredients": "Avg ingredients",
|
||||||
|
"yields": "Yields",
|
||||||
|
"cost": "Cost",
|
||||||
|
"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.",
|
||||||
|
"help": "Need to make changes? Use the \"Back\" button to return to any step."
|
||||||
|
},
|
||||||
|
"completion": {
|
||||||
|
"title": "🎉 Setup Complete!",
|
||||||
|
"subtitle": "Congratulations! Your bakery management system is ready to use. Let's get started with your first tasks.",
|
||||||
|
"next_steps": "Recommended Next Steps",
|
||||||
|
"step1_title": "Start Production",
|
||||||
|
"step1_desc": "Create your first production batch using your configured recipes",
|
||||||
|
"step1_action": "Go to Production",
|
||||||
|
"step2_title": "Order Inventory",
|
||||||
|
"step2_desc": "Place your first purchase order with your suppliers",
|
||||||
|
"step2_action": "View Procurement",
|
||||||
|
"step3_title": "Track Analytics",
|
||||||
|
"step3_desc": "Monitor your production efficiency and costs in real-time",
|
||||||
|
"step3_action": "View Analytics",
|
||||||
|
"tips": "Pro Tips for Success",
|
||||||
|
"tip1_title": "Keep Inventory Updated",
|
||||||
|
"tip1_desc": "Regularly update stock levels to get accurate cost calculations and low-stock alerts",
|
||||||
|
"tip2_title": "Monitor Quality Metrics",
|
||||||
|
"tip2_desc": "Use quality checks during production to identify issues early and maintain consistency",
|
||||||
|
"tip3_title": "Review Analytics Weekly",
|
||||||
|
"tip3_desc": "Check your production analytics every week to optimize recipes and reduce waste",
|
||||||
|
"tip4_title": "Maintain Supplier Relationships",
|
||||||
|
"tip4_desc": "Keep supplier information current and track order performance for better partnerships",
|
||||||
|
"need_help": "Need Help?",
|
||||||
|
"settings": "Settings",
|
||||||
|
"settings_desc": "Configure preferences",
|
||||||
|
"dashboard": "Dashboard",
|
||||||
|
"dashboard_desc": "View overview",
|
||||||
|
"recipes": "Recipes",
|
||||||
|
"recipes_desc": "Manage recipes",
|
||||||
|
"go_dashboard": "Go to Dashboard",
|
||||||
|
"thanks": "Thank you for completing the setup! Happy baking! 🥖🥐🍰"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -167,6 +167,30 @@
|
|||||||
"last_30_days": "Últimos 30 días",
|
"last_30_days": "Últimos 30 días",
|
||||||
"last_90_days": "Últimos 90 días"
|
"last_90_days": "Últimos 90 días"
|
||||||
},
|
},
|
||||||
|
"config": {
|
||||||
|
"title": "Completa la Configuración de tu Panadería",
|
||||||
|
"subtitle": "Configura características esenciales para comenzar",
|
||||||
|
"inventory": "Inventario",
|
||||||
|
"suppliers": "Proveedores",
|
||||||
|
"recipes": "Recetas",
|
||||||
|
"quality": "Estándares de Calidad",
|
||||||
|
"add_ingredients": "Agregar al menos {{count}} ingredientes",
|
||||||
|
"add_supplier": "Agregar tu primer proveedor",
|
||||||
|
"add_recipe": "Crear tu primera receta",
|
||||||
|
"add_quality": "Agregar controles de calidad (opcional)",
|
||||||
|
"sections_complete": "secciones completas",
|
||||||
|
"added": "agregado",
|
||||||
|
"recommended": "recomendado",
|
||||||
|
"next_step": "Siguiente Paso",
|
||||||
|
"configure": "Configurar",
|
||||||
|
"features_unlocked": "¡Características Desbloqueadas!",
|
||||||
|
"features": {
|
||||||
|
"inventory_tracking": "Seguimiento de Inventario",
|
||||||
|
"purchase_orders": "Órdenes de Compra",
|
||||||
|
"production_planning": "Planificación de Producción",
|
||||||
|
"cost_analysis": "Análisis de Costos"
|
||||||
|
}
|
||||||
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"failed_to_load_stats": "Error al cargar las estadísticas del panel. Por favor, inténtelo de nuevo."
|
"failed_to_load_stats": "Error al cargar las estadísticas del panel. Por favor, inténtelo de nuevo."
|
||||||
}
|
}
|
||||||
|
|||||||
276
frontend/src/locales/es/setup_wizard.json
Normal file
276
frontend/src/locales/es/setup_wizard.json
Normal file
@@ -0,0 +1,276 @@
|
|||||||
|
{
|
||||||
|
"why_this_matters": "Por qué es importante",
|
||||||
|
"optional": "Opcional",
|
||||||
|
"navigation": {
|
||||||
|
"continue": "Continuar →",
|
||||||
|
"back": "← Atrás",
|
||||||
|
"skip": "Omitir por ahora"
|
||||||
|
},
|
||||||
|
"welcome": {
|
||||||
|
"title": "¡Excelente! Tu IA está lista",
|
||||||
|
"subtitle": "Ahora configuremos las operaciones diarias de tu panadería para que el sistema pueda ayudarte a gestionar:",
|
||||||
|
"feature_inventory": "Control de Inventario",
|
||||||
|
"feature_inventory_desc": "Niveles de stock en tiempo real y alertas de reposición",
|
||||||
|
"feature_recipes": "Costeo de Recetas",
|
||||||
|
"feature_recipes_desc": "Cálculo automático de costos y análisis de rentabilidad",
|
||||||
|
"feature_quality": "Monitoreo de Calidad",
|
||||||
|
"feature_quality_desc": "Seguimiento de estándares y calidad de producción",
|
||||||
|
"feature_team": "Coordinación del Equipo",
|
||||||
|
"feature_team_desc": "Asignar tareas y seguir responsabilidades",
|
||||||
|
"time_estimate": "Toma aproximadamente 15-20 minutos",
|
||||||
|
"save_resume": "Puedes guardar el progreso y reanudar en cualquier momento",
|
||||||
|
"skip": "Lo haré más tarde",
|
||||||
|
"get_started": "¡Empecemos! →"
|
||||||
|
},
|
||||||
|
"suppliers": {
|
||||||
|
"why": "Los proveedores son la fuente de tus ingredientes. Configurarlos ahora te permite rastrear costos, gestionar pedidos y analizar el rendimiento de los proveedores.",
|
||||||
|
"added_count": "{{count}} proveedor agregado",
|
||||||
|
"added_count_plural": "{{count}} proveedores agregados",
|
||||||
|
"minimum_met": "Requisito mínimo cumplido",
|
||||||
|
"add_minimum": "Agrega al menos 1 proveedor para continuar",
|
||||||
|
"your_suppliers": "Tus Proveedores",
|
||||||
|
"confirm_delete": "¿Estás seguro de que deseas eliminar este proveedor?",
|
||||||
|
"edit_supplier": "Editar Proveedor",
|
||||||
|
"add_supplier": "Agregar Proveedor",
|
||||||
|
"add_first": "Agrega tu Primer Proveedor",
|
||||||
|
"add_another": "Agregar Otro Proveedor",
|
||||||
|
"manage_products": "Gestionar Productos",
|
||||||
|
"products": "productos",
|
||||||
|
"products_for": "Productos para {{name}}",
|
||||||
|
"add_products": "Agregar Productos",
|
||||||
|
"no_products_available": "No hay productos disponibles",
|
||||||
|
"select_products": "Seleccionar Productos",
|
||||||
|
"unit_price": "Precio",
|
||||||
|
"unit": "Unidad",
|
||||||
|
"min_qty": "Cant. Mín.",
|
||||||
|
"add_new_product": "Agregar Nuevo Producto",
|
||||||
|
"save_products": "Guardar",
|
||||||
|
"no_products_warning": "Agrega al menos 1 producto para habilitar órdenes de compra automáticas",
|
||||||
|
"fields": {
|
||||||
|
"name": "Nombre del Proveedor",
|
||||||
|
"type": "Tipo",
|
||||||
|
"contact_person": "Persona de Contacto",
|
||||||
|
"phone": "Teléfono",
|
||||||
|
"email": "Correo Electrónico"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "ej., Molinos SA, Distribuidora López",
|
||||||
|
"contact_person": "ej., Juan Pérez",
|
||||||
|
"phone": "ej., +34 91 123 4567",
|
||||||
|
"email": "ej., ventas@proveedor.com"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "El nombre es obligatorio",
|
||||||
|
"email_invalid": "Formato de correo inválido"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inventory": {
|
||||||
|
"why": "Los artículos de inventario son los componentes básicos de tus recetas. Una vez configurados, el sistema rastreará las cantidades, te alertará cuando el stock sea bajo y te ayudará a calcular los costos de las recetas.",
|
||||||
|
"quick_start": "Inicio Rápido",
|
||||||
|
"quick_start_desc": "Importa ingredientes comunes para comenzar rápidamente",
|
||||||
|
"essential": "Ingredientes Esenciales",
|
||||||
|
"common": "Ingredientes Comunes",
|
||||||
|
"packaging": "Embalaje",
|
||||||
|
"import_all": "Importar Todo",
|
||||||
|
"templates_hint": "Haz clic en cualquier artículo para personalizarlo antes de agregarlo, o usa \"Importar Todo\" para una configuración rápida",
|
||||||
|
"show_templates": "Mostrar Plantillas de Inicio Rápido",
|
||||||
|
"added_count": "{{count}} ingrediente agregado",
|
||||||
|
"added_count_plural": "{{count}} ingredientes agregados",
|
||||||
|
"minimum_met": "Requisito mínimo cumplido",
|
||||||
|
"need_more": "Necesitas {{count}} más",
|
||||||
|
"your_ingredients": "Tus Ingredientes",
|
||||||
|
"add_ingredient": "Agregar Ingrediente",
|
||||||
|
"edit_ingredient": "Editar Ingrediente",
|
||||||
|
"add_first": "Agrega tu Primer Ingrediente",
|
||||||
|
"add_another": "Agregar Otro Ingrediente",
|
||||||
|
"confirm_delete": "¿Estás seguro de que deseas eliminar este ingrediente?",
|
||||||
|
"add_stock": "Agregar Stock Inicial",
|
||||||
|
"quantity": "Cantidad",
|
||||||
|
"expiration_date": "Fecha de Vencimiento",
|
||||||
|
"supplier": "Proveedor",
|
||||||
|
"batch_number": "Número de Lote",
|
||||||
|
"stock_help": "El seguimiento de vencimiento ayuda a prevenir desperdicios y habilita la gestión de inventario FIFO",
|
||||||
|
"add_another_lot": "+ Agregar Otro Lote",
|
||||||
|
"add_another_stock": "Agregar Otro Lote de Stock",
|
||||||
|
"add_initial_stock": "Agregar Stock Inicial (Opcional)",
|
||||||
|
"fields": {
|
||||||
|
"name": "Nombre del Ingrediente",
|
||||||
|
"category": "Categoría",
|
||||||
|
"unit": "Unidad de Medida",
|
||||||
|
"brand": "Marca",
|
||||||
|
"cost": "Costo Estándar"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "ej., Harina 000, Levadura fresca",
|
||||||
|
"brand": "ej., Molinos Río",
|
||||||
|
"cost": "ej., 150.00"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "El nombre es obligatorio",
|
||||||
|
"cost_invalid": "El costo debe ser un número válido",
|
||||||
|
"threshold_invalid": "El umbral debe ser un número válido"
|
||||||
|
},
|
||||||
|
"stock_errors": {
|
||||||
|
"quantity_required": "La cantidad debe ser mayor que cero",
|
||||||
|
"expiration_past": "La fecha de vencimiento está en el pasado",
|
||||||
|
"expiring_soon": "¡Advertencia: Este ingrediente vence muy pronto!"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"recipes": {
|
||||||
|
"why": "Las recetas conectan tu inventario con la producción. El sistema calculará los costos exactos por artículo, rastreará el consumo de ingredientes y te ayudará a optimizar la rentabilidad de tu menú.",
|
||||||
|
"quick_start": "Plantillas de Recetas",
|
||||||
|
"quick_start_desc": "Comienza con recetas probadas y personalízalas según tus necesidades",
|
||||||
|
"category": {
|
||||||
|
"breads": "Panes",
|
||||||
|
"pastries": "Bollería",
|
||||||
|
"cakes": "Pasteles y Tartas",
|
||||||
|
"cookies": "Galletas"
|
||||||
|
},
|
||||||
|
"use_template": "Usar Plantilla",
|
||||||
|
"templates_hint": "Las plantillas coincidirán automáticamente con tus ingredientes. Revisa y ajusta según sea necesario.",
|
||||||
|
"show_templates": "Mostrar Plantillas de Recetas",
|
||||||
|
"prerequisites_title": "Se necesitan más ingredientes",
|
||||||
|
"prerequisites_desc": "Necesitas al menos 2 ingredientes en tu inventario antes de crear recetas. Regresa al paso de Inventario para agregar más ingredientes.",
|
||||||
|
"added_count": "{{count}} receta agregada",
|
||||||
|
"added_count_plural": "{{count}} recetas agregadas",
|
||||||
|
"minimum_met": "{{count}} receta(s) agregada(s) - ¡Listo para continuar!",
|
||||||
|
"your_recipes": "Tus Recetas",
|
||||||
|
"yield_label": "Rendimiento",
|
||||||
|
"add_recipe": "Agregar Receta",
|
||||||
|
"add_first": "Agrega tu Primera Receta",
|
||||||
|
"add_another": "Agregar Otra Receta",
|
||||||
|
"add_new_ingredient": "Agregar Nuevo Ingrediente",
|
||||||
|
"select_ingredient": "Seleccionar...",
|
||||||
|
"add_ingredient": "Agregar Ingrediente",
|
||||||
|
"no_ingredients": "Aún no se han agregado ingredientes",
|
||||||
|
"confirm_delete": "¿Estás seguro de que deseas eliminar esta receta?",
|
||||||
|
"fields": {
|
||||||
|
"name": "Nombre de la Receta",
|
||||||
|
"finished_product": "Producto Terminado",
|
||||||
|
"yield_quantity": "Cantidad de Rendimiento",
|
||||||
|
"yield_unit": "Unidad",
|
||||||
|
"ingredients": "Ingredientes"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "ej., Baguette, Croissant",
|
||||||
|
"finished_product": "Seleccionar producto terminado..."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "El nombre de la receta es obligatorio",
|
||||||
|
"finished_product_required": "El producto terminado es obligatorio",
|
||||||
|
"yield_invalid": "El rendimiento debe ser un número positivo",
|
||||||
|
"ingredients_required": "Se requiere al menos un ingrediente",
|
||||||
|
"ingredient_required": "Se requiere un ingrediente",
|
||||||
|
"quantity_invalid": "La cantidad debe ser positiva"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"quality": {
|
||||||
|
"why": "Los controles de calidad aseguran una producción consistente y te ayudan a identificar problemas temprano. Define qué significa \"bueno\" para cada etapa de producción.",
|
||||||
|
"optional_note": "Puedes omitir esto y configurar los controles de calidad más tarde",
|
||||||
|
"added_count": "{{count}} control de calidad agregado",
|
||||||
|
"added_count_plural": "{{count}} controles de calidad agregados",
|
||||||
|
"recommended_met": "Cantidad recomendada cumplida",
|
||||||
|
"recommended": "2+ recomendados (opcional)",
|
||||||
|
"your_checks": "Tus Controles de Calidad",
|
||||||
|
"add_check": "Agregar Control de Calidad",
|
||||||
|
"add_first": "Agrega tu Primer Control de Calidad",
|
||||||
|
"add_another": "Agregar Otro Control de Calidad",
|
||||||
|
"fields": {
|
||||||
|
"name": "Nombre del Control",
|
||||||
|
"check_type": "Tipo de Control",
|
||||||
|
"description": "Descripción",
|
||||||
|
"stages": "Etapas Aplicables",
|
||||||
|
"required": "Control obligatorio (debe completarse)",
|
||||||
|
"critical": "Control crítico (el fallo detiene la producción)"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "ej., Control de color de corteza, Temperatura de masa",
|
||||||
|
"description": "Qué debe verificarse y por qué..."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "El nombre es obligatorio",
|
||||||
|
"stages_required": "Se requiere al menos una etapa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"team": {
|
||||||
|
"why": "Agregar miembros del equipo te permite asignar tareas, rastrear quién hace qué y dar a todos las herramientas que necesitan para trabajar eficientemente.",
|
||||||
|
"optional_note": "Puedes agregar miembros del equipo ahora o invitarlos más tarde desde la configuración",
|
||||||
|
"invitation_note": "Los miembros del equipo recibirán correos de invitación una vez que completes el asistente de configuración.",
|
||||||
|
"added_count": "{{count}} miembro del equipo agregado",
|
||||||
|
"added_count_plural": "{{count}} miembros del equipo agregados",
|
||||||
|
"your_team": "Los Miembros de tu Equipo",
|
||||||
|
"add_member": "Agregar Miembro del Equipo",
|
||||||
|
"add_first": "Agrega tu Primer Miembro del Equipo",
|
||||||
|
"add_another": "Agregar Otro Miembro del Equipo",
|
||||||
|
"skip_message": "¿Trabajas solo por ahora? ¡No hay problema!",
|
||||||
|
"skip_hint": "Siempre puedes invitar miembros del equipo más tarde desde Configuración → Equipo",
|
||||||
|
"fields": {
|
||||||
|
"name": "Nombre Completo",
|
||||||
|
"email": "Dirección de Correo",
|
||||||
|
"role": "Rol"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "ej., María García",
|
||||||
|
"email": "ej., maria@panaderia.com"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "El nombre es obligatorio",
|
||||||
|
"email_required": "El correo es obligatorio",
|
||||||
|
"email_invalid": "Formato de correo inválido",
|
||||||
|
"email_duplicate": "Este correo ya ha sido agregado"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"review": {
|
||||||
|
"title": "Revisa tu Configuración",
|
||||||
|
"subtitle": "Revisemos todo lo que has configurado. Puedes regresar y hacer cambios si es necesario.",
|
||||||
|
"suppliers": "Proveedores",
|
||||||
|
"ingredients": "Ingredientes",
|
||||||
|
"recipes": "Recetas",
|
||||||
|
"quality": "Controles de Calidad",
|
||||||
|
"suppliers_title": "Proveedores",
|
||||||
|
"more": "más",
|
||||||
|
"ingredients_title": "Artículos de Inventario",
|
||||||
|
"total_cost": "Valor total",
|
||||||
|
"recipes_title": "Recetas",
|
||||||
|
"avg_ingredients": "Prom. ingredientes",
|
||||||
|
"yields": "Rendimiento",
|
||||||
|
"cost": "Costo",
|
||||||
|
"quality_title": "Plantillas de Control de Calidad",
|
||||||
|
"required": "Obligatorio",
|
||||||
|
"ready_title": "¡Tu Panadería está Lista!",
|
||||||
|
"ready_message": "Has configurado exitosamente {{suppliers}} proveedores, {{ingredients}} ingredientes y {{recipes}} recetas. Haz clic en 'Completar Configuración' para finalizar y comenzar a usar el sistema.",
|
||||||
|
"help": "¿Necesitas hacer cambios? Usa el botón \"Atrás\" para volver a cualquier paso."
|
||||||
|
},
|
||||||
|
"completion": {
|
||||||
|
"title": "🎉 ¡Configuración Completa!",
|
||||||
|
"subtitle": "¡Felicitaciones! Tu sistema de gestión de panadería está listo para usar. Comencemos con tus primeras tareas.",
|
||||||
|
"next_steps": "Próximos Pasos Recomendados",
|
||||||
|
"step1_title": "Iniciar Producción",
|
||||||
|
"step1_desc": "Crea tu primer lote de producción usando tus recetas configuradas",
|
||||||
|
"step1_action": "Ir a Producción",
|
||||||
|
"step2_title": "Ordenar Inventario",
|
||||||
|
"step2_desc": "Realiza tu primera orden de compra con tus proveedores",
|
||||||
|
"step2_action": "Ver Adquisiciones",
|
||||||
|
"step3_title": "Seguir Analíticas",
|
||||||
|
"step3_desc": "Monitorea tu eficiencia de producción y costos en tiempo real",
|
||||||
|
"step3_action": "Ver Analíticas",
|
||||||
|
"tips": "Consejos Pro para el Éxito",
|
||||||
|
"tip1_title": "Mantén el Inventario Actualizado",
|
||||||
|
"tip1_desc": "Actualiza regularmente los niveles de stock para obtener cálculos de costos precisos y alertas de stock bajo",
|
||||||
|
"tip2_title": "Monitorea las Métricas de Calidad",
|
||||||
|
"tip2_desc": "Usa controles de calidad durante la producción para identificar problemas temprano y mantener la consistencia",
|
||||||
|
"tip3_title": "Revisa las Analíticas Semanalmente",
|
||||||
|
"tip3_desc": "Revisa tus analíticas de producción cada semana para optimizar recetas y reducir desperdicios",
|
||||||
|
"tip4_title": "Mantén las Relaciones con Proveedores",
|
||||||
|
"tip4_desc": "Mantén la información de proveedores actualizada y rastrea el rendimiento de pedidos para mejores asociaciones",
|
||||||
|
"need_help": "¿Necesitas Ayuda?",
|
||||||
|
"settings": "Configuración",
|
||||||
|
"settings_desc": "Configurar preferencias",
|
||||||
|
"dashboard": "Panel",
|
||||||
|
"dashboard_desc": "Ver resumen",
|
||||||
|
"recipes": "Recetas",
|
||||||
|
"recipes_desc": "Gestionar recetas",
|
||||||
|
"go_dashboard": "Ir al Panel",
|
||||||
|
"thanks": "¡Gracias por completar la configuración! ¡Feliz horneado! 🥖🥐🍰"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -122,5 +122,29 @@
|
|||||||
"last_7_days": "Azken 7 egun",
|
"last_7_days": "Azken 7 egun",
|
||||||
"last_30_days": "Azken 30 egun",
|
"last_30_days": "Azken 30 egun",
|
||||||
"last_90_days": "Azken 90 egun"
|
"last_90_days": "Azken 90 egun"
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"title": "Osatu Zure Okindegiaren Konfigurazioa",
|
||||||
|
"subtitle": "Konfiguratu ezinbesteko eginbideak hasteko",
|
||||||
|
"inventory": "Inbentarioa",
|
||||||
|
"suppliers": "Hornitzaileak",
|
||||||
|
"recipes": "Errezetak",
|
||||||
|
"quality": "Kalitate Estandarrak",
|
||||||
|
"add_ingredients": "Gehitu gutxienez {{count}} osagai",
|
||||||
|
"add_supplier": "Gehitu zure lehen hornitzailea",
|
||||||
|
"add_recipe": "Sortu zure lehen errezeta",
|
||||||
|
"add_quality": "Gehitu kalitate kontrolak (aukerakoa)",
|
||||||
|
"sections_complete": "atal osatuta",
|
||||||
|
"added": "gehituta",
|
||||||
|
"recommended": "gomendatua",
|
||||||
|
"next_step": "Hurrengo Urratsa",
|
||||||
|
"configure": "Konfiguratu",
|
||||||
|
"features_unlocked": "Eginbideak Desblokeatuta!",
|
||||||
|
"features": {
|
||||||
|
"inventory_tracking": "Inbentario Jarraipena",
|
||||||
|
"purchase_orders": "Erosketa Aginduak",
|
||||||
|
"production_planning": "Ekoizpen Plangintza",
|
||||||
|
"cost_analysis": "Kostu Analisia"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
276
frontend/src/locales/eu/setup_wizard.json
Normal file
276
frontend/src/locales/eu/setup_wizard.json
Normal file
@@ -0,0 +1,276 @@
|
|||||||
|
{
|
||||||
|
"why_this_matters": "Zergatik da garrantzitsua",
|
||||||
|
"optional": "Aukerakoa",
|
||||||
|
"navigation": {
|
||||||
|
"continue": "Jarraitu →",
|
||||||
|
"back": "← Atzera",
|
||||||
|
"skip": "Orain saltatu"
|
||||||
|
},
|
||||||
|
"welcome": {
|
||||||
|
"title": "Bikain! Zure IA prest dago",
|
||||||
|
"subtitle": "Orain zure okindegiko eguneroko eragiketak konfiguratu ditzagun sistemak kudeatzeko lagundu diezazun:",
|
||||||
|
"feature_inventory": "Inbentario Jarraipena",
|
||||||
|
"feature_inventory_desc": "Denbora errealeko stock mailak eta birpornitzeko alertak",
|
||||||
|
"feature_recipes": "Errezeta Kostuak",
|
||||||
|
"feature_recipes_desc": "Kostu kalkulua automatikoa eta errentagarritasun analisia",
|
||||||
|
"feature_quality": "Kalitate Monitorizazioa",
|
||||||
|
"feature_quality_desc": "Estandarren eta ekoizpen kalitatearen jarraipena",
|
||||||
|
"feature_team": "Talde Koordinazioa",
|
||||||
|
"feature_team_desc": "Zereginak esleitu eta erantzukizunen jarraipena",
|
||||||
|
"time_estimate": "Gutxi gorabehera 15-20 minutu behar dira",
|
||||||
|
"save_resume": "Aurrerapena gorde eta edozein unetan berrekin dezakezu",
|
||||||
|
"skip": "Geroago egingo dut",
|
||||||
|
"get_started": "Has gaitezen! →"
|
||||||
|
},
|
||||||
|
"suppliers": {
|
||||||
|
"why": "Hornitzaileak zure osagaien iturria dira. Orain konfiguratuz, kostuak jarraitu, eskaerak kudeatu eta hornitzaileen errendimendua aztertu dezakezu.",
|
||||||
|
"added_count": "Hornitzaile {{count}} gehituta",
|
||||||
|
"added_count_plural": "{{count}} hornitzaile gehituta",
|
||||||
|
"minimum_met": "Gutxieneko baldintza betetzen da",
|
||||||
|
"add_minimum": "Gehitu gutxienez hornitzaile 1 jarraitzeko",
|
||||||
|
"your_suppliers": "Zure Hornitzaileak",
|
||||||
|
"confirm_delete": "Ziur zaude hornitzaile hau ezabatu nahi duzula?",
|
||||||
|
"edit_supplier": "Hornitzailea Editatu",
|
||||||
|
"add_supplier": "Hornitzailea Gehitu",
|
||||||
|
"add_first": "Gehitu Zure Lehen Hornitzailea",
|
||||||
|
"add_another": "Beste Hornitzaile Bat Gehitu",
|
||||||
|
"manage_products": "Produktuak Kudeatu",
|
||||||
|
"products": "produktuak",
|
||||||
|
"products_for": "{{name}}-(r)entzako produktuak",
|
||||||
|
"add_products": "Produktuak Gehitu",
|
||||||
|
"no_products_available": "Ez dago produkturik eskuragarri",
|
||||||
|
"select_products": "Produktuak Aukeratu",
|
||||||
|
"unit_price": "Prezioa",
|
||||||
|
"unit": "Unitatea",
|
||||||
|
"min_qty": "Kant. Gutx.",
|
||||||
|
"add_new_product": "Produktu Berria Gehitu",
|
||||||
|
"save_products": "Gorde",
|
||||||
|
"no_products_warning": "Gehitu gutxienez produktu 1 erosketa-agindu automatikoak gaitzeko",
|
||||||
|
"fields": {
|
||||||
|
"name": "Hornitzailearen Izena",
|
||||||
|
"type": "Mota",
|
||||||
|
"contact_person": "Kontaktu Pertsona",
|
||||||
|
"phone": "Telefonoa",
|
||||||
|
"email": "Posta Elektronikoa"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "adib., Molinos SA, Distribuidora López",
|
||||||
|
"contact_person": "adib., Juan Pérez",
|
||||||
|
"phone": "adib., +34 91 123 4567",
|
||||||
|
"email": "adib., salmentak@hornitzailea.eus"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Izena beharrezkoa da",
|
||||||
|
"email_invalid": "Posta formatu baliogabea"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inventory": {
|
||||||
|
"why": "Inbentario osagaiak zure errezeten oinarrizko elementuak dira. Konfiguratuta, sistemak kantitateen jarraipena egingo du, stock apala dagoenean alertak bidaliko ditu eta errezeten kostuak kalkulatzen lagunduko dizu.",
|
||||||
|
"quick_start": "Abio Azkarra",
|
||||||
|
"quick_start_desc": "Inportatu ohiko osagaiak azkar hasteko",
|
||||||
|
"essential": "Oinarrizko Osagaiak",
|
||||||
|
"common": "Ohiko Osagaiak",
|
||||||
|
"packaging": "Ontziratzea",
|
||||||
|
"import_all": "Dena Inportatu",
|
||||||
|
"templates_hint": "Klik egin edozein elementutan gehitu aurretik pertsonalizatzeko, edo erabili \"Dena Inportatu\" konfigurazio azkarrerako",
|
||||||
|
"show_templates": "Erakutsi Abio Azkarreko Txantiloiak",
|
||||||
|
"added_count": "Osagai {{count}} gehituta",
|
||||||
|
"added_count_plural": "{{count}} osagai gehituta",
|
||||||
|
"minimum_met": "Gutxieneko baldintza betetzen da",
|
||||||
|
"need_more": "{{count}} gehiago behar dira",
|
||||||
|
"your_ingredients": "Zure Osagaiak",
|
||||||
|
"add_ingredient": "Osagaia Gehitu",
|
||||||
|
"edit_ingredient": "Osagaia Editatu",
|
||||||
|
"add_first": "Gehitu Zure Lehen Osagaia",
|
||||||
|
"add_another": "Beste Osagai Bat Gehitu",
|
||||||
|
"confirm_delete": "Ziur zaude osagai hau ezabatu nahi duzula?",
|
||||||
|
"add_stock": "Stock Hasiera Gehitu",
|
||||||
|
"quantity": "Kantitatea",
|
||||||
|
"expiration_date": "Iraungitze Data",
|
||||||
|
"supplier": "Hornitzailea",
|
||||||
|
"batch_number": "Lote Zenbakia",
|
||||||
|
"stock_help": "Iraungitze jarraipenak hondakinak prebenitzen laguntzen du eta FIFO inbentario kudeaketa gaitzen du",
|
||||||
|
"add_another_lot": "+ Beste Lote Bat Gehitu",
|
||||||
|
"add_another_stock": "Beste Stock Lote Bat Gehitu",
|
||||||
|
"add_initial_stock": "Stock Hasiera Gehitu (Aukerakoa)",
|
||||||
|
"fields": {
|
||||||
|
"name": "Osagaiaren Izena",
|
||||||
|
"category": "Kategoria",
|
||||||
|
"unit": "Neurri Unitatea",
|
||||||
|
"brand": "Marka",
|
||||||
|
"cost": "Kostu Estandarra"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "adib., Irina 000, Legami freskoa",
|
||||||
|
"brand": "adib., Molinos Río",
|
||||||
|
"cost": "adib., 150.00"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Izena beharrezkoa da",
|
||||||
|
"cost_invalid": "Kostua zenbaki baliozkoa izan behar da",
|
||||||
|
"threshold_invalid": "Atalasea zenbaki baliozkoa izan behar da"
|
||||||
|
},
|
||||||
|
"stock_errors": {
|
||||||
|
"quantity_required": "Kantitatea zero baino handiagoa izan behar da",
|
||||||
|
"expiration_past": "Iraungitze data iraganean dago",
|
||||||
|
"expiring_soon": "Abisua: Osagai hau laster iraungitzen da!"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"recipes": {
|
||||||
|
"why": "Errezetak zure inbentarioa ekoizpenarekin konektatzen dute. Sistemak elementu bakoitzeko kostu zehatzak kalkulatuko ditu, osagaien kontsumoa jarraituko du eta menuko errentagarritasuna optimizatzen lagunduko dizu.",
|
||||||
|
"quick_start": "Errezeta Txantiloiak",
|
||||||
|
"quick_start_desc": "Hasi frogatutako errezetekin eta pertsonalizatu zure beharretara",
|
||||||
|
"category": {
|
||||||
|
"breads": "Ogiak",
|
||||||
|
"pastries": "Gozogintza",
|
||||||
|
"cakes": "Pastelak eta Tartak",
|
||||||
|
"cookies": "Galletak"
|
||||||
|
},
|
||||||
|
"use_template": "Txantiloia Erabili",
|
||||||
|
"templates_hint": "Txantiloiek automatikoki zure osagaiekin bat egingo dute. Berrikusi eta egokitu behar den bezala.",
|
||||||
|
"show_templates": "Erakutsi Errezeta Txantiloiak",
|
||||||
|
"prerequisites_title": "Osagai gehiago behar dira",
|
||||||
|
"prerequisites_desc": "Gutxienez 2 osagai behar dituzu zure inbentarioan errezetak sortu aurretik. Itzuli Inbentario urratsera osagai gehiago gehitzeko.",
|
||||||
|
"added_count": "Errezeta {{count}} gehituta",
|
||||||
|
"added_count_plural": "{{count}} errezeta gehituta",
|
||||||
|
"minimum_met": "{{count}} errezeta gehituta - Jarraitzeko prest!",
|
||||||
|
"your_recipes": "Zure Errezetak",
|
||||||
|
"yield_label": "Etekin",
|
||||||
|
"add_recipe": "Errezeta Gehitu",
|
||||||
|
"add_first": "Gehitu Zure Lehen Errezeta",
|
||||||
|
"add_another": "Beste Errezeta Bat Gehitu",
|
||||||
|
"add_new_ingredient": "Osagai Berria Gehitu",
|
||||||
|
"select_ingredient": "Aukeratu...",
|
||||||
|
"add_ingredient": "Osagaia Gehitu",
|
||||||
|
"no_ingredients": "Oraindik ez da osagairik gehitu",
|
||||||
|
"confirm_delete": "Ziur zaude errezeta hau ezabatu nahi duzula?",
|
||||||
|
"fields": {
|
||||||
|
"name": "Errezeta Izena",
|
||||||
|
"finished_product": "Produktu Amaituak",
|
||||||
|
"yield_quantity": "Etekinaren Kantitatea",
|
||||||
|
"yield_unit": "Unitatea",
|
||||||
|
"ingredients": "Osagaiak"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "adib., Baguette, Croissant",
|
||||||
|
"finished_product": "Aukeratu produktu amaituak..."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Errezeta izena beharrezkoa da",
|
||||||
|
"finished_product_required": "Produktu amaituak beharrezkoa da",
|
||||||
|
"yield_invalid": "Etekina zenbaki positiboa izan behar da",
|
||||||
|
"ingredients_required": "Gutxienez osagai bat beharrezkoa da",
|
||||||
|
"ingredient_required": "Osagaia beharrezkoa da",
|
||||||
|
"quantity_invalid": "Kantitatea positiboa izan behar da"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"quality": {
|
||||||
|
"why": "Kalitate kontrolek irteera koherentea bermatzen dute eta goiz arazoak identifikatzen laguntzen dizute. Definitu zer den \"ona\" ekoizpen etapa bakoitzerako.",
|
||||||
|
"optional_note": "Hau saltatu eta kalitate kontrolak geroago konfigura ditzakezu",
|
||||||
|
"added_count": "Kalitate kontrol {{count}} gehituta",
|
||||||
|
"added_count_plural": "{{count}} kalitate kontrol gehituta",
|
||||||
|
"recommended_met": "Gomendatutako kopurua betetzen da",
|
||||||
|
"recommended": "2+ gomendatzen dira (aukerakoa)",
|
||||||
|
"your_checks": "Zure Kalitate Kontrolak",
|
||||||
|
"add_check": "Kalitate Kontrola Gehitu",
|
||||||
|
"add_first": "Gehitu Zure Lehen Kalitate Kontrola",
|
||||||
|
"add_another": "Beste Kalitate Kontrol Bat Gehitu",
|
||||||
|
"fields": {
|
||||||
|
"name": "Kontrolaren Izena",
|
||||||
|
"check_type": "Kontrol Mota",
|
||||||
|
"description": "Deskribapena",
|
||||||
|
"stages": "Etapa Aplikagarriak",
|
||||||
|
"required": "Nahitaezko kontrola (osatu behar da)",
|
||||||
|
"critical": "Kontrol kritikoa (hutsegiteak ekoizpena gelditzen du)"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "adib., Azal kolorearen kontrola, Oraren tenperatura",
|
||||||
|
"description": "Zer egiaztatu behar den eta zergatik..."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Izena beharrezkoa da",
|
||||||
|
"stages_required": "Gutxienez etapa bat beharrezkoa da"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"team": {
|
||||||
|
"why": "Taldekideak gehitzeak zereginak esleitzea, nork zer egiten duen jarraitzea eta guztiei behar dituzten tresnak ematea ahalbidetzen dizu modu eraginkorrean lan egiteko.",
|
||||||
|
"optional_note": "Taldekideak orain gehi ditzakezu edo ezarpenetatik geroago gonbida ditzakezu",
|
||||||
|
"invitation_note": "Taldekideek gonbidapen posta elektronikoak jasoko dituzte konfigurazio morroia osatu ondoren.",
|
||||||
|
"added_count": "Taldekide {{count}} gehituta",
|
||||||
|
"added_count_plural": "{{count}} taldekide gehituta",
|
||||||
|
"your_team": "Zure Taldekideak",
|
||||||
|
"add_member": "Taldekidea Gehitu",
|
||||||
|
"add_first": "Gehitu Zure Lehen Taldekidea",
|
||||||
|
"add_another": "Beste Taldekide Bat Gehitu",
|
||||||
|
"skip_message": "Oraingoz bakarrik lanean? Ez dago arazorik!",
|
||||||
|
"skip_hint": "Beti gehi ditzakezu taldekideak geroago Ezarpenak → Taldea-tik",
|
||||||
|
"fields": {
|
||||||
|
"name": "Izen Osoa",
|
||||||
|
"email": "Posta Elektroniko Helbidea",
|
||||||
|
"role": "Rola"
|
||||||
|
},
|
||||||
|
"placeholders": {
|
||||||
|
"name": "adib., María García",
|
||||||
|
"email": "adib., maria@okindegi.eus"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"name_required": "Izena beharrezkoa da",
|
||||||
|
"email_required": "Posta beharrezkoa da",
|
||||||
|
"email_invalid": "Posta formatu baliogabea",
|
||||||
|
"email_duplicate": "Posta elektroniko hau dagoeneko gehituta dago"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"review": {
|
||||||
|
"title": "Berrikusi Zure Konfigurazioa",
|
||||||
|
"subtitle": "Berrikusi ditzagun konfiguratu dituzun guztiak. Atzera joan eta aldaketak egin ditzakezu behar izanez gero.",
|
||||||
|
"suppliers": "Hornitzaileak",
|
||||||
|
"ingredients": "Osagaiak",
|
||||||
|
"recipes": "Errezetak",
|
||||||
|
"quality": "Kalitate Kontrolak",
|
||||||
|
"suppliers_title": "Hornitzaileak",
|
||||||
|
"more": "gehiago",
|
||||||
|
"ingredients_title": "Inbentario Elementuak",
|
||||||
|
"total_cost": "Balio osoa",
|
||||||
|
"recipes_title": "Errezetak",
|
||||||
|
"avg_ingredients": "Batez besteko osagaiak",
|
||||||
|
"yields": "Etekina",
|
||||||
|
"cost": "Kostua",
|
||||||
|
"quality_title": "Kalitate Kontrol Txantiloiak",
|
||||||
|
"required": "Nahitaezkoa",
|
||||||
|
"ready_title": "Zure Okindegi Prest Dago!",
|
||||||
|
"ready_message": "Arrakastaz konfiguratu dituzu {{suppliers}} hornitzaile, {{ingredients}} osagai eta {{recipes}} errezeta. Egin klik 'Konfigurazioa Osatu'-n amaitzeko eta sistema erabiltzen hasteko.",
|
||||||
|
"help": "Aldaketak egin behar dituzu? Erabili \"Atzera\" botoia edozein urratsera itzultzeko."
|
||||||
|
},
|
||||||
|
"completion": {
|
||||||
|
"title": "🎉 Konfigurazioa Osatuta!",
|
||||||
|
"subtitle": "Zorionak! Zure okindegi kudeaketa sistema erabiltzeko prest dago. Has gaitezen zure lehen zereginekin.",
|
||||||
|
"next_steps": "Gomendatutako Hurrengo Urratsak",
|
||||||
|
"step1_title": "Ekoizpena Hasi",
|
||||||
|
"step1_desc": "Sortu zure lehen ekoizpen lotea konfiguratutako errezetek erabiliz",
|
||||||
|
"step1_action": "Joan Ekoizpenera",
|
||||||
|
"step2_title": "Inbentarioa Eskatu",
|
||||||
|
"step2_desc": "Egin zure lehen erosketa-agindua zure hornitzaileekin",
|
||||||
|
"step2_action": "Ikusi Erosketak",
|
||||||
|
"step3_title": "Jarraitu Analitikak",
|
||||||
|
"step3_desc": "Zaindu zure ekoizpen eraginkortasuna eta kostuak denbora errealean",
|
||||||
|
"step3_action": "Ikusi Analitikak",
|
||||||
|
"tips": "Arrakastako Aholku Profesionalak",
|
||||||
|
"tip1_title": "Mantendu Inbentarioa Eguneratuta",
|
||||||
|
"tip1_desc": "Eguneratu stock mailak erregularki kostu kalkulu zehatzak eta stock apala alertak lortzeko",
|
||||||
|
"tip2_title": "Zaindu Kalitate Metrikak",
|
||||||
|
"tip2_desc": "Erabili kalitate kontrolak ekoizpenean goiz arazoak identifikatzeko eta koherentzia mantentzeko",
|
||||||
|
"tip3_title": "Berrikusi Analitikak Astero",
|
||||||
|
"tip3_desc": "Egiaztatu zure ekoizpen analitikak astero errezetak optimizatzeko eta hondakinak murrizteko",
|
||||||
|
"tip4_title": "Mantendu Hornitzaileekin Harremanak",
|
||||||
|
"tip4_desc": "Mantendu hornitzaileen informazioa eguneratuta eta jarraitu eskaeren errendimendua elkarlantza hobeak lortzeko",
|
||||||
|
"need_help": "Laguntza Behar?",
|
||||||
|
"settings": "Ezarpenak",
|
||||||
|
"settings_desc": "Konfiguratu hobespenak",
|
||||||
|
"dashboard": "Aginte-panela",
|
||||||
|
"dashboard_desc": "Ikusi laburpena",
|
||||||
|
"recipes": "Errezetak",
|
||||||
|
"recipes_desc": "Kudeatu errezetak",
|
||||||
|
"go_dashboard": "Joan Aginte-panelera",
|
||||||
|
"thanks": "Eskerrik asko konfigurazioa osatzeagatik! Labealdi zoriontsuak! 🥖🥐🍰"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user