{
  "page.title": "Panel de control Fail2ban UI",
  "nav.dashboard": "Panel de control",
  "nav.filter_debug": "Depuración de filtros",
  "nav.settings": "Configuración",
  "restart_banner.message": "¡Configuración de Fail2ban modificada. Para aplicar los cambios, por favor ",
  "restart_banner.button": "Reiniciar servicio",
  "restart_banner.restart_success": "El servicio Fail2ban se reinició correctamente y superó la comprobación de estado",
  "restart_banner.reload_success": "La configuración de Fail2ban se recargó correctamente (sin reinicio del servicio Systemd)",
  "dashboard.title": "Panel de control",
  "dashboard.overview": "Resumen de Jails y Bloqueos activos",
  "dashboard.overview_hint": "Usa la búsqueda para filtrar IPs bloqueadas y haz clic en un jail para editar su configuración.",
  "dashboard.search_label": "Buscar IP bloqueadas",
  "dashboard.search_placeholder": "Introduce la dirección IP a buscar",
  "dashboard.external_ip": "Tu IP ext.:",
  "dashboard.manage_servers": "Administrar servidores",
  "dashboard.no_servers_title": "No hay servidores Fail2ban configurados",
  "dashboard.no_servers_body": "Añade un servidor para empezar a supervisar y controlar instancias de Fail2ban.",
  "dashboard.loading_summary": "Cargando resumen…",
  "dashboard.no_enabled_servers_title": "Sin conectores activos",
  "dashboard.no_enabled_servers_body": "Activa el conector local o registra un servidor Fail2ban remoto para ver datos en vivo.",
  "dashboard.jail_local_warning_title": "El jail.local en este servidor no está gestionado por Fail2ban-UI",
  "dashboard.jail_local_warning_body": "El archivo /etc/fail2ban/jail.local en el servidor seleccionado existe pero no está gestionado por Fail2ban-UI. Falta la acción de callback (ui-custom-action), lo que significa que los eventos de ban/unban no se registrarán y no se enviarán alertas por correo electrónico. Para solucionarlo, mueva cada sección jail de jail.local a su propio archivo en /etc/fail2ban/jail.d/ (use jailname.conf para mantener una configuración por defecto o jailname.local para anular un .conf existente). Luego elimine jail.local para que Fail2ban-UI pueda crear su propia versión gestionada (pulse una vez en la página de configuración para escribir el archivo). Asegúrese de que Fail2ban-UI tenga permisos de escritura en /etc/fail2ban/ -> consulte la documentación.",
  "dashboard.errors.summary_failed": "No se pudo cargar el resumen desde el servidor.",
  "dashboard.cards.active_jails": "Jails activos",
  "dashboard.cards.total_banned": "IPs bloqueadas totales",
  "dashboard.cards.new_last_hour": "Nuevas en la última hora",
  "dashboard.cards.total_logged": "Eventos de bloqueo almacenados",
  "dashboard.cards.recurring_week": "IPs recurrentes (7 días)",
  "dashboard.cards.recurring_hint": "Vigila a los infractores repetidos de los últimos 7 días.",
  "dashboard.table.jail_name": "Nombre del Jail",
  "dashboard.table.total_banned": "Total bloqueadas",
  "dashboard.table.new_last_hour": "Nuevas en la última hora",
  "dashboard.table.banned_ips": "IPs bloqueadas (Desbloquear)",
  "dashboard.no_jails": "No se encontraron jails.",
  "dashboard.overview_detail": "Colapsa o expande las listas largas para centrarte en los servicios afectados.",
  "dashboard.table.time": "Hora",
  "dashboard.table.jail": "Jail",
  "dashboard.table.ip": "IP",
  "dashboard.table.log_line": "Línea de log",
  "dashboard.no_banned_ips": "No hay IP bloqueadas",
  "dashboard.unban": "Desbloquear",
  "dashboard.manual_block.title": "Bloqueo manual de IP",
  "dashboard.manual_block.subtitle": "Bloquear manualmente una dirección IP en una cárcel específica.",
  "dashboard.manual_block.expand_hint": "Haga clic para expandir y bloquear una dirección IP",
  "dashboard.manual_block.jail_label": "Seleccionar cárcel",
  "dashboard.manual_block.jail_placeholder": "Elegir una cárcel...",
  "dashboard.manual_block.ip_label": "Dirección IP",
  "dashboard.manual_block.ip_placeholder": "ej. 88.76.21.123",
  "dashboard.manual_block.button": "Bloquear IP",
  "dashboard.manual_block.confirm": "¿Bloquear IP {ip} en la cárcel {jail}?",
  "dashboard.manual_block.success": "IP bloqueada exitosamente",
  "dashboard.manual_block.error": "Error al bloquear la IP",
  "dashboard.manual_block.jail_required": "Por favor seleccione una cárcel",
  "dashboard.manual_block.ip_required": "Por favor ingrese una dirección IP",
  "dashboard.manual_block.invalid_ip": "Por favor ingrese una dirección IP válida",
  "dashboard.banned.show_more": "Mostrar más",
  "dashboard.banned.show_less": "Mostrar menos",
  "logs.overview.title": "Resumen interno de registros",
  "logs.overview.subtitle": "Eventos almacenados por Fail2ban-UI a través de todos los conectores.",
  "logs.overview.refresh": "Actualizar datos",
  "logs.overview.total_events": "Eventos almacenados totales",
  "logs.overview.per_server": "Eventos por servidor",
  "logs.overview.recent_events_title": "Eventos almacenados recientes",
  "logs.overview.recent_empty": "No se encontraron eventos almacenados.",
  "logs.overview.empty": "Aún no se han registrado eventos de bloqueo.",
  "logs.overview.open_insights": "Abrir estadísticas",
  "logs.overview.total_today": "Hoy",
  "logs.overview.total_week": "Últimos 7 días",
  "logs.overview.per_server_empty": "Aún no hay datos por servidor.",
  "logs.overview.recent_filtered_empty": "No hay eventos que coincidan con los filtros.",
  "logs.overview.recent_count_label": "Eventos mostrados",
  "logs.overview.load_more": "Cargar más",
  "logs.overview.country_unknown": "Desconocido",
  "logs.overview.last_seen": "Última vez",
  "logs.table.server": "Servidor",
  "logs.table.count": "Cantidad",
  "logs.table.jail": "Jail",
  "logs.table.ip": "IP",
  "logs.table.time": "Hora",
  "logs.table.country": "País",
  "logs.table.actions": "Acciones",
  "logs.actions.whois": "Whois",
  "logs.actions.logs": "Registros",
  "logs.search.label": "Buscar eventos",
  "logs.search.placeholder": "Busca IP, jail o servidor",
  "logs.search.country_label": "País",
  "logs.search.country_all": "Todos los países",
  "logs.search.country_unknown": "Desconocido",
  "logs.badge.recurring": "Recurrente",
  "logs.modal.whois_title": "Información Whois",
  "logs.modal.logs_title": "Registros",
  "logs.modal.jail": "Jail",
  "logs.modal.insights_title": "Información de bloqueos",
  "logs.modal.insights_description": "Distribución por país y atacantes recurrentes.",
  "logs.modal.insights_countries": "Bloqueos por país",
  "logs.modal.insights_countries_empty": "No se registraron bloqueos en este periodo.",
  "logs.modal.insights_countries_hint": "Principales orígenes en el período seleccionado.",
  "logs.modal.insights_recurring_hint": "IPs que activan Fail2ban de forma recurrente.",
  "logs.modal.total_overall_note": "Bloqueos acumulados",
  "logs.modal.total_today_note": "Últimas 24 horas",
  "logs.modal.total_week_note": "Actividad semanal",
  "logs.modal.insights_recurring": "IPs recurrentes",
  "logs.modal.insights_recurring_empty": "No se detectaron IPs recurrentes.",
  "filter_debug.title": "Depuración de filtros",
  "filter_debug.select_filter": "Selecciona un filtro",
  "filter_debug.filter_content": "Contenido del filtro",
  "filter_debug.filter_content_hint": "Edita el regex del filtro a continuación para las pruebas. Los cambios son temporales y no se guardan.",
  "filter_debug.filter_content_hint_readonly": "El contenido del filtro se muestra de solo lectura. Haz clic en 'Editar' para modificar para las pruebas. Los cambios son temporales y no se guardan.",
  "filter_debug.edit_filter": "Editar",
  "filter_debug.cancel_edit": "Cancelar",
  "filter_debug.log_lines": "Líneas de log",
  "filter_debug.log_lines_placeholder": "Introduce las líneas de log aquí...",
  "filter_debug.test_filter": "Probar filtro",
  "filter_debug.test_results_title": "Resultados de la prueba",
  "filter_debug.no_matches": "No se encontraron coincidencias.",
  "settings.title": "Configuración",
  "settings.general": "Configuración general",
  "settings.language": "Idioma",
  "settings.server_port": "Puerto del servidor",
  "settings.server_port_placeholder": "ej. 8080",
  "settings.port_env_set": "El puerto está configurado mediante la variable de entorno PORT:",
  "settings.port_env_hint": "Para cambiar el puerto mediante la interfaz web, elimine la variable de entorno PORT y reinicie el contenedor.",
  "settings.port_restart_hint": "⚠️ Los cambios de puerto requieren un reinicio del contenedor para surtir efecto.",
  "settings.enable_debug": "Habilitar el modo de depuración",
  "settings.enable_console": "Habilitar salida de consola",
  "settings.console.title": "Salida de consola",
  "settings.console.clear": "Limpiar",
  "settings.console.save_hint": "Por favor, guarde primero su configuración antes de que se muestren los registros aquí.",
  "settings.alert": "Configuración de alertas",
  "settings.callback_url": "URL de retorno de Fail2ban",
  "settings.callback_url_placeholder": "http://127.0.0.1:8080",
  "settings.callback_url_hint": "Esta URL es utilizada por todas las instancias de Fail2Ban para enviar alertas de bloqueo a Fail2Ban UI. Para implementaciones locales, use el mismo puerto que Fail2Ban UI (ej. http://127.0.0.1:8080). Para configuraciones de proxy inverso, use su endpoint cifrado TLS (ej. https://fail2ban.example.com).",
  "settings.callback_url_env_set": "La URL de callback está configurada mediante la variable de entorno CALLBACK_URL:",
  "settings.callback_url_env_hint": "Para cambiar la URL de callback mediante la interfaz web, elimine la variable de entorno CALLBACK_URL y reinicie el contenedor.",
  "settings.callback_secret": "Secret de URL de Callback de Fail2ban",
  "settings.callback_secret_placeholder": "Secret de 42 caracteres generado automáticamente",
  "settings.callback_secret.description": "Este secret se genera automáticamente y se utiliza para autenticar las solicitudes de notificación de bloqueo. Está incluido en la configuración de acción de fail2ban.",
  "settings.destination_email": "Correo electrónico de destino (receptor de alertas)",
  "settings.destination_email_placeholder": "alerts@swissmakers.ch",
  "settings.alert_countries": "Países para alerta",
  "settings.alert_countries_description": "Elige los países para los que deseas recibir alertas por correo electrónico cuando se produzca un bloqueo.",
  "settings.email_alerts": "Preferencias de alertas por email",
  "settings.email_alerts_for_bans": "Activar alertas por email para bloqueos",
  "settings.email_alerts_for_unbans": "Activar alertas por email para desbloqueos",
  "settings.smtp": "Configuración SMTP",
  "settings.smtp_host": "Host SMTP",
  "settings.smtp_host_placeholder": "p.ej., smtp.gmail.com",
  "settings.smtp_port": "Puerto SMTP",
  "settings.smtp_port_placeholder": "587",
  "settings.smtp_port_hint": "Puertos comunes: 25 (sin cifrar), 587 (STARTTLS), 465 (SMTPS), 2525 (STARTTLS alternativo)",
  "settings.smtp_auth_method": "Método de Autenticación",
  "settings.smtp_auth_method_auto": "Auto (LOGIN preferido)",
  "settings.smtp_auth_method_login": "LOGIN",
  "settings.smtp_auth_method_plain": "PLAIN",
  "settings.smtp_auth_method_cram_md5": "CRAM-MD5",
  "settings.smtp_auth_method_hint": "LOGIN se recomienda para Office365/Gmail. PLAIN es la autenticación SMTP estándar. CRAM-MD5 está basado en challenge-response.",
  "settings.smtp_insecure_skip_verify": "Omitir Verificación de Certificado TLS",
  "settings.smtp_insecure_skip_verify_warning": "⚠️ No recomendado para producción",
  "settings.smtp_username": "Nombre de usuario SMTP",
  "settings.smtp_username_placeholder": "p.ej., usuario@example.com",
  "settings.smtp_password": "Contraseña SMTP",
  "settings.smtp_password_placeholder": "Introduce la contraseña SMTP",
  "settings.smtp_sender": "Correo electrónico del remitente",
  "settings.smtp_sender_placeholder": "noreply@swissmakers.ch",
  "settings.smtp_tls": "Usar TLS (recomendado)",
  "settings.send_test_email": "Enviar correo de prueba",
  "settings.send_test_email_hint": "⚠️ Por favor, guarde primero su configuración SMTP antes de enviar un correo de prueba.",
  "settings.fail2ban": "Configuraciones Globales Predeterminadas de Fail2Ban",
  "settings.fail2ban.description": "Estas configuraciones se aplicarán a todos los servidores Fail2Ban habilitados y se almacenarán en su sección [DEFAULT] de jail.local.",
  "settings.enable_bantime_increment": "Habilitar incremento de Bantime",
  "settings.enable_bantime_increment.description": "Si se establece en true, el bantime se calculará usando la fórmula: bantime = findtime * (número de fallos / maxretry) * (1 + bantime.rndtime).",
  "settings.default_jail_enable": "Jails por defecto activados",
  "settings.default_jail_enable.description": "Si está habilitado, todos los jails estarán habilitados por defecto. Cuando está deshabilitado, los jails deben habilitarse explícitamente.",
  "settings.default_bantime": "Bantime por defecto",
  "settings.default_bantime.description": "El número de segundos que un host está bloqueado. Formato de tiempo: 1m = 1 minutos, 1h = 1 horas, 1d = 1 días, 1w = 1 semana, 1mo = 1 mes, 1y = 1 año.",
  "settings.default_bantime_placeholder": "p.ej., 48h",
  "settings.bantime_rndtime": "Bantime Rndtime",
  "settings.bantime_rndtime.description": "Opcional. Segundos aleatorios máximos en la fórmula de incremento de bantime (p.ej. 2048). Dejar vacío para usar el valor por defecto de Fail2ban.",
  "settings.bantime_rndtime_placeholder": "p.ej., 2048",
  "settings.default_chain": "Chain por defecto",
  "settings.default_chain.description": "Chain de iptables/nftables para baneos (p.ej. INPUT para host, DOCKER-USER para contenedores Docker).",
  "settings.chain_help_title": "Chain por defecto",
  "settings.chain_docker_user": "DOCKER-USER",
  "settings.chain_help_docker_user": "Para aplicaciones en Docker. Los bans se aplican a todos los contenedores del host.",
  "settings.chain_input": "INPUT",
  "settings.chain_help_input": "Para aplicaciones en el host. Los bans solo afectan a la red del host, no a las redes Docker.",
  "settings.chain_forward": "FORWARD",
  "settings.chain_help_forward": "Solo en instalaciones Docker antiguas donde DOCKER-USER no existe.",
  "settings.banaction": "Banaction",
  "settings.banaction.description": "Acción de bloqueo por defecto (p.ej. nftables-multiport, nftables-allports, firewallcmd-rich-rules, etc). Se utiliza para definir las variables action_*.",
  "settings.banaction_allports": "Banaction Allports",
  "settings.banaction_allports.description": "Acción de bloqueo para todos los puertos (p.ej. nftables-allports, firewallcmd-allports, etc). Se utiliza cuando un jail necesita bloquear todos los puertos en lugar de puertos específicos.",
  "settings.default_findtime": "Findtime por defecto",
  "settings.default_findtime.description": "Un host es bloqueado si ha generado 'maxretry' fallos durante los últimos 'findtime' segundos. Formato de tiempo: 1m = 1 minutos, 1h = 1 horas, 1d = 1 días, 1w = 1 semana, 1mo = 1 mes, 1y = 1 año.",
  "settings.default_findtime_placeholder": "p.ej., 30m",
  "settings.default_max_retry": "Número máximo de reintentos por defecto",
  "settings.default_max_retry.description": "Número de fallos antes de que un host sea bloqueado.",
  "settings.default_max_retry_placeholder": "Introduce el número máximo de reintentos",
  "settings.geoip_provider": "Proveedor de GeoIP",
  "settings.geoip_provider.description": "Elija el proveedor de consulta GeoIP. MaxMind requiere un archivo de base de datos local, mientras que Built-in utiliza una API en línea gratuita.",
  "settings.geoip_provider.maxmind": "MaxMind (Base de Datos Local)",
  "settings.geoip_provider.builtin": "Built-in (ip-api.com)",
  "settings.geoip_database_path": "Ruta de la Base de Datos GeoIP",
  "settings.geoip_database_path.description": "Ruta al archivo de base de datos MaxMind GeoLite2-Country.",
  "settings.max_log_lines": "Líneas de Log Máximas",
  "settings.max_log_lines.description": "Número máximo de líneas de log a incluir en las notificaciones de bloqueo. Las líneas más relevantes se seleccionan automáticamente.",
  "settings.ignore_ips": "Ignorar IPs",
  "settings.ignore_ips.description": "Lista separada por espacios de direcciones IP, máscaras CIDR o hosts DNS. Fail2ban no bloqueará un host que coincida con una dirección en esta lista.",
  "settings.ignore_ips_placeholder": "IPs a ignorar, separadas por espacios",
  "settings.advanced.title": "Acciones avanzadas para reincidentes",
  "settings.advanced.description": "Añade automáticamente IPs reincidentes a un firewall o lista de bloqueo externa.",
  "settings.advanced.refresh_log": "Actualizar registro",
  "settings.advanced.test_button": "Bloquear manualmente / Test",
  "settings.advanced.enable": "Habilitar bloqueo permanente automático",
  "settings.advanced.threshold": "Umbral antes del bloqueo permanente",
  "settings.advanced.threshold_hint": "Cuando una IP alcanza este número de bloqueos se enviará a la integración.",
  "settings.advanced.integration": "Integración",
  "settings.advanced.integration_none": "Selecciona una integración",
  "settings.advanced.integration_hint": "Elige el firewall o dispositivo donde crear los bloqueos permanentes.",
  "settings.advanced.mikrotik.note": "Proporciona acceso SSH al router Mikrotik y la lista de direcciones de destino.",
  "settings.advanced.mikrotik.host": "Host",
  "settings.advanced.mikrotik.port": "Puerto",
  "settings.advanced.mikrotik.username": "Usuario SSH",
  "settings.advanced.mikrotik.password": "Contraseña SSH",
  "settings.advanced.mikrotik.key": "Ruta de la clave SSH (opcional)",
  "settings.advanced.mikrotik.list": "Nombre de la lista",
  "settings.advanced.pfsense.note": "Requiere el paquete REST API de pfSense. Introduce la clave API y el alias a gestionar.",
  "settings.advanced.pfsense.install_link": "Instalar paquete REST API",
  "settings.advanced.pfsense.api_key_setup": "Configurar clave API",
  "settings.advanced.pfsense.base_url": "URL base",
  "settings.advanced.pfsense.token": "Clave API",
  "settings.advanced.pfsense.token_hint": "Generar en Sistema > REST API > Keys en el webConfigurator de pfSense",
  "settings.advanced.pfsense.alias": "Nombre del alias",
  "settings.advanced.pfsense.skip_tls": "Omitir verificación TLS (autofirmado)",
  "settings.advanced.opnsense.note": "Introduce las credenciales API de OPNsense y el alias a gestionar.",
  "settings.advanced.opnsense.api_docs": "Documentación API",
  "settings.advanced.opnsense.api_key_setup": "Configurar clave API",
  "settings.advanced.opnsense.base_url": "URL base",
  "settings.advanced.opnsense.key": "Clave API",
  "settings.advanced.opnsense.key_hint": "Generar en Sistema > Acceso > Usuarios > Claves API",
  "settings.advanced.opnsense.secret": "Secreto API",
  "settings.advanced.opnsense.secret_hint": "Generar junto con la clave API",
  "settings.advanced.opnsense.alias": "Nombre del alias",
  "settings.advanced.opnsense.skip_tls": "Omitir verificación TLS (autofirmado)",
  "settings.advanced.log_title": "Registro de bloqueos permanentes",
  "settings.advanced.log_empty": "Aún no hay bloqueos permanentes.",
  "settings.advanced.log_ip": "IP",
  "settings.advanced.log_integration": "Integración",
  "settings.advanced.log_status": "Estado",
  "settings.advanced.log_message": "Mensaje",
  "settings.advanced.log_server": "Servidor",
  "settings.advanced.log_updated": "Actualizado",
  "settings.advanced.log_actions": "Acciones",
  "settings.advanced.unblock_btn": "Eliminar",
  "settings.advanced.test_title": "Bloquear manualmente / Test",
  "settings.advanced.test_ip": "Dirección IP",
  "settings.advanced.test_server": "Servidor opcional",
  "settings.advanced.test_server_none": "Usar integración global",
  "settings.advanced.test_block": "Bloquear IP",
  "settings.advanced.test_unblock": "Eliminar IP",
  "settings.save": "Guardar",
  "modal.filter_config": "Configuración del filtro / Jail:",
  "modal.filter_config_edit": "Editar filtro / Jail",
  "modal.filter_config_label": "Configuración del filtro",
  "modal.filter_config_hint": "Si se deja vacío, se creará un archivo de filtro vacío.",
  "modal.filter_name": "Nombre del filtro",
  "modal.filter_name_hint": "Solo se permiten caracteres alfanuméricos, guiones y guiones bajos.",
  "modal.jail_config": "Configuración del jail",
  "modal.jail_config_hint": "La configuración del jail se completará automáticamente cuando seleccione un filtro.",
  "modal.jail_config_label": "Configuración del jail",
  "modal.jail_filter": "Filtro (opcional)",
  "modal.jail_filter_hint": "La selección de un filtro completará automáticamente la configuración del jail.",
  "modal.jail_name": "Nombre del jail",
  "modal.jail_name_hint": "Solo se permiten caracteres alfanuméricos, guiones y guiones bajos.",
  "modal.test_logpath": "Probar ruta de registro",
  "modal.local_server_logpath_note": "ℹ️ Nota:",
  "modal.local_server_logpath_text_prefix": "Para servidores locales Fail2ban (p. ej. instalado en el sistema contenedor host o en un contenedor en el mismo host), los archivos de registro también deben montarse en el contenedor fail2ban-ui (p. ej.,",
  "modal.local_server_logpath_text_suffix": ") esto es necesario para que fail2ban-ui pueda verificar variables o rutas de logpath cuando se actualizan jails.",
  "modal.create": "Crear",
  "modal.create_filter": "Crear nuevo filtro",
  "modal.create_filter_title": "Crear nuevo filtro",
  "modal.create_jail": "Crear nuevo jail",
  "modal.create_jail_title": "Crear nuevo jail",
  "modal.cancel": "Cancelar",
  "modal.save": "Guardar",
  "modal.close": "Cerrar",
  "loading": "Cargando...",
  "dashboard.manage_jails": "Administrar jails",
  "modal.manage_jails_title": "Administrar jails",
  "servers.selector.label": "Servidor activo",
  "servers.selector.empty": "No hay servidores configurados",
  "servers.selector.none": "No hay servidor configurado. Añade un servidor Fail2ban.",
  "servers.modal.title": "Administrar servidores Fail2ban",
  "servers.modal.description": "Registra instancias remotas de Fail2ban y elige cómo se conecta la interfaz.",
  "servers.modal.list_title": "Servidores registrados",
  "servers.modal.list_empty": "No hay servidores configurados. Añade tu primer servidor Fail2ban usando el formulario.",
  "servers.modal.form_title": "Añadir o actualizar servidor",
  "servers.form.name": "Nombre para mostrar",
  "servers.form.name_placeholder": "Mi servidor Fail2ban",
  "servers.form.type": "Tipo de conexión",
  "servers.type.local": "Local (mismo host)",
  "servers.type.ssh": "SSH",
  "servers.type.agent": "Agente API",
  "servers.form.host": "Nombre de host / IP",
  "servers.form.host_placeholder": "fail2ban.ejemplo.com",
  "servers.form.port": "Puerto",
  "servers.form.port_placeholder": "22",
  "servers.form.socket_path": "Ruta del socket de Fail2ban",
  "servers.form.socket_path_placeholder": "/var/run/fail2ban/fail2ban.sock",
  "servers.form.log_path": "Ruta del log de Fail2ban",
  "servers.form.log_path_placeholder": "/var/log/fail2ban.log",
  "servers.form.hostname": "Nombre de host del servidor",
  "servers.form.hostname_placeholder": "opcional",
  "servers.form.ssh_user": "Usuario SSH",
  "servers.form.ssh_user_placeholder": "sa_fail2ban",
  "servers.form.ssh_key": "Ruta de la clave SSH",
  "servers.form.ssh_key_placeholder": "/config/.ssh/id_rsa",
  "servers.form.ssh_key_help": "Coloque su clave privada SSH en el directorio /config/.ssh/ (volumen de configuración montado). El archivo de clave debe tener permisos 600 (chmod 600). Ejemplo: /config/.ssh/id_rsa",
  "servers.form.agent_url": "URL del agente",
  "servers.form.agent_url_placeholder": "https://host:9443",
  "servers.form.agent_secret": "Secreto del agente",
  "servers.form.agent_secret_placeholder": "token compartido",
  "servers.form.tags": "Etiquetas",
  "servers.form.tags_placeholder": "etiquetas separadas por comas",
  "servers.form.set_default": "Establecer como servidor predeterminado",
  "servers.form.enabled": "Habilitar conector",
  "servers.form.submit": "Guardar servidor",
  "servers.form.reset": "Restablecer",
  "servers.form.new_server": "Nuevo servidor",
  "servers.form.success": "Servidor guardado correctamente.",
  "servers.badge.default": "Predeterminado",
  "servers.badge.enabled": "Habilitado",
  "servers.badge.disabled": "Deshabilitado",
  "servers.badge.restart_needed": "Reinicio requerido",
  "servers.actions.edit": "Editar",
  "servers.actions.set_default": "Establecer predeterminado",
  "servers.actions.enable": "Habilitar",
  "servers.actions.disable": "Deshabilitar",
  "servers.actions.test": "Probar conexión",
  "servers.actions.test_success": "Conexión exitosa",
  "servers.actions.test_failure": "Conexión fallida",
  "servers.jail_local_warning": "Advertencia: jail.local no está gestionado por Fail2ban-UI. Mueva cada jail a su propio archivo en jail.d/ y elimine jail.local para que Fail2ban-UI pueda recrearlo (pulse una vez en la página de configuración para escribir el archivo). Consulte la documentación para permisos.",
  "servers.actions.restart": "Reiniciar Fail2ban",
  "servers.actions.reload": "Recargar Fail2ban",
  "servers.actions.reload_tooltip": "Para los conectores locales, solo es posible recargar la configuración a través de la conexión socket. El contenedor no puede reiniciar el servicio Fail2ban usando systemctl. Para realizar un reinicio completo, ejecute 'systemctl restart fail2ban' directamente en el sistema host.",
  "servers.actions.delete": "Eliminar",
  "servers.actions.delete_confirm": "¿Eliminar este servidor?",
  "servers.form.select_key": "Seleccionar clave privada",
  "servers.form.select_key_placeholder": "Entrada manual",
  "servers.form.no_keys": "No se encontraron claves SSH; introduzca la ruta manualmente",
  "filter_debug.not_available": "La depuración de filtros solo está disponible cuando al menos un servidor Fail2ban registrado está activado.",
  "filter_debug.local_missing": "No se encontró el directorio de filtros local de Fail2ban en este host.",
  "email.ban.title": "Alerta de seguridad: Fail2Ban bloqueó una nueva dirección IP",
  "email.ban.intro": "Fail2Ban-UI detectó una solicitud incorrecta o fallos de autenticación repetidos y bloqueó automáticamente la IP de origen. Revise los metadatos y extractos de registro a continuación.",
  "email.ban.subject.banned": "Bloqueado",
  "email.ban.subject.from": "desde",
  "email.ban.details.banned_ip": "IP bloqueada",
  "email.ban.details.jail": "Jail",
  "email.ban.details.hostname": "Nombre de host",
  "email.ban.details.failed_attempts": "Intentos fallidos",
  "email.ban.details.country": "País",
  "email.ban.details.timestamp": "Marca de tiempo",
  "email.ban.whois_title": "Huella WHOIS",
  "email.ban.logs_title": "Extractos de registro relevantes",
  "email.test.title": "Prueba de entrega de correo electrónico",
  "email.test.intro": "Este mensaje confirma que su configuración SMTP funciona correctamente y puede entregar correos electrónicos con formato HTML.",
  "email.test.subject": "Correo de prueba de Fail2Ban UI",
  "email.test.details.recipient": "Destinatario",
  "email.test.details.smtp_host": "Host SMTP",
  "email.test.details.triggered_at": "Activado en",
  "email.test.whois_no_data": "No se ejecuta búsqueda WHOIS para correos de prueba.",
  "email.test.sample_logs": "2025-01-01T12:00:00Z Entrada de registro de ejemplo de Fail2ban-UI.",
  "email.whois.no_data": "No se capturaron datos WHOIS para este evento.",
  "email.logs.no_data": "No se capturaron entradas de registro para este bloqueo.",
  "email.footer.text": "Este mensaje fue generado automáticamente por Fail2Ban-UI",
  "email.unban.title": "Dirección IP desbloqueada",
  "email.unban.intro": "Una dirección IP ha sido desbloqueada de una prisión Fail2Ban.",
  "email.unban.subject.unbanned": "Desbloqueado",
  "email.unban.subject.from": "de",
  "email.unban.details.unbanned_ip": "IP desbloqueada",
  "email.unban.details.jail": "Prisión",
  "email.unban.details.hostname": "Nombre de host",
  "email.unban.details.country": "País",
  "email.unban.details.timestamp": "Marca de tiempo",
  "lotr.email.title": "Un siervo oscuro ha sido desterrado",
  "lotr.email.intro": "Los guardianes de la Tierra Media han detectado una amenaza y la han desterrado del reino.",
  "lotr.email.you_shall_not_pass": "NO PASARÁS",
  "lotr.email.footer": "Que los servidores estén protegidos. Un ban para gobernarlos a todos.",
  "lotr.email.details.dark_servant_location": "La ubicación del siervo oscuro",
  "lotr.email.details.realm_protection": "El reino de la protección",
  "lotr.email.details.origins": "Orígenes de las",
  "lotr.email.details.banished_at": "Desterrado a las",
  "lotr.email.unban.title": "El prisionero detenido ha sido liberado",
  "lotr.email.unban.intro": "Los guardianes de la Tierra Media han restaurado el acceso al reino.",
  "lotr.email.unban.details.restored_ip": "IP restaurada",
  "lotr.banished": "Desterrado del reino",
  "lotr.realms_protected": "Reinos protegidos",
  "lotr.threats_banished": "Amenazas desterradas",
  "toast.ban.title": "Nuevo bloqueo ocurrido",
  "toast.ban.action": "bloqueado en",
  "toast.unban.title": "IP desbloqueada",
  "toast.unban.action": "desbloqueada de",
  "auth.login_title": "Iniciar sesión en Fail2ban UI",
  "auth.login_description": "Por favor, autentíquese para acceder a la interfaz de gestión",
  "auth.login_button": "Iniciar sesión con OIDC",
  "auth.logging_in": "Redirigiendo al inicio de sesión...",
  "auth.logout": "Cerrar sesión",
  "auth.user_info": "Información del usuario",
  "auth.session_expired": "Su sesión ha expirado. Por favor, inicie sesión nuevamente.",
  "auth.login_required": "Autenticación requerida",
  "footer.version": "Fail2ban-UI v{version}",
  "footer.latest": "Actual",
  "footer.update_available": "Actualización disponible: v{version}"
}
