# Spanish translations for LocalGuard Scanner.
# Copyright (C) 2026 LocalGuard Scanner Contributors
# This file is distributed under the same license as the LocalGuard Scanner package.
# LocalGuard Scanner Contributors, 2026.
#
msgid ""
msgstr ""
"Project-Id-Version: LocalGuard Scanner 1.2.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-08-23 11:05+0200\n"
"PO-Revision-Date: 2026-08-22 14:29+0200\n"
"Last-Translator: LocalGuard Scanner Contributors\n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. translators: %d: total number of active findings.
#: src/Admin/AdminController.php:287
#, php-format
msgid "%d active findings, ordered by review priority."
msgstr "%d hallazgos activos, ordenados por prioridad de revisión."

#: src/Admin/AdminController.php:178
#, php-format
msgid "%d critical or high-risk findings should be checked first."
msgstr "Conviene revisar primero %d hallazgos críticos o de riesgo alto."

#. translators: %d: total number of resolved findings.
#: src/Admin/AdminController.php:283
#, php-format
msgid "%d resolved findings retained for audit history."
msgstr "%d hallazgos resueltos conservados en el historial de auditoría."

#: src/Admin/FindingExplanationCatalog.php:126
msgid "A PHP-capable file exists below the WordPress uploads directory."
msgstr "Existe un archivo capaz de ejecutar PHP dentro del directorio uploads de WordPress."

#: src/Admin/FindingExplanationCatalog.php:236
msgid ""
"A WordPress cron event includes encoded or executable-looking argument data."
msgstr "Un evento cron de WordPress incluye argumentos codificados o con aspecto ejecutable."

#: src/Admin/FindingExplanationCatalog.php:229
msgid "A WordPress cron hook has a long random-looking identifier."
msgstr "Un hook cron de WordPress tiene un identificador largo de apariencia aleatoria."

#: src/Admin/FindingExplanationCatalog.php:211
msgid ""
"A baseline change records a difference, not the identity of the person who "
"made it."
msgstr "Un cambio respecto a la línea base registra una diferencia, no la identidad de quien la realizó."

#: src/Application/Scan/ScanFailureCatalog.php:31
msgid "A detector could not complete the next batch safely."
msgstr "Un detector no pudo completar el siguiente lote de forma segura."

#: src/Admin/FindingExplanationCatalog.php:170
msgid ""
"A file expected for this exact WordPress version was not observed during a "
"complete file pass."
msgstr "Durante un recorrido completo no se encontró un archivo esperado para esta versión exacta de WordPress."

#: src/Admin/FindingExplanationCatalog.php:177
msgid ""
"A file not listed in the exact manifest exists inside wp-admin or wp-"
"includes."
msgstr "Existe dentro de wp-admin o wp-includes un archivo que no figura en el manifiesto exacto."

#: src/Application/Scan/ScanFailureCatalog.php:28
msgid "A finding from the next batch could not be stored."
msgstr "No se pudo guardar un hallazgo del siguiente lote."

#: src/Admin/AdminController.php:288
msgid ""
"A finding is a reason to investigate, not automatic confirmation of malware. "
"Preserve a backup before changing files or database data."
msgstr "Un hallazgo es un motivo para investigar, no una confirmación automática de malware. Conserva una copia de seguridad antes de cambiar archivos o datos de la base de datos."

#: src/Admin/AdminController.php:133 src/Admin/AdminController.php:618
msgid "A large database value was sampled instead of read in full"
msgstr "Se tomó una muestra de un valor grande de la base de datos en lugar de leerlo completo"

#: src/Admin/FindingExplanationCatalog.php:94
msgid ""
"A marker is strong evidence, but the complete file still needs manual "
"verification."
msgstr "Un indicador es una evidencia importante, pero el archivo completo aún requiere una verificación manual."

#: src/Admin/FindingExplanationCatalog.php:285
msgid ""
"A non-core location contains a file whose name resembles a WordPress core "
"file."
msgstr "Una ubicación ajena al núcleo contiene un archivo cuyo nombre se parece al de un archivo del núcleo de WordPress."

#: src/Admin/FindingExplanationCatalog.php:243
msgid "A post or other WordPress content row contains a PHP opening sequence."
msgstr "Una entrada u otro contenido de WordPress contiene una secuencia de apertura de PHP."

#: src/Admin/AdminController.php:169
msgid ""
"A prioritized view of this WordPress installation. Automated findings "
"require verification and do not prove that malware is present."
msgstr "Vista priorizada de esta instalación de WordPress. Los hallazgos automáticos requieren verificación y no demuestran que haya malware."

#: src/Admin/FindingExplanationCatalog.php:141
msgid ""
"A publicly known vulnerability can be exploited even when the plugin files "
"themselves are clean."
msgstr "Una vulnerabilidad pública conocida puede explotarse aunque los archivos del plugin estén limpios."

#: src/Admin/FindingExplanationCatalog.php:187
msgid ""
"A recent account can be legitimate if it was created by a trusted operator."
msgstr "Una cuenta reciente puede ser legítima si la creó una persona de confianza."

#: src/Admin/AdminController.php:635
msgid "A recent automatic scan slice failed safely"
msgstr "Un lote reciente del análisis automático falló de forma segura"

#: src/Admin/FindingExplanationCatalog.php:205
msgid "A security-relevant option differs from the previous local baseline."
msgstr "Una opción relevante para la seguridad difiere de la línea base local anterior."

#: src/Admin/FindingExplanationCatalog.php:112
msgid ""
"A value from a web request influences which local path a file operation uses."
msgstr "Un valor de una petición web influye en la ruta local utilizada por una operación de archivo."

#: src/Admin/AdminController.php:113 src/Admin/AdminController.php:553
msgid ""
"A verified area may resolve its previous findings even when another area has "
"incomplete coverage."
msgstr "Un área verificada puede resolver sus hallazgos anteriores aunque otra área tenga cobertura incompleta."

#: src/Admin/AdminController.php:273
msgid "Active"
msgstr "Activos"

#: src/Admin/FindingExplanationCatalog.php:139
msgid "Active plugin has a known unpatched vulnerability"
msgstr "El plugin activo tiene una vulnerabilidad conocida sin corregir"

#: src/Admin/AdminController.php:299
msgid "Active security findings"
msgstr "Hallazgos de seguridad activos"

#: src/Admin/FindingExplanationCatalog.php:197
msgid "Administrator email changed"
msgstr "El correo del administrador ha cambiado"

#: src/Admin/FindingRemediationCatalog.php:27
msgid ""
"After a tested backup, update or replace the plugin; remove it if it is "
"inactive and no longer required."
msgstr "Después de una copia de seguridad probada, actualiza o sustituye el plugin; elimínalo si está inactivo y ya no es necesario."

#: src/Admin/AdminController.php:354
msgid "Alert recipients"
msgstr "Destinatarios de los avisos"

#: src/Admin/FindingSourceCatalog.php:44
msgid "All"
msgstr "Todos"

#: src/Admin/FindingExplanationCatalog.php:184
msgid ""
"An administrator account was registered during the recent-account window."
msgstr "Se registró una cuenta de administrador dentro del periodo considerado reciente."

#: src/Admin/FindingExplanationCatalog.php:199
msgid ""
"An attacker may change an email address to retain password-reset access."
msgstr "Un atacante puede cambiar un correo para conservar el acceso mediante el restablecimiento de contraseña."

#: src/Admin/FindingExplanationCatalog.php:215
msgid ""
"An automatically loaded option contains text that resembles executable PHP."
msgstr "Una opción cargada automáticamente contiene texto que se parece a PHP ejecutable."

#: src/Admin/FindingExplanationCatalog.php:150
msgid ""
"An installed but inactive plugin matches an advisory in the signed local "
"catalog."
msgstr "Un plugin instalado pero inactivo coincide con un aviso del catálogo local firmado."

#: src/Admin/FindingExplanationCatalog.php:113
msgid ""
"An insufficient path allowlist can permit reading, overwriting or creating "
"unintended files."
msgstr "Una lista de rutas permitidas insuficiente puede permitir leer, sobrescribir o crear archivos no previstos."

#: src/Admin/FindingExplanationCatalog.php:222
msgid "An option loaded on normal requests is unusually large."
msgstr "Una opción cargada en las peticiones normales tiene un tamaño inusualmente grande."

#: src/Admin/FindingExplanationCatalog.php:136
msgid "Any executable modification will cause LocalGuard to reassess the file."
msgstr "Cualquier modificación ejecutable hará que LocalGuard vuelva a evaluar el archivo."

#: src/Admin/FindingExplanationCatalog.php:296
msgid ""
"Apply the least permissive mode that still lets WordPress operate correctly."
msgstr "Aplica los permisos mínimos que permitan a WordPress funcionar correctamente."

#: src/Admin/AdminController.php:584
msgid "Areas skipped by configuration"
msgstr "Áreas omitidas por la configuración"

#: src/Admin/AdminController.php:576
msgid "Areas that could not be inspected"
msgstr "Áreas que no se pudieron inspeccionar"

#: src/Admin/FindingExplanationCatalog.php:265
msgid ""
"Attackers encode payloads to conceal readable commands, but bundled assets "
"may also contain long encoded data."
msgstr "Los atacantes codifican cargas para ocultar órdenes legibles, aunque los recursos incluidos también pueden contener datos codificados largos."

