Add i18 support
This commit is contained in:
240
frontend/src/locales/en/common.json
Normal file
240
frontend/src/locales/en/common.json
Normal file
@@ -0,0 +1,240 @@
|
||||
{
|
||||
"navigation": {
|
||||
"dashboard": "Dashboard",
|
||||
"operations": "Operations",
|
||||
"inventory": "Inventory",
|
||||
"production": "Production",
|
||||
"recipes": "Recipes",
|
||||
"orders": "Orders",
|
||||
"procurement": "Procurement",
|
||||
"pos": "Point of Sale",
|
||||
"analytics": "Analytics",
|
||||
"forecasting": "Forecasting",
|
||||
"sales": "Sales",
|
||||
"performance": "Performance",
|
||||
"insights": "AI Insights",
|
||||
"data": "Data",
|
||||
"weather": "Weather",
|
||||
"traffic": "Traffic",
|
||||
"events": "Events",
|
||||
"communications": "Communications",
|
||||
"notifications": "Notifications",
|
||||
"alerts": "Alerts",
|
||||
"preferences": "Preferences",
|
||||
"settings": "Settings",
|
||||
"team": "Team",
|
||||
"bakery": "Bakery",
|
||||
"training": "Training",
|
||||
"system": "System",
|
||||
"onboarding": "Initial Setup"
|
||||
},
|
||||
"actions": {
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"add": "Add",
|
||||
"create": "Create",
|
||||
"update": "Update",
|
||||
"view": "View",
|
||||
"search": "Search",
|
||||
"filter": "Filter",
|
||||
"export": "Export",
|
||||
"import": "Import",
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"print": "Print",
|
||||
"refresh": "Refresh",
|
||||
"reset": "Reset",
|
||||
"clear": "Clear",
|
||||
"submit": "Submit",
|
||||
"close": "Close",
|
||||
"open": "Open",
|
||||
"back": "Back",
|
||||
"next": "Next",
|
||||
"previous": "Previous",
|
||||
"finish": "Finish",
|
||||
"continue": "Continue",
|
||||
"confirm": "Confirm",
|
||||
"expand": "Expand",
|
||||
"collapse": "Collapse"
|
||||
},
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"pending": "Pending",
|
||||
"completed": "Completed",
|
||||
"cancelled": "Cancelled",
|
||||
"draft": "Draft",
|
||||
"published": "Published",
|
||||
"archived": "Archived",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"available": "Available",
|
||||
"unavailable": "Unavailable",
|
||||
"in_progress": "In Progress",
|
||||
"failed": "Failed",
|
||||
"success": "Success",
|
||||
"warning": "Warning",
|
||||
"error": "Error",
|
||||
"info": "Information",
|
||||
"undefined": "Not defined",
|
||||
"no_rating": "No rating",
|
||||
"disconnected": "Disconnected",
|
||||
"no_realtime_connection": "No real-time connection"
|
||||
},
|
||||
"time": {
|
||||
"today": "Today",
|
||||
"yesterday": "Yesterday",
|
||||
"tomorrow": "Tomorrow",
|
||||
"this_week": "This Week",
|
||||
"last_week": "Last Week",
|
||||
"next_week": "Next Week",
|
||||
"this_month": "This Month",
|
||||
"last_month": "Last Month",
|
||||
"next_month": "Next Month",
|
||||
"this_year": "This Year",
|
||||
"last_year": "Last Year",
|
||||
"next_year": "Next Year",
|
||||
"morning": "Morning",
|
||||
"afternoon": "Afternoon",
|
||||
"evening": "Evening",
|
||||
"night": "Night",
|
||||
"now": "Now",
|
||||
"recently": "Recently",
|
||||
"soon": "Soon",
|
||||
"later": "Later"
|
||||
},
|
||||
"units": {
|
||||
"kg": "kg",
|
||||
"g": "g",
|
||||
"l": "l",
|
||||
"ml": "ml",
|
||||
"pieces": "pieces",
|
||||
"units": "units",
|
||||
"portions": "portions",
|
||||
"minutes": "minutes",
|
||||
"hours": "hours",
|
||||
"days": "days",
|
||||
"weeks": "weeks",
|
||||
"months": "months",
|
||||
"years": "years"
|
||||
},
|
||||
"categories": {
|
||||
"bread": "Breads",
|
||||
"pastry": "Pastries",
|
||||
"cake": "Cakes",
|
||||
"cookie": "Cookies",
|
||||
"other": "Others",
|
||||
"flour": "Flours",
|
||||
"dairy": "Dairy",
|
||||
"eggs": "Eggs",
|
||||
"fats": "Fats",
|
||||
"sugar": "Sugars",
|
||||
"yeast": "Yeasts",
|
||||
"spices": "Spices",
|
||||
"salted": "Savory"
|
||||
},
|
||||
"priority": {
|
||||
"low": "Low",
|
||||
"normal": "Normal",
|
||||
"medium": "Medium",
|
||||
"high": "High",
|
||||
"urgent": "Urgent",
|
||||
"critical": "Critical",
|
||||
"undefined": "Priority not defined"
|
||||
},
|
||||
"difficulty": {
|
||||
"easy": "Easy",
|
||||
"medium": "Medium",
|
||||
"hard": "Hard",
|
||||
"expert": "Expert"
|
||||
},
|
||||
"payment_methods": {
|
||||
"cash": "Cash",
|
||||
"card": "Card",
|
||||
"transfer": "Transfer",
|
||||
"other": "Other"
|
||||
},
|
||||
"delivery_methods": {
|
||||
"pickup": "Pickup",
|
||||
"delivery": "Home Delivery"
|
||||
},
|
||||
"weekdays": {
|
||||
"monday": "Monday",
|
||||
"tuesday": "Tuesday",
|
||||
"wednesday": "Wednesday",
|
||||
"thursday": "Thursday",
|
||||
"friday": "Friday",
|
||||
"saturday": "Saturday",
|
||||
"sunday": "Sunday"
|
||||
},
|
||||
"months": {
|
||||
"january": "January",
|
||||
"february": "February",
|
||||
"march": "March",
|
||||
"april": "April",
|
||||
"may": "May",
|
||||
"june": "June",
|
||||
"july": "July",
|
||||
"august": "August",
|
||||
"september": "September",
|
||||
"october": "October",
|
||||
"november": "November",
|
||||
"december": "December"
|
||||
},
|
||||
"forms": {
|
||||
"required": "Required",
|
||||
"optional": "Optional",
|
||||
"loading": "Loading...",
|
||||
"no_data": "No data available",
|
||||
"no_results": "No results found",
|
||||
"empty_state": "No items to display",
|
||||
"select_option": "Select option",
|
||||
"enter_text": "Enter text",
|
||||
"choose_file": "Choose file",
|
||||
"drag_drop": "Drag and drop here",
|
||||
"or": "or",
|
||||
"no_terms": "No terms defined",
|
||||
"search_placeholder": "Search..."
|
||||
},
|
||||
"table": {
|
||||
"no_data": "No data to display",
|
||||
"loading": "Loading data...",
|
||||
"error": "Error loading data",
|
||||
"rows_per_page": "Rows per page",
|
||||
"showing": "Showing",
|
||||
"of": "of",
|
||||
"entries": "entries",
|
||||
"page": "Page",
|
||||
"first": "First",
|
||||
"last": "Last",
|
||||
"sort_asc": "Sort ascending",
|
||||
"sort_desc": "Sort descending"
|
||||
},
|
||||
"alerts": {
|
||||
"confirm_delete": "Are you sure you want to delete this item?",
|
||||
"confirm_action": "Are you sure you want to perform this action?",
|
||||
"unsaved_changes": "You have unsaved changes. Are you sure you want to leave?",
|
||||
"success_save": "Saved successfully",
|
||||
"success_delete": "Deleted successfully",
|
||||
"success_update": "Updated successfully",
|
||||
"success_create": "Created successfully",
|
||||
"operation_completed": "Operation completed successfully"
|
||||
},
|
||||
"accessibility": {
|
||||
"close": "Close",
|
||||
"menu": "Main navigation",
|
||||
"open_menu": "Open menu",
|
||||
"close_menu": "Close menu",
|
||||
"toggle": "Toggle",
|
||||
"expand": "Expand",
|
||||
"collapse": "Collapse",
|
||||
"loading": "Loading",
|
||||
"image": "Image",
|
||||
"button": "Button",
|
||||
"link": "Link",
|
||||
"tooltip": "Additional information",
|
||||
"search": "Search in the application"
|
||||
}
|
||||
}
|
||||
74
frontend/src/locales/en/dashboard.json
Normal file
74
frontend/src/locales/en/dashboard.json
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"title": "Dashboard",
|
||||
"subtitle": "Overview of your bakery operations",
|
||||
"stats": {
|
||||
"sales_today": "Sales Today",
|
||||
"pending_orders": "Pending Orders",
|
||||
"stock_alerts": "Stock Alerts",
|
||||
"production_efficiency": "Production Efficiency",
|
||||
"revenue_growth": "Revenue Growth",
|
||||
"customer_satisfaction": "Customer Satisfaction",
|
||||
"inventory_turnover": "Inventory Turnover",
|
||||
"daily_profit": "Daily Profit",
|
||||
"products_sold": "Products Sold"
|
||||
},
|
||||
"trends": {
|
||||
"vs_yesterday": "% vs yesterday",
|
||||
"vs_last_week": "% vs last week",
|
||||
"vs_last_month": "% vs last month",
|
||||
"growth": "growth",
|
||||
"decrease": "decrease",
|
||||
"stable": "stable"
|
||||
},
|
||||
"sections": {
|
||||
"critical_stats": "Critical Statistics",
|
||||
"real_time_alerts": "Real-time Alerts",
|
||||
"procurement_today": "Procurement Today",
|
||||
"production_today": "Production Today",
|
||||
"recent_activity": "Recent Activity",
|
||||
"quick_actions": "Quick Actions"
|
||||
},
|
||||
"quick_actions": {
|
||||
"add_new_bakery": "Add New Bakery",
|
||||
"create_order": "Create Order",
|
||||
"start_production": "Start Production",
|
||||
"check_inventory": "Check Inventory",
|
||||
"view_reports": "View Reports",
|
||||
"manage_staff": "Manage Staff"
|
||||
},
|
||||
"alerts": {
|
||||
"low_stock": "Low Stock",
|
||||
"production_delay": "Production Delay",
|
||||
"quality_issue": "Quality Issue",
|
||||
"equipment_maintenance": "Equipment Maintenance",
|
||||
"order_pending": "Order Pending",
|
||||
"delivery_due": "Delivery Due"
|
||||
},
|
||||
"messages": {
|
||||
"welcome": "Welcome back",
|
||||
"good_morning": "Good morning",
|
||||
"good_afternoon": "Good afternoon",
|
||||
"good_evening": "Good evening",
|
||||
"no_data": "No data available",
|
||||
"loading": "Loading dashboard data...",
|
||||
"error_loading": "Error loading data",
|
||||
"last_updated": "Last updated",
|
||||
"auto_refresh": "Auto refresh in",
|
||||
"more_than_yesterday": "more than yesterday",
|
||||
"require_attention": "Require attention",
|
||||
"more_units": "more units",
|
||||
"action_required": "Action required",
|
||||
"manage_organizations": "Manage your organizations",
|
||||
"setup_new_business": "Set up a new business from scratch",
|
||||
"active_organizations": "Active Organizations"
|
||||
},
|
||||
"time_periods": {
|
||||
"today": "Today",
|
||||
"this_week": "This Week",
|
||||
"this_month": "This Month",
|
||||
"this_year": "This Year",
|
||||
"last_7_days": "Last 7 days",
|
||||
"last_30_days": "Last 30 days",
|
||||
"last_90_days": "Last 90 days"
|
||||
}
|
||||
}
|
||||
80
frontend/src/locales/en/production.json
Normal file
80
frontend/src/locales/en/production.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"title": "Production",
|
||||
"subtitle": "Manage your bakery production",
|
||||
"production_status": {
|
||||
"PENDING": "Pending",
|
||||
"IN_PROGRESS": "In Progress",
|
||||
"COMPLETED": "Completed",
|
||||
"CANCELLED": "Cancelled",
|
||||
"ON_HOLD": "On Hold",
|
||||
"QUALITY_CHECK": "Quality Check",
|
||||
"FAILED": "Failed"
|
||||
},
|
||||
"production_priority": {
|
||||
"LOW": "Low",
|
||||
"MEDIUM": "Medium",
|
||||
"HIGH": "High",
|
||||
"URGENT": "Urgent"
|
||||
},
|
||||
"batch_status": {
|
||||
"PLANNED": "Planned",
|
||||
"IN_PROGRESS": "In Progress",
|
||||
"COMPLETED": "Completed",
|
||||
"CANCELLED": "Cancelled",
|
||||
"ON_HOLD": "On Hold"
|
||||
},
|
||||
"quality_check_status": {
|
||||
"PENDING": "Pending",
|
||||
"IN_PROGRESS": "In Progress",
|
||||
"PASSED": "Passed",
|
||||
"FAILED": "Failed",
|
||||
"REQUIRES_ATTENTION": "Requires Attention"
|
||||
},
|
||||
"fields": {
|
||||
"batch_number": "Batch Number",
|
||||
"production_date": "Production Date",
|
||||
"planned_quantity": "Planned Quantity",
|
||||
"actual_quantity": "Actual Quantity",
|
||||
"yield_percentage": "Yield Percentage",
|
||||
"priority": "Priority",
|
||||
"assigned_staff": "Assigned Staff",
|
||||
"production_notes": "Production Notes",
|
||||
"quality_score": "Quality Score",
|
||||
"quality_notes": "Quality Notes",
|
||||
"defect_rate": "Defect Rate",
|
||||
"rework_required": "Rework Required",
|
||||
"waste_quantity": "Waste Quantity",
|
||||
"waste_reason": "Waste Reason",
|
||||
"efficiency": "Efficiency",
|
||||
"material_cost": "Material Cost",
|
||||
"labor_cost": "Labor Cost",
|
||||
"overhead_cost": "Overhead Cost",
|
||||
"total_cost": "Total Cost",
|
||||
"cost_per_unit": "Cost per Unit"
|
||||
},
|
||||
"actions": {
|
||||
"start_production": "Start Production",
|
||||
"complete_batch": "Complete Batch",
|
||||
"pause_production": "Pause Production",
|
||||
"cancel_batch": "Cancel Batch",
|
||||
"quality_check": "Quality Check",
|
||||
"create_batch": "Create Batch",
|
||||
"view_details": "View Details",
|
||||
"edit_batch": "Edit Batch",
|
||||
"duplicate_batch": "Duplicate Batch"
|
||||
},
|
||||
"labels": {
|
||||
"current_production": "Current Production",
|
||||
"production_queue": "Production Queue",
|
||||
"completed_today": "Completed Today",
|
||||
"efficiency_rate": "Efficiency Rate",
|
||||
"quality_score": "Quality Score",
|
||||
"active_batches": "Active Batches",
|
||||
"pending_quality_checks": "Pending Quality Checks"
|
||||
},
|
||||
"descriptions": {
|
||||
"production_efficiency": "Percentage of efficiency in current production",
|
||||
"quality_average": "Average quality score in recent batches",
|
||||
"waste_reduction": "Waste reduction compared to previous month"
|
||||
}
|
||||
}
|
||||
@@ -55,7 +55,9 @@
|
||||
"previous": "Anterior",
|
||||
"finish": "Finalizar",
|
||||
"continue": "Continuar",
|
||||
"confirm": "Confirmar"
|
||||
"confirm": "Confirmar",
|
||||
"expand": "Expandir",
|
||||
"collapse": "Contraer"
|
||||
},
|
||||
"status": {
|
||||
"active": "Activo",
|
||||
@@ -75,7 +77,11 @@
|
||||
"success": "Éxito",
|
||||
"warning": "Advertencia",
|
||||
"error": "Error",
|
||||
"info": "Información"
|
||||
"info": "Información",
|
||||
"undefined": "No definido",
|
||||
"no_rating": "Sin calificación",
|
||||
"disconnected": "Desconectado",
|
||||
"no_realtime_connection": "Sin conexión en tiempo real"
|
||||
},
|
||||
"time": {
|
||||
"today": "Hoy",
|
||||
@@ -135,7 +141,8 @@
|
||||
"medium": "Media",
|
||||
"high": "Alta",
|
||||
"urgent": "Urgente",
|
||||
"critical": "Crítica"
|
||||
"critical": "Crítica",
|
||||
"undefined": "Prioridad no definida"
|
||||
},
|
||||
"difficulty": {
|
||||
"easy": "Fácil",
|
||||
@@ -187,7 +194,9 @@
|
||||
"enter_text": "Ingresa texto",
|
||||
"choose_file": "Elegir archivo",
|
||||
"drag_drop": "Arrastra y suelta aquí",
|
||||
"or": "o"
|
||||
"or": "o",
|
||||
"no_terms": "Sin términos definidos",
|
||||
"search_placeholder": "Buscar..."
|
||||
},
|
||||
"table": {
|
||||
"no_data": "No hay datos para mostrar",
|
||||
@@ -215,7 +224,7 @@
|
||||
},
|
||||
"accessibility": {
|
||||
"close": "Cerrar",
|
||||
"menu": "Menú",
|
||||
"menu": "Navegación principal",
|
||||
"open_menu": "Abrir menú",
|
||||
"close_menu": "Cerrar menú",
|
||||
"toggle": "Alternar",
|
||||
@@ -225,6 +234,7 @@
|
||||
"image": "Imagen",
|
||||
"button": "Botón",
|
||||
"link": "Enlace",
|
||||
"tooltip": "Información adicional"
|
||||
"tooltip": "Información adicional",
|
||||
"search": "Buscar en la aplicación"
|
||||
}
|
||||
}
|
||||
74
frontend/src/locales/es/dashboard.json
Normal file
74
frontend/src/locales/es/dashboard.json
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"title": "Panel de Control",
|
||||
"subtitle": "Resumen general de tu panadería",
|
||||
"stats": {
|
||||
"sales_today": "Ventas Hoy",
|
||||
"pending_orders": "Órdenes Pendientes",
|
||||
"stock_alerts": "Alertas de Stock",
|
||||
"production_efficiency": "Eficiencia de Producción",
|
||||
"revenue_growth": "Crecimiento de Ingresos",
|
||||
"customer_satisfaction": "Satisfacción del Cliente",
|
||||
"inventory_turnover": "Rotación de Inventario",
|
||||
"daily_profit": "Ganancia Diaria",
|
||||
"products_sold": "Productos Vendidos"
|
||||
},
|
||||
"trends": {
|
||||
"vs_yesterday": "% vs ayer",
|
||||
"vs_last_week": "% vs semana pasada",
|
||||
"vs_last_month": "% vs mes pasado",
|
||||
"growth": "crecimiento",
|
||||
"decrease": "disminución",
|
||||
"stable": "estable"
|
||||
},
|
||||
"sections": {
|
||||
"critical_stats": "Estadísticas Críticas",
|
||||
"real_time_alerts": "Alertas en Tiempo Real",
|
||||
"procurement_today": "Compras Hoy",
|
||||
"production_today": "Producción Hoy",
|
||||
"recent_activity": "Actividad Reciente",
|
||||
"quick_actions": "Acciones Rápidas"
|
||||
},
|
||||
"quick_actions": {
|
||||
"add_new_bakery": "Agregar Nueva Panadería",
|
||||
"create_order": "Crear Pedido",
|
||||
"start_production": "Iniciar Producción",
|
||||
"check_inventory": "Revisar Inventario",
|
||||
"view_reports": "Ver Reportes",
|
||||
"manage_staff": "Gestionar Personal"
|
||||
},
|
||||
"alerts": {
|
||||
"low_stock": "Stock Bajo",
|
||||
"production_delay": "Retraso en Producción",
|
||||
"quality_issue": "Problema de Calidad",
|
||||
"equipment_maintenance": "Mantenimiento de Equipo",
|
||||
"order_pending": "Pedido Pendiente",
|
||||
"delivery_due": "Entrega Vencida"
|
||||
},
|
||||
"messages": {
|
||||
"welcome": "Bienvenido de vuelta",
|
||||
"good_morning": "Buenos días",
|
||||
"good_afternoon": "Buenas tardes",
|
||||
"good_evening": "Buenas noches",
|
||||
"no_data": "No hay datos disponibles",
|
||||
"loading": "Cargando datos del panel...",
|
||||
"error_loading": "Error al cargar los datos",
|
||||
"last_updated": "Última actualización",
|
||||
"auto_refresh": "Actualización automática en",
|
||||
"more_than_yesterday": "más que ayer",
|
||||
"require_attention": "Requieren atención",
|
||||
"more_units": "unidades más",
|
||||
"action_required": "Acción requerida",
|
||||
"manage_organizations": "Gestiona tus organizaciones",
|
||||
"setup_new_business": "Configurar un nuevo negocio desde cero",
|
||||
"active_organizations": "Organizaciones Activas"
|
||||
},
|
||||
"time_periods": {
|
||||
"today": "Hoy",
|
||||
"this_week": "Esta Semana",
|
||||
"this_month": "Este Mes",
|
||||
"this_year": "Este Año",
|
||||
"last_7_days": "Últimos 7 días",
|
||||
"last_30_days": "Últimos 30 días",
|
||||
"last_90_days": "Últimos 90 días"
|
||||
}
|
||||
}
|
||||
80
frontend/src/locales/es/production.json
Normal file
80
frontend/src/locales/es/production.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"title": "Producción",
|
||||
"subtitle": "Gestiona la producción de tu panadería",
|
||||
"production_status": {
|
||||
"PENDING": "Pendiente",
|
||||
"IN_PROGRESS": "En Proceso",
|
||||
"COMPLETED": "Completado",
|
||||
"CANCELLED": "Cancelado",
|
||||
"ON_HOLD": "En Pausa",
|
||||
"QUALITY_CHECK": "Control Calidad",
|
||||
"FAILED": "Fallido"
|
||||
},
|
||||
"production_priority": {
|
||||
"LOW": "Baja",
|
||||
"MEDIUM": "Media",
|
||||
"HIGH": "Alta",
|
||||
"URGENT": "Urgente"
|
||||
},
|
||||
"batch_status": {
|
||||
"PLANNED": "Planificado",
|
||||
"IN_PROGRESS": "En Proceso",
|
||||
"COMPLETED": "Completado",
|
||||
"CANCELLED": "Cancelado",
|
||||
"ON_HOLD": "En Pausa"
|
||||
},
|
||||
"quality_check_status": {
|
||||
"PENDING": "Pendiente",
|
||||
"IN_PROGRESS": "En Proceso",
|
||||
"PASSED": "Aprobado",
|
||||
"FAILED": "Reprobado",
|
||||
"REQUIRES_ATTENTION": "Requiere Atención"
|
||||
},
|
||||
"fields": {
|
||||
"batch_number": "Número de Lote",
|
||||
"production_date": "Fecha de Producción",
|
||||
"planned_quantity": "Cantidad Planificada",
|
||||
"actual_quantity": "Cantidad Real",
|
||||
"yield_percentage": "Porcentaje de Rendimiento",
|
||||
"priority": "Prioridad",
|
||||
"assigned_staff": "Personal Asignado",
|
||||
"production_notes": "Notas de Producción",
|
||||
"quality_score": "Puntuación de Calidad",
|
||||
"quality_notes": "Notas de Calidad",
|
||||
"defect_rate": "Tasa de Defectos",
|
||||
"rework_required": "Requiere Retrabajo",
|
||||
"waste_quantity": "Cantidad de Desperdicio",
|
||||
"waste_reason": "Razón del Desperdicio",
|
||||
"efficiency": "Eficiencia",
|
||||
"material_cost": "Costo de Materiales",
|
||||
"labor_cost": "Costo de Mano de Obra",
|
||||
"overhead_cost": "Costo Indirecto",
|
||||
"total_cost": "Costo Total",
|
||||
"cost_per_unit": "Costo por Unidad"
|
||||
},
|
||||
"actions": {
|
||||
"start_production": "Iniciar Producción",
|
||||
"complete_batch": "Completar Lote",
|
||||
"pause_production": "Pausar Producción",
|
||||
"cancel_batch": "Cancelar Lote",
|
||||
"quality_check": "Control de Calidad",
|
||||
"create_batch": "Crear Lote",
|
||||
"view_details": "Ver Detalles",
|
||||
"edit_batch": "Editar Lote",
|
||||
"duplicate_batch": "Duplicar Lote"
|
||||
},
|
||||
"labels": {
|
||||
"current_production": "Producción Actual",
|
||||
"production_queue": "Cola de Producción",
|
||||
"completed_today": "Completado Hoy",
|
||||
"efficiency_rate": "Tasa de Eficiencia",
|
||||
"quality_score": "Puntuación de Calidad",
|
||||
"active_batches": "Lotes Activos",
|
||||
"pending_quality_checks": "Controles de Calidad Pendientes"
|
||||
},
|
||||
"descriptions": {
|
||||
"production_efficiency": "Porcentaje de eficiencia en la producción actual",
|
||||
"quality_average": "Puntuación promedio de calidad en los últimos lotes",
|
||||
"waste_reduction": "Reducción de desperdicio comparado con el mes anterior"
|
||||
}
|
||||
}
|
||||
240
frontend/src/locales/eu/common.json
Normal file
240
frontend/src/locales/eu/common.json
Normal file
@@ -0,0 +1,240 @@
|
||||
{
|
||||
"navigation": {
|
||||
"dashboard": "Aginte Panela",
|
||||
"operations": "Eragiketak",
|
||||
"inventory": "Inbentarioa",
|
||||
"production": "Ekoizpena",
|
||||
"recipes": "Errezetak",
|
||||
"orders": "Eskaerak",
|
||||
"procurement": "Erosketak",
|
||||
"pos": "Salmenta Puntua",
|
||||
"analytics": "Analisiak",
|
||||
"forecasting": "Aurreikuspena",
|
||||
"sales": "Salmentak",
|
||||
"performance": "Errendimendua",
|
||||
"insights": "AI Jakintza",
|
||||
"data": "Datuak",
|
||||
"weather": "Eguraldia",
|
||||
"traffic": "Trafikoa",
|
||||
"events": "Gertaerak",
|
||||
"communications": "Komunikazioak",
|
||||
"notifications": "Jakinarazpenak",
|
||||
"alerts": "Alertak",
|
||||
"preferences": "Lehentasunak",
|
||||
"settings": "Ezarpenak",
|
||||
"team": "Taldea",
|
||||
"bakery": "Okindegi",
|
||||
"training": "Trebakuntza",
|
||||
"system": "Sistema",
|
||||
"onboarding": "Hasierako Konfigurazioa"
|
||||
},
|
||||
"actions": {
|
||||
"save": "Gorde",
|
||||
"cancel": "Ezeztatu",
|
||||
"edit": "Editatu",
|
||||
"delete": "Ezabatu",
|
||||
"add": "Gehitu",
|
||||
"create": "Sortu",
|
||||
"update": "Eguneratu",
|
||||
"view": "Ikusi",
|
||||
"search": "Bilatu",
|
||||
"filter": "Iragazi",
|
||||
"export": "Esportatu",
|
||||
"import": "Inportatu",
|
||||
"download": "Deskargatu",
|
||||
"upload": "Kargatu",
|
||||
"print": "Inprimatu",
|
||||
"refresh": "Eguneratu",
|
||||
"reset": "Berrezarri",
|
||||
"clear": "Garbitu",
|
||||
"submit": "Bidali",
|
||||
"close": "Itxi",
|
||||
"open": "Ireki",
|
||||
"back": "Atzera",
|
||||
"next": "Hurrengoa",
|
||||
"previous": "Aurrekoa",
|
||||
"finish": "Amaitu",
|
||||
"continue": "Jarraitu",
|
||||
"confirm": "Berretsi",
|
||||
"expand": "Zabaldu",
|
||||
"collapse": "Tolestu"
|
||||
},
|
||||
"status": {
|
||||
"active": "Aktibo",
|
||||
"inactive": "Ez aktibo",
|
||||
"pending": "Zain",
|
||||
"completed": "Amaituta",
|
||||
"cancelled": "Bertan behera utzi",
|
||||
"draft": "Zirriborroa",
|
||||
"published": "Argitaratua",
|
||||
"archived": "Artxibatua",
|
||||
"enabled": "Gaituta",
|
||||
"disabled": "Desgaituta",
|
||||
"available": "Erabilgarri",
|
||||
"unavailable": "Ez erabilgarri",
|
||||
"in_progress": "Abian",
|
||||
"failed": "Huts egin du",
|
||||
"success": "Arrakasta",
|
||||
"warning": "Abisua",
|
||||
"error": "Errorea",
|
||||
"info": "Informazioa",
|
||||
"undefined": "Zehaztu gabe",
|
||||
"no_rating": "Baloraziorik ez",
|
||||
"disconnected": "Deskonektatuta",
|
||||
"no_realtime_connection": "Denbora errealeko konexiorik ez"
|
||||
},
|
||||
"time": {
|
||||
"today": "Gaur",
|
||||
"yesterday": "Atzo",
|
||||
"tomorrow": "Bihar",
|
||||
"this_week": "Aste honetan",
|
||||
"last_week": "Azken astean",
|
||||
"next_week": "Hurrengo astean",
|
||||
"this_month": "Hilabete honetan",
|
||||
"last_month": "Azken hilabetean",
|
||||
"next_month": "Hurrengo hilabetean",
|
||||
"this_year": "Urte honetan",
|
||||
"last_year": "Azken urtean",
|
||||
"next_year": "Hurrengo urtean",
|
||||
"morning": "Goiza",
|
||||
"afternoon": "Arratsaldea",
|
||||
"evening": "Iluntzea",
|
||||
"night": "Gaua",
|
||||
"now": "Orain",
|
||||
"recently": "Duela gutxi",
|
||||
"soon": "Laster",
|
||||
"later": "Geroago"
|
||||
},
|
||||
"units": {
|
||||
"kg": "kg",
|
||||
"g": "g",
|
||||
"l": "l",
|
||||
"ml": "ml",
|
||||
"pieces": "zatiak",
|
||||
"units": "unitateak",
|
||||
"portions": "zatiak",
|
||||
"minutes": "minutuak",
|
||||
"hours": "orduak",
|
||||
"days": "egunak",
|
||||
"weeks": "asteak",
|
||||
"months": "hilabeteak",
|
||||
"years": "urteak"
|
||||
},
|
||||
"categories": {
|
||||
"bread": "Ogiak",
|
||||
"pastry": "Gozogintza",
|
||||
"cake": "Tartoak",
|
||||
"cookie": "Galletak",
|
||||
"other": "Besteak",
|
||||
"flour": "Irinak",
|
||||
"dairy": "Esnekiak",
|
||||
"eggs": "Arrautzak",
|
||||
"fats": "Gantzak",
|
||||
"sugar": "Azukreak",
|
||||
"yeast": "Legamiak",
|
||||
"spices": "Espezieak",
|
||||
"salted": "Gazidunak"
|
||||
},
|
||||
"priority": {
|
||||
"low": "Baxua",
|
||||
"normal": "Normala",
|
||||
"medium": "Ertaina",
|
||||
"high": "Altua",
|
||||
"urgent": "Larria",
|
||||
"critical": "Kritikoa",
|
||||
"undefined": "Lehentasuna zehaztu gabe"
|
||||
},
|
||||
"difficulty": {
|
||||
"easy": "Erraza",
|
||||
"medium": "Ertaina",
|
||||
"hard": "Zaila",
|
||||
"expert": "Adituarena"
|
||||
},
|
||||
"payment_methods": {
|
||||
"cash": "Dirua",
|
||||
"card": "Txartela",
|
||||
"transfer": "Transferentzia",
|
||||
"other": "Besteak"
|
||||
},
|
||||
"delivery_methods": {
|
||||
"pickup": "Hartzera",
|
||||
"delivery": "Etxera banatzea"
|
||||
},
|
||||
"weekdays": {
|
||||
"monday": "Astelehena",
|
||||
"tuesday": "Asteartea",
|
||||
"wednesday": "Asteazkena",
|
||||
"thursday": "Osteguna",
|
||||
"friday": "Ostirala",
|
||||
"saturday": "Larunbata",
|
||||
"sunday": "Igandea"
|
||||
},
|
||||
"months": {
|
||||
"january": "Urtarrila",
|
||||
"february": "Otsaila",
|
||||
"march": "Martxoa",
|
||||
"april": "Apirila",
|
||||
"may": "Maiatza",
|
||||
"june": "Ekaina",
|
||||
"july": "Uztaila",
|
||||
"august": "Abuztua",
|
||||
"september": "Iraila",
|
||||
"october": "Urria",
|
||||
"november": "Azaroa",
|
||||
"december": "Abendua"
|
||||
},
|
||||
"forms": {
|
||||
"required": "Beharrezkoa",
|
||||
"optional": "Aukerakoa",
|
||||
"loading": "Kargatzen...",
|
||||
"no_data": "Ez dago daturik",
|
||||
"no_results": "Ez da emaitzarik aurkitu",
|
||||
"empty_state": "Ez dago elementurik erakusteko",
|
||||
"select_option": "Aukera hautatu",
|
||||
"enter_text": "Testua sartu",
|
||||
"choose_file": "Fitxategia aukeratu",
|
||||
"drag_drop": "Arrastatu eta jaregin hemen",
|
||||
"or": "edo",
|
||||
"no_terms": "Baldintzarik zehaztu gabe",
|
||||
"search_placeholder": "Bilatu..."
|
||||
},
|
||||
"table": {
|
||||
"no_data": "Ez dago daturik erakusteko",
|
||||
"loading": "Datuak kargatzen...",
|
||||
"error": "Errorea datuak kargatzean",
|
||||
"rows_per_page": "Errenkadak orrialdepo",
|
||||
"showing": "Erakusten",
|
||||
"of": "-tik",
|
||||
"entries": "sarrerak",
|
||||
"page": "Orrialdea",
|
||||
"first": "Lehena",
|
||||
"last": "Azkena",
|
||||
"sort_asc": "Ordenatu gorantz",
|
||||
"sort_desc": "Ordenatu beherantz"
|
||||
},
|
||||
"alerts": {
|
||||
"confirm_delete": "Ziur zaude elementu hau ezabatu nahi duzula?",
|
||||
"confirm_action": "Ziur zaude ekintza hau egin nahi duzula?",
|
||||
"unsaved_changes": "Gorde gabeko aldaketak dituzu. Ziur zaude irten nahi duzula?",
|
||||
"success_save": "Ongi gorde da",
|
||||
"success_delete": "Ongi ezabatu da",
|
||||
"success_update": "Ongi eguneratu da",
|
||||
"success_create": "Ongi sortu da",
|
||||
"operation_completed": "Eragiketa ongi burutu da"
|
||||
},
|
||||
"accessibility": {
|
||||
"close": "Itxi",
|
||||
"menu": "Nabigazio nagusia",
|
||||
"open_menu": "Menua ireki",
|
||||
"close_menu": "Menua itxi",
|
||||
"toggle": "Aldatu",
|
||||
"expand": "Zabaldu",
|
||||
"collapse": "Tolestu",
|
||||
"loading": "Kargatzen",
|
||||
"image": "Irudia",
|
||||
"button": "Botoia",
|
||||
"link": "Esteka",
|
||||
"tooltip": "Informazio gehigarria",
|
||||
"search": "Aplikazioan bilatu"
|
||||
}
|
||||
}
|
||||
74
frontend/src/locales/eu/dashboard.json
Normal file
74
frontend/src/locales/eu/dashboard.json
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"title": "Aginte Panela",
|
||||
"subtitle": "Zure okindegiaren eragiketen ikuspegi orokorra",
|
||||
"stats": {
|
||||
"sales_today": "Gaurko Salmentak",
|
||||
"pending_orders": "Eskaera Zain",
|
||||
"stock_alerts": "Stock Alertak",
|
||||
"production_efficiency": "Ekoizpen Eraginkortasuna",
|
||||
"revenue_growth": "Diru-sarrera Hazkundea",
|
||||
"customer_satisfaction": "Bezeroaren Gogobetetasuna",
|
||||
"inventory_turnover": "Inbentario Biraketa",
|
||||
"daily_profit": "Eguneko Irabazia",
|
||||
"products_sold": "Saldutako Produktuak"
|
||||
},
|
||||
"trends": {
|
||||
"vs_yesterday": "% atzokoarekin alderatuta",
|
||||
"vs_last_week": "% azken astearekin alderatuta",
|
||||
"vs_last_month": "% azken hilarekin alderatuta",
|
||||
"growth": "hazkundea",
|
||||
"decrease": "beherakada",
|
||||
"stable": "egonkorra"
|
||||
},
|
||||
"sections": {
|
||||
"critical_stats": "Estatistika Kritikoak",
|
||||
"real_time_alerts": "Denbora Errealeko Alertak",
|
||||
"procurement_today": "Gaurko Erosketak",
|
||||
"production_today": "Gaurko Ekoizpena",
|
||||
"recent_activity": "Azken Jarduera",
|
||||
"quick_actions": "Ekintza Azkarrak"
|
||||
},
|
||||
"quick_actions": {
|
||||
"add_new_bakery": "Okindegi Berria Gehitu",
|
||||
"create_order": "Eskaera Sortu",
|
||||
"start_production": "Ekoizpena Hasi",
|
||||
"check_inventory": "Inbentarioa Begiratu",
|
||||
"view_reports": "Txostenak Ikusi",
|
||||
"manage_staff": "Langilea Kudeatu"
|
||||
},
|
||||
"alerts": {
|
||||
"low_stock": "Stock Baxua",
|
||||
"production_delay": "Ekoizpen Atzerapena",
|
||||
"quality_issue": "Kalitate Arazoa",
|
||||
"equipment_maintenance": "Ekipo Mantentze",
|
||||
"order_pending": "Eskaera Zain",
|
||||
"delivery_due": "Entrega Atzeratua"
|
||||
},
|
||||
"messages": {
|
||||
"welcome": "Ongi etorri berriro",
|
||||
"good_morning": "Egun on",
|
||||
"good_afternoon": "Arratsalde on",
|
||||
"good_evening": "Iluntzeko on",
|
||||
"no_data": "Ez dago daturik",
|
||||
"loading": "Aginte panelaren datuak kargatzen...",
|
||||
"error_loading": "Errorea datuak kargatzean",
|
||||
"last_updated": "Azken eguneraketa",
|
||||
"auto_refresh": "Eguneraketa automatikoa",
|
||||
"more_than_yesterday": "atzo baino gehiago",
|
||||
"require_attention": "Arreta behar dute",
|
||||
"more_units": "unitate gehiago",
|
||||
"action_required": "Ekintza beharrezkoa",
|
||||
"manage_organizations": "Zure erakundeak kudeatu",
|
||||
"setup_new_business": "Negozio berri bat hutsetik konfiguratu",
|
||||
"active_organizations": "Erakunde Aktiboak"
|
||||
},
|
||||
"time_periods": {
|
||||
"today": "Gaur",
|
||||
"this_week": "Aste Hau",
|
||||
"this_month": "Hilabete Hau",
|
||||
"this_year": "Urte Hau",
|
||||
"last_7_days": "Azken 7 egun",
|
||||
"last_30_days": "Azken 30 egun",
|
||||
"last_90_days": "Azken 90 egun"
|
||||
}
|
||||
}
|
||||
80
frontend/src/locales/eu/production.json
Normal file
80
frontend/src/locales/eu/production.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"title": "Ekoizpena",
|
||||
"subtitle": "Zure okindegiaren ekoizpena kudeatu",
|
||||
"production_status": {
|
||||
"PENDING": "Zain",
|
||||
"IN_PROGRESS": "Abian",
|
||||
"COMPLETED": "Amaituta",
|
||||
"CANCELLED": "Bertan behera utzi",
|
||||
"ON_HOLD": "Pausatuta",
|
||||
"QUALITY_CHECK": "Kalitate Kontrola",
|
||||
"FAILED": "Huts egin"
|
||||
},
|
||||
"production_priority": {
|
||||
"LOW": "Baxua",
|
||||
"MEDIUM": "Ertaina",
|
||||
"HIGH": "Altua",
|
||||
"URGENT": "Larria"
|
||||
},
|
||||
"batch_status": {
|
||||
"PLANNED": "Planifikatuta",
|
||||
"IN_PROGRESS": "Abian",
|
||||
"COMPLETED": "Amaituta",
|
||||
"CANCELLED": "Bertan behera utzi",
|
||||
"ON_HOLD": "Pausatuta"
|
||||
},
|
||||
"quality_check_status": {
|
||||
"PENDING": "Zain",
|
||||
"IN_PROGRESS": "Abian",
|
||||
"PASSED": "Onartuta",
|
||||
"FAILED": "Baztertuta",
|
||||
"REQUIRES_ATTENTION": "Arreta Behar du"
|
||||
},
|
||||
"fields": {
|
||||
"batch_number": "Lote Zenbakia",
|
||||
"production_date": "Ekoizpen Data",
|
||||
"planned_quantity": "Planifikatutako Kantitatea",
|
||||
"actual_quantity": "Benetako Kantitatea",
|
||||
"yield_percentage": "Errendimendu Ehunekoa",
|
||||
"priority": "Lehentasuna",
|
||||
"assigned_staff": "Esleitutako Langilea",
|
||||
"production_notes": "Ekoizpen Oharrak",
|
||||
"quality_score": "Kalitate Puntuazioa",
|
||||
"quality_notes": "Kalitate Oharrak",
|
||||
"defect_rate": "Akats Tasa",
|
||||
"rework_required": "Berrlana Behar",
|
||||
"waste_quantity": "Hondakin Kantitatea",
|
||||
"waste_reason": "Hondakin Arrazoia",
|
||||
"efficiency": "Eraginkortasuna",
|
||||
"material_cost": "Material Kostua",
|
||||
"labor_cost": "Lan Kostua",
|
||||
"overhead_cost": "Kostu Orokorra",
|
||||
"total_cost": "Kostu Osoa",
|
||||
"cost_per_unit": "Unitateko Kostua"
|
||||
},
|
||||
"actions": {
|
||||
"start_production": "Ekoizpena Hasi",
|
||||
"complete_batch": "Lotea Amaitu",
|
||||
"pause_production": "Ekoizpena Pausatu",
|
||||
"cancel_batch": "Lotea Ezeztatu",
|
||||
"quality_check": "Kalitate Kontrola",
|
||||
"create_batch": "Lotea Sortu",
|
||||
"view_details": "Xehetasunak Ikusi",
|
||||
"edit_batch": "Lotea Editatu",
|
||||
"duplicate_batch": "Lotea Bikoiztu"
|
||||
},
|
||||
"labels": {
|
||||
"current_production": "Uneko Ekoizpena",
|
||||
"production_queue": "Ekoizpen Ilara",
|
||||
"completed_today": "Gaur Amaitutakoak",
|
||||
"efficiency_rate": "Eraginkortasun Tasa",
|
||||
"quality_score": "Kalitate Puntuazioa",
|
||||
"active_batches": "Lote Aktiboak",
|
||||
"pending_quality_checks": "Kalitate Kontrol Zain"
|
||||
},
|
||||
"descriptions": {
|
||||
"production_efficiency": "Uneko ekoizpenaren eraginkortasun ehunekoa",
|
||||
"quality_average": "Azken loteen batez besteko kalitate puntuazioa",
|
||||
"waste_reduction": "Hondakin murrizketa aurreko hilarekin alderatuta"
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,19 @@ import suppliersEs from './es/suppliers.json';
|
||||
import ordersEs from './es/orders.json';
|
||||
import recipesEs from './es/recipes.json';
|
||||
import errorsEs from './es/errors.json';
|
||||
import dashboardEs from './es/dashboard.json';
|
||||
import productionEs from './es/production.json';
|
||||
|
||||
// English translations
|
||||
import commonEn from './en/common.json';
|
||||
import recipesEn from './en/recipes.json';
|
||||
import dashboardEn from './en/dashboard.json';
|
||||
import productionEn from './en/production.json';
|
||||
|
||||
// Basque translations
|
||||
import commonEu from './eu/common.json';
|
||||
import dashboardEu from './eu/dashboard.json';
|
||||
import productionEu from './eu/production.json';
|
||||
|
||||
// Translation resources by language
|
||||
export const resources = {
|
||||
@@ -19,11 +32,24 @@ export const resources = {
|
||||
orders: ordersEs,
|
||||
recipes: recipesEs,
|
||||
errors: errorsEs,
|
||||
dashboard: dashboardEs,
|
||||
production: productionEs,
|
||||
},
|
||||
en: {
|
||||
common: commonEn,
|
||||
recipes: recipesEn,
|
||||
dashboard: dashboardEn,
|
||||
production: productionEn,
|
||||
},
|
||||
eu: {
|
||||
common: commonEu,
|
||||
dashboard: dashboardEu,
|
||||
production: productionEu,
|
||||
},
|
||||
};
|
||||
|
||||
// Supported languages
|
||||
export const supportedLanguages = ['es'] as const;
|
||||
export const supportedLanguages = ['es', 'en', 'eu'] as const;
|
||||
export type SupportedLanguage = typeof supportedLanguages[number];
|
||||
|
||||
// Default language
|
||||
@@ -38,10 +64,24 @@ export const languageConfig = {
|
||||
flag: '🇪🇸',
|
||||
rtl: false,
|
||||
},
|
||||
en: {
|
||||
name: 'English',
|
||||
nativeName: 'English',
|
||||
code: 'en',
|
||||
flag: '🇺🇸',
|
||||
rtl: false,
|
||||
},
|
||||
eu: {
|
||||
name: 'Euskera',
|
||||
nativeName: 'Euskera',
|
||||
code: 'eu',
|
||||
flag: '🏴',
|
||||
rtl: false,
|
||||
},
|
||||
};
|
||||
|
||||
// Namespaces available in translations
|
||||
export const namespaces = ['common', 'auth', 'inventory', 'foodSafety', 'suppliers', 'orders', 'recipes', 'errors'] as const;
|
||||
export const namespaces = ['common', 'auth', 'inventory', 'foodSafety', 'suppliers', 'orders', 'recipes', 'errors', 'dashboard', 'production'] as const;
|
||||
export type Namespace = typeof namespaces[number];
|
||||
|
||||
// Helper function to get language display name
|
||||
|
||||
Reference in New Issue
Block a user