Improve the frontend 2

This commit is contained in:
Urtzi Alfaro
2025-10-29 06:58:05 +01:00
parent 858d985c92
commit 36217a2729
98 changed files with 6652 additions and 4230 deletions

View File

@@ -31,11 +31,24 @@
"energy_usage": "Consumo Energético",
"temperature": "Temperatura",
"target_temperature": "Temperatura Objetivo",
"current_temperature": "Temperatura Actual",
"power": "Potencia",
"capacity": "Capacidad",
"weight": "Peso",
"parts": "Repuestos",
"utilization_today": "Utilización Hoy",
"edit": "Editar",
"notes": "Notas",
"date": "Fecha",
"technician": "Técnico",
"downtime": "Parada",
"maintenance_type": "Tipo de Mantenimiento",
"priority": "Prioridad",
"scheduled_date": "Fecha Programada",
"time": "Hora",
"duration": "Duración (horas)",
"parts_needed": "Repuestos Necesarios",
"description": "Descripción",
"specifications": {
"power": "Potencia",
"capacity": "Capacidad",
@@ -49,13 +62,16 @@
"add_equipment": "Agregar Equipo",
"edit_equipment": "Editar Equipo",
"delete_equipment": "Eliminar Equipo",
"delete": "Eliminar",
"schedule_maintenance": "Programar Mantenimiento",
"schedule": "Programar",
"view_maintenance_history": "Ver Historial de Mantenimiento",
"acknowledge_alert": "Reconocer Alerta",
"view_details": "Ver Detalles",
"view_history": "Ver Historial",
"close": "Cerrar",
"cost": "Costo"
"cost": "Costo",
"edit": "Editar"
},
"labels": {
"total_equipment": "Total de Equipos",
@@ -73,14 +89,23 @@
"equipment_info": "Información de Equipo",
"performance": "Rendimiento",
"maintenance": "Información de Mantenimiento",
"maintenance_info": "Información de Mantenimiento",
"specifications": "Especificaciones",
"temperature_monitoring": "Monitoreo de Temperatura",
"notes": "Notas",
"scheduling": "Programación",
"details": "Detalles",
"create_equipment_subtitle": "Completa los detalles del nuevo equipo"
},
"placeholders": {
"name": "Introduce el nombre del equipo",
"model": "Introduce el modelo del equipo",
"serial_number": "Introduce el número de serie",
"location": "Introduce la ubicación"
"location": "Introduce la ubicación",
"notes": "Notas y observaciones adicionales",
"technician": "Nombre del técnico asignado",
"parts_needed": "Lista de repuestos y materiales necesarios",
"maintenance_description": "Descripción del trabajo a realizar"
},
"descriptions": {
"equipment_efficiency": "Porcentaje de eficiencia actual de los equipos",
@@ -96,12 +121,24 @@
"records": "registros",
"overdue": "Atrasado",
"scheduled": "Programado",
"no_history": "No hay historial de mantenimiento",
"no_history_description": "Los registros de mantenimiento aparecerán aquí cuando se realicen operaciones",
"type": {
"preventive": "Preventivo",
"corrective": "Correctivo",
"emergency": "Emergencia"
}
},
"priority": {
"low": "Baja",
"medium": "Media",
"high": "Alta",
"urgent": "Urgente"
},
"validation": {
"required": "Este campo es requerido",
"must_be_positive": "Debe ser mayor que 0"
},
"alerts": {
"title": "Alertas",
"unread_alerts": "alertas no leídas",

View File

@@ -0,0 +1,100 @@
{
"page_title": "Configuración de Modelos IA",
"page_description": "Gestiona el entrenamiento y configuración de modelos de predicción para cada ingrediente",
"status": {
"active": "Activo",
"no_model": "Sin Modelo",
"training": "Entrenando",
"retraining": "Reentrenamiento",
"error": "Error"
},
"retrain": {
"title": "Reentrenar Modelo",
"subtitle": "Actualiza el modelo de predicción con datos recientes",
"modes": {
"quick": "Rápido",
"preset": "Preconfigurado",
"advanced": "Avanzado"
},
"quick": {
"title": "Reentrenamiento Rápido",
"ingredient": "Ingrediente",
"current_accuracy": "Precisión Actual",
"last_training": "Último Entrenamiento",
"description": "Descripción",
"description_text": "El reentrenamiento rápido utiliza la misma configuración del modelo actual pero con los datos más recientes. Esto mantiene la precisión del modelo actualizada sin cambiar su comportamiento."
},
"preset": {
"title": "Seleccionar Configuración",
"ingredient": "Ingrediente",
"select": "Tipo de Producto",
"description": "Descripción",
"seasonality_mode": "Modo de Estacionalidad",
"daily": "Estacionalidad Diaria",
"weekly": "Estacionalidad Semanal",
"yearly": "Estacionalidad Anual"
},
"advanced": {
"title": "Configuración Avanzada",
"ingredient": "Ingrediente",
"start_date": "Fecha de Inicio",
"start_date_help": "Dejar vacío para usar todos los datos disponibles",
"end_date": "Fecha de Fin",
"end_date_help": "Dejar vacío para usar hasta la fecha actual",
"seasonality_mode": "Modo de Estacionalidad",
"seasonality_mode_help": "Aditivo: cambios constantes. Multiplicativo: cambios proporcionales.",
"seasonality_patterns": "Patrones Estacionales",
"daily_seasonality": "Estacionalidad Diaria",
"daily_seasonality_help": "Patrones que se repiten cada día",
"weekly_seasonality": "Estacionalidad Semanal",
"weekly_seasonality_help": "Patrones que se repiten cada semana",
"yearly_seasonality": "Estacionalidad Anual",
"yearly_seasonality_help": "Patrones que se repiten cada año (festividades, temporadas)"
}
},
"presets": {
"standard": {
"name": "Panadería Estándar",
"description": "Recomendado para productos con patrones semanales y ciclos diarios. Ideal para pan y productos horneados diarios."
},
"seasonal": {
"name": "Productos Estacionales",
"description": "Para productos con demanda estacional o de temporada. Incluye patrones anuales para festividades y eventos especiales."
},
"stable": {
"name": "Demanda Estable",
"description": "Para ingredientes básicos con demanda constante. Mínima estacionalidad."
},
"custom": {
"name": "Personalizado",
"description": "Configuración avanzada con control total sobre los parámetros."
}
},
"seasonality": {
"additive": "Aditivo",
"multiplicative": "Multiplicativo"
},
"actions": {
"train": "Entrenar",
"retrain": "Reentrenar",
"view_details": "Ver Detalles",
"cancel": "Cancelar",
"save": "Guardar"
},
"messages": {
"training_started": "Entrenamiento iniciado para {{name}}",
"training_error": "Error al iniciar el entrenamiento",
"retraining_started": "Reentrenamiento iniciado para {{name}}",
"retraining_error": "Error al reentrenar el modelo"
}
}

View File

@@ -97,6 +97,7 @@
"address_info": "Información de Dirección",
"commercial_info": "Información Comercial",
"additional_info": "Información Adicional",
"price_list": "Lista de Precios",
"performance": "Rendimiento y Estadísticas",
"notes": "Notas"
},
@@ -129,12 +130,92 @@
"actions": {
"approve": "Aprobar Proveedor",
"reject": "Rechazar Proveedor",
"delete": "Eliminar Proveedor"
"delete": "Eliminar Proveedor",
"manage_products": "Gestionar Productos"
},
"confirm": {
"approve": "¿Estás seguro de que quieres aprobar este proveedor? Esto activará el proveedor para su uso.",
"reject": "¿Estás seguro de que quieres rechazar este proveedor? Esta acción se puede deshacer más tarde."
},
"price_list": {
"title": "Lista de Precios de Productos",
"subtitle": "{{count}} productos disponibles de este proveedor",
"modal": {
"title_create": "Añadir Producto al Proveedor",
"title_edit": "Editar Precio de Producto",
"subtitle_create": "Añadir un nuevo producto que este proveedor puede suministrar",
"subtitle_edit": "Actualizar precios y detalles del producto"
},
"sections": {
"product_selection": "Selección de Producto",
"pricing": "Información de Precios",
"validity": "Validez del Precio",
"product_details": "Detalles del Producto"
},
"fields": {
"product": "Producto",
"product_code": "Código de Producto del Proveedor",
"unit_price": "Precio Unitario",
"price_per_unit": "Precio por Unidad",
"unit_of_measure": "Unidad de Medida",
"minimum_order": "Cantidad Mínima de Pedido",
"effective_date": "Fecha de Vigencia",
"expiry_date": "Fecha de Vencimiento",
"is_active": "Activo",
"brand": "Marca",
"packaging_size": "Tamaño del Envase",
"origin_country": "País de Origen",
"shelf_life_days": "Vida Útil (días)",
"storage_requirements": "Requisitos de Almacenamiento"
},
"placeholders": {
"product_code": "ej., PROV-HARINA-001",
"brand": "Nombre de la marca",
"packaging_size": "ej., Sacos de 25kg, Botellas de 1L",
"origin_country": "ej., España, Francia",
"storage_requirements": "ej., Almacenar en lugar fresco y seco"
},
"help": {
"product_locked": "El producto no se puede cambiar después de la creación",
"select_product": "Selecciona un producto de tu inventario",
"product_code": "Código interno del proveedor para este producto",
"unit_price": "Precio base por paquete/unidad",
"price_per_unit": "Precio calculado por unidad de medida",
"unit_of_measure": "Unidad utilizada para precios y pedidos",
"minimum_order": "Cantidad mínima requerida para realizar pedidos",
"effective_date": "Fecha en que este precio entra en vigencia",
"expiry_date": "Fecha de vencimiento opcional para este precio",
"is_active": "Activar o desactivar este elemento de la lista de precios",
"packaging_size": "ej., Sacos de 25kg, Botellas de 1L, 100 unidades por caja",
"shelf_life_days": "Número de días que el producto permanece fresco"
},
"columns": {
"product": "Producto",
"price": "Precio",
"min_order": "Pedido Mín.",
"validity": "Período de Validez",
"brand": "Marca",
"status": "Estado"
},
"actions": {
"add_product": "Añadir Producto",
"add_first_product": "Añadir Primer Producto"
},
"empty": {
"title": "Aún No Hay Productos",
"description": "Añade productos que este proveedor puede suministrar con sus precios"
},
"errors": {
"load_failed": "Error al cargar la lista de precios"
},
"validation": {
"price_positive": "El precio debe ser mayor que 0"
},
"delete": {
"title": "Eliminar Producto del Proveedor",
"description": "¿Estás seguro de que quieres eliminar {{product}} de la lista de precios de este proveedor?"
}
},
"delete": {
"title": "Eliminar Proveedor",
"subtitle": "¿Cómo te gustaría eliminar {name}?",