#: src/Admin/FindingExplanationCatalog.php:286
msgid ""
"Attackers may use familiar names to make malicious files look trustworthy."
msgstr "Los atacantes pueden usar nombres conocidos para que archivos maliciosos parezcan fiables."

#: src/Admin/FindingExplanationCatalog.php:178
msgid "Attackers sometimes hide files in trusted-looking core directories."
msgstr "Los atacantes ocultan a veces archivos en directorios del núcleo que parecen fiables."

#: src/Admin/AdminController.php:351
msgid "Automatic scan"
msgstr "Análisis automático"

#: src/Admin/AdminController.php:351
msgid "Automatic scans use WP-Cron and continue in small resumable batches."
msgstr "Los análisis automáticos usan WP-Cron y continúan en pequeños lotes reanudables."

#: src/Admin/FindingExplanationCatalog.php:99
msgid ""
"Backdoors often hide code this way, although some legitimate plugins may use "
"similar techniques."
msgstr "Las puertas traseras suelen ocultar código de esta manera, aunque algunos plugins legítimos pueden usar técnicas parecidas."

#: src/Admin/AdminController.php:353
msgid "Batch size"
msgstr "Tamaño del lote"

#: src/Admin/AdminController.php:212
msgid "Built by Garaje Imagina"
msgstr "Creado por Garaje Imagina"

#: src/Admin/AdminController.php:232
msgid "Cancel scan"
msgstr "Cancelar análisis"

#: src/Admin/AdminController.php:408
msgid "Cancelled"
msgstr "Cancelado"

#: src/Application/Scan/ScanFailureCatalog.php:29
msgid "Check previous findings"
msgstr "Comprobar los hallazgos anteriores"

#: src/Admin/FindingExplanationCatalog.php:143
msgid "Check the plugin vendor for a fixed release or mitigation."
msgstr "Consulta al proveedor del plugin para buscar una versión corregida o una medida de mitigación."

#: src/Admin/AdminController.php:146 src/Admin/AdminController.php:411
msgid "Checking previous findings"
msgstr "Comprobando los hallazgos anteriores"

#: src/Admin/AdminController.php:105
msgid "Code"
msgstr "Código"

#: src/Admin/FindingExplanationCatalog.php:270
msgid "Code builds text character by character"
msgstr "El código construye texto carácter a carácter"

#: src/Admin/FindingExplanationCatalog.php:77
msgid ""
"Compare it with the same version from the official plugin or WordPress "
"package."
msgstr "Compáralo con la misma versión del plugin oficial o del paquete de WordPress."

#: src/Admin/AdminController.php:147 src/Admin/AdminController.php:405
msgid "Complete"
msgstr "Completo"

#: src/Application/Scan/ScanFailureCatalog.php:32
msgid "Complete the next batch"
msgstr "Completar el siguiente lote"

#. translators: %d: detector confidence from 0 to 100.
#: src/Admin/AdminController.php:443
#, php-format
msgid "Confidence %d%%"
msgstr "Confianza: %d%%"

#: src/Admin/FindingExplanationCatalog.php:281
msgid ""
"Confirm both the real file type and why the application created this name."
msgstr "Confirma el tipo real del archivo y por qué la aplicación creó ese nombre."

#: src/Admin/FindingExplanationCatalog.php:115
msgid ""
"Confirm that the surrounding code restricts destinations to an expected "
"directory and file type."
msgstr "Confirma que el código limita los destinos a un directorio y un tipo de archivo previstos."

#: src/Admin/FindingRemediationCatalog.php:52
msgid ""
"Confirm the account can no longer authenticate or administer the site, then "
"scan again for related accounts and persistence."
msgstr "Confirma que la cuenta ya no puede autenticarse ni administrar el sitio y vuelve a analizar en busca de cuentas relacionadas y mecanismos de persistencia."

#: src/Admin/FindingRemediationCatalog.php:48
msgid ""
"Confirm the account, registration date and administrator authorization with "
"another trusted administrator."
msgstr "Confirma la cuenta, la fecha de registro y la autorización administrativa con otro administrador de confianza."

#: src/Admin/FindingExplanationCatalog.php:80
msgid ""
"Confirm the change with the account owner or another trusted administrator."
msgstr "Confirma el cambio con el propietario de la cuenta u otro administrador de confianza."

#: src/Admin/FindingRemediationCatalog.php:26
msgid ""
"Confirm the installed version, activation state and the vendor advisory that "
"applies to it."
msgstr "Confirma la versión instalada, el estado de activación y el aviso del proveedor que corresponda."

#: src/Admin/FindingExplanationCatalog.php:295
msgid ""
"Confirm the permission requirement with the hosting provider or application "
"owner."
msgstr "Confirma los permisos necesarios con el proveedor de alojamiento o el responsable de la aplicación."

#: src/Admin/FindingRemediationCatalog.php:28
msgid "Confirm the safe version is installed and run LocalGuard again."
msgstr "Confirma que está instalada la versión segura y vuelve a ejecutar LocalGuard."

#: src/Admin/FindingRemediationCatalog.php:23
msgid ""
"Confirm the unexpected code is gone, clear relevant caches and run a new "
"scan with complete file coverage."
msgstr "Confirma que el código inesperado ha desaparecido, vacía las cachés correspondientes y ejecuta un nuevo análisis con cobertura completa de archivos."

#. translators: 1: content ID, 2: database table, 3: WordPress site ID.
#: src/Admin/FindingLocationPresenter.php:61
#, php-format
msgid "Content ID %1$d · table %2$s · site %3$d"
msgstr "Contenido ID %1$d · tabla %2$s · sitio %3$d"

#: src/Admin/AdminController.php:346
msgid ""
"Control the scan schedule and resource use without sending inspected data to "
"an external service."
msgstr "Controla la programación y el uso de recursos sin enviar los datos inspeccionados a un servicio externo."

#: src/Admin/FindingLocationPresenter.php:62
#: src/Admin/FindingLocationPresenter.php:73
#: src/Admin/FindingLocationPresenter.php:86
msgid "Copy SQL query"
msgstr "Copiar consulta SQL"

#: src/Admin/AdminController.php:106
msgid "Copy diagnostic"
msgstr "Copiar diagnóstico"

#: src/Admin/FindingLocationPresenter.php:33
msgid "Copy identifier"
msgstr "Copiar identificador"

#: src/Admin/FindingLocationPresenter.php:30
msgid "Copy path"
msgstr "Copiar ruta"

#: src/Admin/AdminController.php:112 src/Admin/AdminController.php:552
msgid "Coverage by area"
msgstr "Cobertura por área"

#: src/Admin/AdminController.php:196
msgid "Coverage was incomplete."
msgstr "La cobertura fue incompleta."

#: src/Admin/AdminController.php:393
msgid "Critical"
msgstr "Crítico"

#: src/Admin/AdminController.php:99
msgid "Current area"
msgstr "Área actual"

#: src/Admin/FindingExplanationCatalog.php:166
msgid ""
"Custom changes to WordPress core are also reported because they cannot be "
"trusted automatically."
msgstr "También se informan los cambios personalizados del núcleo porque no pueden considerarse fiables automáticamente."

#: src/Admin/FindingExplanationCatalog.php:119
msgid ""
"Data received from a request reaches a destination that can be executed as "
"PHP."
msgstr "Los datos recibidos de una petición llegan a un destino que puede ejecutarse como PHP."

#: src/Admin/FindingExplanationCatalog.php:105
msgid "Data received from a web request can reach a file-writing operation."
msgstr "Los datos recibidos de una petición web pueden llegar a una operación de escritura de archivos."

#: src/Admin/AdminController.php:118 src/Admin/AdminController.php:597
#: src/Admin/FindingLocationPresenter.php:62
#: src/Admin/FindingLocationPresenter.php:73
#: src/Admin/FindingLocationPresenter.php:86
#: src/Admin/FindingSourceCatalog.php:46
msgid "Database"
msgstr "Base de datos"

#: src/Admin/FindingLocationPresenter.php:39
#: src/Admin/FindingLocationPresenter.php:51
#: src/Admin/FindingLocationPresenter.php:58
#: src/Admin/FindingLocationPresenter.php:69
#: src/Admin/FindingLocationPresenter.php:82
msgid "Database identifier not recognized"
msgstr "Identificador de base de datos no reconocido"

#: src/Admin/FindingLocationPresenter.php:62
msgid "Database · Content"
msgstr "Base de datos · Contenido"

#: src/Admin/FindingLocationPresenter.php:73
msgid "Database · Option"
msgstr "Base de datos · Opción"

#: src/Admin/FindingLocationPresenter.php:86
msgid "Database · User"
msgstr "Base de datos · Usuario"

#: src/Admin/FindingExplanationCatalog.php:98
msgid "Decoded data reaches an operation capable of executing it as PHP code."
msgstr "Los datos descodificados llegan a una operación capaz de ejecutarlos como código PHP."

#: src/Admin/FindingExplanationCatalog.php:232
msgid ""
"Deleting an unknown cron event without identifying its owner can break "
"legitimate automation."
msgstr "Eliminar un evento cron desconocido sin identificar a su responsable puede romper una automatización legítima."

#: src/Admin/AdminController.php:107
msgid "Diagnostic copied."
msgstr "Diagnóstico copiado."

#: src/Admin/AdminController.php:641
msgid "Diagnostic status unavailable"
msgstr "Estado de diagnóstico no disponible"

#: src/Admin/AdminController.php:122 src/Admin/AdminController.php:607
msgid "Directory could not be read"
msgstr "No se pudo leer un directorio"

