{
  "common": {
    "save": "Guardar",
    "cancel": "Cancelar",
    "delete": "Eliminar",
    "edit": "Editar",
    "add": "Añadir",
    "create": "Crear",
    "update": "Actualizar",
    "close": "Cerrar",
    "confirm": "Confirmar",
    "back": "Atrás",
    "next": "Siguiente",
    "loading": "Cargando...",
    "error": "Error",
    "success": "Éxito",
    "warning": "Advertencia",
    "info": "Información",
    "yes": "Sí",
    "no": "No",
    "enabled": "Habilitado",
    "disabled": "Deshabilitado",
    "name": "Nombre",
    "description": "Descripción",
    "actions": "Acciones",
    "status": "Estado",
    "search": "Buscar",
    "filter": "Filtrar",
    "settings": "Configuración",
    "language": "Idioma",
    "configure": "Configurar",
    "test": "Probar",
    "docs": "Documentación",
    "upload": "Subir",
    "active": "Activo",
    "type": "Tipo",
    "rules": "Reglas",
    "allow": "Permitir",
    "deny": "Denegar",
    "saveConfiguration": "Guardar configuración",
    "enabledCount": "{{count}} habilitado",
    "validCount": "{{count}} válido",
    "activeCount": "{{count}} activo",
    "noHistoryAvailable": "Sin historial disponible",
    "autoRefreshing": "Actualizando cada {{seconds}}s",
    "score": "Puntuación"
  },
  "navigation": {
    "dashboard": "Panel de Control",
    "proxyHosts": "Hosts Proxy",
    "remoteServers": "Servidores Remotos",
    "domains": "Dominios",
    "certificates": "Certificados",
    "dns": "DNS",
    "dnsProviders": "Proveedores DNS",
    "plugins": "Plugins",
    "security": "Seguridad",
    "accessLists": "Listas de Acceso",
    "crowdsec": "CrowdSec",
    "rateLimiting": "Limitación de Tasa",
    "waf": "WAF",
    "uptime": "Tiempo de Actividad",
    "notifications": "Notificaciones",
    "users": "Usuarios",
    "tasks": "Tareas",
    "settings": "Configuración",
    "system": "Sistema",
    "email": "Correo Electrónico (SMTP)",
    "adminAccount": "Cuenta de Administrador",
    "accountManagement": "Gestión de Cuentas",
    "import": "Importar",
    "caddyfile": "Caddyfile",
    "backups": "Copias de Seguridad",
    "logs": "Registros",
    "securityHeaders": "Cabeceras de Seguridad",
    "expandSidebar": "Expandir barra lateral",
    "collapseSidebar": "Colapsar barra lateral"
  },
  "dashboard": {
    "title": "Panel de Control",
    "description": "Resumen de tu proxy inverso Charon",
    "proxyHosts": "Hosts Proxy",
    "remoteServers": "Servidores Remotos",
    "certificates": "Certificados",
    "accessLists": "Listas de Acceso",
    "systemStatus": "Estado del Sistema",
    "healthy": "Saludable",
    "unhealthy": "No Saludable",
    "pendingCertificates": "Certificados pendientes",
    "allCertificatesValid": "Todos los certificados válidos",
    "activeHosts": "{{count}} activo",
    "activeServers": "{{count}} activo",
    "activeLists": "{{count}} activo",
    "validCerts": "{{count}} válido"
  },
  "settings": {
    "title": "Configuración",
    "description": "Configura tu instancia de Charon",
    "system": "Sistema",
    "smtp": "Correo Electrónico (SMTP)",
    "account": "Cuenta",
    "language": "Idioma",
    "languageDescription": "Selecciona tu idioma preferido",
    "theme": "Tema",
    "themeDescription": "Elige tema claro u oscuro"
  },
  "proxyHosts": {
    "title": "Hosts Proxy",
    "description": "Gestiona tus configuraciones de proxy inverso",
    "addHost": "Añadir Host Proxy",
    "editHost": "Editar Host Proxy",
    "deleteHost": "Eliminar Host Proxy",
    "domainNames": "Nombres de Dominio",
    "forwardHost": "Host de Reenvío",
    "forwardPort": "Puerto de Reenvío",
    "sslEnabled": "SSL Habilitado",
    "sslForced": "Forzar SSL",
    "columnName": "Nombre",
    "columnDomain": "Dominio",
    "columnForwardTo": "Reenviar a",
    "columnSSL": "SSL",
    "columnFeatures": "Características",
    "columnStatus": "Estado",
    "columnActions": "Acciones",
    "unnamed": "Sin nombre",
    "staging": "Pruebas",
    "websocket": "WS",
    "acl": "ACL",
    "noHosts": "Sin hosts proxy",
    "noHostsDescription": "Crea tu primer host proxy para comenzar a enrutar el tráfico a tus servicios.",
    "selectedCount": "{{count}} host(s) seleccionado(s)",
    "selectedCountAll": "(todos)",
    "bulkApply": "Aplicar en masa",
    "manageACL": "Gestionar ACL",
    "deleteConfirmTitle": "¿Eliminar Host Proxy?",
    "deleteConfirmMessage": "¿Estás seguro de que deseas eliminar <strong>{{name}}</strong>? Esta acción no se puede deshacer.",
    "bulkApplyTitle": "Aplicar Configuración en Masa",
    "bulkApplyDescription": "Aplicando configuración a <strong>{{count}}</strong> host(s) seleccionado(s)",
    "applyACLTitle": "Aplicar Lista de Acceso",
    "applyACLDescription": "Aplicando a <strong>{{count}}</strong> host(s) seleccionado(s). Cada host proxy puede tener una única Lista de Control de Acceso aplicada.",
    "applyACL": "Aplicar ACL",
    "removeACL": "Eliminar ACL",
    "selectedACLCount": "{{selected}} de {{total}} seleccionados",
    "selectAll": "Seleccionar todo",
    "clear": "Limpiar",
    "noEnabledACLs": "No hay listas de acceso habilitadas disponibles",
    "removeACLWarning": "Esto eliminará la lista de acceso de los {{count}} host(s) seleccionado(s).",
    "publicAccessWarning": "Los hosts serán accesibles públicamente.",
    "applyingACLs": "Aplicando ACLs... ({{current}}/{{total}})",
    "bulkDeleteTitle": "¿Eliminar {{count}} Host(s) Proxy?",
    "bulkDeleteDescription": "Esta acción no se puede deshacer. Se creará una copia de seguridad automáticamente antes de la eliminación.",
    "hostsToDelete": "Hosts a eliminar:",
    "backupInfo": "Se creará una copia de seguridad automática antes de la eliminación. Puedes restaurar desde la página de Copias de Seguridad si es necesario.",
    "creatingBackup": "Creando copia de seguridad...",
    "deletePermanently": "Eliminar permanentemente",
    "ferryingNewHost": "Transportando nuevo host...",
    "ferryingNewHostSub": "Caronte está cruzando el Estigio",
    "guidingChanges": "Guiando cambios...",
    "guidingChangesSub": "Configuración en tránsito",
    "returningToShore": "Regresando a la orilla...",
    "returningToShoreSub": "Salida del host en progreso",
    "ferryingSouls": "Transportando {{count}} almas...",
    "ferryingSoulsSub": "Operación masiva cruzando el río",
    "ferryingConfig": "Transportando configuración...",
    "sslForce": "Forzar SSL",
    "http2Support": "Soporte HTTP/2",
    "hstsEnabled": "HSTS Habilitado",
    "hstsSubdomains": "HSTS Subdominios",
    "blockExploits": "Bloquear Exploits",
    "websocketSupport": "Soporte WebSocket",
    "apply": "Aplicar",
    "applyCount": "Aplicar ({{count}})",
    "bulkApplySecurityHeaders": "Perfil de Cabeceras de Seguridad",
    "bulkApplySecurityHeadersHelp": "Aplicar un perfil de cabeceras de seguridad a todos los hosts seleccionados",
    "noSecurityProfile": "Ninguno (Eliminar Perfil)",
    "removeSecurityHeadersWarning": "Esto eliminará el perfil de cabeceras de seguridad de todos los hosts seleccionados, lo que podría reducir su postura de seguridad."
  },
  "certificates": {
    "title": "Certificados SSL",
    "description": "Gestiona certificados SSL/TLS para tus hosts proxy",
    "addCertificate": "Añadir Certificado",
    "uploadCertificate": "Subir Certificado",
    "domain": "Dominio",
    "status": "Estado",
    "expiresAt": "Expira el",
    "valid": "Válido",
    "pending": "Pendiente",
    "expired": "Expirado",
    "friendlyName": "Nombre descriptivo",
    "certificatePem": "Certificado (PEM)",
    "privateKeyPem": "Clave Privada (PEM)",
    "uploadSuccess": "Certificado subido exitosamente",
    "uploadFailed": "Error al subir el certificado",
    "note": "Nota",
    "noteText": "Puedes eliminar certificados personalizados y certificados de prueba. Los certificados de Let's Encrypt de producción se renuevan automáticamente y no deben eliminarse a menos que cambies de entorno."
  },
  "auth": {
    "login": "Iniciar Sesión",
    "logout": "Cerrar Sesión",
    "email": "Correo Electrónico",
    "password": "Contraseña",
    "username": "Nombre de Usuario",
    "signIn": "Iniciar Sesión",
    "signOut": "Cerrar Sesión",
    "forgotPassword": "¿Olvidaste tu Contraseña?",
    "rememberMe": "Recuérdame",
    "checkingSetup": "Verificando estado de configuración...",
    "loggingIn": "Pagando al barquero...",
    "loggingInSub": "Tu óbolo concede el paso",
    "loginSuccess": "Sesión iniciada exitosamente",
    "loginFailed": "Error al iniciar sesión",
    "resetPasswordTitle": "Para restablecer tu contraseña:",
    "resetPasswordInstructions": "Ejecuta este comando en tu servidor:"
  },
  "errors": {
    "required": "Este campo es obligatorio",
    "invalidEmail": "Dirección de correo electrónico inválida",
    "passwordTooShort": "La contraseña debe tener al menos 8 caracteres",
    "genericError": "Ocurrió un error. Por favor, inténtalo de nuevo.",
    "networkError": "Error de red. Por favor, verifica tu conexión.",
    "unauthorized": "No autorizado. Por favor, inicia sesión de nuevo.",
    "notFound": "Recurso no encontrado",
    "serverError": "Error del servidor. Por favor, inténtalo más tarde."
  },
  "notifications": {
    "saveSuccess": "Cambios guardados exitosamente",
    "deleteSuccess": "Eliminado exitosamente",
    "createSuccess": "Creado exitosamente",
    "updateSuccess": "Actualizado exitosamente",
    "saveFailed": "Error al guardar cambios",
    "deleteFailed": "Error al eliminar",
    "createFailed": "Error al crear",
    "updateFailed": "Error al actualizar",
    "partialFailed": "Completado con {{count}} error(es)"
  },
  "security": {
    "title": "Seguridad",
    "description": "Configura las capas de seguridad para tu proxy inverso",
    "cerberusDashboard": "Panel de Cerberus",
    "cerberusActive": "Activo",
    "cerberusDisabled": "Deshabilitado",
    "cerberusReadyMessage": "Todas las cabezas de seguridad están listas para configuración",
    "cerberusDisabledMessage": "Habilita Cerberus en Configuración del Sistema para activar las funciones de seguridad",
    "featuresUnavailable": "Funciones de Seguridad No Disponibles",
    "featuresUnavailableMessage": "Cerberus controla CrowdSec, Coraza WAF, Control de Acceso y Limitación de Tasa. Habilita el interruptor de Cerberus en Configuración del Sistema para activar estas funciones.",
    "learnMore": "Más información",
    "adminWhitelist": "Lista Blanca de Admin",
    "adminWhitelistDescription": "Configura direcciones IP que omiten las verificaciones de seguridad",
    "commaSeparatedCIDR": "CIDR/IPs separados por comas",
    "generateToken": "Generar Token",
    "generateTokenTooltip": "Generar un token de emergencia para acceso de emergencia",
    "enableCerberusFirst": "Habilita Cerberus primero",
    "layer": "Capa",
    "crowdsec": {
      "title": "CrowdSec",
      "subtitle": "Reputación IP e Inteligencia de Amenazas",
      "badge": "IDS",
      "enabledDescription": "Protege contra: Atacantes conocidos, botnets, fuerza bruta",
      "disabledDescription": "Sistema de Prevención de Intrusiones impulsado por inteligencia de amenazas comunitaria",
      "processRunning": "Ejecutando (PID {{pid}})",
      "processStopped": "Proceso detenido",
      "toggleTooltip": "Alternar protección CrowdSec",
      "copyFailed": "Error al copiar la clave API",
      "keyWarning": {
        "title": "Clave API de CrowdSec Actualizada",
        "description": "Su clave API configurada fue rechazada por CrowdSec LAPI. Se ha generado automáticamente una nueva clave para restaurar la protección.",
        "instructions": "Actualice su docker-compose.yml con la nueva clave para evitar el re-registro al reiniciar el contenedor:",
        "copyButton": "Copiar",
        "copied": "Clave copiada al portapapeles",
        "restartNote": "Después de actualizar docker-compose.yml, reinicie el contenedor para que el cambio surta efecto."
      }
    },
    "acl": {
      "title": "Control de Acceso",
      "subtitle": "Filtrado basado en IP y Geo",
      "badge": "ACL",
      "description": "Protege contra: IPs no autorizadas, ataques basados en geolocalización, amenazas internas",
      "manageLists": "Gestionar Listas",
      "toggleTooltip": "Alternar Control de Acceso"
    },
    "waf": {
      "title": "Coraza WAF",
      "subtitle": "Inspección y filtrado de solicitudes",
      "badge": "WAF",
      "enabledDescription": "Protege contra: Inyección SQL, XSS, RCE, exploits de día cero*",
      "disabledDescription": "Firewall de Aplicaciones Web con OWASP Core Rule Set",
      "toggleTooltip": "Alternar Coraza WAF"
    },
    "rateLimit": {
      "title": "Limitación de Tasa",
      "subtitle": "Control de volumen de solicitudes",
      "badge": "Rate",
      "description": "Protege contra: Ataques DDoS, relleno de credenciales, abuso de API",
      "toggleTooltip": "Alternar Limitación de Tasa"
    },
    "notifications": "Notificaciones",
    "threeHeadsTurn": "Tres cabezas giran...",
    "cerberusConfigUpdating": "Configuración de Cerberus actualizándose",
    "summoningGuardian": "Invocando al guardián...",
    "crowdsecStarting": "CrowdSec está iniciando",
    "guardianRests": "El guardián descansa...",
    "crowdsecStopping": "CrowdSec está deteniéndose",
    "strengtheningGuard": "Fortaleciendo la guardia...",
    "wardsActivating": "Protecciones activándose"
  },
  "accessLists": {
    "title": "Listas de Acceso",
    "description": "Gestiona el control de acceso basado en IP",
    "createAccessList": "Crear Lista de Acceso",
    "editAccessList": "Editar Lista de Acceso",
    "deleteAccessList": "Eliminar Lista de Acceso",
    "deleteSelected": "Eliminar ({{count}})",
    "bestPractices": "Mejores Prácticas",
    "testIP": "Probar IP",
    "testIPAddress": "Probar Dirección IP",
    "ipAddress": "Dirección IP",
    "accessList": "Lista de Acceso",
    "rfc1918Only": "Solo RFC1918",
    "cgnatWarning": {
      "title": "Advertencia de CGNAT y Red Móvil",
      "message": "Si usas T-Mobile 5G Home Internet, Starlink u otras conexiones CGNAT, el bloqueo geográfico puede no funcionar como se espera. Tu IP puede parecer de una ubicación de centro de datos, no de tu ubicación física.",
      "solutionsTitle": "Soluciones si estás bloqueado:",
      "solution1": "Accede vía IP de red local (192.168.x.x) - Las ACLs no aplican a IPs locales",
      "solution2": "Añade tu IP actual a una ACL de lista blanca",
      "solution3": "Usa \"Probar IP\" abajo para verificar qué IP ve el servidor",
      "solution4": "Deshabilita la ACL temporalmente para recuperar acceso",
      "solution5": "Conéctate vía VPN con una dirección IP conocida"
    },
    "deleteConfirmTitle": "Eliminar Lista de Acceso",
    "deleteConfirmMessage": "¿Estás seguro de que deseas eliminar \"{{name}}\"? Se creará una copia de seguridad antes de la eliminación.",
    "bulkDeleteConfirmTitle": "Eliminar Listas de Acceso Seleccionadas",
    "bulkDeleteConfirmMessage": "¿Estás seguro de que deseas eliminar {{count}} lista(s) de acceso? Se creará una copia de seguridad antes de la eliminación.",
    "deleteItems": "Eliminar {{count}} Elementos",
    "deleting": "Eliminando...",
    "noAccessLists": "Sin Listas de Acceso",
    "noAccessListsDescription": "Crea tu primera lista de acceso para controlar quién puede acceder a tus servicios"
  },
  "rateLimiting": {
    "title": "Configuración de Limitación de Tasa",
    "description": "Controla las tasas de solicitudes para proteger tus servicios del abuso",
    "aboutTitle": "Sobre la Limitación de Tasa",
    "aboutDescription": "La limitación de tasa ayuda a proteger tus servicios del abuso, ataques de fuerza bruta y consumo excesivo de recursos. Configura límites por dirección IP del cliente.",
    "currentlyActive": "Actualmente Activo",
    "currentConfig": "{{requests}} solicitudes/seg • Ráfaga: {{burst}} • Ventana: {{window}}s",
    "enableRateLimiting": "Habilitar Limitación de Tasa",
    "enabledMessage": "La limitación de tasa está activa y protegiendo tus servicios",
    "disabledMessage": "Habilita para comenzar a limitar las tasas de solicitudes",
    "configuration": "Configuración",
    "requestsPerSecond": "Solicitudes por Segundo",
    "requestsPerSecondHelper": "Máximo de solicitudes permitidas por segundo por cliente",
    "burst": "Ráfaga",
    "burstHelper": "Permitir ráfagas cortas por encima del límite de tasa",
    "windowSeconds": "Ventana (segundos)",
    "windowHelper": "Ventana de tiempo para cálculos de tasa",
    "rateLimitingDisabled": "Limitación de Tasa Deshabilitada",
    "enableToConfigureMessage": "Habilita la limitación de tasa para configurar límites de solicitudes y proteger tus servicios",
    "adjustingGates": "Ajustando las puertas...",
    "configurationUpdating": "Configuración de limitación de tasa actualizándose"
  },
  "wafConfig": {
    "title": "Configuración WAF",
    "description": "Gestiona los conjuntos de reglas del Firewall de Aplicaciones Web Coraza",
    "addRuleSet": "Añadir Conjunto de Reglas",
    "createRuleSet": "Crear Conjunto de Reglas",
    "editRuleSet": "Editar Conjunto de Reglas",
    "updateRuleSet": "Actualizar Conjunto de Reglas",
    "deleteRuleSet": "Eliminar Conjunto de Reglas",
    "ruleSyntax": "Sintaxis de Reglas",
    "aboutTitle": "Sobre los Conjuntos de Reglas WAF",
    "aboutDescription": "Los conjuntos de reglas definen reglas ModSecurity/Coraza que inspeccionan y filtran solicitudes HTTP. El WAF habilita automáticamente SecRuleEngine On y SecRequestBodyAccess On para tus reglas.",
    "deleteConfirmTitle": "Eliminar Conjunto de Reglas",
    "deleteConfirmMessage": "¿Estás seguro de que deseas eliminar \"{{name}}\"? Esta acción no se puede deshacer.",
    "noRuleSets": "Sin Conjuntos de Reglas",
    "noRuleSetsDescription": "Crea tu primer conjunto de reglas WAF para proteger tus servicios de ataques web",
    "ruleSetName": "Nombre del Conjunto de Reglas",
    "mode": "Modo",
    "blocking": "Bloqueo",
    "detection": "Detección",
    "detectionOnly": "Solo Detección",
    "blockingDescription": "Las solicitudes maliciosas serán bloqueadas con HTTP 403",
    "detectionDescription": "Las solicitudes maliciosas serán registradas pero no bloqueadas",
    "sourceUrl": "URL de Origen (opcional)",
    "sourceUrlHelper": "URL para obtener reglas. Déjalo vacío para usar contenido en línea.",
    "ruleContent": "Contenido de Reglas",
    "ruleContentHelper": "Sintaxis de reglas ModSecurity/Coraza. Cada SecRule debe estar en su propia línea.",
    "source": "Origen",
    "url": "URL",
    "inline": "En línea",
    "lastUpdated": "Última Actualización",
    "rulesCount": "{{count}} regla(s)",
    "quickStartPreset": "Inicio Rápido con Preajuste",
    "choosePreset": "Elegir un preajuste...",
    "cerberusAwakens": "Cerberus despierta...",
    "guardianWatches": "El guardián de las puertas vigila",
    "forgingDefenses": "Forjando nuevas defensas...",
    "rulesInscribing": "Reglas de seguridad inscribiéndose",
    "loweringBarrier": "Bajando una barrera...",
    "defenseRemoved": "Capa de defensa eliminada",
    "loadingWaf": "Cargando configuración WAF...",
    "loadingFailed": "Error al cargar la configuración WAF"
  },
  "uptime": {
    "title": "Monitoreo de Disponibilidad",
    "description": "Monitorea la salud y disponibilidad de tus servicios",
    "autoRefresh": "Actualizando cada 30s",
    "noMonitors": "No se encontraron monitores. Añade un Host Proxy o Servidor Remoto para comenzar a monitorear.",
    "proxyHosts": "Hosts Proxy",
    "remoteServers": "Servidores Remotos",
    "otherMonitors": "Otros Monitores",
    "configureMonitor": "Configurar Monitor",
    "monitorName": "Nombre",
    "maxRetries": "Reintentos Máximos",
    "maxRetriesHelper": "Número de fallos consecutivos antes de enviar una alerta.",
    "checkInterval": "Intervalo de Verificación (segundos)",
    "saveChanges": "Guardar Cambios",
    "saving": "Guardando...",
    "latency": "Latencia",
    "lastCheck": "Última Verificación",
    "never": "Nunca",
    "paused": "PAUSADO",
    "pause": "Pausar",
    "unpause": "Reanudar",
    "triggerCheck": "Activar verificación de salud inmediata",
    "healthCheckTriggered": "Verificación de salud activada",
    "monitorDeleted": "Monitor eliminado",
    "deleteConfirm": "¿Eliminar este monitor? Esto no se puede deshacer.",
    "pending": "VERIFICANDO...",
    "pendingFirstCheck": "Esperando primera verificación..."
  },
  "domains": {
    "title": "Dominios",
    "description": "Administra tus dominios",
    "addDomain": "Agregar Dominio",
    "deleteDomain": "Eliminar Dominio",
    "domainName": "Nombre del Dominio",
    "placeholder": "ejemplo.com",
    "adding": "Agregando...",
    "added": "Agregado {{date}}",
    "deleteConfirm": "¿Estás seguro de que quieres eliminar este dominio?",
    "createFailed": "Error al crear dominio",
    "deleteFailed": "Error al eliminar dominio",
    "loadError": "Error al cargar dominios"
  },
  "remoteServers": {
    "title": "Servidores Remotos",
    "description": "Administra servidores backend para tus proxy hosts",
    "addServer": "Agregar Servidor",
    "editServer": "Editar Servidor",
    "deleteServer": "Eliminar Servidor Remoto",
    "noServers": "Sin Servidores Remotos",
    "noServersDescription": "Agrega servidores para seleccionar backends rápidamente al crear proxy hosts",
    "columnName": "Nombre",
    "columnProvider": "Proveedor",
    "columnHost": "Host",
    "columnPort": "Puerto",
    "host": "Host",
    "port": "Puerto",
    "user": "Usuario",
    "gridView": "Vista en cuadrícula",
    "listView": "Vista en lista",
    "deleteConfirm": "¿Estás seguro de que quieres eliminar \"{{name}}\"? Esta acción no se puede deshacer.",
    "deleting": "Eliminando..."
  },
  "notificationProviders": {
    "title": "Proveedores de Notificaciones",
    "description": "Administra proveedores de notificaciones y plantillas",
    "addProvider": "Agregar Proveedor",
    "addNewProvider": "Agregar Nuevo Proveedor",
    "providerName": "Nombre",
    "urlWebhook": "URL / Webhook",
    "urlRequired": "URL es requerida",
    "invalidUrl": "Ingrese una URL válida que comience con http:// o https://",
    "genericWebhook": "Webhook Genérico",
    "customWebhook": "Webhook Personalizado (JSON)",
    "jsonPayloadTemplate": "Plantilla de Carga JSON",
    "minimalTemplate": "Plantilla Mínima",
    "detailedTemplate": "Plantilla Detallada",
    "customTemplate": "Personalizada",
    "template": "Plantilla",
    "availableVariables": "Variables disponibles: .Title, .Message, .Status, .Name, .Latency, .Time. Solo carga útil de Discord para este despliegue.",
    "notificationEvents": "Eventos de Notificación",
    "proxyHosts": "Proxy Hosts",
    "remoteServers": "Servidores Remotos",
    "domainsNotify": "Dominios",
    "certificates": "Certificados",
    "uptime": "Tiempo de Actividad",
    "preview": "Vista Previa",
    "previewError": "Error de Vista Previa",
    "previewResult": "Resultado de Vista Previa",
    "externalTemplates": "Plantillas Externas",
    "manageTemplates": "Administrar Plantillas",
    "hideTemplates": "Ocultar",
    "newTemplate": "Nueva Plantilla",
    "createTemplate": "Crear Plantilla",
    "templateType": "Tipo de Plantilla",
    "minimal": "Mínima",
    "detailed": "Detallada",
    "custom": "Personalizada",
    "configJson": "Config (JSON/plantilla)",
    "noExternalTemplates": "Sin plantillas externas. Usa el formulario arriba para crear una.",
    "deleteTemplateConfirm": "¿Eliminar plantilla?",
    "sendTest": "Enviar Notificación de Prueba",
    "testSent": "¡Notificación de prueba enviada!",
    "testFailed": "Error al enviar prueba",
    "deleteConfirm": "¿Estás seguro?",
    "noProviders": "No hay proveedores de notificaciones configurados.",
    "deprecatedReadOnly": "Obsoleto (solo lectura)",
    "nonDispatch": "Sin envío",
    "deprecatedProviderMessage": "Este tipo de proveedor heredado está obsoleto para este despliegue. Se mantiene visible para auditoría, no se puede editar y no enviará notificaciones.",
    "securityEventSubscriptions": "Security Event Subscriptions",
    "securityEventSubscriptionsHelp": "Select security events for each provider in this form.",
    "wafBlocks": "WAF Blocks",
    "wafBlocksHelp": "When the Web Application Firewall blocks a request.",
    "aclDenials": "ACL Denials",
    "aclDenialsHelp": "When an IP is denied by Access Control Lists.",
    "rateLimitHits": "Rate Limit Hits",
    "rateLimitHitsHelp": "When a client exceeds rate limiting thresholds.",
    "webhookUrl": "Webhook URL (Optional)",
    "webhookUrlHelp": "POST requests will be sent to this URL when security events occur.",
    "emailRecipients": "Email Recipients (Optional)",
    "emailRecipientsHelp": "Comma-separated email addresses."
  },
  "users": {
    "title": "Gestión de Usuarios",
    "inviteUser": "Invitar Usuario",
    "inviteSent": "Correo de invitación enviado",
    "inviteCreated": "Usuario invitado - copia el enlace de invitación abajo",
    "inviteFailed": "Error al invitar usuario",
    "inviteLinkCopied": "Enlace de invitación copiado al portapapeles",
    "inviteSuccess": "Usuario Invitado Exitosamente",
    "inviteEmailSent": "Se ha enviado un correo de invitación al usuario.",
    "inviteEmailNotSent": "No se envió el correo. Comparte el enlace de invitación manualmente.",
    "inviteLink": "Enlace de Invitación",
    "copyInviteLink": "Copiar enlace de invitación",
    "expires": "Expira",
    "done": "Listo",
    "emailAddress": "Dirección de Correo",
    "role": "Rol",
    "roleUser": "Usuario",
    "roleAdmin": "Administrador",
    "permissionMode": "Modo de Permisos",
    "allowAllBlacklist": "Permitir Todo (Lista Negra)",
    "denyAllWhitelist": "Denegar Todo (Lista Blanca)",
    "allowAllDescription": "El usuario puede acceder a todos los hosts EXCEPTO los seleccionados abajo",
    "denyAllDescription": "El usuario SOLO puede acceder a los hosts seleccionados abajo",
    "blockedHosts": "Hosts Bloqueados",
    "allowedHosts": "Hosts Permitidos",
    "noProxyHosts": "No hay proxy hosts configurados",
    "sendInvite": "Enviar Invitación",
    "editPermissions": "Editar Permisos",
    "permissionsUpdated": "Permisos actualizados",
    "permissionsUpdateFailed": "Error al actualizar permisos",
    "savePermissions": "Guardar Permisos",
    "userUpdated": "Usuario actualizado",
    "userUpdateFailed": "Error al actualizar usuario",
    "userDeleted": "Usuario eliminado",
    "userDeleteFailed": "Error al eliminar usuario",
    "columnUser": "Usuario",
    "columnRole": "Rol",
    "columnPermissions": "Permisos",
    "noName": "(Sin nombre)",
    "pendingInvite": "Invitación Pendiente",
    "inviteExpired": "Invitación Expirada",
    "whitelist": "Lista Blanca",
    "blacklist": "Lista Negra",
    "deleteConfirm": "¿Estás seguro de que quieres eliminar este usuario?",
    "deleteUser": "Eliminar usuario",
    "inviteUrlPreview": "Vista previa del enlace de invitación",
    "inviteUrlWarning": "La URL de la aplicación no está configurada. Este enlace puede no funcionar para usuarios externos.",
    "configureApplicationUrl": "Configurar URL de aplicación",
    "resendInvite": "Reenviar invitación",
    "inviteResent": "Invitación reenviada exitosamente",
    "inviteCreatedNoEmail": "Nueva invitación creada. No se pudo enviar el correo electrónico.",
    "resendFailed": "Error al reenviar la invitación"
  },
  "dashboard": {
    "title": "Panel de Control",
    "description": "Resumen de tu proxy inverso Charon",
    "proxyHosts": "Hosts Proxy",
    "remoteServers": "Servidores Remotos",
    "certificates": "Certificados",
    "certificateStatus": "Estado de Certificados",
    "accessLists": "Listas de Acceso",
    "systemStatus": "Estado del Sistema",
    "healthy": "Saludable",
    "unhealthy": "No Saludable",
    "pendingCertificates": "Certificados pendientes",
    "allCertificatesValid": "Todos los certificados válidos",
    "activeHosts": "{{count}} activo",
    "activeServers": "{{count}} activo",
    "activeLists": "{{count}} activo",
    "validCerts": "{{count}} válido"
  },
  "setup": {
    "welcomeTitle": "Bienvenido a Charon",
    "welcomeDescription": "Crea tu cuenta de administrador para comenzar.",
    "nameLabel": "Nombre",
    "namePlaceholder": "Usuario Admin",
    "emailLabel": "Correo Electrónico",
    "emailPlaceholder": "admin@ejemplo.com",
    "invalidEmail": "Por favor ingresa una dirección de correo válida",
    "passwordLabel": "Contraseña",
    "createAdminButton": "Crear Cuenta de Admin",
    "setupFailed": "Error en la configuración"
  },
  "acceptInvite": {
    "title": "Aceptar Invitación",
    "invalidLink": "Enlace Inválido",
    "invalidLinkMessage": "Este enlace de invitación es inválido o está incompleto.",
    "goToLogin": "Ir a Iniciar Sesión",
    "validating": "Validando invitación...",
    "invitationInvalid": "Invitación Inválida",
    "expiredOrInvalid": "Esta invitación ha expirado o es inválida.",
    "accountCreated": "¡Cuenta Creada!",
    "accountCreatedMessage": "Tu cuenta ha sido configurada exitosamente. Redirigiendo al inicio de sesión...",
    "youveBeenInvited": "¡Has sido invitado!",
    "completeSetup": "Completa la configuración de tu cuenta para",
    "yourName": "Tu Nombre",
    "namePlaceholder": "Juan Pérez",
    "confirmPassword": "Confirmar Contraseña",
    "passwordsDoNotMatch": "Las contraseñas no coinciden",
    "createAccount": "Crear Cuenta",
    "welcomeMessage": "¡Bienvenido, {{email}}! Ya puedes iniciar sesión.",
    "acceptFailed": "Error al aceptar la invitación"
  },
  "tasks": {
    "title": "Tareas",
    "description": "Administrar tareas del sistema y ver registros"
  },
  "backups": {
    "title": "Copias de Seguridad",
    "description": "Administrar copias de seguridad de la base de datos",
    "configuration": "Configuración",
    "intervalDays": "Intervalo de Respaldo (Días)",
    "retentionDays": "Período de Retención (Días)",
    "saveSettings": "Guardar Configuración",
    "settingsSaved": "Configuración de respaldo guardada",
    "settingsFailed": "Error al guardar configuración: {{error}}",
    "createBackup": "Crear Respaldo",
    "createSuccess": "Respaldo creado exitosamente",
    "createFailed": "Error al crear respaldo: {{error}}",
    "restoreBackup": "Restaurar Respaldo",
    "restore": "Restaurar",
    "restoreSuccess": "Respaldo restaurado exitosamente. Por favor reinicie el contenedor.",
    "restoreFailed": "Error al restaurar respaldo: {{error}}",
    "restoreConfirmMessage": "¿Está seguro de que desea restaurar este respaldo? Los datos actuales serán sobrescritos. Deberá reiniciar el contenedor después de la restauración.",
    "deleteBackup": "Eliminar Respaldo",
    "deleteSuccess": "Respaldo eliminado exitosamente",
    "deleteFailed": "Error al eliminar respaldo: {{error}}",
    "deleteConfirmMessage": "¿Está seguro de que desea eliminar \"{{filename}}\"? Esta acción no se puede deshacer.",
    "download": "Descargar",
    "filename": "Nombre de Archivo",
    "size": "Tamaño",
    "createdAt": "Creado En",
    "auto": "Auto",
    "manual": "Manual",
    "noBackups": "Sin Respaldos",
    "noBackupsDescription": "Cree su primer respaldo para proteger su configuración"
  },
  "logs": {
    "title": "Registros",
    "description": "Ver registros del sistema y de acceso",
    "logFiles": "Archivos de Registro",
    "noLogFiles": "No se encontraron archivos de registro",
    "noLogSelected": "Ningún Registro Seleccionado",
    "selectLogDescription": "Seleccione un archivo de registro de la lista para ver su contenido",
    "showingEntries": "Mostrando {{from}} a {{to}} de {{total}} entradas",
    "pageOf": "Página {{current}} de {{total}}"
  },
  "account": {
    "title": "Configuración de Cuenta",
    "profile": "Perfil",
    "profileDescription": "Actualiza tu información personal.",
    "saveProfile": "Guardar Perfil",
    "profileUpdated": "Perfil actualizado exitosamente",
    "profileUpdateFailed": "Error al actualizar perfil: {{error}}",
    "certificateEmail": "Email de Certificado",
    "certificateEmailDescription": "Este email se usa para notificaciones y recuperación de Let's Encrypt.",
    "useAccountEmail": "Usar mi email de cuenta ({{email}})",
    "customEmail": "Email Personalizado",
    "saveCertificateEmail": "Guardar Email de Certificado",
    "certEmailUpdated": "Email de certificado actualizado",
    "certEmailUpdateFailed": "Error al actualizar email de certificado: {{error}}",
    "changePassword": "Cambiar Contraseña",
    "changePasswordDescription": "Actualiza la contraseña de tu cuenta por seguridad.",
    "currentPassword": "Contraseña Actual",
    "newPassword": "Nueva Contraseña",
    "confirmNewPassword": "Confirmar Nueva Contraseña",
    "updatePassword": "Actualizar Contraseña",
    "passwordsDoNotMatch": "Las contraseñas no coinciden",
    "passwordUpdated": "Contraseña actualizada exitosamente",
    "passwordUpdateFailed": "Error al actualizar contraseña",
    "apiKey": "Clave API",
    "apiKeyDescription": "Usa esta clave para autenticarte con la API programáticamente. ¡Mantenla en secreto!",
    "copyToClipboard": "Copiar al portapapeles",
    "regenerateApiKey": "Regenerar Clave API",
    "apiKeyCopied": "Clave API copiada al portapapeles",
    "apiKeyRegenerated": "Clave API regenerada exitosamente",
    "apiKeyRegenerateFailed": "Error al regenerar clave API: {{error}}",
    "securityNotice": "Aviso de Seguridad",
    "securityNoticeMessage": "Nunca compartas tu clave API o contraseña con nadie. Si crees que tus credenciales han sido comprometidas, regenera tu clave API inmediatamente.",
    "confirmPassword": "Confirmar Contraseña",
    "confirmPasswordDescription": "Por favor ingresa tu contraseña actual para confirmar estos cambios.",
    "enterPassword": "Ingresa tu contraseña",
    "confirmAndUpdate": "Confirmar y Actualizar",
    "updateCertEmailTitle": "¿Actualizar Email de Certificado?",
    "updateCertEmailDescription": "Estás cambiando tu email de cuenta a {{email}}. ¿Quieres usar este nuevo email para certificados SSL también?",
    "yesUpdateCertEmail": "Sí, actualizar email de certificado también",
    "noKeepEmail": "No, seguir usando {{email}}"
  },
  "importCaddy": {
    "title": "Importar Caddyfile",
    "enterCaddyfileContent": "Por favor, ingrese el contenido del Caddyfile",
    "cancelConfirm": "¿Está seguro de que desea cancelar esta importación?",
    "noDomainsFound": "No se encontraron dominios en el Caddyfile",
    "emptyFileWarning": "El archivo importado parece estar vacío o no contiene directivas reverse_proxy válidas. Por favor, verifique el contenido del archivo a continuación.",
    "uploadOrPaste": "Subir o pegar Caddyfile",
    "description": "Importe un Caddyfile existente para crear automáticamente configuraciones de host proxy. El sistema detectará conflictos y le permitirá revisar los cambios antes de confirmar.",
    "uploadCaddyfile": "Subir Caddyfile",
    "orPasteContent": "o pegar contenido",
    "caddyfileContent": "Contenido del Caddyfile",
    "processing": "Procesando...",
    "parseAndReview": "Analizar y revisar",
    "multiSiteImport": "Importación multi-sitio"
  },
  "importCrowdSec": {
    "title": "Paquetes de Configuración de CrowdSec",
    "description": "Suba un paquete tar.gz o zip. Se crea una copia de seguridad antes de importar para que pueda revertir si es necesario. Exporte el paquete actual desde el panel de Cerberus o la página de configuración de CrowdSec.",
    "import": "Importar",
    "configImported": "Configuración de CrowdSec importada",
    "importFailed": "Importación fallida: {{error}}",
    "creatingBackup": "Creando copia de seguridad...",
    "importing": "Importando CrowdSec..."
  },
  "systemSettings": {
    "title": "Configuración del Sistema",
    "settingsSaved": "Configuración del sistema guardada",
    "settingsFailed": "Error al guardar la configuración: {{error}}",
    "featureFlagUpdated": "Flag de característica actualizado",
    "featureFlagFailed": "Error al actualizar el flag: {{error}}",
    "updatingFeatures": "Actualizando características...",
    "applyingChanges": "Aplicando cambios de configuración",
    "pleaseWait": "Por favor espere",
    "saveSettings": "Guardar Configuración",
    "features": {
      "title": "Características",
      "description": "Habilitar o deshabilitar características opcionales para tu instancia de Charon.",
      "cerberus": "Suite de Seguridad Cerberus",
      "cerberusTooltip": "Características de seguridad avanzadas incluyendo WAF, Listas de Acceso, Limitación de Tasa y CrowdSec.",
      "crowdsecConsole": "Inscripción en Consola CrowdSec",
      "crowdsecConsoleTooltip": "Permitir inscribir este nodo con la Consola CrowdSec para gestión centralizada de flota.",
      "uptimeMonitoring": "Monitoreo de Disponibilidad",
      "uptimeMonitoringTooltip": "Monitorear la disponibilidad de tus hosts proxy y servidores remotos."
    },
    "general": {
      "title": "Configuración General",
      "description": "Configurar preferencias de Caddy y UI.",
      "caddyAdminApi": "Endpoint de API Admin de Caddy",
      "caddyAdminApiHelper": "URL a la API admin de Caddy (usualmente en puerto 2019)",
      "sslProvider": "Proveedor SSL",
      "selectSslProvider": "Seleccionar proveedor SSL",
      "sslAuto": "Auto (Recomendado)",
      "sslLetsEncryptProd": "Let's Encrypt (Producción)",
      "sslLetsEncryptStaging": "Let's Encrypt (Pruebas)",
      "sslZeroSSL": "ZeroSSL",
      "sslProviderHelper": "Elige la Autoridad Certificadora. 'Auto' usa Let's Encrypt con ZeroSSL como respaldo.",
      "domainLinkBehavior": "Comportamiento de Enlaces de Dominio",
      "selectLinkBehavior": "Seleccionar comportamiento de enlace",
      "sameTab": "Misma Pestaña",
      "newTab": "Nueva Pestaña (Por defecto)",
      "newWindow": "Nueva Ventana",
      "domainLinkBehaviorHelper": "Controla cómo se abren los enlaces de dominio en la lista de Hosts Proxy.",
      "keepaliveIdle": "Keepalive Idle (Opcional)",
      "keepaliveIdleHelper": "Duración opcional de Caddy (por ejemplo, 2m, 30s). Déjelo vacío para mantener los valores predeterminados del backend.",
      "keepaliveIdleError": "Ingrese una duración válida (por ejemplo: 30s, 2m, 1h).",
      "keepaliveCount": "Keepalive Count (Opcional)",
      "keepaliveCountHelper": "Número máximo opcional de sondeos keepalive (1-1000). Déjelo vacío para mantener los valores predeterminados del backend.",
      "keepaliveCountError": "Ingrese un número entero entre 1 y 1000.",
      "keepaliveValidationFailed": "La configuración de keepalive contiene valores no válidos.",
      "languageHelper": "Selecciona tu idioma preferido. Los cambios surten efecto inmediatamente."
    },    "applicationUrl": {
      "title": "URL de aplicación",
      "description": "Configure la URL pública utilizada para enlaces y correos electrónicos de cara al usuario.",
      "label": "URL de aplicación",
      "helper": "La URL pública donde los usuarios acceden a Charon (por ejemplo, https://charon.example.com). Se utiliza en correos de invitación y enlaces de restablecimiento de contraseña.",
      "infoMessage": "Esta URL se utiliza al enviar correos electrónicos de invitación. Si no está configurada, Charon usará la URL de la solicitud actual del navegador, que puede no ser accesible desde redes externas.",
      "invalidUrl": "Ingrese una URL válida que comience con http:// o https://",
      "notConfiguredWarning": "La URL de la aplicación no está configurada. Los correos de invitación usarán la URL actual del navegador, que puede no ser accesible desde redes externas.",
      "testButton": "Probar URL",
      "testSuccess": "URL abierta exitosamente",
      "testFailed": "Error al abrir URL"
    },    "systemStatus": {
      "title": "Estado del Sistema",
      "service": "Servicio",
      "version": "Versión",
      "buildTime": "Hora de Compilación",
      "gitCommit": "Commit de Git",
      "notAvailable": "N/D",
      "fetchError": "No se pudo obtener el estado del sistema. Por favor verifica tu conexión."
    },
    "updates": {
      "title": "Actualizaciones de Software",
      "description": "Buscar nuevas versiones de Charon.",
      "currentVersion": "Versión Actual",
      "latestVersion": "Última Versión",
      "updateAvailable": "Actualización Disponible",
      "newVersionAvailable": "¡Una nueva versión de Charon está disponible!",
      "viewReleaseNotes": "Ver Notas de Versión",
      "upToDate": "Actualizado",
      "runningLatest": "Estás ejecutando la última versión de Charon.",
      "checkForUpdates": "Buscar Actualizaciones"
    }
  },
  "crowdsecConfig": {
    "title": "Configuración de CrowdSec",
    "loading": "Cargando configuración de CrowdSec...",
    "loadError": "Error al cargar el estado de CrowdSec",
    "noStatus": "Estado de CrowdSec no disponible",
    "note": "Las actualizaciones automáticas y la gestión de plantillas son proporcionadas por Cerberus. Algunas funciones pueden estar limitadas si Cerberus está deshabilitado.",
    "consoleEnrollment": {
      "title": "Inscripción en Consola",
      "status": "Estado",
      "notEnrolled": "No inscrito",
      "enrolled": "Inscrito",
      "pending": "Pendiente",
      "enrolling": "Inscribiendo...",
      "pendingAcceptance": "Pendiente de aceptación",
      "unknown": "Desconocido",
      "lapiNotReady": "LAPI aún no está listo. CrowdSec puede estar iniciando.",
      "checkLapiStatus": "Verificar estado de LAPI",
      "startCrowdSec": "Iniciar CrowdSec",
      "goToSecurity": "Ir al Panel de Seguridad",
      "enrollmentToken": "Token de inscripción",
      "tokenPlaceholder": "Pegue su token de inscripción de la Consola CrowdSec",
      "agentName": "Nombre del agente (opcional)",
      "agentPlaceholder": "mi-instancia-charon",
      "tenant": "Inquilino/Organización (opcional)",
      "tenantPlaceholder": "id-org-de-consola",
      "acknowledge": "Reconozco que esto rotará las credenciales si ya está inscrito",
      "enroll": "Inscribir",
      "rotateKey": "Rotar clave",
      "retryEnrollment": "Reintentar inscripción",
      "lapiMustBeReady": "LAPI debe estar listo para inscribir",
      "lapiMustBeReadyRotate": "LAPI debe estar listo para rotar la clave",
      "lapiMustBeReadyRetry": "LAPI debe estar listo para reintentar la inscripción",
      "tokenRequired": "Se requiere token de inscripción",
      "actionRequired": "Acción requerida",
      "pendingAcceptanceText": "Su solicitud de inscripción ha sido enviada. Por favor acepte esta máquina en la Consola CrowdSec en",
      "pendingAcceptanceNote": " Una vez aceptado, el estado se actualizará automáticamente.",
      "agent": "Agente",
      "tenantLabel": "Inquilino",
      "lastAttempt": "Último intento",
      "enrolledAt": "Inscrito",
      "correlationId": "ID de correlación"
    },
    "reenroll": {
      "title": "Opciones de reinscripción",
      "description": "¿Necesita cambiar claves de inscripción o moverse a una organización diferente?",
      "getNewKey": "Obtener nueva clave de inscripción de la Consola",
      "withNewKey": "Reinscribir con nueva clave",
      "newEnrollmentKey": "Nueva clave de inscripción",
      "keyPlaceholder": "Pegue la nueva clave de inscripción",
      "agentPlaceholder": "Dejar vacío para mantener el nombre actual",
      "tenantOptional": "Inquilino/Organización (opcional)",
      "orgPlaceholder": "Dejar vacío para mantener el actual",
      "reenroll": "Reinscribir",
      "reenrolling": "Reinscribiendo...",
      "clearState": "Limpiar estado de inscripción",
      "clearing": "Limpiando...",
      "clearConfirm": "Esto limpiará el estado de inscripción local. Puede que necesite reinscribirse. ¿Continuar?"
    },
    "packages": {
      "title": "Paquetes de configuración",
      "description": "Exporte o importe paquetes de configuración de CrowdSec (tar.gz/zip). Se crea una copia de seguridad antes de importar.",
      "export": "Exportar",
      "import": "Importar",
      "importing": "Importando..."
    },
    "presets": {
      "title": "Plantillas",
      "description": "Aplique plantillas de configuración curadas o del hub.",
      "searchPlaceholder": "Buscar plantillas...",
      "sortAlpha": "Ordenar: A-Z",
      "sortSource": "Ordenar: Fuente",
      "curated": "Curada",
      "hub": "Hub",
      "noResults": "No hay plantillas que coincidan con \"{{query}}\"",
      "pullPreview": "Obtener vista previa",
      "applyPreset": "Aplicar plantilla",
      "hubUnreachable": "Hub de CrowdSec inalcanzable. Las plantillas del hub pueden no funcionar.",
      "retry": "Reintentar",
      "useCached": "Usar en caché",
      "targetFile": "Archivo destino",
      "selectFileBelow": "(seleccione un archivo de configuración abajo)",
      "cacheKey": "Clave de caché",
      "etag": "ETag",
      "source": "Fuente",
      "fetched": "Obtenido",
      "previewYaml": "Vista previa (YAML):",
      "previewUnavailable": "Vista previa no disponible",
      "applied": "Aplicado",
      "backup": "Respaldo",
      "reload": "Recargar",
      "required": "Requerido",
      "method": "Método",
      "filesystem": "Sistema de archivos",
      "loadCached": "Cargar vista previa en caché",
      "applyDisabled": "Aplicar deshabilitado mientras el hub está fuera de línea.",
      "noPresets": "No hay plantillas disponibles. Asegúrese de que Cerberus esté habilitado."
    },
    "files": {
      "title": "Editar archivos de configuración",
      "selectFile": "Seleccionar un archivo...",
      "refresh": "Actualizar"
    },
    "bannedIps": {
      "title": "IPs bloqueadas",
      "banIp": "Bloquear IP",
      "enableFirst": "Habilite CrowdSec para gestionar IPs bloqueadas",
      "loading": "Cargando IPs bloqueadas...",
      "loadFailed": "Error al cargar IPs bloqueadas",
      "none": "No hay IPs bloqueadas",
      "ip": "IP",
      "reason": "Razón",
      "duration": "Duración",
      "bannedAt": "Bloqueado el",
      "source": "Fuente",
      "actions": "Acciones",
      "unban": "Desbloquear"
    },
    "banModal": {
      "title": "Bloquear dirección IP",
      "ipLabel": "Dirección IP",
      "durationLabel": "Duración",
      "duration1h": "1 hora",
      "duration4h": "4 horas",
      "duration24h": "24 horas",
      "duration7d": "7 días",
      "duration30d": "30 días",
      "durationPermanent": "Permanente",
      "reasonLabel": "Razón",
      "reasonPlaceholder": "Razón para bloquear esta IP...",
      "submit": "Bloquear IP"
    },
    "unbanModal": {
      "title": "Confirmar desbloqueo",
      "confirm": "¿Está seguro de que desea desbloquear",
      "submit": "Desbloquear"
    }
  },
  "smtp": {
    "title": "Configuración de Correo (SMTP)",
    "description": "Configure los ajustes SMTP para habilitar notificaciones por correo e invitaciones de usuarios.",
    "configuration": "Configuración SMTP",
    "configDescription": "Ingrese los detalles de su servidor SMTP para habilitar la funcionalidad de correo.",
    "host": "Host SMTP",
    "port": "Puerto",
    "username": "Nombre de usuario",
    "password": "Contraseña",
    "passwordHelper": "Use contraseña específica de aplicación para Gmail",
    "fromAddress": "Dirección del remitente",
    "encryption": "Cifrado",
    "selectEncryption": "Seleccionar cifrado",
    "starttls": "STARTTLS (Recomendado)",
    "sslTls": "SSL/TLS",
    "none": "Ninguno",
    "testConnection": "Probar conexión",
    "saveSettings": "Guardar configuración",
    "settingsSaved": "Configuración SMTP guardada exitosamente",
    "saveFailed": "Error al guardar la configuración SMTP",
    "connectionSuccess": "Conexión SMTP exitosa",
    "connectionFailed": "Conexión SMTP fallida",
    "testFailed": "Error al probar la conexión SMTP",
    "configured": "SMTP configurado",
    "notConfigured": "SMTP no configurado",
    "active": "Activo",
    "inactive": "Inactivo",
    "sendTestEmail": "Enviar correo de prueba",
    "testEmailDescription": "Envíe un correo de prueba para verificar que su configuración SMTP funciona correctamente.",
    "sendTest": "Enviar prueba",
    "testEmailSent": "Correo de prueba enviado exitosamente",
    "testEmailFailed": "Error al enviar el correo de prueba",
    "needHelp": "¿Necesita ayuda?",
    "helpText": "Si usa Gmail, necesitará habilitar la autenticación de 2 factores y crear una contraseña específica de aplicación. Para otros proveedores, consulte su documentación SMTP para la configuración correcta."
  },
  "securityHeaders": {
    "title": "Cabeceras de Seguridad",
    "description": "Configure las cabeceras de seguridad HTTP para sus hosts proxy",
    "createProfile": "Crear Perfil",
    "alertTitle": "Proteja sus Aplicaciones",
    "alertDescription": "Las cabeceras de seguridad protegen contra vulnerabilidades web comunes. Use plantillas para una configuración rápida o cree perfiles personalizados para un control más preciso.",
    "systemProfiles": "Perfiles del Sistema (Solo Lectura)",
    "systemProfilesDescription": "Perfiles de seguridad preconfigurados que puede asignar a hosts proxy. Clone para personalizar.",
    "customProfiles": "Perfiles Personalizados",
    "noCustomProfiles": "Aún no hay perfiles personalizados",
    "noCustomProfilesDescription": "Cree un perfil de cabeceras de seguridad personalizado o aplique una plantilla para comenzar",
    "view": "Ver",
    "clone": "Clonar",
    "updated": "Actualizado",
    "viewProfile": "Ver Perfil de Cabeceras de Seguridad",
    "editProfile": "Editar Perfil de Cabeceras de Seguridad",
    "createProfileTitle": "Crear Perfil de Cabeceras de Seguridad",
    "confirmDeletion": "Confirmar Eliminación",
    "deleteConfirmMessage": "¿Está seguro de que desea eliminar \"{{name}}\"? Se creará una copia de seguridad antes de la eliminación.",
    "deleting": "Eliminando...",
    "creatingBackup": "Creando copia de seguridad antes de eliminar...",
    "backupCreated": "Copia de seguridad creada",
    "backupFailed": "Error al crear la copia de seguridad",
    "deleteSuccess": "\"{{name}}\" eliminado. Se creó una copia de seguridad antes de la eliminación.",
    "deleteFailed": "Error al eliminar: {{error}}",
    "presets": {
      "basic": "Cabeceras de seguridad mínimas para máxima compatibilidad.\n✓ Ideal para: Pruebas, desarrollo, sitios web simples.\n✓ Compatible con todas las aplicaciones y apps móviles.",
      "apiFriendly": "Optimizado para apps móviles y clientes API.\n✓ Ideal para: Radarr, Sonarr, Plex, Jellyfin, Home Assistant, Vaultwarden.\n✓ Fuerte seguridad de transporte, permite acceso cross-origin.\nRecomendado para servicios accedidos por apps móviles.",
      "strict": "Seguridad fuerte para aplicaciones web.\n✓ Ideal para: Dashboards solo web, paneles de administración.\n⚠ Puede afectar apps móviles y clientes API.\nNo recomendado para Radarr, Plex o servicios con apps companion.",
      "paranoid": "Seguridad máxima para aplicaciones de alto riesgo.\n✓ Ideal para: Banca, salud, apps críticas de cumplimiento.\n⚠ AFECTARÁ apps móviles, clientes API y flujos OAuth.\nSolo úselo si entiende y puede personalizar cada cabecera."
    }
  },
  "dns": {
    "title": "Gestión DNS",
    "description": "Administrar proveedores DNS y plugins para la automatización de certificados"
  }
}
