{
  "config": {
    "step": {
      "user": {
        "title": "Maintenance Supporter",
        "description": "Configure su sistema de gestión de mantenimiento.",
        "menu_options": {
          "create_object": "Crear objeto de mantenimiento",
          "create_from_template": "Crear desde plantilla",
          "global_setup": "Configuración global"
        }
      },
      "create_from_template": {
        "title": "Seleccionar categoría de plantilla",
        "description": "Elija una categoría para explorar las plantillas de mantenimiento predefinidas.",
        "data": {
          "template_category": "Categoría",
          "go_back": "Volver"
        },
        "data_description": {
          "go_back": "Volver al menú principal sin guardar."
        }
      },
      "template_select": {
        "title": "Seleccionar plantilla",
        "description": "Elija una plantilla de mantenimiento como punto de partida.",
        "data": {
          "template_id": "Plantilla",
          "go_back": "Volver"
        },
        "data_description": {
          "go_back": "Volver a la selección de categoría sin guardar."
        }
      },
      "template_customize": {
        "title": "Personalizar plantilla",
        "description": "Personalice la plantilla {template_name}. Incluye {task_count} tareas: {task_list}.",
        "data": {
          "name": "Nombre del objeto",
          "area_id": "Área",
          "manufacturer": "Fabricante",
          "model": "Modelo",
          "serial_number": "Número de serie",
          "documentation_url": "URL de manual / documentación",
          "notes": "Notas",
          "go_back": "Volver"
        },
        "data_description": {
          "name": "Un nombre para este objeto de mantenimiento.",
          "area_id": "El área donde se encuentra este objeto.",
          "manufacturer": "El fabricante del objeto.",
          "model": "El nombre o número de modelo.",
          "serial_number": "El número de serie del objeto.",
          "documentation_url": "Enlace opcional a un manual en PDF, página del fabricante o cualquier URL con información de referencia para este objeto.",
          "notes": "Notas libres sobre el objeto — números de pieza, procedimientos, recordatorios, etc.",
          "go_back": "Volver a la selección de plantilla sin guardar."
        }
      },
      "global_setup": {
        "title": "Configuración global",
        "description": "Configure los ajustes globales de mantenimiento.",
        "data": {
          "default_warning_days": "Días de aviso predeterminados",
          "notifications_enabled": "Activar notificaciones",
          "notify_service": "Servicio de notificación"
        },
        "data_description": {
          "default_warning_days": "Número de días antes del vencimiento para mostrar un aviso.",
          "notifications_enabled": "Enviar notificaciones cuando las tareas de mantenimiento están próximas a vencer.",
          "notify_service": "El servicio de notificación a utilizar (ej.: notify.mobile_app_phone)."
        }
      },
      "create_object": {
        "title": "Crear objeto de mantenimiento",
        "description": "Defina un dispositivo o equipo para gestionar su mantenimiento.",
        "data": {
          "name": "Nombre del objeto",
          "area_id": "Área",
          "manufacturer": "Fabricante",
          "model": "Modelo",
          "serial_number": "Número de serie",
          "documentation_url": "URL de manual / documentación",
          "notes": "Notas",
          "installation_date": "Fecha de instalación",
          "warranty_expiry": "Vencimiento de garantía",
          "go_back": "Volver"
        },
        "data_description": {
          "name": "Un nombre único para este objeto de mantenimiento (ej.: 'Bomba piscina', 'Coche').",
          "area_id": "El área de su hogar donde se encuentra este objeto.",
          "manufacturer": "El fabricante del objeto.",
          "model": "El nombre o número de modelo.",
          "serial_number": "El número de serie del objeto.",
          "documentation_url": "Enlace opcional a un manual en PDF, página del fabricante o cualquier URL con información de referencia para este objeto.",
          "notes": "Notas libres sobre el objeto — números de pieza, procedimientos, recordatorios, etc.",
          "installation_date": "Fecha de instalación o compra de este objeto.",
          "warranty_expiry": "Cuándo vence la garantía del fabricante de este objeto.",
          "go_back": "Volver al menú principal sin guardar."
        }
      },
      "task_menu": {
        "title": "Tareas de mantenimiento",
        "description": "Agregue tareas de mantenimiento para {object_name}. Actualmente {task_count} tarea(s) definida(s).",
        "menu_options": {
          "add_task": "Agregar tarea de mantenimiento",
          "finish": "Finalizar configuración"
        }
      },
      "add_task": {
        "title": "Agregar tarea de mantenimiento",
        "description": "Defina una tarea de mantenimiento para {object_name}.",
        "data": {
          "name": "Nombre de la tarea",
          "type": "Tipo de mantenimiento",
          "schedule_type": "Tipo de programación",
          "custom_icon": "Icono de tarea",
          "go_back": "Volver",
          "reading_unit": "Unidad de lectura (para tareas de lectura, p. ej. kWh)"
        },
        "data_description": {
          "name": "Un nombre descriptivo para esta tarea (ej.: 'Limpieza de filtro', 'Cambio de aceite').",
          "type": "La categoría del trabajo de mantenimiento.",
          "schedule_type": "Cómo se debe programar esta tarea.",
          "custom_icon": "Icono personalizado opcional para esta tarea (p. ej., mdi:oil, mdi:filter-variant).",
          "go_back": "Volver al menú de tareas sin guardar."
        }
      },
      "time_based": {
        "title": "Programación temporal",
        "description": "Configure el intervalo de tiempo para esta tarea de mantenimiento.",
        "data": {
          "interval_days": "Intervalo",
          "interval_unit": "Unidad de intervalo",
          "last_performed": "Última ejecución",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "interval_anchor": "Anclaje de intervalo"
        },
        "data_description": {
          "interval_days": "Con qué frecuencia se repite este mantenimiento, combinado con la unidad de intervalo.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "last_performed": "Fecha del último mantenimiento realizado. Dejar vacío si nunca se realizó.",
          "warning_days": "Número de días antes del vencimiento para mostrar un aviso.",
          "go_back": "Volver a la creación de tareas sin guardar.",
          "interval_anchor": "Cómo se calcula la próxima fecha de vencimiento después de completar. 'Planificado' evita la deriva del calendario anclándose a la fecha planificada."
        }
      },
      "one_time": {
        "title": "Tarea única",
        "description": "Configura una única tarea de mantenimiento no recurrente. Se archiva una vez completada.",
        "data": {
          "due_date": "Fecha de vencimiento",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver"
        },
        "data_description": {
          "due_date": "La fecha en que vence esta tarea única.",
          "warning_days": "Número de días antes del vencimiento para mostrar un aviso.",
          "go_back": "Volver a la creación de tareas sin guardar."
        }
      },
      "calendar": {
        "title": "Programación por calendario",
        "description": "Configura una recurrencia basada en el calendario (días de la semana, n-ésimo día de la semana del mes o un día del mes).",
        "data": {
          "weekdays": "En estos días de la semana",
          "nth": "Qué aparición",
          "weekday": "Día de la semana",
          "day": "Día del mes",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "last_day": "Último día del mes",
          "business": "Solo días laborables",
          "offset": "Desplazamiento (días)",
          "last_performed": "Última realización"
        },
        "data_description": {
          "weekdays": "La tarea se repite cada día de la semana seleccionado.",
          "nth": "Qué aparición en el mes (p. ej., 1.ª, o Última).",
          "weekday": "El día de la semana para la regla del n-ésimo día (p. ej., sábado).",
          "day": "Día del mes (1-31; ajustado a la duración del mes).",
          "warning_days": "Número de días antes de la fecha de vencimiento para mostrar una advertencia.",
          "go_back": "Volver a la creación de tareas sin guardar.",
          "last_day": "Anula el número de día: vence el último día del mes.",
          "business": "Retrocede una fecha de fin de semana al viernes anterior (p. ej., último día laborable).",
          "offset": "Desplaza la fecha calculada ±N días (p. ej., -2 = dos días antes)."
        }
      },
      "sensor_select": {
        "title": "Seleccionar sensor disparador",
        "description": "Elija una entidad de Home Assistant para monitorear en esta tarea de mantenimiento.",
        "data": {
          "trigger_entity": "Entidad a monitorear",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_entity": "Seleccione la entidad sensor que debe activar esta tarea de mantenimiento.",
          "go_back": "Volver a la creación de tareas sin guardar."
        }
      },
      "sensor_attribute": {
        "title": "Seleccionar atributo",
        "description": "Elija qué valor monitorear de {entity_id}. Estado actual: {current_state} {unit}",
        "data": {
          "trigger_attribute": "Valor a monitorear",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_attribute": "Seleccione el estado de la entidad o un atributo específico a monitorear.",
          "go_back": "Volver a la selección de entidad sin guardar."
        }
      },
      "trigger_type": {
        "title": "Tipo de disparador",
        "description": "¿Cómo debe el valor del sensor activar el mantenimiento?",
        "data": {
          "trigger_type": "Tipo de disparador",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_type": "Umbral: se activa cuando el valor excede los límites. Contador: se activa después de acumular un valor objetivo. Cambio de estado: se activa después de un número de transiciones de estado.",
          "go_back": "Volver a la selección de atributo sin guardar."
        }
      },
      "trigger_threshold": {
        "title": "Configuración de umbral",
        "description": "Establezca los umbrales para **{entity_id}** ({attribute}).\nActual: **{current_value} {unit}** | Prom.: {average} | Rango: {minimum}–{maximum} ({data_period}d)\nUmbral superior sugerido: {suggested_above} | Umbral inferior sugerido: {suggested_below}",
        "data": {
          "trigger_above": "Activar cuando superior a",
          "trigger_below": "Activar cuando inferior a",
          "trigger_equals": "Activar cuando sea igual a",
          "trigger_not_equals": "Activar cuando sea distinto de",
          "trigger_for_minutes": "Durante al menos (minutos)",
          "interval_days": "Intervalo de seguridad",
          "interval_unit": "Unidad de intervalo",
          "trigger_combinator": "Combinar disparador e intervalo",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere"
        },
        "data_description": {
          "trigger_above": "Activar mantenimiento cuando el valor supere este umbral.",
          "trigger_below": "Activar mantenimiento cuando el valor caiga por debajo de este umbral.",
          "trigger_equals": "Activar el mantenimiento cuando el valor sea igual a este nivel.",
          "trigger_not_equals": "Activar el mantenimiento cuando el valor difiera de este nivel.",
          "trigger_for_minutes": "El valor debe superar el umbral durante este número de minutos antes de la activación.",
          "interval_days": "Intervalo de seguridad temporal opcional además del disparador de sensor.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "trigger_combinator": "El primero (predeterminado): el disparador o el intervalo transcurrido hace que la tarea venza. Ambos requeridos: la tarea solo vence cuando el disparador se activó y el intervalo transcurrió.",
          "warning_days": "Número de días antes del vencimiento para mostrar un aviso.",
          "go_back": "Volver a la selección de tipo de trigger sin guardar."
        }
      },
      "trigger_counter": {
        "title": "Configuración de contador",
        "description": "Establezca el valor objetivo del contador para {entity_id} ({attribute}). Actual: {current_value} {unit}.",
        "data": {
          "trigger_target_value": "Valor objetivo",
          "trigger_delta_mode": "Modo delta (contar cambios, no valor absoluto)",
          "interval_days": "Intervalo de seguridad",
          "interval_unit": "Unidad de intervalo",
          "trigger_combinator": "Combinar disparador e intervalo",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere",
          "trigger_baseline_value": "Valor inicial (opcional)"
        },
        "data_description": {
          "trigger_target_value": "Activar mantenimiento cuando se alcance este valor acumulado.",
          "trigger_delta_mode": "Si está activado, cuenta la diferencia respecto a una base en lugar del valor absoluto.",
          "interval_days": "Intervalo de seguridad temporal opcional además del disparador de contador.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "trigger_combinator": "El primero (predeterminado): el disparador o el intervalo transcurrido hace que la tarea venza. Ambos requeridos: la tarea solo vence cuando el disparador se activó y el intervalo transcurrió.",
          "warning_days": "Número de días antes del vencimiento para mostrar un aviso.",
          "go_back": "Volver a la selección de tipo de trigger sin guardar."
        }
      },
      "trigger_state_change": {
        "title": "Configuración de cambio de estado",
        "description": "Cuente las transiciones de estado de {entity_id}.",
        "data": {
          "trigger_from_state": "Desde estado (opcional)",
          "trigger_to_state": "Hacia estado (opcional)",
          "trigger_target_changes": "Número de cambios para activar",
          "trigger_for_minutes": "Durante al menos (minutos)",
          "interval_days": "Intervalo de seguridad",
          "interval_unit": "Unidad de intervalo",
          "trigger_combinator": "Combinar disparador e intervalo",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere"
        },
        "data_description": {
          "trigger_from_state": "Contar solo transiciones desde este estado. Dejar vacío para todos.",
          "trigger_to_state": "Contar solo transiciones hacia este estado. Dejar vacío para todos.",
          "trigger_target_changes": "Número de cambios de estado correspondientes antes de activar el mantenimiento.",
          "interval_days": "Intervalo de seguridad temporal opcional además del disparador de cambio de estado.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "trigger_combinator": "El primero (predeterminado): el disparador o el intervalo transcurrido hace que la tarea venza. Ambos requeridos: la tarea solo vence cuando el disparador se activó y el intervalo transcurrió.",
          "warning_days": "Número de días antes del vencimiento para mostrar un aviso.",
          "go_back": "Volver a la selección de tipo de trigger sin guardar.",
          "trigger_for_minutes": "El nuevo estado debe mantenerse este tiempo antes de que el cambio cuente. 0 = contar de inmediato."
        }
      },
      "trigger_runtime": {
        "title": "Configuración de tiempo de funcionamiento",
        "description": "Registre el tiempo de funcionamiento acumulado de {entity_id}. El mantenimiento se activa cuando el tiempo total de funcionamiento alcanza las horas objetivo.",
        "data": {
          "trigger_runtime_hours": "Tiempo de funcionamiento objetivo (horas)",
          "trigger_on_states": "Estados activos (separados por comas)",
          "interval_days": "Intervalo de seguridad",
          "interval_unit": "Unidad de intervalo",
          "trigger_combinator": "Combinar disparador e intervalo",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere"
        },
        "data_description": {
          "trigger_runtime_hours": "Activar mantenimiento después de este número de horas de funcionamiento acumulado.",
          "trigger_on_states": "Qué estados del sensor se consideran 'activo'. Dejar vacío para predeterminado: on, 1, true. Ejemplo: in_use, running",
          "interval_days": "Intervalo de seguridad temporal opcional además del disparador de tiempo de funcionamiento.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "trigger_combinator": "El primero (predeterminado): el disparador o el intervalo transcurrido hace que la tarea venza. Ambos requeridos: la tarea solo vence cuando el disparador se activó y el intervalo transcurrió.",
          "warning_days": "Número de días antes del vencimiento para mostrar un aviso.",
          "go_back": "Volver a la selección de tipo de trigger sin guardar."
        }
      },
      "compound_logic": {
        "title": "Disparador compuesto",
        "description": "Elija cómo se deben combinar múltiples condiciones.",
        "data": {
          "compound_logic": "Lógica",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere"
        },
        "data_description": {
          "compound_logic": "Y = todas las condiciones deben activarse. O = cualquier condición activa.",
          "go_back": "Volver a la selección de tipo de trigger sin guardar."
        }
      },
      "compound_condition_entity": {
        "title": "Condición #{condition_num} — Entidad",
        "description": "Seleccione la entidad para esta condición.",
        "data": {
          "trigger_entity": "Entidad",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_entity": "La entidad del sensor a monitorizar para esta condición.",
          "go_back": "Volver al paso anterior sin guardar."
        }
      },
      "compound_condition_type": {
        "title": "Condición #{condition_num} — Tipo",
        "description": "¿Cómo debe evaluar esta condición al sensor?",
        "data": {
          "trigger_type": "Tipo de disparador",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_type": "El método utilizado para determinar cuándo se activa esta condición.",
          "go_back": "Volver a la selección de entidad sin guardar."
        }
      },
      "compound_condition_threshold": {
        "title": "Condición — Umbral",
        "data": {
          "trigger_above": "Activar por encima de",
          "trigger_below": "Activar por debajo de",
          "trigger_equals": "Activar cuando sea igual a",
          "trigger_not_equals": "Activar cuando sea distinto de",
          "trigger_for_minutes": "Duración (minutos)",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_above": "Activar cuando el valor supere este umbral.",
          "trigger_below": "Activar cuando el valor caiga por debajo de este umbral.",
          "trigger_equals": "Activar el mantenimiento cuando el valor sea igual a este nivel.",
          "trigger_not_equals": "Activar el mantenimiento cuando el valor difiera de este nivel.",
          "trigger_for_minutes": "El valor debe permanecer más allá del umbral durante esta duración.",
          "go_back": "Volver a la selección de tipo de condición sin guardar."
        }
      },
      "compound_condition_counter": {
        "title": "Condición — Contador",
        "data": {
          "trigger_target_value": "Valor objetivo",
          "trigger_delta_mode": "Modo delta",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_target_value": "Activar cuando el valor acumulado alcance este objetivo.",
          "trigger_delta_mode": "Contar cambios desde una línea base en lugar del valor absoluto.",
          "go_back": "Volver a la selección de tipo de condición sin guardar."
        }
      },
      "compound_condition_state_change": {
        "title": "Condición — Cambio de estado",
        "data": {
          "trigger_from_state": "Desde estado",
          "trigger_to_state": "Hacia estado",
          "trigger_target_changes": "Número de cambios",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_from_state": "Solo contar transiciones desde este estado. Dejar vacío para cualquiera.",
          "trigger_to_state": "Solo contar transiciones hacia este estado. Dejar vacío para cualquiera.",
          "trigger_target_changes": "Número de cambios de estado coincidentes antes de activar.",
          "go_back": "Volver a la selección de tipo de condición sin guardar."
        }
      },
      "compound_condition_runtime": {
        "title": "Condición — Tiempo de ejecución",
        "data": {
          "trigger_runtime_hours": "Tiempo objetivo (horas)",
          "trigger_on_states": "Estados activos",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_runtime_hours": "Activar después de estas horas de tiempo acumulado.",
          "trigger_on_states": "Estados del sensor contados como 'activos'. Dejar vacío para predeterminado.",
          "go_back": "Volver a la selección de tipo de condición sin guardar."
        }
      },
      "compound_review": {
        "title": "Revisión del disparador compuesto",
        "description": "{condition_count} condición(es) configurada(s) con lógica {compound_logic}.",
        "data": {
          "compound_action": "Acción",
          "go_back": "Volver"
        },
        "data_description": {
          "go_back": "Volver a la selección de lógica sin guardar."
        }
      },
      "manual": {
        "title": "Programación manual",
        "description": "Esta tarea no tiene programación automática. Puede marcarla como vencida manualmente.",
        "data": {
          "warning_days": "Días de aviso antes del vencimiento",
          "notes": "Notas",
          "go_back": "Volver"
        },
        "data_description": {
          "warning_days": "Número de días antes del vencimiento para mostrar un aviso.",
          "notes": "Notas o instrucciones adicionales para esta tarea.",
          "go_back": "Volver a la creación de tareas sin guardar."
        }
      },
      "reconfigure": {
        "title": "Reconfigurar {name}",
        "description": "Actualizar la configuración de este objeto de mantenimiento.",
        "data": {
          "name": "Nombre del objeto",
          "area_id": "Área",
          "manufacturer": "Fabricante",
          "model": "Modelo",
          "serial_number": "Número de serie",
          "documentation_url": "URL de manual / documentación",
          "notes": "Notas",
          "installation_date": "Fecha de instalación",
          "warranty_expiry": "Vencimiento de garantía"
        },
        "data_description": {
          "name": "El nombre de este objeto de mantenimiento.",
          "area_id": "El área donde se encuentra este objeto.",
          "manufacturer": "El fabricante de este objeto.",
          "model": "El modelo de este objeto.",
          "serial_number": "El número de serie de este objeto.",
          "documentation_url": "Enlace opcional a un manual en PDF, página del fabricante o cualquier URL con información de referencia para este objeto.",
          "notes": "Notas libres sobre el objeto — números de pieza, procedimientos, recordatorios, etc.",
          "installation_date": "Cuándo se instaló este objeto.",
          "warranty_expiry": "Cuándo vence la garantía del fabricante de este objeto."
        }
      }
    },
    "error": {
      "name_exists": "Ya existe un objeto de mantenimiento con este nombre.",
      "no_tasks": "Se requiere al menos una tarea de mantenimiento.",
      "invalid_entity": "La entidad seleccionada no existe o no tiene datos numéricos.",
      "invalid_attribute": "El atributo seleccionado no está disponible en esta entidad.",
      "invalid_threshold": "Se debe establecer al menos un umbral (superior o inferior).",
      "invalid_due_date": "Se requiere una fecha de vencimiento para las tareas únicas.",
      "invalid_interval": "El intervalo debe ser un número positivo.",
      "min_exceeds_max": "El intervalo mínimo no debe superar el intervalo máximo.",
      "invalid_notify_service": "Formato del servicio de notificación no válido. Use 'notify.nombre_servicio' (ej.: notify.mobile_app_phone).",
      "notify_service_not_found": "Este servicio de notificación no se encontró en Home Assistant. Verifique el nombre del servicio.",
      "nfc_tag_duplicate": "Esta etiqueta NFC ya está vinculada a otra tarea."
    },
    "abort": {
      "already_configured": "Este objeto de mantenimiento ya está configurado.",
      "global_already_exists": "La configuración global ya está configurada.",
      "template_not_found": "La plantilla seleccionada no se encontró.",
      "missing_data": "No se proporcionaron los datos requeridos.",
      "reconfigure_successful": "Configuración actualizada correctamente.",
      "reconfigure_cancelled": "Reconfiguración cancelada."
    }
  },
  "options": {
    "step": {
      "init": {
        "title": "Opciones de mantenimiento",
        "description": "{object_info}",
        "menu_options": {
          "manage_tasks": "Gestionar tareas",
          "add_task": "Agregar nueva tarea",
          "object_settings": "Configuración del objeto",
          "done": "Listo"
        }
      },
      "global_init": {
        "title": "Configuración global",
        "description": "Configure los ajustes globales de mantenimiento.",
        "menu_options": {
          "general_settings": "Configuración general",
          "advanced_features": "Funciones avanzadas",
          "panel_access": "Acceso al panel",
          "budget_settings": "Configuración de presupuesto",
          "manage_groups": "Gestionar grupos",
          "notification_settings": "Configuración de notificaciones",
          "notification_actions": "Acciones interactivas",
          "test_notification": "Enviar notificación de prueba",
          "done": "Listo"
        }
      },
      "advanced_features": {
        "title": "Funciones avanzadas",
        "description": "Elija qué funciones avanzadas mostrar en la interfaz. Desactivar una función la oculta de la interfaz pero no elimina ningún dato.",
        "data": {
          "advanced_adaptive_visible": "Programación adaptativa",
          "advanced_predictions_visible": "Predicciones de sensor",
          "advanced_seasonal_visible": "Ajustes estacionales",
          "advanced_environmental_visible": "Correlación ambiental",
          "advanced_budget_visible": "Seguimiento de presupuesto",
          "advanced_groups_visible": "Grupos",
          "advanced_checklists_visible": "Listas de verificación",
          "advanced_schedule_time_visible": "Programación por hora"
        },
        "data_description": {
          "advanced_adaptive_visible": "Mostrar análisis EWA, Weibull y sugerencias de intervalo para las tareas.",
          "advanced_predictions_visible": "Mostrar análisis de degradación de sensor y gráficos de predicción de umbral.",
          "advanced_seasonal_visible": "Mostrar gráficos de factores estacionales y datos de ajuste mensual.",
          "advanced_environmental_visible": "Mostrar ajustes de correlación ambiental (temperatura, humedad).",
          "advanced_budget_visible": "Mostrar seguimiento de presupuesto mensual/anual y alertas.",
          "advanced_groups_visible": "Mostrar la gestión de grupos de mantenimiento.",
          "advanced_checklists_visible": "Mostrar listas de verificación para la realización paso a paso de las tareas.",
          "advanced_schedule_time_visible": "Permite que las tareas venzan a una hora específica en lugar de medianoche."
        }
      },
      "panel_access": {
        "title": "Acceso al panel",
        "description": "Los administradores siempre tienen acceso completo. Para delegar crear, editar y eliminar a no administradores específicos, activa la opción de abajo y selecciónalos — los demás solo ven Completar y Omitir. Se encontraron {user_count} usuario(s) no administrador(es).",
        "data": {
          "operator_write_enabled": "Permitir a los usuarios seleccionados crear, editar y eliminar",
          "admin_panel_user_ids": "Usuarios con acceso completo al panel"
        },
        "data_description": {
          "operator_write_enabled": "Desactivado (predeterminado): solo los administradores pueden modificar el contenido. Activado: los usuarios seleccionados abajo también obtienen acceso completo.",
          "admin_panel_user_ids": "Los usuarios seleccionados ven el panel completo; todos los demás solo ven Completar y Omitir."
        }
      },
      "general_settings": {
        "title": "Configuración general",
        "description": "Configure los ajustes básicos de Maintenance Supporter.",
        "data": {
          "default_warning_days": "Días de aviso predeterminados",
          "notifications_enabled": "Activar notificaciones",
          "notify_service": "Servicio de notificación",
          "panel_enabled": "Mostrar panel en la barra lateral",
          "panel_title": "Título del panel lateral"
        },
        "data_description": {
          "default_warning_days": "Número de días antes de que venza una tarea de mantenimiento para mostrar una advertencia.",
          "notifications_enabled": "Enviar notificaciones cuando las tareas de mantenimiento están próximas a vencer o vencidas.",
          "notify_service": "El servicio de notificación a utilizar (ej.: notify.mobile_app_phone).",
          "panel_enabled": "Mostrar un panel de Maintenance Supporter en la barra lateral.",
          "panel_title": "Nombre personalizado para la entrada de la barra lateral. Déjalo en blanco para usar \"Maintenance\". Útil para evitar conflictos con el panel de Mantenimiento integrado de Home Assistant."
        }
      },
      "notification_settings": {
        "title": "Configuración de notificaciones",
        "description": "Configure cuándo y con qué frecuencia se envían las notificaciones para cada estado.",
        "data": {
          "notify_due_soon_enabled": "Notificar cuando próximo a vencer",
          "notify_due_soon_interval_hours": "Intervalo de recordatorio próximo a vencer (horas)",
          "notify_overdue_enabled": "Notificar cuando vencido",
          "notify_overdue_interval_hours": "Intervalo de recordatorio vencido (horas)",
          "notify_triggered_enabled": "Notificar cuando activado",
          "notify_triggered_interval_hours": "Intervalo de recordatorio activado (horas)",
          "quiet_hours_enabled": "Activar horas silenciosas",
          "quiet_hours_start": "Inicio de horas silenciosas",
          "quiet_hours_end": "Fin de horas silenciosas",
          "max_notifications_per_day": "Notificaciones máx. por día",
          "notification_bundling_enabled": "Agrupar notificaciones",
          "notification_bundle_threshold": "Umbral de agrupación",
          "notification_title_style": "Estilo del título de notificación"
        },
        "data_description": {
          "notify_due_soon_interval_hours": "Frecuencia de repetición del recordatorio próximo a vencer. Establecer a 0 para una sola notificación.",
          "notify_overdue_interval_hours": "Frecuencia de repetición del recordatorio vencido. Establecer a 0 para una sola notificación.",
          "notify_triggered_interval_hours": "Frecuencia de repetición de la notificación activada. Establecer a 0 para una sola notificación.",
          "quiet_hours_enabled": "Suprimir notificaciones durante las horas silenciosas.",
          "max_notifications_per_day": "Número máximo de notificaciones por día. Establecer a 0 para ilimitado.",
          "notification_bundling_enabled": "Enviar una notificación resumida cuando varias tareas requieran atención.",
          "notification_bundle_threshold": "Número mínimo de tareas para activar una notificación agrupada.",
          "notification_title_style": "Lo que aparece como TÍTULO de la notificación. Por defecto se conserva el texto por estado (p. ej., '¡Mantenimiento vencido!'). Nombre del objeto / tarea ayudan cuando el teléfono apila notificaciones."
        }
      },
      "notification_actions": {
        "title": "Acciones interactivas",
        "description": "Configure los botones de acción mostrados en las notificaciones móviles (requiere la aplicación Companion).",
        "data": {
          "action_complete_enabled": "Mostrar botón 'Completar'",
          "action_skip_enabled": "Mostrar botón 'Omitir'",
          "action_snooze_enabled": "Mostrar botón 'Posponer'",
          "snooze_duration_hours": "Duración del aplazamiento (horas)"
        },
        "data_description": {
          "action_complete_enabled": "Agrega un botón para marcar la tarea como completada directamente desde la notificación.",
          "action_skip_enabled": "Agrega un botón para omitir el ciclo de mantenimiento actual desde la notificación.",
          "action_snooze_enabled": "Agrega un botón para posponer el recordatorio de notificación.",
          "snooze_duration_hours": "Cuánto tiempo posponer las notificaciones cuando se presiona el botón de posponer."
        }
      },
      "budget_settings": {
        "title": "Configuración de presupuesto",
        "description": "Establezca presupuestos de mantenimiento mensuales y anuales para rastrear gastos.",
        "data": {
          "budget_currency": "Moneda",
          "budget_monthly": "Presupuesto mensual",
          "budget_yearly": "Presupuesto anual",
          "budget_alerts_enabled": "Activar alertas de presupuesto",
          "budget_alert_threshold": "Umbral de alerta (%)"
        },
        "data_description": {
          "budget_currency": "Moneda utilizada para la visualización del presupuesto y las notificaciones.",
          "budget_monthly": "Gasto máximo mensual en mantenimiento. Establecer a 0 para desactivar.",
          "budget_yearly": "Gasto máximo anual en mantenimiento. Establecer a 0 para desactivar.",
          "budget_alerts_enabled": "Enviar una notificación cuando los gastos superen el umbral de alerta.",
          "budget_alert_threshold": "Porcentaje del presupuesto en el que enviar una alerta."
        }
      },
      "test_notification": {
        "title": "Notificación de prueba",
        "description": "{result}"
      },
      "manage_groups": {
        "title": "Gestionar grupos",
        "description": "Seleccione un grupo para gestionar o cree uno nuevo.",
        "data": {
          "selected_group": "Seleccionar grupo"
        }
      },
      "add_group": {
        "title": "Agregar grupo",
        "description": "Cree un nuevo grupo de mantenimiento para organizar las tareas relacionadas.",
        "data": {
          "group_name": "Nombre del grupo",
          "group_description": "Descripción"
        },
        "data_description": {
          "group_name": "Un nombre para este grupo (ej.: 'Mantenimiento de primavera').",
          "group_description": "Descripción opcional para este grupo."
        }
      },
      "manage_tasks": {
        "title": "Gestionar tareas",
        "description": "Seleccione una tarea para editar o eliminar.",
        "data": {
          "selected_task": "Seleccionar tarea",
          "go_back": "Volver"
        }
      },
      "task_action": {
        "title": "Acciones de tarea",
        "description": "Tarea: {task_name} — Elige una acción.\n\nPróximas fechas: {next_dates}",
        "menu_options": {
          "edit_task": "Editar tarea",
          "edit_trigger": "Editar trigger",
          "remove_trigger": "Eliminar trigger",
          "edit_checklist": "Editar lista de verificación",
          "adaptive_scheduling": "Programación adaptativa",
          "delete_task": "Eliminar tarea",
          "manage_tasks": "Atrás"
        }
      },
      "edit_task": {
        "title": "Editar tarea",
        "description": "Editar configuración de **{task_name}**.",
        "data": {
          "name": "Nombre de la tarea",
          "type": "Tipo de mantenimiento",
          "interval_days": "Intervalo",
          "interval_unit": "Unidad de intervalo",
          "warning_days": "Días de aviso antes del vencimiento",
          "due_date": "Fecha de vencimiento",
          "enabled": "Habilitado",
          "notes": "Notas",
          "documentation_url": "URL de documentación",
          "last_performed": "Última ejecución",
          "responsible_user_id": "Usuario responsable",
          "custom_icon": "Icono de tarea",
          "nfc_tag_id": "ID de etiqueta NFC",
          "go_back": "Volver",
          "interval_anchor": "Anclaje de intervalo",
          "reading_unit": "Unidad de lectura (para tareas de lectura, p. ej. kWh)",
          "season_months": "Ventana estacional (meses)",
          "ends_count": "Termina tras (numero de veces)",
          "ends_until": "Termina en la fecha"
        },
        "data_description": {
          "name": "Un nombre descriptivo para esta tarea (ej. 'Limpieza de filtro', 'Cambio de aceite').",
          "type": "La categoría del trabajo de mantenimiento.",
          "interval_days": "Con qué frecuencia se repite este mantenimiento, combinado con la unidad de intervalo.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "warning_days": "Número de días antes de la fecha de vencimiento para mostrar una advertencia.",
          "due_date": "La fecha en que vence esta tarea única.",
          "enabled": "Cuando está desactivado, la programación y los disparadores se pausan. La tarea no se elimina.",
          "notes": "Notas adicionales o instrucciones para esta tarea.",
          "documentation_url": "Enlace a documentación externa o manual para esta tarea.",
          "last_performed": "Cuándo se realizó este mantenimiento por última vez. Dejar vacío si nunca se realizó.",
          "responsible_user_id": "El usuario de Home Assistant responsable de esta tarea.",
          "custom_icon": "Icono personalizado opcional para esta tarea (p. ej., mdi:oil, mdi:filter-variant).",
          "nfc_tag_id": "Vincular una etiqueta NFC a esta tarea. Escanear la etiqueta marcará automáticamente la tarea como completada.",
          "go_back": "Volver a las acciones de tarea sin guardar.",
          "interval_anchor": "Cómo se calcula la próxima fecha de vencimiento después de completar. 'Planificado' evita la deriva del calendario anclándose a la fecha planificada.",
          "season_months": "Solo vence en los meses seleccionados; las fechas fuera de temporada pasan al siguiente mes activo. Vacio = todo el ano.",
          "ends_count": "Dejar de repetir tras este numero de finalizaciones (serie finita). Vacio = sin limite.",
          "ends_until": "Dejar de repetir cuando la proxima vez caeria despues de esta fecha. Se ignora si se define 'Termina tras'."
        }
      },
      "edit_checklist": {
        "title": "Editar lista de verificación",
        "description": "Defina los pasos de la lista de verificación para {task_name}. Ingrese un paso por línea.",
        "data": {
          "checklist_text": "Pasos de la lista de verificación",
          "go_back": "Volver"
        },
        "data_description": {
          "checklist_text": "Ingrese cada paso en una línea separada. Estos pasos se mostrarán al completar la tarea.",
          "go_back": "Volver a las acciones de tarea sin guardar."
        }
      },
      "compound_logic": {
        "title": "Disparador compuesto",
        "description": "Elija cómo se deben combinar múltiples condiciones.",
        "data": {
          "compound_logic": "Lógica",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere"
        },
        "data_description": {
          "compound_logic": "Y = todas las condiciones deben activarse. O = cualquier condición activa."
        }
      },
      "compound_condition_entity": {
        "title": "Condición #{condition_num} — Entidad",
        "description": "Seleccione la entidad para esta condición.",
        "data": {
          "trigger_entity": "Entidad",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_entity": "La entidad del sensor a monitorizar para esta condición."
        }
      },
      "compound_condition_type": {
        "title": "Condición #{condition_num} — Tipo",
        "description": "¿Cómo debe evaluar esta condición al sensor?",
        "data": {
          "trigger_type": "Tipo de disparador",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_type": "El método utilizado para determinar cuándo se activa esta condición."
        }
      },
      "compound_condition_threshold": {
        "title": "Condición — Umbral",
        "data": {
          "trigger_above": "Activar por encima de",
          "trigger_below": "Activar por debajo de",
          "trigger_equals": "Activar cuando sea igual a",
          "trigger_not_equals": "Activar cuando sea distinto de",
          "trigger_for_minutes": "Duración (minutos)",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_above": "Activar cuando el valor supere este umbral.",
          "trigger_below": "Activar cuando el valor caiga por debajo de este umbral.",
          "trigger_equals": "Activar el mantenimiento cuando el valor sea igual a este nivel.",
          "trigger_not_equals": "Activar el mantenimiento cuando el valor difiera de este nivel.",
          "trigger_for_minutes": "El valor debe permanecer más allá del umbral durante esta duración."
        }
      },
      "compound_condition_counter": {
        "title": "Condición — Contador",
        "data": {
          "trigger_target_value": "Valor objetivo",
          "trigger_delta_mode": "Modo delta",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_target_value": "Activar cuando el valor acumulado alcance este objetivo.",
          "trigger_delta_mode": "Contar cambios desde una línea base en lugar del valor absoluto."
        }
      },
      "compound_condition_state_change": {
        "title": "Condición — Cambio de estado",
        "data": {
          "trigger_from_state": "Desde estado",
          "trigger_to_state": "Hacia estado",
          "trigger_target_changes": "Número de cambios",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_from_state": "Solo contar transiciones desde este estado. Dejar vacío para cualquiera.",
          "trigger_to_state": "Solo contar transiciones hacia este estado. Dejar vacío para cualquiera.",
          "trigger_target_changes": "Número de cambios de estado coincidentes antes de activar."
        }
      },
      "compound_condition_runtime": {
        "title": "Condición — Tiempo de ejecución",
        "data": {
          "trigger_runtime_hours": "Tiempo objetivo (horas)",
          "trigger_on_states": "Estados activos",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_runtime_hours": "Activar después de estas horas de tiempo acumulado.",
          "trigger_on_states": "Estados del sensor contados como 'activos'. Dejar vacío para predeterminado."
        }
      },
      "compound_review": {
        "title": "Revisión del disparador compuesto",
        "description": "{condition_count} condición(es) configurada(s) con lógica {compound_logic}.",
        "data": {
          "compound_action": "Acción",
          "go_back": "Volver"
        }
      },
      "adaptive_scheduling": {
        "title": "Programación adaptativa",
        "description": "Configure la adaptación inteligente de intervalos para {task_name}. El sistema aprende de sus comentarios de finalización para sugerir mejores intervalos.",
        "data": {
          "adaptive_enabled": "Activar programación adaptativa",
          "ewa_alpha": "Tasa de aprendizaje (alpha)",
          "min_interval_days": "Intervalo mínimo (días)",
          "max_interval_days": "Intervalo máximo (días)",
          "seasonal_enabled": "Activar conciencia estacional",
          "sensor_prediction_enabled": "Activar predicciones de sensor",
          "environmental_entity": "Sensor ambiental (opcional)",
          "go_back": "Volver"
        },
        "data_description": {
          "adaptive_enabled": "Cuando está activado, el sistema aprende de sus comentarios y sugiere intervalos de mantenimiento óptimos.",
          "ewa_alpha": "Velocidad de adaptación del algoritmo a nuevos datos. Mayor = más reactivo, menor = más estable.",
          "min_interval_days": "El intervalo más corto que el sistema recomendará.",
          "max_interval_days": "El intervalo más largo que el sistema recomendará.",
          "seasonal_enabled": "Ajustar recomendaciones según los patrones estacionales aprendidos de su historial de mantenimiento.",
          "sensor_prediction_enabled": "Analizar tendencias de sensores para predecir cuándo se alcanzarán los umbrales y sugerir mantenimiento anticipado si es necesario.",
          "environmental_entity": "Vincule un sensor de temperatura, humedad o presión para correlacionar las condiciones ambientales con los intervalos de mantenimiento.",
          "go_back": "Volver a las acciones de tarea sin guardar."
        }
      },
      "delete_task": {
        "title": "Eliminar tarea",
        "description": "¿Está seguro de que desea eliminar la tarea {task_name}? Esta acción es irreversible.",
        "data": {
          "confirm": "Confirmar eliminación",
          "go_back": "Volver"
        }
      },
      "remove_trigger": {
        "title": "Eliminar trigger",
        "description": "¿Eliminar trigger de **{task_name}**?\n\n**Entidad:** {entity_ids}\n**Tipo:** {trigger_type}\n**Configuración:** {config_details}\n\nSi se eliminan todas las entidades, la programación volverá a ser temporal.",
        "data": {
          "entities_to_remove": "Entidades a eliminar",
          "confirm": "Confirmar eliminación",
          "go_back": "Volver"
        },
        "data_description": {
          "entities_to_remove": "Seleccione qué entidades eliminar de este trigger. Si se eliminan todas, se borra el trigger completo.",
          "go_back": "Volver a las acciones de tarea sin guardar."
        }
      },
      "trigger_summary": {
        "title": "Trigger actual",
        "description": "Trigger para **{task_name}**:\n\n**Entidad:** {entity_ids}\n**Estado actual:** {current_states}\n**Tipo:** {trigger_type} (atributo: {attribute})\n**Configuración:** {config_details}",
        "menu_options": {
          "edit_trigger_proceed": "Editar trigger",
          "task_action": "Volver"
        }
      },
      "add_task": {
        "title": "Agregar tarea de mantenimiento",
        "description": "Definir una nueva tarea de mantenimiento para este objeto.",
        "data": {
          "name": "Nombre de la tarea",
          "type": "Tipo de mantenimiento",
          "schedule_type": "Tipo de programación",
          "custom_icon": "Icono de tarea",
          "go_back": "Volver",
          "reading_unit": "Unidad de lectura (para tareas de lectura, p. ej. kWh)"
        },
        "data_description": {
          "name": "Un nombre descriptivo para esta tarea (ej. 'Limpieza de filtro', 'Cambio de aceite').",
          "type": "La categoría del trabajo de mantenimiento.",
          "schedule_type": "Cómo debe programarse esta tarea.",
          "custom_icon": "Icono personalizado opcional para esta tarea (ej.: mdi:oil, mdi:filter-variant).",
          "go_back": "Volver al menú principal sin guardar."
        }
      },
      "opt_time_based": {
        "title": "Programación temporal",
        "description": "Configurar el intervalo de tiempo para esta tarea.",
        "data": {
          "interval_days": "Intervalo",
          "interval_unit": "Unidad de intervalo",
          "last_performed": "Última ejecución",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "interval_anchor": "Anclaje de intervalo"
        },
        "data_description": {
          "interval_days": "Con qué frecuencia se repite este mantenimiento, combinado con la unidad de intervalo.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "last_performed": "Cuándo se realizó este mantenimiento por última vez. Dejar vacío si nunca se realizó.",
          "warning_days": "Número de días antes de la fecha de vencimiento para mostrar una advertencia.",
          "go_back": "Volver al menú principal sin guardar.",
          "interval_anchor": "Cómo se calcula la próxima fecha de vencimiento después de completar. 'Planificado' evita la deriva del calendario anclándose a la fecha planificada."
        }
      },
      "opt_one_time": {
        "title": "Tarea única",
        "description": "Configura una única tarea de mantenimiento no recurrente. Se archiva una vez completada.",
        "data": {
          "due_date": "Fecha de vencimiento",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver"
        },
        "data_description": {
          "due_date": "La fecha en que vence esta tarea única.",
          "warning_days": "Número de días antes del vencimiento para mostrar un aviso.",
          "go_back": "Volver al menú principal sin guardar."
        }
      },
      "opt_calendar": {
        "title": "Programación por calendario",
        "description": "Configura una recurrencia basada en el calendario (días de la semana, n-ésimo día de la semana del mes o un día del mes).",
        "data": {
          "weekdays": "En estos días de la semana",
          "nth": "Qué aparición",
          "weekday": "Día de la semana",
          "day": "Día del mes",
          "last_performed": "Última realización",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "last_day": "Último día del mes",
          "business": "Solo días laborables",
          "offset": "Desplazamiento (días)"
        },
        "data_description": {
          "weekdays": "La tarea se repite cada día de la semana seleccionado.",
          "nth": "Qué aparición en el mes (p. ej., 1.ª, o Última).",
          "weekday": "El día de la semana para la regla del n-ésimo día (p. ej., sábado).",
          "day": "Día del mes (1-31; ajustado a la duración del mes).",
          "last_performed": "Cuándo se realizó por última vez este mantenimiento. Déjelo vacío si nunca se ha hecho.",
          "warning_days": "Número de días antes de la fecha de vencimiento para mostrar una advertencia.",
          "go_back": "Volver al menú principal sin guardar.",
          "last_day": "Anula el número de día: vence el último día del mes.",
          "business": "Retrocede una fecha de fin de semana al viernes anterior (p. ej., último día laborable).",
          "offset": "Desplaza la fecha calculada ±N días (p. ej., -2 = dos días antes)."
        }
      },
      "opt_manual": {
        "title": "Programación manual",
        "description": "Esta tarea no tiene programación automática. Puede marcarla como pendiente manualmente.",
        "data": {
          "warning_days": "Días de aviso antes del vencimiento",
          "notes": "Notas",
          "go_back": "Volver"
        },
        "data_description": {
          "warning_days": "Número de días antes de la fecha de vencimiento para mostrar una advertencia.",
          "notes": "Notas adicionales o instrucciones para esta tarea.",
          "go_back": "Volver al menú principal sin guardar."
        }
      },
      "opt_sensor_select": {
        "title": "Seleccionar sensor disparador",
        "description": "Elegir una entidad de Home Assistant para monitorear.",
        "data": {
          "trigger_entity": "Entidad a monitorear",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_entity": "Seleccione la entidad de sensor que debe activar esta tarea de mantenimiento."
        }
      },
      "opt_sensor_attribute": {
        "title": "Seleccionar atributo",
        "description": "Elija qué valor monitorear de {entity_id}. Estado actual: {current_state} {unit}",
        "data": {
          "trigger_attribute": "Valor a monitorear",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_attribute": "Seleccione el estado de la entidad o un atributo específico para monitorear."
        }
      },
      "opt_trigger_type": {
        "title": "Tipo de disparador",
        "description": "¿Cómo debe el valor del sensor activar el mantenimiento?",
        "data": {
          "trigger_type": "Tipo de disparador",
          "go_back": "Volver"
        },
        "data_description": {
          "trigger_type": "Umbral: se activa cuando el valor excede los límites. Contador: se activa después de acumular un valor objetivo. Cambio de estado: se activa después de un número de transiciones de estado."
        }
      },
      "opt_trigger_threshold": {
        "title": "Configuración de umbral",
        "description": "Establezca los umbrales para **{entity_id}** ({attribute}).\nActual: **{current_value} {unit}** | Prom.: {average} | Rango: {minimum}–{maximum} ({data_period}d)\nUmbral superior sugerido: {suggested_above} | Umbral inferior sugerido: {suggested_below}",
        "data": {
          "trigger_above": "Activar cuando superior a",
          "trigger_below": "Activar cuando inferior a",
          "trigger_equals": "Activar cuando sea igual a",
          "trigger_not_equals": "Activar cuando sea distinto de",
          "trigger_for_minutes": "Durante al menos (minutos)",
          "interval_days": "Intervalo de seguridad",
          "interval_unit": "Unidad de intervalo",
          "trigger_combinator": "Combinar disparador e intervalo",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere"
        },
        "data_description": {
          "trigger_above": "Activar mantenimiento cuando el valor exceda este umbral.",
          "trigger_below": "Activar mantenimiento cuando el valor caiga por debajo de este umbral.",
          "trigger_equals": "Activar el mantenimiento cuando el valor sea igual a este nivel.",
          "trigger_not_equals": "Activar el mantenimiento cuando el valor difiera de este nivel.",
          "trigger_for_minutes": "El valor debe exceder el umbral durante estos minutos antes de activarse.",
          "interval_days": "Intervalo de seguridad basado en tiempo opcional además del disparador del sensor.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "trigger_combinator": "El primero (predeterminado): el disparador o el intervalo transcurrido hace que la tarea venza. Ambos requeridos: la tarea solo vence cuando el disparador se activó y el intervalo transcurrió.",
          "warning_days": "Número de días antes de la fecha de vencimiento para mostrar una advertencia."
        }
      },
      "opt_trigger_counter": {
        "title": "Configuración de contador",
        "description": "Establezca el valor objetivo del contador para {entity_id} ({attribute}). Actual: {current_value} {unit}.",
        "data": {
          "trigger_target_value": "Valor objetivo",
          "trigger_delta_mode": "Modo delta (contar cambios, no valor absoluto)",
          "interval_days": "Intervalo de seguridad",
          "interval_unit": "Unidad de intervalo",
          "trigger_combinator": "Combinar disparador e intervalo",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere",
          "trigger_baseline_value": "Valor inicial (opcional)"
        },
        "data_description": {
          "trigger_target_value": "Activar mantenimiento cuando se alcance este valor acumulado.",
          "trigger_delta_mode": "Si está activado, cuenta la diferencia desde una línea base en lugar del valor absoluto.",
          "interval_days": "Intervalo de seguridad basado en tiempo opcional además del disparador del contador.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "trigger_combinator": "El primero (predeterminado): el disparador o el intervalo transcurrido hace que la tarea venza. Ambos requeridos: la tarea solo vence cuando el disparador se activó y el intervalo transcurrió.",
          "warning_days": "Número de días antes de la fecha de vencimiento para mostrar una advertencia."
        }
      },
      "opt_trigger_state_change": {
        "title": "Configuración de cambio de estado",
        "description": "Cuente las transiciones de estado de {entity_id}.",
        "data": {
          "trigger_from_state": "Desde estado (opcional)",
          "trigger_to_state": "Hacia estado (opcional)",
          "trigger_target_changes": "Número de cambios para activar",
          "trigger_for_minutes": "Durante al menos (minutos)",
          "interval_days": "Intervalo de seguridad",
          "interval_unit": "Unidad de intervalo",
          "trigger_combinator": "Combinar disparador e intervalo",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere"
        },
        "data_description": {
          "trigger_from_state": "Solo contar transiciones desde este estado. Dejar vacío para cualquiera.",
          "trigger_to_state": "Solo contar transiciones hacia este estado. Dejar vacío para cualquiera.",
          "trigger_target_changes": "Número de cambios de estado coincidentes antes de activar el mantenimiento.",
          "interval_days": "Intervalo de seguridad basado en tiempo opcional además del disparador de cambio de estado.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "trigger_combinator": "El primero (predeterminado): el disparador o el intervalo transcurrido hace que la tarea venza. Ambos requeridos: la tarea solo vence cuando el disparador se activó y el intervalo transcurrió.",
          "warning_days": "Número de días antes de la fecha de vencimiento para mostrar una advertencia.",
          "trigger_for_minutes": "El nuevo estado debe mantenerse este tiempo antes de que el cambio cuente. 0 = contar de inmediato."
        }
      },
      "opt_trigger_runtime": {
        "title": "Configuración de tiempo de funcionamiento",
        "description": "Registre el tiempo de funcionamiento acumulado de {entity_id}.",
        "data": {
          "trigger_runtime_hours": "Tiempo de funcionamiento objetivo (horas)",
          "trigger_on_states": "Estados activos (separados por comas)",
          "interval_days": "Intervalo de seguridad",
          "interval_unit": "Unidad de intervalo",
          "trigger_combinator": "Combinar disparador e intervalo",
          "warning_days": "Días de aviso antes del vencimiento",
          "go_back": "Volver",
          "auto_complete_on_recovery": "Completar automáticamente cuando el sensor se recupere"
        },
        "data_description": {
          "trigger_runtime_hours": "Activar mantenimiento después de estas horas de tiempo de ejecución acumulado.",
          "trigger_on_states": "Qué estados del sensor cuentan como 'activo'. Dejar vacío para predeterminado: on, 1, true. Ejemplo: in_use, running",
          "interval_days": "Intervalo de seguridad basado en tiempo opcional además del disparador de tiempo de ejecución.",
          "interval_unit": "Unidad del intervalo: días, semanas, meses o años. Los meses y años siguen el calendario.",
          "trigger_combinator": "El primero (predeterminado): el disparador o el intervalo transcurrido hace que la tarea venza. Ambos requeridos: la tarea solo vence cuando el disparador se activó y el intervalo transcurrió.",
          "warning_days": "Número de días antes de la fecha de vencimiento para mostrar una advertencia."
        }
      },
      "object_settings": {
        "title": "Configuración del objeto",
        "description": "Editar detalles del objeto.",
        "data": {
          "name": "Nombre del objeto",
          "manufacturer": "Fabricante",
          "model": "Modelo",
          "serial_number": "Número de serie",
          "documentation_url": "URL de manual / documentación",
          "notes": "Notas",
          "area_id": "Área",
          "installation_date": "Fecha de instalación",
          "warranty_expiry": "Vencimiento de garantía",
          "go_back": "Volver"
        },
        "data_description": {
          "name": "Un nombre único para este objeto de mantenimiento (ej. 'Bomba de piscina', 'Coche').",
          "manufacturer": "El fabricante del objeto.",
          "model": "El nombre o número de modelo.",
          "serial_number": "El número de serie del objeto.",
          "documentation_url": "Enlace opcional a un manual en PDF, página del fabricante o cualquier URL con información de referencia para este objeto.",
          "notes": "Notas libres sobre el objeto — números de pieza, procedimientos, recordatorios, etc.",
          "area_id": "El área en su hogar donde se encuentra este objeto.",
          "installation_date": "Cuándo se instaló o compró este objeto.",
          "warranty_expiry": "Cuándo vence la garantía del fabricante de este objeto.",
          "go_back": "Volver al menú principal sin guardar."
        }
      }
    }
  },
  "entity": {
    "button": {
      "button_complete": {
        "name": "{task_name} Completar"
      },
      "button_skip": {
        "name": "{task_name} Omitir"
      },
      "button_reset": {
        "name": "{task_name} Restablecer"
      }
    },
    "sensor": {
      "maintenance_task": {
        "name": "{task_name}",
        "state": {
          "ok": "OK",
          "due_soon": "Próximo a vencer",
          "overdue": "Vencido",
          "triggered": "Activado",
          "archived": "Archivado",
          "paused": "Pausado"
        },
        "state_attributes": {
          "maintenance_type": {
            "name": "Tipo de mantenimiento",
            "state": {
              "cleaning": "Limpieza",
              "inspection": "Inspección",
              "replacement": "Reemplazo",
              "calibration": "Calibración",
              "service": "Servicio",
              "reading": "Lectura",
              "custom": "Personalizado"
            }
          },
          "schedule_type": {
            "name": "Tipo de programación",
            "state": {
              "time_based": "Temporal",
              "sensor_based": "Basado en sensor",
              "one_time": "Una vez",
              "manual": "Manual"
            }
          },
          "interval_days": {
            "name": "Intervalo"
          },
          "interval_unit": {
            "name": "Unidad de intervalo"
          },
          "warning_days": {
            "name": "Días de aviso"
          },
          "last_performed": {
            "name": "Última ejecución"
          },
          "next_due": {
            "name": "Próximo vencimiento"
          },
          "days_until_due": {
            "name": "Días hasta vencimiento"
          },
          "parent_object": {
            "name": "Objeto padre"
          },
          "times_performed": {
            "name": "Veces realizado"
          },
          "total_cost": {
            "name": "Costo total"
          },
          "average_duration": {
            "name": "Duración promedio (min)"
          },
          "notes": {
            "name": "Notas"
          },
          "documentation_url": {
            "name": "URL de documentación"
          },
          "trigger_entity": {
            "name": "Entidad disparador"
          },
          "trigger_attribute": {
            "name": "Atributo disparador"
          },
          "trigger_type": {
            "name": "Tipo de disparador",
            "state": {
              "threshold": "Umbral",
              "counter": "Contador",
              "state_change": "Cambio de estado",
              "runtime": "Tiempo de funcionamiento",
              "compound": "Compuesto"
            }
          },
          "trigger_active": {
            "name": "Disparador activo"
          },
          "trigger_current_value": {
            "name": "Valor actual del disparador"
          },
          "trigger_entity_state": {
            "name": "Estado de entidad disparador",
            "state": {
              "available": "Disponible",
              "unavailable": "No disponible",
              "missing": "Faltante",
              "startup": "Inicio"
            }
          },
          "trigger_above": {
            "name": "Disparador superior"
          },
          "trigger_below": {
            "name": "Disparador inferior"
          },
          "trigger_for_minutes": {
            "name": "Disparador durante (minutos)"
          },
          "trigger_target_value": {
            "name": "Valor objetivo del disparador"
          },
          "trigger_delta_mode": {
            "name": "Modo delta del disparador"
          },
          "trigger_baseline_value": {
            "name": "Valor base del disparador"
          },
          "trigger_current_delta": {
            "name": "Delta actual del disparador"
          },
          "trigger_from_state": {
            "name": "Disparador desde estado"
          },
          "trigger_to_state": {
            "name": "Disparador hacia estado"
          },
          "trigger_target_changes": {
            "name": "Cambios objetivo del disparador"
          },
          "trigger_change_count": {
            "name": "Conteo de cambios del disparador"
          },
          "trigger_runtime_hours": {
            "name": "Tiempo de funcionamiento objetivo (horas)"
          },
          "trigger_accumulated_hours": {
            "name": "Tiempo de funcionamiento acumulado (horas)"
          },
          "trigger_remaining_hours": {
            "name": "Tiempo de funcionamiento restante (horas)"
          },
          "last_entry": {
            "name": "Última entrada"
          },
          "suggested_interval": {
            "name": "Intervalo sugerido"
          },
          "interval_confidence": {
            "name": "Confianza del intervalo",
            "state": {
              "low": "Baja",
              "medium": "Media",
              "high": "Alta"
            }
          },
          "adaptive_scheduling_enabled": {
            "name": "Programación adaptativa activada"
          },
          "seasonal_factor": {
            "name": "Factor estacional"
          },
          "seasonal_reason": {
            "name": "Razón estacional",
            "state": {
              "learned": "Aprendido",
              "manual": "Manual"
            }
          },
          "degradation_rate": {
            "name": "Tasa de degradación"
          },
          "degradation_trend": {
            "name": "Tendencia de degradación",
            "state": {
              "rising": "En aumento",
              "falling": "En descenso",
              "stable": "Estable",
              "insufficient_data": "Datos insuficientes"
            }
          },
          "days_until_threshold": {
            "name": "Días hasta umbral"
          },
          "threshold_prediction_confidence": {
            "name": "Confianza de predicción",
            "state": {
              "low": "Baja",
              "medium": "Media",
              "high": "Alta"
            }
          },
          "environmental_factor": {
            "name": "Factor ambiental"
          },
          "environmental_entity": {
            "name": "Entidad ambiental"
          },
          "weibull_beta": {
            "name": "Forma Weibull (β)"
          },
          "weibull_eta": {
            "name": "Escala Weibull (η)"
          },
          "weibull_r_squared": {
            "name": "R² Weibull"
          },
          "weibull_beta_interpretation": {
            "name": "Patrón de fallo",
            "state": {
              "early_failures": "Fallos tempranos",
              "random_failures": "Fallos aleatorios",
              "wear_out": "Desgaste",
              "highly_predictable": "Muy predecible"
            }
          },
          "confidence_interval_low": {
            "name": "Intervalo de confianza (bajo)"
          },
          "confidence_interval_high": {
            "name": "Intervalo de confianza (alto)"
          },
          "interval_anchor": {
            "name": "Anclaje de intervalo",
            "state": {
              "completion": "Desde la finalización",
              "planned": "Desde la fecha planificada"
            }
          },
          "due_date": {
            "name": "Fecha de vencimiento"
          }
        }
      },
      "summary_overdue": {
        "name": "Vencido"
      },
      "summary_due_soon": {
        "name": "Próximo a vencer"
      },
      "summary_triggered": {
        "name": "Activado"
      },
      "summary_needs_attention": {
        "name": "Requiere atención"
      },
      "summary_ok": {
        "name": "OK"
      },
      "document_storage": {
        "name": "Almacenamiento de documentos"
      },
      "summary_total_tasks": {
        "name": "Total de tareas"
      },
      "next_due": {
        "name": "{task_name} Próximo vencimiento"
      },
      "days_until_due": {
        "name": "{task_name} Días hasta vencimiento"
      },
      "parts_to_reorder": {
        "name": "Piezas por reponer"
      },
      "batteries_to_replace": {
        "name": "Baterías a reemplazar"
      }
    },
    "calendar": {
      "maintenance_schedule": {
        "name": "Calendario de mantenimiento"
      }
    },
    "binary_sensor": {
      "maintenance_task_due": {
        "name": "{task_name} vencida",
        "state_attributes": {
          "maintenance_status": {
            "name": "Estado de mantenimiento",
            "state": {
              "ok": "OK",
              "due_soon": "Próximamente",
              "overdue": "Vencida",
              "triggered": "Activado",
              "archived": "Archivado"
            }
          },
          "days_until_due": {
            "name": "Días hasta el vencimiento"
          },
          "next_due": {
            "name": "Próximo vencimiento"
          },
          "parent_object": {
            "name": "Objeto principal"
          }
        }
      }
    },
    "todo": {
      "maintenance_todo": {
        "name": "Mantenimiento"
      }
    }
  },
  "selector": {
    "maintenance_type": {
      "options": {
        "cleaning": "Limpieza",
        "inspection": "Inspección",
        "replacement": "Reemplazo",
        "calibration": "Calibración",
        "service": "Servicio",
        "reading": "Lectura",
        "custom": "Personalizado"
      }
    },
    "schedule_type": {
      "options": {
        "time_based": "Temporal",
        "weekdays": "Días de la semana",
        "nth_weekday": "N-ésimo día de la semana del mes",
        "day_of_month": "Día del mes",
        "sensor_based": "Basado en sensor",
        "one_time": "Una vez",
        "manual": "Manual"
      }
    },
    "interval_unit": {
      "options": {
        "days": "Días",
        "weeks": "Semanas",
        "months": "Meses",
        "years": "Años"
      }
    },
    "trigger_type": {
      "options": {
        "threshold": "Umbral",
        "counter": "Contador",
        "state_change": "Cambio de estado",
        "runtime": "Tiempo de funcionamiento",
        "compound": "Compuesto (Múltiples Condiciones)"
      }
    },
    "compound_logic": {
      "options": {
        "and": "Y (todas las condiciones deben activarse)",
        "or": "O (cualquier condición activa)"
      }
    },
    "entity_logic": {
      "options": {
        "any": "Cualquier entidad activa",
        "all": "Todas las entidades deben activar"
      }
    },
    "trigger_combinator": {
      "options": {
        "any": "Disparador o intervalo (el primero)",
        "all": "Disparador e intervalo (ambos requeridos)"
      }
    },
    "notification_title_style": {
      "options": {
        "default": "Predeterminado (título por estado)",
        "object_name": "Nombre del objeto como título",
        "task_name": "Nombre de la tarea como título"
      }
    }
  },
  "services": {
    "complete": {
      "name": "Completar mantenimiento",
      "description": "Marcar una tarea de mantenimiento como completada.",
      "fields": {
        "entity_id": {
          "name": "Entidad",
          "description": "La entidad sensor de mantenimiento a completar."
        },
        "notes": {
          "name": "Notas",
          "description": "Notas opcionales sobre el mantenimiento realizado."
        },
        "cost": {
          "name": "Costo",
          "description": "Costo del mantenimiento realizado."
        },
        "duration": {
          "name": "Duración",
          "description": "Duración del mantenimiento en minutos."
        },
        "reading_value": {
          "name": "Valor de lectura",
          "description": "Valor registrado para tareas de lectura (lectura de contador, control de nivel)."
        },
        "completed_by": {
          "name": "Completado por",
          "description": "Persona que realizó el mantenimiento (debe estar vinculada a un usuario de Home Assistant). Si se omite, se registra el usuario que activó la llamada."
        },
        "completed_at": {
          "name": "Completado el",
          "description": "Cuándo se realizó realmente el mantenimiento — para registrar a posteriori una tarea pasada. No puede estar en el futuro; si se omite, se registra ahora."
        }
      }
    },
    "reset": {
      "name": "Restablecer mantenimiento",
      "description": "Restablecer la fecha de última ejecución de una tarea de mantenimiento.",
      "fields": {
        "entity_id": {
          "name": "Entidad",
          "description": "La entidad sensor de mantenimiento a restablecer."
        },
        "date": {
          "name": "Fecha",
          "description": "La fecha a establecer como última ejecución. Por defecto hoy."
        }
      }
    },
    "skip": {
      "name": "Omitir mantenimiento",
      "description": "Omitir el ciclo de mantenimiento actual.",
      "fields": {
        "entity_id": {
          "name": "Entidad",
          "description": "La entidad sensor de mantenimiento a omitir."
        },
        "reason": {
          "name": "Razón",
          "description": "Razón opcional para omitir el mantenimiento."
        }
      }
    },
    "export_data": {
      "name": "Exportar datos",
      "description": "Exportar todos los datos de mantenimiento en formato JSON o YAML.",
      "fields": {
        "format": {
          "name": "Formato",
          "description": "Formato de salida para los datos exportados (json o yaml)."
        },
        "include_history": {
          "name": "Incluir historial",
          "description": "Incluir o no las entradas del historial de tareas en la exportación."
        }
      }
    },
    "add_object": {
      "name": "Añadir objeto",
      "description": "Crea un nuevo objeto de mantenimiento (dispositivo). Devuelve el nuevo entry_id.",
      "fields": {
        "name": {
          "name": "Nombre",
          "description": "Nombre del objeto/dispositivo."
        },
        "area_id": {
          "name": "Área",
          "description": "Área a la que asignar el dispositivo."
        },
        "manufacturer": {
          "name": "Fabricante"
        },
        "model": {
          "name": "Modelo"
        },
        "serial_number": {
          "name": "Número de serie"
        },
        "installation_date": {
          "name": "Fecha de instalación"
        },
        "warranty_expiry": {
          "name": "Vencimiento de garantía",
          "description": "Fecha de fin de garantía (para seguimiento de activos y recordatorios)."
        },
        "documentation_url": {
          "name": "URL de documentación",
          "description": "Enlace a un manual o página del proveedor (solo http/https)."
        },
        "notes": {
          "name": "Notas"
        }
      }
    },
    "add_task": {
      "name": "Añadir tarea",
      "description": "Añade una tarea de mantenimiento a un objeto existente. Devuelve el nuevo task_id.",
      "fields": {
        "entry_id": {
          "name": "Objeto",
          "description": "El objeto de mantenimiento al que añadir la tarea."
        },
        "name": {
          "name": "Nombre",
          "description": "Nombre de la tarea."
        },
        "task_type": {
          "name": "Tipo de tarea",
          "description": "Categoría libre (p. ej. inspection, service, custom)."
        },
        "schedule_type": {
          "name": "Tipo de programación",
          "description": "time_based (intervalo) o sensor_based. Predeterminado: time_based."
        },
        "interval_days": {
          "name": "Intervalo",
          "description": "Longitud del intervalo entre ocurrencias (para tareas basadas en tiempo), combinada con interval_unit."
        },
        "interval_unit": {
          "name": "Unidad de intervalo",
          "description": "Unidad del intervalo: days, weeks, months o years. Predeterminado: days."
        },
        "due_date": {
          "name": "Fecha de vencimiento",
          "description": "Fecha de vencimiento (YYYY-MM-DD) para una tarea única (schedule_type one_time)."
        },
        "schedule": {
          "name": "Programación de calendario",
          "description": "Recurrencia anidada para los tipos de calendario, p. ej. kind=nth_weekday, nth=1, weekday=5 para el 1.er sábado (weekday 0=lun ... 6=dom), kind=weekdays, weekdays=[0, 3] para lun y jue, o kind=day_of_month, day=15. Tiene prioridad sobre interval_days / schedule_type."
        },
        "warning_days": {
          "name": "Aviso (días)",
          "description": "Días antes del vencimiento para entrar en la ventana de «vence pronto»."
        },
        "enabled": {
          "name": "Habilitado"
        },
        "notes": {
          "name": "Notas"
        }
      }
    },
    "update_task": {
      "name": "Actualizar tarea",
      "description": "Actualiza los campos comunes de una tarea de mantenimiento existente. Solo cambian los campos proporcionados.",
      "fields": {
        "entry_id": {
          "name": "Objeto",
          "description": "El objeto de mantenimiento al que pertenece la tarea."
        },
        "task_id": {
          "name": "ID de tarea",
          "description": "El id de la tarea a actualizar (véase list_tasks)."
        },
        "name": {
          "name": "Nombre",
          "description": "Nuevo nombre de la tarea."
        },
        "task_type": {
          "name": "Tipo de tarea",
          "description": "Categoría (cleaning, inspection, replacement, calibration, service, reading, custom)."
        },
        "schedule_type": {
          "name": "Tipo de programación",
          "description": "time_based (intervalo), sensor_based, one_time o manual."
        },
        "interval_days": {
          "name": "Intervalo",
          "description": "Longitud del intervalo entre ocurrencias, combinada con interval_unit."
        },
        "interval_unit": {
          "name": "Unidad de intervalo",
          "description": "days, weeks, months o years."
        },
        "due_date": {
          "name": "Fecha de vencimiento",
          "description": "Fecha de vencimiento para tareas únicas (YYYY-MM-DD)."
        },
        "schedule": {
          "name": "Programación (recurrencia de calendario)",
          "description": "Objeto de recurrencia anidado para los tipos de calendario, p. ej. kind=day_of_month, day=-1, business=true. Tiene prioridad sobre los campos planos."
        },
        "warning_days": {
          "name": "Días de aviso",
          "description": "Días antes del vencimiento en que la tarea pasa a «vence pronto»."
        },
        "enabled": {
          "name": "Habilitado",
          "description": "Si la tarea está activa."
        },
        "notes": {
          "name": "Notas",
          "description": "Notas libres sobre la tarea."
        },
        "priority": {
          "name": "Prioridad",
          "description": "low, normal o high."
        },
        "labels": {
          "name": "Etiquetas",
          "description": "Lista de etiquetas para filtrado e informes."
        },
        "responsible_user": {
          "name": "Usuario responsable",
          "description": "Asigna la tarea a esta persona (debe estar vinculada a un usuario de Home Assistant)."
        },
        "clear_responsible_user": {
          "name": "Quitar responsable",
          "description": "Elimina la asignación actual. No se puede combinar con «Usuario responsable»."
        }
      }
    },
    "delete_task": {
      "name": "Eliminar tarea",
      "description": "Elimina una tarea de mantenimiento incluido su historial. No se puede deshacer: considera archivarla desde el panel.",
      "fields": {
        "entry_id": {
          "name": "Objeto",
          "description": "El objeto de mantenimiento al que pertenece la tarea."
        },
        "task_id": {
          "name": "ID de tarea",
          "description": "El id de la tarea a eliminar (véase list_tasks)."
        }
      }
    },
    "list_tasks": {
      "name": "Listar tareas",
      "description": "Devuelve una instantánea de las tareas de mantenimiento activas (id, nombre, estado, próximo vencimiento) para automatizaciones, scripts y voz. Admite filtrado por objeto y estado.",
      "fields": {
        "entry_id": {
          "name": "Objeto",
          "description": "Devolver solo las tareas de este objeto de mantenimiento."
        },
        "status": {
          "name": "Estado",
          "description": "Devolver solo las tareas con este estado."
        }
      }
    }
  },
  "issues": {
    "document_storage_issues": {
      "title": "El almacenamiento de documentos necesita limpieza",
      "fix_flow": {
        "step": {
          "init": {
            "title": "Recuperar almacenamiento de documentos",
            "description": "Maintenance Supporter encontró archivos sin referencia y/o registros muertos en el almacenamiento de documentos, normalmente tras un fallo, una eliminación externa de archivos o una restauración parcial.\n\nHaz clic en **Enviar** para recuperar el espacio: los archivos sin referencia y obsoletos se eliminan y se quitan los registros de documentos muertos. Los archivos que todavía referencia algún documento nunca se tocan.\n\n(Para descartar sin limpiar, usa el botón **Ignorar** de Home Assistant en la página de Reparaciones.)"
          }
        }
      }
    },
    "missing_trigger_entity": {
      "title": "Sensor disparador no encontrado: {task_name}",
      "fix_flow": {
        "step": {
          "init": {
            "title": "Entidad disparador faltante",
            "description": "La entidad sensor `{entity_id}` configurada como disparador para la tarea \"{task_name}\" en el objeto \"{object_name}\" ya no está disponible.\n\nElija cómo resolver este problema:",
            "menu_options": {
              "replace_entity": "Reemplazar con otra entidad",
              "remove_trigger": "Eliminar el disparador de sensor",
              "dismiss": "Ignorar (reaparecerá)"
            }
          },
          "replace_entity": {
            "title": "Reemplazar entidad disparador",
            "description": "Seleccione una nueva entidad para reemplazar `{entity_id}` como disparador para la tarea \"{task_name}\" en \"{object_name}\".",
            "data": {
              "new_entity_id": "Nueva entidad disparador"
            },
            "data_description": {
              "new_entity_id": "Seleccione la nueva entidad sensor a utilizar como disparador."
            }
          },
          "remove_trigger": {
            "title": "Eliminar disparador de sensor",
            "description": "Esto eliminará el disparador de sensor de la tarea \"{task_name}\" en \"{object_name}\" y convertirá la programación a temporal o manual. El historial de mantenimiento se conservará.\n\nEntidad disparador anterior: `{entity_id}`"
          }
        }
      }
    },
    "orphan_admin_panel_user": {
      "title": "El usuario en la lista de acceso al panel ya no existe",
      "fix_flow": {
        "step": {
          "init": {
            "title": "Usuario huérfano en la lista de acceso al panel",
            "description": "El usuario `{user_id}…` está en la lista de acceso al panel de Maintenance Supporter pero ya no existe en Home Assistant. Probablemente el usuario fue eliminado.\n\nHaz clic en **Enviar** para quitar al usuario de la lista. (Para dejar el problema sin resolver, usa el botón **Ignorar** en la página de Reparaciones de Home Assistant.)"
          }
        }
      }
    },
    "stale_action_entity": {
      "title": "La acción de finalización referencia una entidad eliminada",
      "fix_flow": {
        "step": {
          "init": {
            "title": "Acción de finalización: {stale_entity} ya no existe",
            "description": "La tarea **{task_name}** tiene una `on_complete_action` configurada para llamar un servicio en `{stale_entity}`, pero esa entidad ya no está registrada en Home Assistant.\n\nElige cómo reparar:",
            "menu_options": {
              "replace_entity": "Reemplazar por otra entidad",
              "remove_action": "Eliminar la acción de finalización"
            }
          },
          "replace_entity": {
            "title": "Reemplazar entidad objetivo",
            "description": "Elige la entidad a usar en lugar de `{stale_entity}` para la tarea **{task_name}**.",
            "data": {
              "new_entity": "Nueva entidad objetivo"
            }
          },
          "remove_action": {
            "title": "Eliminar acción de finalización",
            "description": "Elimina completamente la `on_complete_action` de la tarea **{task_name}**. La tarea en sí no se ve afectada — solo se elimina la llamada al servicio en la finalización."
          }
        }
      }
    },
    "notify_service_missing": {
      "title": "Servicio de notificación `{service}` no encontrado",
      "description": "Maintenance Supporter está configurado para enviar notificaciones mediante `{service}`, pero ese servicio no existe actualmente en Home Assistant, por lo que los recordatorios fallan de forma silenciosa.\n\nNormalmente esto significa que el servicio fue renombrado, o que la integración que lo proporciona (una aplicación móvil, un grupo de notificación, …) fue eliminada. Para solucionarlo: restaura ese servicio, o abre **Ajustes → Dispositivos y servicios → Maintenance Supporter → Configurar → Ajustes generales** y elige un servicio `notify.*` válido.\n\nNota: esto solo comprueba el servicio configurado en sí. Si las notificaciones llegan a algunos dispositivos pero no a otros, probablemente un miembro *dentro* de tu grupo de notificación está mal configurado — eso no se ve aquí; revisa el **registro del sistema** de Home Assistant (Ajustes → Sistema → Registros)."
    },
    "missing_global_entry": {
      "title": "Falta la configuración global de Maintenance Supporter",
      "fix_flow": {
        "step": {
          "init": {
            "title": "Restaurar la configuración global",
            "description": "Tus objetos de mantenimiento aún existen, pero la entrada global \"Maintenance Supporter\" se eliminó — por eso faltan los sensores de resumen, el panel lateral y los contadores del panel, y los indicadores muestran \"unknown\".\n\nHaz clic en **Enviar** para recrear la configuración global con los ajustes predeterminados. Tus objetos y tareas quedan intactos. Puedes ajustar las notificaciones y los valores por defecto después en Ajustes → Dispositivos y servicios.\n\n(Para no cambiar nada, usa el botón **Ignorar** de Home Assistant.)"
          }
        }
      }
    },
    "shared_parts_moved": {
      "title": "Repuestos compartidos movidos a {new_owner}",
      "description": "Varios objetos de mantenimiento compartían un mismo stock de repuestos que estaba en **{deleted_object}**, y ese objeto acaba de eliminarse. En lugar de dejar a los demás objetos apuntando a un stock que ya no existe, Maintenance Supporter movió los repuestos compartidos ({parts}) — junto con su stock actual — a **{new_owner}**, y reenlazó a ellos las tareas de todos los demás objetos. No se ha perdido nada.\n\n**{new_owner}** se eligió automáticamente: es el objeto más antiguo que usaba ese stock. Si otro objeto encaja mejor, mueve allí los repuestos desde el panel de Mantenimiento.\n\nNo hay nada más que hacer — descarta esta notificación cuando la hayas revisado."
    },
    "broken_part_link": {
      "title": "Enlaces de repuesto rotos en {object_name}",
      "description": "Una tarea de **{object_name}** acaba de completarse, pero {count} enlaces a repuestos no se pudieron resolver — el repuesto, o el objeto al que pertenece, ya no existe.\n\nLa finalización sí se registró, así que el trabajo no se ha perdido. Lo que no ocurrió es el descuento de stock: no se restó nada del stock de ningún repuesto por esta finalización.\n\nPara arreglarlo: abre la tarea en el panel de Mantenimiento y elimina los enlaces obsoletos, o apúntalos a los repuestos que usas ahora. Descarta esta notificación cuando esté hecho."
    },
    "device_link_lost": {
      "title": "{object} ha perdido su vínculo con el dispositivo",
      "fix_flow": {
        "step": {
          "init": {
            "title": "Reparar el vínculo de dispositivo de {object}",
            "description": "**{object}** estaba vinculado a un dispositivo de Home Assistant, de modo que sus entidades de mantenimiento aparecían en la página de ese dispositivo. Ese dispositivo ya no existe — eliminado, o retirada su integración — y el objeto muestra ahora un dispositivo propio. Nada más cambia: sus tareas y su historial siguen intactos.\n\nElige cómo proceder. Mejor coincidencia para el dispositivo previsto: **{suggestion}**.",
            "menu_options": {
              "relink": "Vincular el dispositivo real",
              "unlink": "Quitar el vínculo"
            }
          },
          "relink": {
            "title": "Elegir el dispositivo real",
            "description": "Elige el dispositivo al que pertenece **{object}**. La mejor coincidencia — **{suggestion}** — está preseleccionada; compruébala antes de guardar. Los dispositivos propios de Maintenance Supporter se rechazan.",
            "data": {
              "device": "Dispositivo"
            }
          },
          "unlink": {
            "title": "Quitar el vínculo de dispositivo",
            "description": "**{object}** conserva un dispositivo propio. Las tareas y el historial no cambian; puedes vincular un dispositivo de nuevo en cualquier momento desde el panel de mantenimiento."
          }
        },
        "error": {
          "self_link": "Ese es un dispositivo de Maintenance Supporter (el gemelo del objeto, no el aparato real): elige el dispositivo de la integración original.",
          "device_gone": "Ese dispositivo no existe (ya)."
        },
        "abort": {
          "entry_gone": "Este objeto ya no existe: no hay nada que reparar."
        }
      }
    },
    "device_link_self": {
      "title": "{object} está vinculado a su propio dispositivo de mantenimiento",
      "fix_flow": {
        "step": {
          "init": {
            "title": "Reparar el vínculo de dispositivo de {object}",
            "description": "El vínculo de dispositivo de **{object}** apunta al dispositivo gemelo que Maintenance Supporter creó para el objeto: lleva el nombre del aparato real y el selector lo ofrecía antes. Por eso la página real del aparato nunca mostró las entidades de mantenimiento.\n\nElige cómo proceder. Mejor coincidencia para el dispositivo previsto: **{suggestion}**.",
            "menu_options": {
              "relink": "Vincular el dispositivo real",
              "unlink": "Quitar el vínculo"
            }
          },
          "relink": {
            "title": "Elegir el dispositivo real",
            "description": "Elige el dispositivo al que pertenece **{object}**. La mejor coincidencia — **{suggestion}** — está preseleccionada; compruébala antes de guardar. Los dispositivos propios de Maintenance Supporter se rechazan.",
            "data": {
              "device": "Dispositivo"
            }
          },
          "unlink": {
            "title": "Quitar el vínculo de dispositivo",
            "description": "**{object}** conserva un dispositivo propio. Las tareas y el historial no cambian; puedes vincular un dispositivo de nuevo en cualquier momento desde el panel de mantenimiento."
          }
        },
        "error": {
          "self_link": "Ese es un dispositivo de Maintenance Supporter (el gemelo del objeto, no el aparato real): elige el dispositivo de la integración original.",
          "device_gone": "Ese dispositivo no existe (ya)."
        },
        "abort": {
          "entry_gone": "Este objeto ya no existe: no hay nada que reparar."
        }
      }
    }
  },
  "exceptions": {
    "no_coordinator_for_entity": {
      "message": "No se encontró coordinador de mantenimiento para la entidad {entity_id}."
    },
    "no_task_for_entity": {
      "message": "No se encontró tarea de mantenimiento para la entidad {entity_id}."
    },
    "completion_details_required": {
      "message": "“{task_name}” requiere estos datos al completarla: {fields}. Complétala desde el panel de mantenimiento o la tarjeta para introducirlos."
    },
    "completed_at_in_future": {
      "message": "La fecha de finalización no puede estar en el futuro."
    }
  },
  "triggers": {
    "task_became_overdue": {
      "name": "Una tarea de mantenimiento venció",
      "description": "Se activa cuando el estado de una tarea de mantenimiento cambia a vencida.",
      "fields": {
        "behavior": {
          "name": "Comportamiento"
        },
        "for": {
          "name": "Durante"
        }
      }
    },
    "task_became_due_soon": {
      "name": "Una tarea de mantenimiento vence pronto",
      "description": "Se activa cuando una tarea de mantenimiento entra en su ventana de aviso.",
      "fields": {
        "behavior": {
          "name": "Comportamiento"
        },
        "for": {
          "name": "Durante"
        }
      }
    },
    "sensor_trigger_activated": {
      "name": "Un disparador de sensor se activó",
      "description": "Se activa cuando una tarea de mantenimiento basada en sensores se activa.",
      "fields": {
        "behavior": {
          "name": "Comportamiento"
        },
        "for": {
          "name": "Durante"
        }
      }
    },
    "task_became_ok": {
      "name": "Una tarea de mantenimiento volvió a OK",
      "description": "Se activa cuando una tarea de mantenimiento ya no necesita atención.",
      "fields": {
        "behavior": {
          "name": "Comportamiento"
        },
        "for": {
          "name": "Durante"
        }
      }
    }
  },
  "conditions": {
    "task_is_overdue": {
      "name": "Una tarea de mantenimiento está vencida",
      "description": "Comprueba si una tarea de mantenimiento está vencida.",
      "fields": {
        "behavior": {
          "name": "Comportamiento"
        },
        "for": {
          "name": "Durante"
        }
      }
    },
    "task_is_due_soon": {
      "name": "Una tarea de mantenimiento vence pronto",
      "description": "Comprueba si una tarea de mantenimiento está en su ventana de aviso.",
      "fields": {
        "behavior": {
          "name": "Comportamiento"
        },
        "for": {
          "name": "Durante"
        }
      }
    },
    "task_is_triggered": {
      "name": "Un disparador de sensor está activo",
      "description": "Comprueba si una tarea de mantenimiento basada en sensores está activada.",
      "fields": {
        "behavior": {
          "name": "Comportamiento"
        },
        "for": {
          "name": "Durante"
        }
      }
    },
    "task_needs_attention": {
      "name": "Una tarea de mantenimiento necesita atención",
      "description": "Comprueba si una tarea de mantenimiento está vencida o activada.",
      "fields": {
        "behavior": {
          "name": "Comportamiento"
        },
        "for": {
          "name": "Durante"
        }
      }
    }
  }
}