#: src/Admin/AdminController.php:125 src/Admin/AdminController.php:610
msgid "Directory excluded by configuration"
msgstr "Directorio excluido por la configuración"

#: src/Admin/AdminController.php:214

msgid "Discover LocalGuard Scanner on Garaje Imagina ↗"
msgstr "Descubre LocalGuard Scanner en Garaje Imagina ↗"

#: src/Admin/FindingExplanationCatalog.php:76
msgid "Do not delete the file before preserving a backup or forensic copy."
msgstr "No borres el archivo sin conservar antes una copia de seguridad o forense."

#: src/Admin/FindingExplanationCatalog.php:218
msgid "Do not run or paste the option value into another tool."
msgstr "No ejecutes ni pegues el valor de la opción en otra herramienta."

#: src/Admin/FindingExplanationCatalog.php:279
msgid "Double extensions are commonly used to disguise executable uploads."
msgstr "Las extensiones dobles se usan a menudo para ocultar archivos subidos ejecutables."

#: src/Admin/AdminController.php:354
msgid ""
"Emails contain severity counts and an authenticated dashboard link, never "
"finding paths or inspected content."
msgstr "Los correos contienen recuentos por gravedad y un enlace al panel autenticado, nunca rutas de hallazgos ni contenido inspeccionado."

#: src/Application/Scan/ScanFailureCatalog.php:30
msgid "Encode scanner metadata"
msgstr "Codificar los metadatos del analizador"

#: src/Admin/AdminController.php:464
msgid "Evidence found"
msgstr "Evidencia encontrada"

#: src/Admin/AdminController.php:355
msgid "Excluded directories"
msgstr "Directorios excluidos"

#: src/Admin/AdminController.php:585
msgid ""
"Excluded directories are never inspected, so findings inside them keep their "
"previous status instead of being resolved."
msgstr "Los directorios excluidos nunca se inspeccionan, por lo que los hallazgos que contienen conservan su estado anterior en vez de darse por resueltos."

#: src/Admin/FindingExplanationCatalog.php:125
msgid "Executable PHP file inside uploads"
msgstr "Archivo PHP ejecutable dentro de uploads"

#: src/Admin/FindingExplanationCatalog.php:277
msgid "Executable file uses a misleading double extension"
msgstr "El archivo ejecutable usa una doble extensión engañosa"

#: src/Admin/FindingExplanationCatalog.php:214
msgid "Executable-looking content in an autoloaded option"
msgstr "Contenido con aspecto ejecutable en una opción de carga automática"

#: src/Admin/FindingRemediationCatalog.php:41
msgid ""
"Export the complete row before changing it. Do not edit part of a serialized "
"value because its length metadata can be corrupted."
msgstr "Exporta la fila completa antes de cambiarla. No edites una parte de un valor serializado porque sus metadatos de longitud pueden corromperse."

#: src/Admin/FindingRemediationCatalog.php:33
msgid ""
"Export the content row and its related metadata before editing it; verify "
"author, type, status and dates."
msgstr "Exporta la fila de contenido y sus metadatos relacionados antes de editarla; verifica el autor, el tipo, el estado y las fechas."

#: src/Admin/AdminController.php:149 src/Admin/AdminController.php:407
msgid "Failed safely"
msgstr "Fallo seguro"

#: src/Admin/FindingLocationPresenter.php:30
msgid "File"
msgstr "Archivo"

#: src/Admin/AdminController.php:126 src/Admin/AdminController.php:611
msgid "File could not be hashed safely"
msgstr "No se pudo calcular el hash del archivo de forma segura"

#: src/Admin/AdminController.php:129 src/Admin/AdminController.php:614
msgid "File could not be read safely for deep inspection"
msgstr "No se pudo leer el archivo de forma segura para la inspección profunda"

#: src/Admin/AdminController.php:130 src/Admin/AdminController.php:615
msgid "File exceeded the deep-inspection size limit"
msgstr "El archivo superó el límite de tamaño de la inspección profunda"

#: src/Admin/AdminController.php:127 src/Admin/AdminController.php:612
msgid "File exceeded the hashing size limit"
msgstr "El archivo superó el límite de tamaño para calcular el hash"

#: src/Admin/FindingExplanationCatalog.php:291
msgid "File is writable by every local user"
msgstr "Todos los usuarios locales pueden escribir en el archivo"

#: src/Admin/AdminController.php:123 src/Admin/AdminController.php:608
msgid "File metadata changed or could not be read"
msgstr "Los metadatos del archivo cambiaron o no se pudieron leer"

#: src/Admin/FindingExplanationCatalog.php:284
msgid "File name imitates WordPress core"
msgstr "El nombre del archivo imita al núcleo de WordPress"

#: src/Admin/AdminController.php:117 src/Admin/AdminController.php:596
#: src/Admin/FindingSourceCatalog.php:45
msgid "Files"
msgstr "Archivos"

#: src/Admin/AdminController.php:170
msgid "Finding counts"
msgstr "Número de hallazgos"

#: src/Admin/AdminController.php:276
msgid "Finding sources"
msgstr "Orígenes de los hallazgos"

#: src/Admin/AdminController.php:272
msgid "Finding views"
msgstr "Vistas de hallazgos"

#: src/Admin/AdminController.php:66 src/Admin/AdminController.php:375
msgid "Findings"
msgstr "Hallazgos"

#: src/Admin/AdminController.php:308
msgid "Findings pages"
msgstr "Páginas de hallazgos"

#: src/Admin/AdminController.php:292
msgid ""
"Findings that disappear after a verified scan of their area will be kept "
"here."
msgstr "Aquí se conservarán los hallazgos que desaparezcan después de un análisis verificado de su área."

#: src/Admin/AdminController.php:140
msgid "Finished"
msgstr "Finalizado"

#: src/Admin/FindingExplanationCatalog.php:258
msgid ""
"Hidden frames can load unwanted third-party pages without being visible to "
"visitors."
msgstr "Los marcos ocultos pueden cargar páginas externas no deseadas sin que las vean los visitantes."

#: src/Admin/FindingExplanationCatalog.php:256
msgid "Hidden iframe found in WordPress content"
msgstr "Iframe oculto encontrado en contenido de WordPress"

#: src/Admin/AdminController.php:394
msgid "High"
msgstr "Alto"

#: src/Admin/AdminController.php:274
msgid "History"
msgstr "Historial"

#: src/Admin/AdminController.php:473
msgid "How to check it safely"
msgstr "Cómo comprobarlo de forma segura"

#: src/Admin/AdminController.php:480
msgid "How to verify the cleanup"
msgstr "Cómo verificar la limpieza"

#: src/Admin/FindingExplanationCatalog.php:238
msgid ""
"Identify the hook owner and compare the event with the plugin’s expected "
"schedule."
msgstr "Identifica al responsable del hook y compara el evento con la programación esperada del plugin."

#: src/Admin/FindingExplanationCatalog.php:224
msgid ""
"Identify the owning plugin and confirm that the size is expected before "
"changing it."
msgstr "Identifica el plugin responsable y confirma que el tamaño es el esperado antes de cambiarlo."

#: src/Admin/FindingExplanationCatalog.php:217
msgid ""
"Identify the owning plugin and inspect the option through a safe database or "
"WordPress administration workflow."
msgstr "Identifica el plugin responsable e inspecciona la opción mediante un procedimiento seguro de base de datos o administración de WordPress."

#: src/Admin/FindingRemediationCatalog.php:20
msgid ""
"Identify which WordPress, plugin or theme package owns the path and compare "
"it with the same official version."
msgstr "Identifica a qué paquete de WordPress, plugin o tema pertenece la ruta y compárala con la misma versión oficial."

#: src/Admin/FindingExplanationCatalog.php:231
msgid "Identify which plugin or theme registered the event before removing it."
msgstr "Identifica qué plugin o tema registró el evento antes de eliminarlo."

#: src/Admin/FindingRemediationCatalog.php:35
msgid ""
"If injection is confirmed, remove only the unauthorized content through "
"WordPress or a controlled database workflow, then review other content from "
"the same author and time period."
msgstr "Si se confirma la inyección, elimina únicamente el contenido no autorizado mediante WordPress o un flujo controlado de base de datos y revisa después otros contenidos del mismo autor y periodo."

#: src/Admin/FindingRemediationCatalog.php:43
msgid ""
"If injection is confirmed, restore the complete value from a trusted source "
"or use the owning component’s safe settings workflow; then update, replace "
"or deactivate the vulnerable component after testing."
msgstr "Si se confirma la inyección, restaura el valor completo desde una fuente fiable o usa el flujo seguro de ajustes del componente propietario; después actualiza, sustituye o desactiva el componente vulnerable tras probarlo."

#: src/Admin/FindingExplanationCatalog.php:81
msgid ""
"If it was not expected, revoke access and rotate administrator and hosting "
"credentials."
msgstr "Si no se esperaba, revoca el acceso y cambia las credenciales de administración y alojamiento."

#: src/Admin/FindingExplanationCatalog.php:144
msgid ""
"If no safe update exists, replace or deactivate the plugin after testing."
msgstr "Si no existe una actualización segura, sustituye o desactiva el plugin después de probarlo."

#: src/Admin/FindingExplanationCatalog.php:120
msgid ""
"If reachable without appropriate authorization, this could allow remote code "
"execution."
msgstr "Si se puede alcanzar sin la autorización adecuada, podría permitir la ejecución remota de código."

#: src/Admin/FindingRemediationCatalog.php:51
msgid ""
"If the account is unauthorized, revoke its sessions before removing "
"privileges or deleting it through WordPress; rotate privileged and hosting "
"credentials and review content attributed to it."
msgstr "Si la cuenta no está autorizada, revoca sus sesiones antes de retirarle privilegios o eliminarla mediante WordPress; rota las credenciales privilegiadas y del alojamiento y revisa el contenido atribuido a ella."

#: src/Admin/FindingRemediationCatalog.php:22
msgid ""
"If the difference is unauthorized, replace the affected file or complete "
"component with a tested clean copy."
msgstr "Si la diferencia no está autorizada, sustituye el archivo afectado o el componente completo por una copia limpia y probada."

#: src/Admin/FindingExplanationCatalog.php:209
msgid ""
"If unauthorized, restore the expected value and rotate privileged "
"credentials."
msgstr "Si no estaba autorizado, restaura el valor esperado y cambia las credenciales privilegiadas."

#: src/Admin/AdminController.php:421
msgid "Ignored"
msgstr "Ignorado"

#: src/Admin/FindingExplanationCatalog.php:151
msgid ""
"Inactive plugin files remain on disk and may still increase the attack "
"surface."
msgstr "Los archivos de un plugin inactivo siguen en el disco y pueden aumentar la superficie de ataque."

#: src/Admin/FindingExplanationCatalog.php:149
msgid "Inactive plugin has a known unpatched vulnerability"
msgstr "El plugin inactivo tiene una vulnerabilidad conocida sin corregir"

#: src/Admin/AdminController.php:115 src/Admin/AdminController.php:561
msgid "Incomplete"
msgstr "Incompleta"

#: src/Admin/FindingExplanationCatalog.php:132
msgid "Inert uploads PHP file verified"
msgstr "Archivo PHP inerte de uploads verificado"

#: src/Admin/AdminController.php:397
msgid "Information"
msgstr "Información"

#: src/Admin/FindingExplanationCatalog.php:216
msgid ""
"Injected code in autoloaded data can be loaded on many requests or used by "
"another compromised component."
msgstr "El código inyectado en datos de carga automática puede cargarse en muchas peticiones o ser usado por otro componente comprometido."

#: src/Admin/FindingExplanationCatalog.php:251
msgid ""
"Injected redirects are often used to send visitors to phishing, advertising "
"or malware sites."
msgstr "Las redirecciones inyectadas se usan a menudo para enviar visitantes a sitios de phishing, publicidad o malware."

#: src/Admin/AdminController.php:229
msgid ""
"Inspect files and supported WordPress database data in short batches "
"designed for shared VPS servers."
msgstr "Inspecciona archivos y datos compatibles de la base de datos de WordPress en lotes cortos pensados para VPS compartidos."

#: src/Application/Scan/ScanFailureCatalog.php:31
msgid "Inspect the next batch"
msgstr "Inspeccionar el siguiente lote"

#: src/Admin/AdminController.php:471
msgid "Investigation and response plan"
msgstr "Plan de investigación y respuesta"

#: src/Admin/FindingExplanationCatalog.php:90
msgid "Known webshell marker"
msgstr "Indicador conocido de webshell"

#: src/Admin/FindingExplanationCatalog.php:225
msgid ""
"Large values are sampled for detection; LocalGuard records their full "
"database hash."
msgstr "Para la detección se toma una muestra de los valores grandes; LocalGuard registra su hash completo en la base de datos."

#: src/Admin/AdminController.php:97
msgid "Last activity"
msgstr "Última actividad"

#. translators: %s: UTC date when the finding was last observed.
#: src/Admin/AdminController.php:451
#, php-format
msgid "Last observed: %s UTC"
msgstr "Última observación: %s UTC"

#: src/Admin/AdminController.php:102
msgid "Last safe checkpoint"
msgstr "Último punto de control seguro"

#. translators: %d: scan ID where the finding was last observed.
#: src/Admin/AdminController.php:459
#, php-format
msgid "Last seen in scan #%d"
msgstr "Visto por última vez en el análisis n.º %d"

#: src/Admin/AdminController.php:191
msgid "Latest scan"
msgstr "Último análisis"

#: src/Admin/AdminController.php:529
msgid "Local diagnostics"
msgstr "Diagnósticos locales"

#. translators: %s: compilation date of the packaged offline advisory catalog.
#: src/Admin/AdminController.php:186
#, php-format
msgid ""
"Local plugin advisory catalog compiled on %s. This packaged snapshot does "
"not replace a continuously updated vulnerability service."
msgstr "Catálogo local de avisos de plugins compilado el %s. Esta copia incluida no sustituye a un servicio de vulnerabilidades actualizado continuamente."

#: src/Admin/AdminController.php:636
msgid "Local rules and the WordPress root are readable"
msgstr "Las reglas locales y la raíz de WordPress se pueden leer"

#: src/Admin/AdminController.php:637
msgid "Local rules or the WordPress root cannot be read"
msgstr "No se pueden leer las reglas locales o la raíz de WordPress"

#: src/Admin/AdminController.php:544
msgid ""
"Local scan data could not be read. Review the diagnostics and database "
"permissions."
msgstr "No se pudieron leer los datos locales del análisis. Revisa los diagnósticos y los permisos de la base de datos."

#: src/Admin/AdminController.php:352
msgid "Local start hour"
msgstr "Hora local de inicio"

#: src/Admin/AdminController.php:63
msgid "LocalGuard"
msgstr "LocalGuard"

#: src/Admin/AdminController.php:63
msgid "LocalGuard Scanner"
msgstr "LocalGuard Scanner"

#: templates/email/alert-html.php:15
msgid "LocalGuard Scanner alert"
msgstr "Alerta de LocalGuard Scanner"

#: src/Admin/AdminController.php:213
msgid ""
"LocalGuard Scanner is an independent Garaje Imagina product, created to make "
"WordPress security reviews more private, understandable, and controlled."
msgstr "LocalGuard Scanner es un producto independiente de Garaje Imagina, creado para que las revisiones de seguridad de WordPress sean más privadas, comprensibles y controladas."

#: localguard-scanner.php:36
msgid ""
"LocalGuard Scanner is incomplete: the production dependencies are missing."
msgstr "LocalGuard Scanner está incompleto: faltan las dependencias de producción."

#: src/Application/Lifecycle/Activator.php:30
msgid ""
"LocalGuard Scanner requires WordPress 6.4 or newer and PHP 7.4 or newer."
msgstr "LocalGuard Scanner requiere WordPress 6.4 o posterior y PHP 7.4 o posterior."

#: src/Admin/AdminController.php:342
msgid "LocalGuard Scanner settings"
msgstr "Ajustes de LocalGuard Scanner"

#: src/Application/Compatibility.php:44
msgid ""
"LocalGuard Scanner supports this PHP version for recovery, but PHP 8.3 or "
"newer is strongly recommended for security."
msgstr "LocalGuard Scanner admite esta versión de PHP para tareas de recuperación, pero por seguridad se recomienda encarecidamente PHP 8.3 o posterior."

#: src/Admin/AdminController.php:638
msgid "LocalGuard Scanner tables are available"
msgstr "Las tablas de LocalGuard Scanner están disponibles"

#: src/Admin/FindingExplanationCatalog.php:239
msgid "LocalGuard does not display or execute the stored arguments."
msgstr "LocalGuard no muestra ni ejecuta los argumentos almacenados."

#: src/Admin/FindingExplanationCatalog.php:30
msgid ""
"LocalGuard recorded a signal that this version cannot explain in more detail."
msgstr "LocalGuard registró una señal que esta versión no puede explicar con más detalle."

#: src/Admin/FindingExplanationCatalog.php:298
msgid "LocalGuard reports the permission but does not change it."
msgstr "LocalGuard informa del permiso, pero no lo modifica."

#: src/Admin/FindingExplanationCatalog.php:201
msgid "LocalGuard stores only a one-way hash of the email in its baseline."
msgstr "LocalGuard guarda en su línea base únicamente un hash no reversible del correo."

#: src/Admin/FindingPresenter.php:98 src/Admin/FindingPresenter.php:102
msgid "Location withheld because it is not a safe relative locator."
msgstr "Ubicación oculta porque no es una referencia relativa segura."

#: src/Admin/FindingExplanationCatalog.php:108
msgid "Logging and upload features can be legitimate examples of this pattern."
msgstr "Las funciones de registro y carga de archivos pueden ser ejemplos legítimos de este patrón."

#: src/Admin/AdminController.php:396
msgid "Low"
msgstr "Bajo"

#: src/Application/Scan/ScanFailureCatalog.php:21
msgid "Maintain the scan lock"
msgstr "Mantener el bloqueo del análisis"

#: src/Admin/FindingExplanationCatalog.php:180
msgid ""
"Maintenance files added by hosting tools may be legitimate, but they should "
"have a documented owner."
msgstr "Los archivos de mantenimiento añadidos por herramientas de alojamiento pueden ser legítimos, pero deben tener un responsable documentado."

#: src/Admin/FindingRemediationCatalog.php:60
msgid ""
"Make no change until the affected object and its owner have been identified."
msgstr "No realices ningún cambio hasta identificar el objeto afectado y su propietario."

#: src/Admin/FindingExplanationCatalog.php:230
msgid ""
"Malware may use obscure scheduled tasks for persistence, although generated "
"plugin names can be legitimate."
msgstr "El malware puede usar tareas programadas poco claras para persistir, aunque los nombres generados por plugins pueden ser legítimos."

#: src/Admin/AdminController.php:395
msgid "Medium"
msgstr "Medio"

#: src/Admin/FindingExplanationCatalog.php:171
msgid ""
"Missing core files can break security controls or indicate an incomplete "
"update."
msgstr "La ausencia de archivos del núcleo puede romper controles de seguridad o indicar una actualización incompleta."

#: src/Admin/AdminController.php:132 src/Admin/AdminController.php:617
msgid "Missing core-file results exceeded the safe display limit"
msgstr "Los resultados de archivos ausentes del núcleo superaron el límite seguro de visualización"

#: src/Admin/AdminController.php:419
msgid "New"
msgstr "Nuevo"

#: src/Admin/AdminController.php:294
msgid "No active findings are stored."
msgstr "No hay hallazgos activos guardados."

#: src/Admin/AdminController.php:138
msgid "No activity for more than two minutes"
msgstr "Sin actividad durante más de dos minutos"

#: src/Admin/AdminController.php:131 src/Admin/AdminController.php:616
msgid "No exact local WordPress core manifest was available"
msgstr "No había un manifiesto local exacto del núcleo de WordPress"

#: src/Admin/AdminController.php:230
msgid ""
"No files or database content leave this server. Alert emails contain counts "
"only, never paths or inspected content."
msgstr "Ningún archivo ni contenido de la base de datos sale de este servidor. Los correos de alerta solo contienen recuentos, nunca rutas ni contenido inspeccionado."

#: src/Admin/FindingExplanationCatalog.php:135
msgid "No immediate action is required; keep monitoring it for future changes."
msgstr "No requiere una acción inmediata; sigue vigilándolo para detectar cambios futuros."

#: src/Admin/FindingExplanationCatalog.php:36
msgid "No inspected content is shown or included in this explanation."
msgstr "Esta explicación no muestra ni incluye contenido inspeccionado."

#: src/Admin/AdminController.php:182
msgid "No priority findings are active."
msgstr "No hay hallazgos prioritarios activos."

#: src/Admin/AdminController.php:292
msgid "No resolved findings are stored yet."
msgstr "Todavía no hay hallazgos resueltos guardados."

#: src/Admin/AdminController.php:189
msgid "No scan has been completed yet."
msgstr "Todavía no se ha completado ningún análisis."

#: src/Admin/FindingExplanationCatalog.php:244
msgid ""
"Normal content rarely needs PHP and injected code may be used by a "
"vulnerable renderer or plugin."
msgstr "El contenido normal rara vez necesita PHP y el código inyectado puede ser usado por un procesador o plugin vulnerable."

#: src/Admin/FindingExplanationCatalog.php:293
msgid ""
"On shared systems, overly broad permissions can let another compromised "
"account alter the site."
msgstr "En sistemas compartidos, unos permisos demasiado amplios pueden permitir que otra cuenta comprometida altere el sitio."

#: src/Admin/AdminController.php:639
msgid "One or more LocalGuard Scanner tables are missing"
msgstr "Faltan una o más tablas de LocalGuard Scanner"

#: src/Admin/AdminController.php:203
msgid "Open scanner"
msgstr "Abrir analizador"

#: src/Admin/AdminController.php:104
msgid "Operation"
msgstr "Operación"

#. translators: 1: option name, 2: database table, 3: WordPress site ID.
#: src/Admin/FindingLocationPresenter.php:72
#, php-format
msgid "Option %1$s · table %2$s · site %3$d"
msgstr "Opción %1$s · tabla %2$s · sitio %3$d"

#: src/Admin/FindingExplanationCatalog.php:154
msgid "Otherwise, update or replace it before activating it again."
msgstr "De lo contrario, actualízalo o sustitúyelo antes de volver a activarlo."

#: src/Admin/AdminController.php:64 src/Admin/AdminController.php:373
msgid "Overview"
msgstr "Resumen"

#: src/Admin/AdminController.php:629
msgid "PHP 8.3 or newer is recommended"
msgstr "Se recomienda PHP 8.3 o posterior"

#: src/Admin/FindingExplanationCatalog.php:242
msgid "PHP code found in WordPress content"
msgstr "Código PHP encontrado en contenido de WordPress"

#: src/Admin/AdminController.php:631
msgid "PHP memory is constrained; use smaller batches"
msgstr "La memoria de PHP es limitada; usa lotes más pequeños"

#: src/Admin/AdminController.php:630
msgid "PHP memory limit is suitable"
msgstr "El límite de memoria de PHP es adecuado"

#: src/Admin/AdminController.php:628
msgid "PHP version meets the security recommendation"
msgstr "La versión de PHP cumple la recomendación de seguridad"

#: src/Admin/AdminController.php:620
msgid "Part of the site could not be fully inspected"
msgstr "No se pudo inspeccionar completamente una parte del sitio"

#: src/Admin/AdminController.php:148 src/Admin/AdminController.php:406
msgid "Partial coverage"
msgstr "Cobertura parcial"

#: src/Admin/AdminController.php:110
msgid "Path copied."
msgstr "Ruta copiada."

#: src/Admin/AdminController.php:124 src/Admin/AdminController.php:609
msgid "Path name could not be represented safely across platforms"
msgstr "El nombre de la ruta no se pudo representar de forma segura en todas las plataformas"

#: src/Admin/AdminController.php:420
msgid "Persistent"
msgstr "Persistente"

#: src/Admin/FindingLocationPresenter.php:33
msgid "Plugin"
msgstr "Plugin"

#: src/Admin/AdminController.php:119 src/Admin/AdminController.php:598
msgid "Plugin advisory catalog"
msgstr "Catálogo de avisos de plugins"

#: src/Admin/FindingSourceCatalog.php:47
msgid "Plugins"
msgstr "Plugins"

#: src/Admin/FindingExplanationCatalog.php:97
msgid "Possible execution of decoded code"
msgstr "Posible ejecución de código descodificado"

#: src/Application/Scan/ScanFailureCatalog.php:25
msgid "Prepare the inventory"
msgstr "Preparar el inventario"

#: src/Admin/AdminController.php:143 src/Admin/AdminController.php:606
msgid "Preparing inventory"
msgstr "Preparando el inventario"

#: src/Admin/FindingExplanationCatalog.php:163
msgid "Preserve a backup and confirm the installed WordPress version."
msgstr "Conserva una copia de seguridad y confirma la versión instalada de WordPress."

#: src/Admin/FindingRemediationCatalog.php:59
msgid ""
"Preserve a backup and investigate the identifier with a trusted "
"administrator."
msgstr "Conserva una copia de seguridad e investiga el identificador con un administrador de confianza."

#: src/Admin/FindingExplanationCatalog.php:84
msgid "Preserve a backup before editing the affected content."
msgstr "Conserva una copia de seguridad antes de editar el contenido afectado."

#: src/Admin/FindingRemediationCatalog.php:19
msgid "Preserve a backup or forensic copy before changing the file."
msgstr "Conserva una copia de seguridad o forense antes de modificar el archivo."

#: src/Admin/FindingRemediationCatalog.php:49
msgid ""
"Preserve an audit record and use the read-only query to review site "
"capabilities and user level."
msgstr "Conserva un registro de auditoría y usa la consulta de solo lectura para revisar las capacidades y el nivel del usuario en el sitio."

#: src/Application/Scan/ScanFailureCatalog.php:29
msgid "Previous findings could not be reconciled safely."
msgstr "No se pudieron reconciliar de forma segura los hallazgos anteriores."

#: src/Admin/FindingExplanationCatalog.php:192
msgid ""
"Privilege escalation gives the account control over plugins, users and site "
"configuration."
msgstr "El aumento de privilegios da a la cuenta control sobre plugins, usuarios y configuración del sitio."

#: src/Admin/AdminController.php:89
msgid "Provisional data"
msgstr "Datos provisionales"

#: src/Admin/AdminController.php:150 src/Admin/AdminController.php:413
msgid "Queued"
msgstr "En cola"

#: src/Application/Scan/ScanFailureCatalog.php:23
msgid "Read scan state"
msgstr "Leer el estado del análisis"

#: src/Application/Scan/ScanFailureCatalog.php:22
msgid "Read the saved checkpoint"
msgstr "Leer el punto de control guardado"

#: src/Admin/AdminController.php:475
msgid "Read-only SQL query"
msgstr "Consulta SQL de solo lectura"

#: src/Admin/FindingExplanationCatalog.php:183
msgid "Recently created administrator account"
msgstr "Cuenta de administrador creada recientemente"

#: src/Admin/AdminController.php:355
msgid ""
"Relative paths only, one per line. An excluded directory is never inspected: "
"it is reported as skipped coverage, and findings already stored inside it "
"are never resolved automatically."
msgstr "Solo rutas relativas, una por línea. Un directorio excluido nunca se inspecciona: se informa como cobertura omitida y los hallazgos ya almacenados dentro de él nunca se resuelven automáticamente."

#: src/Admin/FindingExplanationCatalog.php:153
msgid "Remove the plugin if it is no longer needed."
msgstr "Elimina el plugin si ya no se necesita."

#: src/Admin/FindingExplanationCatalog.php:164
msgid "Replace altered core files with a clean package from WordPress.org."
msgstr "Sustituye los archivos alterados del núcleo por un paquete limpio de WordPress.org."

#: src/Admin/FindingExplanationCatalog.php:111
msgid "Request data controls a file path"
msgstr "Los datos de una petición controlan una ruta de archivo"

#: src/Admin/FindingExplanationCatalog.php:118
msgid "Request data may be written to an executable file"
msgstr "Los datos de una petición pueden escribirse en un archivo ejecutable"

#: src/Admin/FindingExplanationCatalog.php:104
msgid "Request data reaches a file write"
msgstr "Los datos de una petición llegan a una escritura de archivos"

#: src/Admin/AdminController.php:422
msgid "Resolved"
msgstr "Resuelto"

#: src/Admin/AdminController.php:299
msgid "Resolved security findings"
msgstr "Hallazgos de seguridad resueltos"

#. translators: %s: UTC date when the finding was resolved.
#: src/Admin/AdminController.php:455
#, php-format
msgid "Resolved: %s UTC"
msgstr "Resuelto: %s UTC"

#: src/Admin/FindingExplanationCatalog.php:172
msgid ""
"Restore the file from the matching clean WordPress package after taking a "
"backup."
msgstr "Después de crear una copia de seguridad, restaura el archivo desde el paquete limpio de WordPress correspondiente."

#: src/Admin/AdminController.php:203
msgid "Review findings"
msgstr "Revisar hallazgos"

#: src/Admin/AdminController.php:180
msgid "Review recommended."
msgstr "Se recomienda una revisión."

#: src/Admin/FindingExplanationCatalog.php:85
msgid ""
"Review the item in WordPress and remove it only after confirming it is not "
"intentional."
msgstr "Revisa el elemento en WordPress y elimínalo solo después de confirmar que no es intencionado."

#: src/Admin/AdminController.php:196
msgid "Review the limitations below before treating this result as clean."
msgstr "Revisa las limitaciones siguientes antes de considerar limpio este resultado."

#: src/Admin/FindingExplanationCatalog.php:208
msgid ""
"Review the option in WordPress and confirm the change with a trusted "
"administrator."
msgstr "Revisa la opción en WordPress y confirma el cambio con un administrador de confianza."

#: templates/email/alert-html.php:29
msgid "Review the redacted evidence in WordPress"
msgstr "Revisar la evidencia redactada en WordPress"

#: templates/email/alert-text.php:25
msgid "Review the redacted evidence in your authenticated WordPress dashboard:"
msgstr "Revisa la evidencia redactada en tu panel autenticado de WordPress:"

#: src/Admin/FindingExplanationCatalog.php:34
msgid "Review the relative location and compare it with a known-clean source."
msgstr "Revisa la ubicación relativa y compárala con una fuente limpia conocida."

#: src/Admin/AdminController.php:294
msgid ""
"Run a complete scan regularly and review any coverage limitations before "
"considering the site clean."
msgstr "Ejecuta periódicamente un análisis completo y revisa sus limitaciones de cobertura antes de considerar limpio el sitio."

#: src/Admin/FindingRemediationCatalog.php:61
msgid "Run a new complete scan after any authorized correction."
msgstr "Ejecuta un nuevo análisis completo después de cualquier corrección autorizada."

#: src/Admin/FindingExplanationCatalog.php:33
msgid "Run a new scan with the latest LocalGuard version."
msgstr "Ejecuta un nuevo análisis con la versión más reciente de LocalGuard."

#: src/Admin/AdminController.php:351
msgid "Run once a day"
msgstr "Ejecutar una vez al día"

#: src/Admin/FindingRemediationCatalog.php:36
msgid ""
"Run the query again, clear page and object caches, and complete a new "
"database scan."
msgstr "Vuelve a ejecutar la consulta, vacía las cachés de página y de objetos y completa un nuevo análisis de la base de datos."

#: src/Admin/FindingRemediationCatalog.php:44
msgid ""
"Run the query again, clear page and object caches, rotate privileged "
"credentials if executable code was injected, and complete a new scan."
msgstr "Vuelve a ejecutar la consulta, vacía las cachés de página y de objetos, rota las credenciales privilegiadas si se inyectó código ejecutable y completa un nuevo análisis."

#: src/Admin/FindingRemediationCatalog.php:40
msgid ""
"Run the read-only query in a trusted database administration session and "
"identify the plugin or theme that owns the option."
msgstr "Ejecuta la consulta de solo lectura en una sesión fiable de administración de la base de datos e identifica el plugin o tema propietario de la opción."

#: src/Admin/FindingRemediationCatalog.php:32
msgid ""
"Run the read-only query in a trusted database administration session and "
"review the same item in WordPress."
msgstr "Ejecuta la consulta de solo lectura en una sesión fiable de administración de la base de datos y revisa el mismo elemento en WordPress."

#: src/Admin/AdminController.php:476
msgid ""
"Run this SELECT only in a trusted database administration session. Its "
"result may contain sensitive data; LocalGuard does not execute or store the "
"result."
msgstr "Ejecuta este SELECT únicamente en una sesión fiable de administración de la base de datos. El resultado puede contener datos sensibles; LocalGuard no lo ejecuta ni lo guarda."

#: src/Application/Scan/ScanFailureCatalog.php:28
msgid "Save a finding"
msgstr "Guardar un hallazgo"

#: src/Application/Scan/ScanFailureCatalog.php:27
msgid "Save database inventory"
msgstr "Guardar el inventario de la base de datos"

#: src/Application/Scan/ScanFailureCatalog.php:26
msgid "Save file inventory"
msgstr "Guardar el inventario de archivos"

#: src/Application/Scan/ScanFailureCatalog.php:24
msgid "Save scan state"
msgstr "Guardar el estado del análisis"

#: src/Admin/AdminController.php:65 src/Admin/AdminController.php:374
msgid "Scan"
msgstr "Análisis"

#. translators: 1: scan ID, 2: critical count, 3: high count.
#: templates/email/alert-html.php:21 templates/email/alert-text.php:18
#, php-format
msgid "Scan #%1$d found %2$d new critical and %3$d new high-risk items."
msgstr "El análisis n.º %1$d encontró %2$d elementos críticos nuevos y %3$d elementos nuevos de riesgo alto."

#: src/Admin/AdminController.php:87
msgid "Scan cancelled."
msgstr "Análisis cancelado."

#: src/Admin/AdminController.php:85
msgid "Scan complete."
msgstr "Análisis completado."

#: src/Admin/AdminController.php:86
msgid "Scan completed with incomplete coverage."
msgstr "El análisis terminó con una cobertura incompleta."

#: src/Admin/AdminController.php:88
msgid "Scan failed safely. Review diagnostics."
msgstr "El análisis falló de forma segura. Revisa los diagnósticos."

#: src/Admin/AdminController.php:231
msgid "Scan now"
msgstr "Analizar ahora"

#: src/Admin/AdminController.php:225 src/Admin/AdminController.php:228
msgid "Scan this WordPress installation"
msgstr "Analizar esta instalación de WordPress"

#: src/Application/Scan/ScanFailureCatalog.php:30
msgid "Scanner-owned progress metadata could not be encoded."
msgstr "No se pudieron codificar los metadatos de progreso del analizador."

#: src/Admin/AdminController.php:145 src/Admin/AdminController.php:410
msgid "Scanning database"
msgstr "Analizando la base de datos"

#: src/Admin/AdminController.php:144 src/Admin/AdminController.php:409
msgid "Scanning files"
msgstr "Analizando archivos"

#: src/Admin/AdminController.php:84
msgid "Scanning…"
msgstr "Analizando…"

#: src/Admin/FindingExplanationCatalog.php:237
msgid ""
"Scheduled arguments can preserve payloads and reactivate malicious behavior."
msgstr "Los argumentos programados pueden conservar cargas y reactivar comportamientos maliciosos."

#: src/Admin/FindingExplanationCatalog.php:235
msgid "Scheduled event contains suspicious arguments"
msgstr "El evento programado contiene argumentos sospechosos"

#: src/Admin/FindingExplanationCatalog.php:228
msgid "Scheduled event has an unusual name"
msgstr "El evento programado tiene un nombre inusual"

#: src/Admin/FindingExplanationCatalog.php:249
msgid "Scripted redirect found in WordPress content"
msgstr "Redirección mediante script encontrada en contenido de WordPress"

#: src/Admin/AdminController.php:264 src/Admin/AdminController.php:269
msgid "Security findings"
msgstr "Hallazgos de seguridad"

#: src/Admin/AdminController.php:165 src/Admin/AdminController.php:168
msgid "Security overview"
msgstr "Resumen de seguridad"

#: src/Admin/AdminController.php:111
msgid "Select and copy the path manually."
msgstr "Selecciona y copia la ruta manualmente."

#: src/Admin/FindingExplanationCatalog.php:204
msgid "Sensitive WordPress option changed"
msgstr "Ha cambiado una opción sensible de WordPress"

#: src/Admin/AdminController.php:67 src/Admin/AdminController.php:376
msgid "Settings"
msgstr "Ajustes"

#: src/Admin/AdminController.php:344
msgid "Settings saved."
msgstr "Ajustes guardados."

#. translators: %d: WordPress Multisite site ID.
#: src/Admin/AdminController.php:446
#, php-format
msgid "Site %d"
msgstr "Sitio %d"

#: src/Admin/FindingExplanationCatalog.php:260
msgid ""
"Some embeds hide frames intentionally during loading; confirm the source and "
"purpose."
msgstr "Algunos contenidos incrustados ocultan marcos durante la carga; confirma el origen y la finalidad."

#: src/Admin/FindingExplanationCatalog.php:253
msgid ""
"Some intentional landing pages redirect visitors, so verify the destination "
"and owner."
msgstr "Algunas páginas de destino redirigen intencionadamente; comprueba el destino y el responsable."

#: src/Admin/FindingExplanationCatalog.php:129
msgid ""
"Some plugins create harmless index.php placeholders, so inspect or compare "
"the file before deleting it."
msgstr "Algunos plugins crean archivos index.php inofensivos; inspecciona o compara el archivo antes de borrarlo."

#: src/Admin/AdminController.php:103
msgid "Stage"
msgstr "Etapa"

#: src/Admin/AdminController.php:139
msgid "Stopped safely"
msgstr "Detenido de forma segura"

#: src/Admin/FindingExplanationCatalog.php:250
msgid "Stored content contains a script-based redirect pattern."
msgstr "El contenido almacenado contiene un patrón de redirección mediante script."

#: src/Admin/FindingExplanationCatalog.php:257
msgid "Stored content includes an iframe hidden through markup or styling."
msgstr "El contenido almacenado incluye un iframe oculto mediante marcado o estilos."

#: src/Admin/FindingExplanationCatalog.php:29
msgid "Suspicious local evidence"
msgstr "Evidencia local sospechosa"

#: src/Admin/AdminController.php:128 src/Admin/AdminController.php:613
msgid "Symbolic link was recorded but not followed"
msgstr "El enlace simbólico se registró, pero no se siguió"

#: src/Admin/FindingExplanationCatalog.php:191
msgid ""
"The account now has administrator privileges that were absent from the "
"previous baseline."
msgstr "La cuenta tiene ahora privilegios de administrador que no estaban en la línea base anterior."

#: src/Admin/FindingExplanationCatalog.php:194
msgid "The baseline records the change but cannot determine who authorized it."
msgstr "La línea base registra el cambio, pero no puede determinar quién lo autorizó."

#: src/Admin/FindingExplanationCatalog.php:146
#: src/Admin/FindingExplanationCatalog.php:156
msgid ""
"The bundled advisory catalog is a dated offline snapshot, not a live "
"vulnerability service."
msgstr "El catálogo de avisos incluido es una copia local con fecha, no un servicio de vulnerabilidades en tiempo real."

#: src/Admin/AdminController.php:634
msgid "The daily scan event is not scheduled"
msgstr "El evento de análisis diario no está programado"

#: src/Application/Scan/ScanFailureCatalog.php:27
msgid "The database inventory for the next batch could not be stored."
msgstr "No se pudo guardar el inventario de la base de datos del siguiente lote."

#: src/Admin/AdminController.php:108
msgid "The diagnostic excludes paths, inspected content, SQL, and secrets."
msgstr "El diagnóstico excluye rutas, contenido inspeccionado, SQL y secretos."

#: src/Admin/FindingExplanationCatalog.php:264
msgid "The file contains a long sequence that resembles encoded data."
msgstr "El archivo contiene una secuencia larga que parece formada por datos codificados."

#: src/Admin/FindingExplanationCatalog.php:91
msgid "The file contains a marker associated with known webshell families."
msgstr "El archivo contiene un indicador asociado a familias conocidas de webshells."

#: src/Admin/FindingExplanationCatalog.php:160
msgid ""
"The file hash does not match the signed local manifest for this exact "
"WordPress version."
msgstr "El hash del archivo no coincide con el manifiesto local firmado de esta versión exacta de WordPress."

#: src/Application/Scan/ScanFailureCatalog.php:26
msgid "The file inventory for the next batch could not be stored."
msgstr "No se pudo guardar el inventario de archivos del siguiente lote."

#: src/Admin/FindingExplanationCatalog.php:134
msgid ""
"The file is currently unable to perform an action and is informational "
"rather than evidence of infection."
msgstr "El archivo no puede realizar ninguna acción en su estado actual y es informativo, no una evidencia de infección."

#: src/Admin/FindingExplanationCatalog.php:278
msgid ""
"The file name combines a harmless-looking extension with a PHP-capable "
"extension."
msgstr "El nombre combina una extensión de apariencia inofensiva con otra capaz de ejecutar PHP."

#: src/Admin/FindingExplanationCatalog.php:292
msgid "The file permissions allow any local server account to modify it."
msgstr "Los permisos permiten que cualquier cuenta local del servidor modifique el archivo."

#: src/Admin/FindingExplanationCatalog.php:271
msgid ""
"The file repeatedly constructs strings from individual character values."
msgstr "El archivo construye repetidamente cadenas a partir de caracteres individuales."

#: src/Admin/FindingExplanationCatalog.php:198
msgid ""
"The hashed email for an administrator differs from the previous baseline."
msgstr "El hash del correo de un administrador difiere del de la línea base anterior."

#: src/Admin/AdminController.php:230
msgid "The inspection is local."
msgstr "La inspección es local."

#: src/Admin/FindingExplanationCatalog.php:140
msgid ""
"The installed active version matches an advisory in LocalGuard’s signed "
"local catalog."
msgstr "La versión activa instalada coincide con un aviso del catálogo local firmado de LocalGuard."

#: src/Application/Scan/ScanFailureCatalog.php:25
msgid "The inventory totals could not be prepared."
msgstr "No se pudieron preparar los totales del inventario."

#: src/Admin/FindingExplanationCatalog.php:288
msgid ""
"The name alone is not proof; verify the file’s owner and expected package."
msgstr "El nombre por sí solo no es una prueba; verifica el responsable del archivo y el paquete esperado."

#: src/Application/Scan/ScanFailureCatalog.php:32
msgid "The next batch stopped because of an unexpected local error."
msgstr "El siguiente lote se detuvo por un error local inesperado."

#: src/Application/Scan/ScanFailureCatalog.php:24
msgid "The next safe checkpoint could not be stored."
msgstr "No se pudo guardar el siguiente punto de control seguro."

#: src/Application/Scan/ScanFailureCatalog.php:22
msgid "The saved scan checkpoint was invalid or had changed."
msgstr "El punto de control guardado no era válido o había cambiado."

#: src/Application/Scan/ScanFailureCatalog.php:23
msgid "The saved scan state could not be read."
msgstr "No se pudo leer el estado guardado del análisis."

#: src/Admin/AdminController.php:577
msgid "The scan tried to read these and failed, so they are unverified."
msgstr "El análisis intentó leer estas áreas y falló, por lo que no están verificadas."

#: src/Application/Scan/ScanFailureCatalog.php:21
msgid "The scanner could not confirm ownership of the next batch."
msgstr "El analizador no pudo confirmar la propiedad del siguiente lote."

#: src/Admin/AdminController.php:109
msgid ""
"The scanner did not answer in time. Its last safe checkpoint is preserved."
msgstr "El analizador no respondió a tiempo. Se conserva su último punto de control seguro."

#: src/Admin/AdminController.php:101
msgid "The scanner did not modify the site."
msgstr "El analizador no modificó el sitio."

#: src/Admin/FindingExplanationCatalog.php:246
msgid ""
"The scanner reports the content location without storing the full content."
msgstr "El analizador informa de la ubicación sin guardar el contenido completo."

#: src/Admin/FindingExplanationCatalog.php:133
msgid ""
"The uploads PHP file contains only the small inert structure LocalGuard "
"permits."
msgstr "El archivo PHP de uploads contiene únicamente la pequeña estructura inerte permitida por LocalGuard."

#: src/Admin/AdminController.php:180
msgid ""
"There are medium-risk findings, but no active critical or high-risk findings."
msgstr "Hay hallazgos de riesgo medio, pero ninguno crítico o de riesgo alto activo."

#: src/Admin/AdminController.php:530
msgid ""
"These checks run on this server only and do not contact external services."
msgstr "Estas comprobaciones solo se ejecutan en este servidor y no contactan con servicios externos."

#: src/Admin/AdminController.php:284
msgid ""
"These findings no longer require action. They were not observed again by a "
"later verified scan of their area."
msgstr "Estos hallazgos ya no requieren ninguna acción. Un análisis posterior verificado de su área no volvió a observarlos."

#: src/Admin/FindingExplanationCatalog.php:272
msgid ""
"This can hide function names or commands from simple inspection, although "
"generated code may do it legitimately."
msgstr "Esto puede ocultar nombres de funciones u órdenes, aunque el código generado puede hacerlo legítimamente."

#: src/Admin/FindingExplanationCatalog.php:173
msgid ""
"This conclusion is produced only when the file scan has complete coverage."
msgstr "Esta conclusión solo se produce cuando el análisis de archivos tiene cobertura completa."

#: src/Admin/AdminController.php:352
msgid ""
"This is the earliest local hour. WP-Cron may start later if the site has no "
"traffic or scheduled runner."
msgstr "Esta es la hora local más temprana. WP-Cron puede empezar más tarde si el sitio no tiene tráfico ni un ejecutor programado."

#: src/Admin/FindingExplanationCatalog.php:223
msgid ""
"This is usually a performance concern, but unexpected growth can also hide "
"injected data."
msgstr "Suele ser un problema de rendimiento, pero un crecimiento inesperado también puede ocultar datos inyectados."

#: src/Admin/FindingExplanationCatalog.php:101
msgid ""
"This pattern raises review priority; it does not prove that the file is "
"malware."
msgstr "Este patrón eleva la prioridad de revisión; no demuestra que el archivo sea malware."

#: src/Admin/AdminController.php:182
msgid ""
"This result is meaningful only when the latest scan completed with full "
"coverage."
msgstr "Este resultado solo es significativo si el último análisis terminó con cobertura completa."

#: src/Admin/FindingExplanationCatalog.php:267
#: src/Admin/FindingExplanationCatalog.php:274
msgid ""
"Treat this as supporting evidence and review it together with the other "
"signals."
msgstr "Trátalo como evidencia complementaria y revísalo junto con las demás señales."

#: src/Admin/FindingExplanationCatalog.php:206
msgid ""
"Unexpected URL, registration or role settings can redirect users or weaken "
"access controls."
msgstr "Los ajustes inesperados de URL, registro o perfiles pueden redirigir usuarios o debilitar los controles de acceso."

#: src/Admin/FindingExplanationCatalog.php:185
msgid ""
"Unexpected administrators are a common sign of account or site compromise."
msgstr "Los administradores inesperados son una señal habitual de compromiso de una cuenta o del sitio."

#: src/Admin/FindingExplanationCatalog.php:161
msgid ""
"Unexpected core changes can indicate corruption, a failed update or "
"malicious modification."
msgstr "Los cambios inesperados del núcleo pueden indicar corrupción, una actualización fallida o una modificación maliciosa."

#: src/Admin/FindingExplanationCatalog.php:176
msgid "Unexpected file inside WordPress core"
msgstr "Archivo inesperado dentro del núcleo de WordPress"

#: src/Admin/AdminController.php:399 src/Admin/AdminController.php:424
msgid "Unknown"
msgstr "Desconocido"

#: src/Admin/AdminController.php:600
msgid "Unknown area"
msgstr "Área desconocida"

#: src/Admin/FindingExplanationCatalog.php:31
msgid ""
"Unknown evidence should be reviewed, but it does not confirm that the site "
"is infected."
msgstr "La evidencia desconocida debe revisarse, pero no confirma que el sitio esté infectado."

#: src/Admin/FindingLocationPresenter.php:36
#: src/Admin/FindingLocationPresenter.php:121
msgid "Unknown source"
msgstr "Origen desconocido"

#: src/Application/Diagnostics/EnvironmentDiagnostics.php:50
msgid "Unlimited PHP memory limit"
msgstr "Límite de memoria de PHP ilimitado"

#: src/Admin/FindingExplanationCatalog.php:263
msgid "Unusually long encoded payload"
msgstr "Carga codificada de longitud inusual"

#: src/Admin/FindingExplanationCatalog.php:127
msgid ""
"Uploads normally contain media, and attackers often place executable "
"backdoors there."
msgstr "Uploads suele contener archivos multimedia y los atacantes colocan allí con frecuencia puertas traseras ejecutables."

#. translators: %d: number of active critical and high-risk findings.
#: src/Admin/AdminController.php:178
msgid "Urgent review recommended."
msgstr "Se recomienda una revisión urgente."

#: src/Admin/AdminController.php:353
msgid ""
"Use 25–100 on constrained shared VPS servers. Smaller batches reduce peak "
"load but can take longer to finish."
msgstr "Usa 25–100 en VPS compartidos con recursos limitados. Los lotes pequeños reducen los picos de carga, pero pueden tardar más."

#. translators: 1: user ID, 2: users table, 3: WordPress site ID.
#: src/Admin/FindingLocationPresenter.php:85
#, php-format
msgid "User ID %1$d · table %2$s · site %3$d"
msgstr "Usuario ID %1$d · tabla %2$s · sitio %3$d"

#: src/Admin/FindingExplanationCatalog.php:190
msgid "User privileges increased"
msgstr "Los privilegios del usuario han aumentado"

#: src/Admin/AdminController.php:114 src/Admin/AdminController.php:561
msgid "Verified"
msgstr "Verificada"

#: src/Admin/FindingExplanationCatalog.php:122
msgid ""
"Verify authentication, allowed extensions and the final destination before "
"deciding whether it is malicious."
msgstr "Verifica la autenticación, las extensiones permitidas y el destino final antes de decidir si es malicioso."

#: src/Admin/FindingExplanationCatalog.php:221
msgid "Very large autoloaded option"
msgstr "Opción de carga automática de tamaño muy grande"

#: src/Admin/AdminController.php:632
msgid "WP-Cron is available"
msgstr "WP-Cron está disponible"

#: src/Admin/AdminController.php:633
msgid "WP-Cron is disabled; configure a system cron"
msgstr "WP-Cron está desactivado; configura un cron del sistema"

#: src/Admin/AdminController.php:137
msgid "Waiting for the next scheduled batch"
msgstr "Esperando el siguiente lote programado"

#: src/Admin/FindingExplanationCatalog.php:92
msgid ""
"Webshells can give an attacker remote control of the site, so this signal "
"deserves urgent verification."
msgstr "Las webshells pueden dar a un atacante control remoto del sitio, por lo que esta señal requiere una verificación urgente."

#: src/Admin/AdminController.php:467
msgid "What LocalGuard detected:"
msgstr "Qué detectó LocalGuard:"

#: src/Admin/AdminController.php:479
msgid "What to correct if it is confirmed"
msgstr "Qué corregir si se confirma"

#: src/Admin/AdminController.php:481
msgid "When it could be legitimate"
msgstr "Cuándo podría ser legítimo"

#: src/Admin/AdminController.php:472
msgid "Where it is located"
msgstr "Dónde se encuentra"

#: src/Admin/AdminController.php:468
msgid "Why it deserves attention:"
msgstr "Por qué merece atención:"

#: src/Admin/FindingExplanationCatalog.php:106
msgid ""
"Without strict validation, this flow can sometimes be used to place or alter "
"files on the server."
msgstr "Sin una validación estricta, este flujo puede usarse para colocar o alterar archivos en el servidor."

#: src/Admin/AdminController.php:626
msgid "WordPress and PHP versions are supported"
msgstr "Las versiones de WordPress y PHP son compatibles"

#: src/Admin/FindingExplanationCatalog.php:159
msgid "WordPress core file differs from the official hash"
msgstr "El archivo del núcleo de WordPress difiere del hash oficial"

#: src/Admin/FindingExplanationCatalog.php:169
msgid "WordPress core file is missing"
msgstr "Falta un archivo del núcleo de WordPress"

#: src/Admin/AdminController.php:627
msgid "WordPress or PHP version is unsupported"
msgstr "La versión de WordPress o PHP no es compatible"

#: src/Admin/AdminController.php:136
msgid "Working"
msgstr "Trabajando"

#: src/Plugin.php:124
msgid "You are not allowed to manage LocalGuard Scanner."
msgstr "No tienes permisos para administrar LocalGuard Scanner."

#: src/Infrastructure/WordPress/ManualScanController.php:94
msgid "You are not allowed to run security scans."
msgstr "No tienes permisos para ejecutar análisis de seguridad."

#: src/Admin/AdminController.php:365
msgid "You are not allowed to view LocalGuard Scanner."
msgstr "No tienes permisos para ver LocalGuard Scanner."

#: src/Admin/AdminController.php:234
msgid ""
"You may close this page after starting a scan. WP-Cron will continue it when "
"the site receives an opportunity to run scheduled work."
msgstr "Puedes cerrar esta página después de iniciar el análisis. WP-Cron lo continuará cuando el sitio tenga ocasión de ejecutar las tareas programadas."

#. translators: %s: site name.
#: src/Infrastructure/WordPress/MailNotifier.php:67
#, php-format
msgid "[LocalGuard Scanner] New security findings on %s"
msgstr "[LocalGuard Scanner] Nuevos hallazgos de seguridad en %s"

#: src/Admin/AdminController.php:100
msgid "batch"
msgstr "lote"

#: src/Admin/AdminController.php:92
msgid "database elements"
msgstr "elementos de la base de datos"

#: src/Admin/AdminController.php:90
msgid "elements"
msgstr "elementos"

#: src/Admin/AdminController.php:91
msgid "files reviewed"
msgstr "archivos revisados"

#: src/Admin/AdminController.php:94
msgid "informational"
msgstr "informativos"

#: src/Admin/AdminController.php:96
msgid "moved to History"
msgstr "movidos a Historial"

#: src/Admin/AdminController.php:98
msgid "now"
msgstr "ahora"

#: src/Admin/AdminController.php:95
msgid "previous file findings checked"
msgstr "avisos de archivos anteriores comprobados"

#: src/Admin/AdminController.php:93
msgid "require review"
msgstr "requieren revisión"

#~ msgid "Recommended steps"
#~ msgstr "Pasos recomendados"

#~ msgid "Classifying findings"
#~ msgstr "Clasificando hallazgos"

#~ msgid "The scan could not be started. Check the diagnostics and try again."
#~ msgstr ""
#~ "No se pudo iniciar el análisis. Revisa los diagnósticos e inténtalo de "
#~ "nuevo."

#~ msgid "The scan will continue automatically in resumable batches."
#~ msgstr "El análisis continuará automáticamente en lotes reanudables."

#~ msgid "Coverage limitations"
#~ msgstr "Limitaciones de cobertura"

#~ msgid ""
#~ "Relative paths only, one per line. Every exclusion reduces coverage and "
#~ "is reported as a limitation."
#~ msgstr ""
#~ "Solo rutas relativas, una por línea. Cada exclusión reduce la cobertura y "
#~ "se informa como una limitación."
