# Copyright (C) 2026 Fran Barbero
# This file is distributed under the GPL-2.0-or-later.
msgid ""
msgstr ""
"Project-Id-Version: LolaCore 1.8.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/lolacore\n"
"Last-Translator: LolaCore <hola@lolacore.com>\n"
"Language-Team: LolaCore <hola@lolacore.com>\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"PO-Revision-Date: 2026-07-13 07:33+0000\n"
"X-Domain: lolacore\n"

#: lolacore.php
msgid "LolaCore – AI Admin Agent"
msgstr "LolaCore – Agente de administración IA"

#: lolacore.php
msgid "https://lolacore.com"
msgstr "https://lolacore.com"

#: lolacore.php
msgid "An AI agent in wp-admin that remembers your site. 75 abilities for WordPress, WooCommerce, and custom builders — through chat."
msgstr "Un agente de IA en tu wp-admin que recuerda tu sitio. 75 habilidades para WordPress, WooCommerce y builders personalizados — desde el chat."

#: lolacore.php
msgid "Fran Barbero"
msgstr "Fran Barbero"

#: lolacore.php
msgid "https://profiles.wordpress.org/vanguardhive/"
msgstr "https://profiles.wordpress.org/vanguardhive/"

#: lolacore.php:107
msgid "LolaCore needs WordPress 7.0 or later to run. Update WordPress in Dashboard → Updates and Lola will be ready to go."
msgstr "LolaCore necesita WordPress 7.0 o superior para funcionar. Actualiza WordPress en Escritorio → Actualizaciones y Lola estará lista."

#: lolacore.php:311
#: src/Admin/Menu.php:87
#: src/Admin/Menu.php:88
#: templates/addons-page.php:15
#: templates/addons-page.php:16
msgid "Addons"
msgstr "Addons"

#: src/Actions/AbilitiesRegistry.php:43
msgid "LolaCore"
msgstr "LolaCore"

#: src/Actions/AbilitiesRegistry.php:44
msgid "AI assistant abilities for site management, memory, and diagnostics."
msgstr "Habilidades del asistente IA para gestión del sitio, memoria y diagnósticos."

#: src/Actions/AbilitiesRegistry.php:228
msgid "Get Site Info"
msgstr "Obtener información del sitio"

#: src/Actions/AbilitiesRegistry.php:229
msgid "Get the complete state of the site."
msgstr "Obtiene el estado completo del sitio."

#: src/Actions/AbilitiesRegistry.php:265
msgid "Get Memory Context"
msgstr "Obtener contexto de memoria"

#: src/Actions/AbilitiesRegistry.php:266
msgid "Retrieve relevant memory context given a prompt."
msgstr "Recupera el contexto de memoria relevante para un mensaje."

#: src/Actions/AbilitiesRegistry.php:315
msgid "Add Memory Fact"
msgstr "Añadir hecho a la memoria"

#: src/Actions/AbilitiesRegistry.php:316
msgid "Add an explicit fact to memory."
msgstr "Añade un hecho explícito a la memoria."

#: src/Actions/AbilitiesRegistry.php:359
msgid "Add Skill"
msgstr "Añadir skill"

#: src/Actions/AbilitiesRegistry.php:360
msgid "Stores a new behavioral skill in inactive state so the user can review the source before activating it."
msgstr "Guarda una nueva skill de comportamiento en estado inactivo para que puedas revisar el código antes de activarla."

#: src/Actions/AbilitiesRegistry.php:397
msgid "Get Action History"
msgstr "Obtener historial de acciones"

#: src/Actions/AbilitiesRegistry.php:398
msgid "History of actions executed by Lola."
msgstr "Historial de acciones ejecutadas por Lola."

#: src/Actions/AbilitiesRegistry.php:450
msgid "Get Scan Data"
msgstr "Obtener datos del análisis"

#: src/Actions/AbilitiesRegistry.php:451
msgid "Data from the last algorithmic scan."
msgstr "Datos del último análisis algorítmico."

#: src/Actions/AbilitiesRegistry.php:480
msgid "Chat with Lola"
msgstr "Chatear con Lola"

#: src/Actions/AbilitiesRegistry.php:481
msgid "Send a message to Lola and receive a response with context."
msgstr "Envía un mensaje a Lola y recibe una respuesta con contexto."

#: src/Actions/AbilitiesRegistry.php:537
msgid "Execute Action"
msgstr "Ejecutar acción"

#: src/Actions/AbilitiesRegistry.php:538
msgid "Dispatcher: execute any registered action of Lola."
msgstr "Dispatcher: ejecuta cualquier acción registrada de Lola."

#: src/Actions/AbilitiesRegistry.php:680
#: src/Actions/Handlers/MemoryHandler.php:59
msgid "Both content and fact_type are required."
msgstr "Los campos content y fact_type son obligatorios."

#: src/Actions/AbilitiesRegistry.php:700
#: src/Actions/Handlers/MemoryHandler.php:72
msgid "Fact saved to memory."
msgstr "Hecho guardado en memoria."

#: src/Actions/AbilitiesRegistry.php:701
#: src/Actions/Handlers/MemoryHandler.php:72
msgid "Failed to save fact."
msgstr "No se pudo guardar el hecho."

#: src/Actions/AbilitiesRegistry.php:772
msgid "No scan has been performed yet."
msgstr "Todavía no se ha realizado ningún análisis."

#: src/Actions/AbilitiesRegistry.php:801
msgid "Chat with Lola requires the admin UI (SSE streaming). For programmatic access, use the lolacore/execute-action ability to run specific actions, or lolacore/get-memory-context to query Lola's knowledge."
msgstr "Chatear con Lola requiere la interfaz de administración (streaming SSE). Para acceso programático, usa la habilidad lolacore/execute-action para ejecutar acciones concretas, o lolacore/get-memory-context para consultar lo que Lola sabe."

#: src/Actions/ActionExecutor.php:217
msgid "Action not recognized or not registered."
msgstr "Acción no reconocida o no registrada."

#: src/Actions/ActionExecutor.php:247
#: src/Actions/ActionExecutor.php:278
msgid "Action preview generated."
msgstr "Vista previa de la acción generada."

#: src/Actions/ActionExecutor.php:247
#: src/Actions/ActionExecutor.php:278
msgid "Action executed successfully."
msgstr "Acción ejecutada correctamente."

#: src/Actions/ActionExecutor.php:288
msgid "Action implementation not found."
msgstr "No encuentro la implementación de esta acción."

#: src/Actions/ActionExecutor.php:291
msgid "Action blocked due to internal exception."
msgstr "Acción bloqueada por una excepción interna."

#: src/Actions/Handlers/CommentHandler.php:76
msgid "comment_ids array is required."
msgstr "El array comment_ids es obligatorio."

#: src/Actions/Handlers/CommentHandler.php:79
msgid "Invalid action. Use 'approve', 'hold', 'spam', 'trash', or 'delete'."
msgstr "Acción no válida. Usa 'approve', 'hold', 'spam', 'trash' o 'delete'."

#: src/Actions/Handlers/CommentHandler.php:82
msgid "Maximum 50 comments per operation."
msgstr "Máximo 50 comentarios por operación."

#: src/Actions/Handlers/CommentHandler.php:106
msgid "Successfully %1$sed %2$d comment(s). Failed: %3$d."
msgstr "He procesado %2$d comentario(s) con la acción «%1$s». Fallidos: %3$d."

#: src/Actions/Handlers/ContentHandler.php:137
#: src/Actions/Handlers/MetaHandler.php:69
#: src/Actions/Handlers/MetaHandler.php:122
msgid "A valid post_id is required."
msgstr "Hace falta un post_id válido."

#: src/Actions/Handlers/ContentHandler.php:143
#: src/Actions/Handlers/MetaHandler.php:75
#: src/Actions/Handlers/MetaHandler.php:131
msgid "Post with ID %d not found."
msgstr "No encuentro la entrada con ID %d."

#: src/Actions/Handlers/ContentHandler.php:169
msgid "No fields to update. Provide at least one of: title, content, status, excerpt, slug, categories, tags, or featured_image."
msgstr "No hay campos que actualizar. Indica al menos uno de: title, content, status, excerpt, slug, categories, tags o featured_image."

#: src/Actions/Handlers/ContentHandler.php:196
#: src/Actions/Handlers/PluginHandler.php:190
#: src/Actions/Handlers/PluginHandler.php:196
#: src/Actions/Handlers/ThemeHandler.php:211
#: src/Actions/Handlers/ThemeHandler.php:217
msgid "Update failed: %s"
msgstr "La actualización ha fallado: %s"

#: src/Actions/Handlers/ContentHandler.php:219
msgid "An array of post_ids is required."
msgstr "El array post_ids es obligatorio."

#: src/Actions/Handlers/ContentHandler.php:223
msgid "Maximum 50 posts per operation. Received %d."
msgstr "Máximo 50 entradas por operación. Recibidas %d."

#: src/Actions/Handlers/ContentHandler.php:255
msgid "%d post(s) permanently deleted."
msgstr "%d entrada(s) eliminada(s) permanentemente."

#: src/Actions/Handlers/ContentHandler.php:255
msgid "%d post(s) moved to trash."
msgstr "%d entrada(s) movida(s) a la papelera."

#: src/Actions/Handlers/ContentHandler.php:282
msgid "No %s found matching the criteria."
msgstr "No he encontrado %s que coincidan con los criterios."

#: src/Actions/Handlers/ContentHandler.php:315
msgid "Failed to write export file. Check upload directory permissions."
msgstr "No he podido escribir el archivo de exportación. Revisa los permisos del directorio de subidas."

#: src/Actions/Handlers/ContentHandler.php:327
msgid "Exported %1$d %2$s(s). Download link valid for 1 hour."
msgstr "He exportado %1$d %2$s. El enlace de descarga es válido durante 1 hora."

#: src/Actions/Handlers/MediaHandler.php:89
msgid "A valid URL is required."
msgstr "Hace falta una URL válida."

#: src/Actions/Handlers/MediaHandler.php:109
msgid "Upload failed: %s"
msgstr "La subida ha fallado: %s"

#: src/Actions/Handlers/MediaHandler.php:133
msgid "attachment_ids array is required."
msgstr "El array attachment_ids es obligatorio."

#: src/Actions/Handlers/MediaHandler.php:136
msgid "Maximum 50 attachments per operation."
msgstr "Máximo 50 archivos adjuntos por operación."

#: src/Actions/Handlers/MediaHandler.php:169
msgid "%1$d media file(s) permanently deleted. Failed: %2$d."
msgstr "%1$d archivo(s) multimedia eliminado(s) permanentemente. Fallidos: %2$d."

#: src/Actions/Handlers/MemoryHandler.php:63
msgid "Invalid fact_type. Use: %s"
msgstr "fact_type no válido. Usa: %s"

#: src/Actions/Handlers/MetaHandler.php:125
msgid "meta_key is required."
msgstr "meta_key es obligatorio."

#: src/Actions/Handlers/MetaHandler.php:136
msgid "Updating meta key '%s' is blocked for security."
msgstr "Actualizar la meta key «%s» está bloqueado por seguridad."

#: src/Actions/Handlers/MetaHandler.php:159
msgid "Meta '%1$s' updated on post ID %2$d."
msgstr "Meta «%1$s» actualizada en la entrada ID %2$d."

#: src/Actions/Handlers/NavigationHandler.php:43
msgid "Menu with ID %d not found."
msgstr "No encuentro el menú con ID %d."

#: src/Actions/Handlers/NavigationHandler.php:83
msgid "Invalid action. Use 'create_menu', 'add_item', or 'remove_item'."
msgstr "Acción no válida. Usa 'create_menu', 'add_item' o 'remove_item'."

#: src/Actions/Handlers/NavigationHandler.php:89
msgid "menu_name is required to create a menu."
msgstr "menu_name es obligatorio para crear un menú."

#: src/Actions/Handlers/NavigationHandler.php:98
msgid "Menu '%s' created."
msgstr "Menú «%s» creado."

#: src/Actions/Handlers/NavigationHandler.php:110
msgid "menu_id is required to add items."
msgstr "menu_id es obligatorio para añadir elementos."

#: src/Actions/Handlers/NavigationHandler.php:113
msgid "item_title is required."
msgstr "item_title es obligatorio."

#: src/Actions/Handlers/NavigationHandler.php:138
msgid "Item '%s' added to menu."
msgstr "Elemento «%s» añadido al menú."

#: src/Actions/Handlers/NavigationHandler.php:144
msgid "item_id is required to remove a menu item."
msgstr "item_id es obligatorio para quitar un elemento del menú."

#: src/Actions/Handlers/NavigationHandler.php:148
msgid "Menu item ID %d not found."
msgstr "No encuentro el elemento de menú con ID %d."

#: src/Actions/Handlers/NavigationHandler.php:154
msgid "Menu item ID %d removed."
msgstr "Elemento de menú con ID %d eliminado."

#: src/Actions/Handlers/NavigationHandler.php:154
msgid "Failed to remove menu item."
msgstr "No he podido quitar el elemento del menú."

#: src/Actions/Handlers/NavigationHandler.php:160
#: src/Actions/Handlers/ThemeHandler.php:172
#: src/Actions/Handlers/ThemeHandler.php:296
msgid "stylesheet (theme directory name) is required."
msgstr "stylesheet (nombre del directorio del tema) es obligatorio."

#: src/Actions/Handlers/NavigationHandler.php:165
#: src/Actions/Handlers/ThemeHandler.php:179
#: src/Actions/Handlers/ThemeHandler.php:303
msgid "Theme '%s' is not installed."
msgstr "El tema «%s» no está instalado."

#: src/Actions/Handlers/NavigationHandler.php:169
msgid "Theme '%s' is already active."
msgstr "El tema «%s» ya está activo."

#: src/Actions/Handlers/NavigationHandler.php:187
msgid "Theme switched to '%s'."
msgstr "He cambiado el tema a «%s»."

#: src/Actions/Handlers/NavigationHandler.php:187
msgid "Theme switch failed."
msgstr "No he podido cambiar el tema."

#: src/Actions/Handlers/PlaybooksHandler.php:64
msgid "Insufficient permissions to create playbooks."
msgstr "No tienes permisos suficientes para crear playbooks."

#: src/Actions/Handlers/PlaybooksHandler.php:71
msgid "playbook_slug is required and must resolve to a valid kebab-case identifier."
msgstr "playbook_slug es obligatorio y debe ser un identificador kebab-case válido."

#: src/Actions/Handlers/PlaybooksHandler.php:74
#: src/Actions/Handlers/PlaybooksHandler.php:191
#: src/Actions/Handlers/SkillsHandler.php:68
#: src/Actions/Handlers/SkillsHandler.php:200
msgid "content is required."
msgstr "content es obligatorio."

#: src/Actions/Handlers/PlaybooksHandler.php:98
msgid "Playbook \"%s\" saved (inactive). Ask me to activate it when you are ready."
msgstr "He guardado el playbook «%s» (inactivo). Pídeme que lo active cuando quieras."

#: src/Actions/Handlers/PlaybooksHandler.php:105
msgid "Insufficient permissions to list playbooks."
msgstr "No tienes permisos suficientes para listar playbooks."

#: src/Actions/Handlers/PlaybooksHandler.php:147
msgid "Insufficient permissions to read playbooks."
msgstr "No tienes permisos suficientes para leer playbooks."

#: src/Actions/Handlers/PlaybooksHandler.php:152
#: src/Actions/Handlers/PlaybooksHandler.php:188
#: src/Actions/Handlers/PlaybooksHandler.php:244
#: src/Actions/Handlers/PlaybooksHandler.php:286
#: src/Actions/Handlers/PlaybooksHandler.php:340
msgid "playbook_slug is required."
msgstr "playbook_slug es obligatorio."

#: src/Actions/Handlers/PlaybooksHandler.php:158
msgid "No playbook found with slug \"%s\"."
msgstr "No encuentro ningún playbook con el slug «%s»."

#: src/Actions/Handlers/PlaybooksHandler.php:181
msgid "Insufficient permissions to update playbooks."
msgstr "No tienes permisos suficientes para actualizar playbooks."

#: src/Actions/Handlers/PlaybooksHandler.php:199
msgid "Playbook \"%s\" is archived and cannot be updated. Restore it first."
msgstr "El playbook «%s» está archivado y no se puede actualizar. Restáuralo primero."

#: src/Actions/Handlers/PlaybooksHandler.php:207
msgid "Will replace the source of playbook \"%1$s\" (currently %2$s). The status will be preserved."
msgstr "Voy a sustituir el código del playbook «%1$s» (actualmente %2$s). El estado se conservará."

#: src/Actions/Handlers/PlaybooksHandler.php:232
msgid "Playbook \"%s\" updated."
msgstr "He actualizado el playbook «%s»."

#: src/Actions/Handlers/PlaybooksHandler.php:239
msgid "Insufficient permissions to delete playbooks."
msgstr "No tienes permisos suficientes para eliminar playbooks."

#: src/Actions/Handlers/PlaybooksHandler.php:256
msgid "Will permanently delete playbook \"%1$s\" (currently %2$s). This cannot be undone."
msgstr "Voy a eliminar permanentemente el playbook «%1$s» (actualmente %2$s). No se puede deshacer."

#: src/Actions/Handlers/PlaybooksHandler.php:274
#: src/I18n/StatusMessages.php:196
msgid "Playbook \"%s\" deleted."
msgstr "Playbook «%s» eliminado."

#: src/Actions/Handlers/PlaybooksHandler.php:281
msgid "Insufficient permissions to activate playbooks."
msgstr "No tienes permisos suficientes para activar playbooks."

#: src/Actions/Handlers/PlaybooksHandler.php:297
msgid "Playbook \"%s\" is already active."
msgstr "El playbook «%s» ya está activo."

#: src/Actions/Handlers/PlaybooksHandler.php:302
msgid "Playbook \"%s\" is archived and cannot be activated. Restore it from the admin panel first."
msgstr "El playbook «%s» está archivado y no se puede activar. Restáuralo primero desde el panel de administración."

#: src/Actions/Handlers/PlaybooksHandler.php:309
msgid "Will activate playbook \"%1$s\" (currently %2$s). After activation it will be delivered when matching abilities run or trigger keywords match."
msgstr "Voy a activar el playbook «%1$s» (actualmente %2$s). Tras la activación se aplicará cuando coincidan habilidades o palabras clave de activación."

#: src/Actions/Handlers/PlaybooksHandler.php:328
#: src/I18n/StatusMessages.php:183
msgid "Playbook \"%s\" activated."
msgstr "Playbook «%s» activado."

#: src/Actions/Handlers/PlaybooksHandler.php:335
msgid "Insufficient permissions to deactivate playbooks."
msgstr "No tienes permisos suficientes para desactivar playbooks."

#: src/Actions/Handlers/PlaybooksHandler.php:352
msgid "Playbook \"%1$s\" is not active (current status: %2$s). Nothing to deactivate."
msgstr "El playbook «%1$s» no está activo (estado actual: %2$s). No hay nada que desactivar."

#: src/Actions/Handlers/PlaybooksHandler.php:360
msgid "Will move playbook \"%s\" from active to inactive. It will stop being delivered but stay in the panel; you can reactivate it later."
msgstr "Voy a pasar el playbook «%s» de activo a inactivo. Dejará de aplicarse pero seguirá en el panel; puedes reactivarlo después."

#: src/Actions/Handlers/PlaybooksHandler.php:379
msgid "Playbook \"%s\" deactivated. Now inactive."
msgstr "He desactivado el playbook «%s». Ahora está inactivo."

#: src/Actions/Handlers/PlaybooksHandler.php:392
msgid "No database playbook found with slug \"%s\". Built-in, addon, and filesystem playbooks cannot be changed from chat."
msgstr "No encuentro ningún playbook en base de datos con el slug «%s». Los playbooks integrados, de addon y del sistema de archivos no se pueden cambiar desde el chat."

#: src/Actions/Handlers/PluginHandler.php:82
msgid "Invalid action. Use 'activate', 'deactivate', or 'delete'."
msgstr "Acción no válida. Usa 'activate', 'deactivate' o 'delete'."

#: src/Actions/Handlers/PluginHandler.php:85
#: src/Actions/Handlers/PluginHandler.php:144
msgid "Plugin slug is required."
msgstr "El slug del plugin es obligatorio."

#: src/Actions/Handlers/PluginHandler.php:99
#: src/Actions/Handlers/PluginHandler.php:158
msgid "Plugin with slug '%s' not found."
msgstr "No encuentro ningún plugin con el slug «%s»."

#: src/Actions/Handlers/PluginHandler.php:119
msgid "Plugin '%s' activated."
msgstr "He activado el plugin «%s»."

#: src/Actions/Handlers/PluginHandler.php:124
msgid "Plugin '%s' deactivated."
msgstr "He desactivado el plugin «%s»."

#: src/Actions/Handlers/PluginHandler.php:129
msgid "Cannot delete an active plugin. Deactivate it first."
msgstr "No puedo eliminar un plugin activo. Desactívalo primero."

#: src/Actions/Handlers/PluginHandler.php:138
msgid "Plugin '%s' deleted."
msgstr "He eliminado el plugin «%s»."

#: src/Actions/Handlers/PluginHandler.php:165
msgid "Plugin '%s' is already up to date. No update available."
msgstr "El plugin «%s» ya está actualizado. No hay actualización disponible."

#: src/Actions/Handlers/PluginHandler.php:198
#: src/Actions/Handlers/ThemeHandler.php:219
msgid "Update failed for unknown reason. Check file permissions and ensure the filesystem is accessible."
msgstr "La actualización ha fallado por un motivo desconocido. Revisa los permisos de archivos y que el sistema de archivos sea accesible."

#: src/Actions/Handlers/PluginHandler.php:211
msgid "Update appeared to succeed but the plugin version did not change (still %s). Check file permissions and disk space."
msgstr "La actualización pareció funcionar pero la versión del plugin no cambió (sigue en %s). Revisa permisos de archivos y espacio en disco."

#: src/Actions/Handlers/PluginHandler.php:220
msgid "Plugin '%1$s' updated from %2$s to %3$s."
msgstr "He actualizado el plugin «%1$s» de %2$s a %3$s."

#: src/Actions/Handlers/PluginHandler.php:232
#: src/Actions/Handlers/ThemeHandler.php:57
msgid "A search keyword is required."
msgstr "Hace falta una palabra clave de búsqueda."

#: src/Actions/Handlers/PluginHandler.php:258
#: src/Actions/Handlers/ThemeHandler.php:80
msgid "WordPress.org API error: %s"
msgstr "Error de la API de WordPress.org: %s"

#: src/Actions/Handlers/PluginHandler.php:295
msgid "Plugin slug is required for installation."
msgstr "El slug del plugin es obligatorio para la instalación."

#: src/Actions/Handlers/PluginHandler.php:319
msgid "Failed to retrieve plugin information: %s"
msgstr "No he podido obtener la información del plugin: %s"

#: src/Actions/Handlers/PluginHandler.php:328
#: src/Actions/Handlers/PluginHandler.php:334
#: src/Actions/Handlers/ThemeHandler.php:149
#: src/Actions/Handlers/ThemeHandler.php:155
msgid "Installation failed: %s"
msgstr "La instalación ha fallado: %s"

#: src/Actions/Handlers/PluginHandler.php:336
#: src/Actions/Handlers/ThemeHandler.php:157
msgid "Installation failed for unknown reason. Check file permissions and ensure the filesystem is accessible."
msgstr "La instalación ha fallado por un motivo desconocido. Revisa los permisos de archivos y que el sistema de archivos sea accesible."

#: src/Actions/Handlers/PluginHandler.php:343
msgid "Plugin '%s' installed successfully. It is currently inactive. You can activate it using toggle_plugin."
msgstr "He instalado el plugin «%s» correctamente. Está inactivo. Puedes activarlo con toggle_plugin."

#: src/Actions/Handlers/PluginHandler.php:351
msgid "An array of plugin slugs is required."
msgstr "El array de slugs de plugin es obligatorio."

#: src/Actions/Handlers/PluginHandler.php:379
msgid "None of the provided slugs matched installed plugins."
msgstr "Ninguno de los slugs indicados coincide con plugins instalados."

#: src/Actions/Handlers/PluginHandler.php:385
#: src/Actions/Handlers/ThemeHandler.php:282
msgid "Bulk update failed: check filesystem permissions."
msgstr "La actualización masiva ha fallado: revisa los permisos del sistema de archivos."

#: src/Actions/Handlers/PluginHandler.php:391
msgid "%d plugin(s) updated."
msgstr "He actualizado %d plugin(s)."

#: src/Actions/Handlers/SkillsHandler.php:58
msgid "Insufficient permissions to create skills."
msgstr "No tienes permisos suficientes para crear skills."

#: src/Actions/Handlers/SkillsHandler.php:65
msgid "skill_name is required and must resolve to a valid kebab-case identifier."
msgstr "skill_name es obligatorio y debe ser un identificador kebab-case válido."

#: src/Actions/Handlers/SkillsHandler.php:100
msgid "Skill \"%s\" saved (inactive). Ask me to activate it when you are ready."
msgstr "He guardado la skill «%s» (inactiva). Pídeme que la active cuando quieras."

#: src/Actions/Handlers/SkillsHandler.php:121
msgid "Insufficient permissions to activate skills."
msgstr "No tienes permisos suficientes para activar skills."

#: src/Actions/Handlers/SkillsHandler.php:126
#: src/Actions/Handlers/SkillsHandler.php:197
#: src/Actions/Handlers/SkillsHandler.php:329
#: src/Actions/Handlers/SkillsHandler.php:385
msgid "skill_name is required."
msgstr "skill_name es obligatorio."

#: src/Actions/Handlers/SkillsHandler.php:132
#: src/Actions/Handlers/SkillsHandler.php:213
#: src/Actions/Handlers/SkillsHandler.php:391
msgid "No skill found with name \"%s\"."
msgstr "No encuentro ninguna skill con el nombre «%s»."

#: src/Actions/Handlers/SkillsHandler.php:142
msgid "Skill \"%s\" is already active."
msgstr "La skill «%s» ya está activa."

#: src/Actions/Handlers/SkillsHandler.php:147
msgid "Skill \"%s\" is archived and cannot be activated. Restore it from the admin panel first."
msgstr "La skill «%s» está archivada y no se puede activar. Restáurala primero desde el panel de administración."

#: src/Actions/Handlers/SkillsHandler.php:154
msgid "Will activate skill \"%1$s\" (currently %2$s). After activation it will start influencing every reply matching its rules."
msgstr "Voy a activar la skill «%1$s» (actualmente %2$s). Tras la activación empezará a influir en cada respuesta que coincida con sus reglas."

#: src/Actions/Handlers/SkillsHandler.php:173
#: src/I18n/StatusMessages.php:156
msgid "Skill \"%s\" activated."
msgstr "Skill \"%s\" activada."

#: src/Actions/Handlers/SkillsHandler.php:190
msgid "Insufficient permissions to update skills."
msgstr "No tienes permisos suficientes para actualizar skills."

#: src/Actions/Handlers/SkillsHandler.php:220
msgid "Skill \"%s\" is archived and cannot be updated. Restore it first."
msgstr "La skill «%s» está archivada y no se puede actualizar. Restáurala primero."

#: src/Actions/Handlers/SkillsHandler.php:228
msgid "Will replace the source of skill \"%1$s\" (currently %2$s). The status will be preserved."
msgstr "Voy a sustituir el código de la skill «%1$s» (actualmente %2$s). El estado se conservará."

#: src/Actions/Handlers/SkillsHandler.php:248
#: src/I18n/StatusMessages.php:148
msgid "Skill \"%s\" updated."
msgstr "Skill \"%s\" actualizada."

#: src/Actions/Handlers/SkillsHandler.php:268
msgid "Insufficient permissions to list skills."
msgstr "No tienes permisos suficientes para listar skills."

#: src/Actions/Handlers/SkillsHandler.php:324
msgid "Insufficient permissions to delete skills."
msgstr "No tienes permisos suficientes para eliminar skills."

#: src/Actions/Handlers/SkillsHandler.php:335
msgid "No skill found with name \"%s\". (Bundled skills cannot be deleted from chat — only user/Lola-generated ones.)"
msgstr "No encuentro ninguna skill con el nombre «%s». (Las skills integradas no se pueden eliminar desde el chat — solo las generadas por ti o por Lola.)"

#: src/Actions/Handlers/SkillsHandler.php:346
msgid "Will permanently delete skill \"%1$s\" (currently %2$s). This cannot be undone."
msgstr "Voy a eliminar permanentemente la skill «%1$s» (actualmente %2$s). No se puede deshacer."

#: src/Actions/Handlers/SkillsHandler.php:364
#: src/I18n/StatusMessages.php:121
msgid "Skill \"%s\" deleted."
msgstr "Skill \"%s\" eliminada."

#: src/Actions/Handlers/SkillsHandler.php:380
msgid "Insufficient permissions to deactivate skills."
msgstr "No tienes permisos suficientes para desactivar skills."

#: src/Actions/Handlers/SkillsHandler.php:402
msgid "Skill \"%1$s\" is not active (current status: %2$s). Nothing to deactivate."
msgstr "La skill «%1$s» no está activa (estado actual: %2$s). No hay nada que desactivar."

#: src/Actions/Handlers/SkillsHandler.php:410
msgid "Will move skill \"%s\" from active to inactive. It will stop firing but stay in the panel; you can reactivate it later."
msgstr "Voy a pasar la skill «%s» de activa a inactiva. Dejará de aplicarse pero seguirá en el panel; puedes reactivarla después."

#: src/Actions/Handlers/SkillsHandler.php:429
msgid "Skill \"%s\" deactivated. Now inactive."
msgstr "He desactivado la skill «%s». Ahora está inactiva."

#: src/Actions/Handlers/SystemHandler.php:351
msgid "Time limit approaching — stopped safely after %d revisions. Run again to continue."
msgstr "Me acerco al límite de tiempo — me he detenido de forma segura tras %d revisiones. Vuelve a ejecutarlo para continuar."

#: src/Actions/Handlers/SystemHandler.php:363
msgid "Revision batch error: %s"
msgstr "Error en el lote de revisiones: %s"

#: src/Actions/Handlers/SystemHandler.php:383
msgid "Time limit approaching during orphaned meta cleanup. Run again to continue."
msgstr "Me acerco al límite de tiempo durante la limpieza de meta huérfana. Vuelve a ejecutarlo para continuar."

#: src/Actions/Handlers/SystemHandler.php:393
msgid "Orphaned meta error: %s"
msgstr "Error de meta huérfana: %s"

#: src/Actions/Handlers/SystemHandler.php:413
msgid "Time limit approaching — stopped safely after %d spam comments. Run again to continue."
msgstr "Me acerco al límite de tiempo — me he detenido de forma segura tras %d comentarios spam. Vuelve a ejecutarlo para continuar."

#: src/Actions/Handlers/SystemHandler.php:425
msgid "Spam batch error: %s"
msgstr "Error en el lote de spam: %s"

#: src/Actions/Handlers/SystemHandler.php:446
msgid "Time limit approaching during transient cleanup. Run again to continue."
msgstr "Me acerco al límite de tiempo durante la limpieza de transients. Vuelve a ejecutarlo para continuar."

#: src/Actions/Handlers/SystemHandler.php:543
msgid "'%s' is a PHP constant defined in wp-config.php, not a WordPress option. update_option() cannot change it. The site owner must edit wp-config.php manually via FTP, cPanel File Manager, or SSH."
msgstr "«%s» es una constante PHP definida en wp-config.php, no una opción de WordPress. update_option() no puede cambiarla. Tienes que editar wp-config.php manualmente por FTP, el administrador de archivos de cPanel o SSH."

#: src/Actions/Handlers/SystemHandler.php:555
msgid "Updating option '%s' is blocked for security reasons."
msgstr "Actualizar la opción «%s» está bloqueado por razones de seguridad."

#: src/Actions/Handlers/SystemHandler.php:589
msgid "No recognized caching plugin detected."
msgstr "No he detectado ningún plugin de caché reconocido."

#: src/Actions/Handlers/SystemHandler.php:600
msgid "Cache purged successfully."
msgstr "He vaciado la caché correctamente."

#: src/Actions/Handlers/SystemHandler.php:648
msgid "No orphaned cron jobs found."
msgstr "No he encontrado tareas cron huérfanas."

#: src/Actions/Handlers/SystemHandler.php:653
msgid "Will remove orphaned cron hooks"
msgstr "Voy a eliminar los hooks cron huérfanos"

#: src/Actions/Handlers/SystemHandler.php:667
msgid "%d orphaned cron job(s) removed."
msgstr "He eliminado %d tarea(s) cron huérfana(s)."

#: src/Actions/Handlers/TaxonomyHandler.php:104
#: src/Actions/Handlers/WooWriteHandler.php:150
msgid "Invalid action. Use 'create', 'update', or 'delete'."
msgstr "Acción no válida. Usa 'create', 'update' o 'delete'."

#: src/Actions/Handlers/TaxonomyHandler.php:107
msgid "Taxonomy '%s' does not exist."
msgstr "La taxonomía «%s» no existe."

#: src/Actions/Handlers/TaxonomyHandler.php:128
msgid "Term name is required for create."
msgstr "El nombre del término es obligatorio para crear."

#: src/Actions/Handlers/TaxonomyHandler.php:158
msgid "Term '%1$s' created in %2$s."
msgstr "Término «%1$s» creado en %2$s."

#: src/Actions/Handlers/TaxonomyHandler.php:168
#: src/Actions/Handlers/WooWriteHandler.php:167
msgid "term_id is required for update."
msgstr "term_id es obligatorio para actualizar."

#: src/Actions/Handlers/TaxonomyHandler.php:173
#: src/Actions/Handlers/TaxonomyHandler.php:224
msgid "Term ID %1$d not found in %2$s."
msgstr "No encuentro el término con ID %1$d en %2$s."

#: src/Actions/Handlers/TaxonomyHandler.php:188
#: src/Actions/Handlers/WooWriteHandler.php:175
msgid "Nothing to update."
msgstr "No hay nada que actualizar."

#: src/Actions/Handlers/TaxonomyHandler.php:209
msgid "Term ID %d updated."
msgstr "Término con ID %d actualizado."

#: src/Actions/Handlers/TaxonomyHandler.php:219
#: src/Actions/Handlers/WooWriteHandler.php:184
msgid "term_id is required for delete."
msgstr "term_id es obligatorio para eliminar."

#: src/Actions/Handlers/TaxonomyHandler.php:245
msgid "Term ID %d deleted."
msgstr "Término con ID %d eliminado."

#: src/Actions/Handlers/ThemeHandler.php:118
msgid "Theme slug is required for installation."
msgstr "El slug del tema es obligatorio para la instalación."

#: src/Actions/Handlers/ThemeHandler.php:140
msgid "Failed to retrieve theme information: %s"
msgstr "No he podido obtener la información del tema: %s"

#: src/Actions/Handlers/ThemeHandler.php:164
msgid "Theme '%s' installed successfully. It is currently inactive. You can activate it using switch_theme."
msgstr "He instalado el tema «%s» correctamente. Está inactivo. Puedes activarlo con switch_theme."

#: src/Actions/Handlers/ThemeHandler.php:186
msgid "Theme '%s' is already up to date. No update available."
msgstr "El tema «%s» ya está actualizado. No hay actualización disponible."

#: src/Actions/Handlers/ThemeHandler.php:232
msgid "Update appeared to succeed but the theme version did not change (still %s). Check file permissions and disk space."
msgstr "La actualización pareció funcionar pero la versión del tema no cambió (sigue en %s). Revisa permisos de archivos y espacio en disco."

#: src/Actions/Handlers/ThemeHandler.php:241
msgid "Theme '%1$s' updated from %2$s to %3$s."
msgstr "He actualizado el tema «%1$s» de %2$s a %3$s."

#: src/Actions/Handlers/ThemeHandler.php:251
msgid "An array of theme stylesheets is required."
msgstr "El array de stylesheets de tema es obligatorio."

#: src/Actions/Handlers/ThemeHandler.php:276
msgid "None of the provided stylesheets matched installed themes."
msgstr "Ninguno de los stylesheets indicados coincide con temas instalados."

#: src/Actions/Handlers/ThemeHandler.php:288
msgid "%d theme(s) updated."
msgstr "He actualizado %d tema(s)."

#: src/Actions/Handlers/ThemeHandler.php:308
msgid "Cannot delete the currently active theme. Switch to another theme first using switch_theme."
msgstr "No puedo eliminar el tema activo. Cambia a otro tema primero con switch_theme."

#: src/Actions/Handlers/ThemeHandler.php:313
msgid "Cannot delete '%s' — it is the parent theme of the active child theme. Switch to another theme first."
msgstr "No puedo eliminar «%s» — es el tema padre del tema hijo activo. Cambia a otro tema primero."

#: src/Actions/Handlers/ThemeHandler.php:337
msgid "Delete failed: %s"
msgstr "La eliminación ha fallado: %s"

#: src/Actions/Handlers/ThemeHandler.php:340
msgid "Delete failed. Check filesystem permissions."
msgstr "La eliminación ha fallado. Revisa los permisos del sistema de archivos."

#: src/Actions/Handlers/ThemeHandler.php:347
msgid "Theme '%s' deleted."
msgstr "He eliminado el tema «%s»."

#: src/Actions/Handlers/UserHandler.php:60
#: src/Actions/Handlers/UserHandler.php:218
msgid "Role '%s' does not exist."
msgstr "El rol «%s» no existe."

#: src/Actions/Handlers/UserHandler.php:94
msgid "Invalid action. Use 'create', 'update_role', or 'delete'."
msgstr "Acción no válida. Usa 'create', 'update_role' o 'delete'."

#: src/Actions/Handlers/UserHandler.php:102
msgid "Username and email are required to create a user."
msgstr "El nombre de usuario y el email son obligatorios para crear un usuario."

#: src/Actions/Handlers/UserHandler.php:111
msgid "User creation failed: %s"
msgstr "No he podido crear el usuario: %s"

#: src/Actions/Handlers/UserHandler.php:121
msgid "user_id and role are required."
msgstr "user_id y role son obligatorios."

#: src/Actions/Handlers/UserHandler.php:126
#: src/Actions/Handlers/UserHandler.php:153
msgid "User with ID %d not found."
msgstr "No encuentro el usuario con ID %d."

#: src/Actions/Handlers/UserHandler.php:131
msgid "Cannot change role of the only administrator."
msgstr "No puedo cambiar el rol del único administrador."

#: src/Actions/Handlers/UserHandler.php:145
msgid "user_id is required for delete."
msgstr "user_id es obligatorio para eliminar."

#: src/Actions/Handlers/UserHandler.php:148
msgid "reassign_to is mandatory. Content must be reassigned to prevent data loss."
msgstr "reassign_to es obligatorio. Hay que reasignar el contenido para evitar pérdida de datos."

#: src/Actions/Handlers/UserHandler.php:156
msgid "Cannot delete the currently logged-in user."
msgstr "No puedo eliminar el usuario con la sesión iniciada."

#: src/Actions/Handlers/UserHandler.php:161
msgid "Cannot delete the only administrator."
msgstr "No puedo eliminar al único administrador."

#: src/Actions/Handlers/UserHandler.php:170
msgid "User '%1$s' deleted. Content reassigned to user ID %2$d."
msgstr "He eliminado al usuario «%1$s». Contenido reasignado al usuario ID %2$d."

#: src/Actions/Handlers/UserHandler.php:170
msgid "User deletion failed."
msgstr "No he podido eliminar al usuario."

#: src/Actions/Handlers/UserHandler.php:178
msgid "Invalid action. Use 'create', 'delete', 'add_caps', or 'remove_caps'."
msgstr "Acción no válida. Usa 'create', 'delete', 'add_caps' o 'remove_caps'."

#: src/Actions/Handlers/UserHandler.php:181
msgid "role_slug is required."
msgstr "role_slug es obligatorio."

#: src/Actions/Handlers/UserHandler.php:190
msgid "display_name is required when creating a role."
msgstr "display_name es obligatorio al crear un rol."

#: src/Actions/Handlers/UserHandler.php:194
msgid "Role '%s' already exists."
msgstr "El rol «%s» ya existe."

#: src/Actions/Handlers/UserHandler.php:200
msgid "Cannot clone from '%s': role does not exist."
msgstr "No puedo clonar desde «%s»: el rol no existe."

#: src/Actions/Handlers/UserHandler.php:211
msgid "Failed to create role. The role may already exist or the slug is invalid."
msgstr "No he podido crear el rol. Puede que ya exista o que el slug no sea válido."

#: src/Actions/Handlers/UserHandler.php:213
msgid "Role '%1$s' (%2$s) created successfully."
msgstr "He creado el rol «%1$s» (%2$s) correctamente."

#: src/Actions/Handlers/UserHandler.php:224
msgid "Cannot delete built-in role '%s'. Only custom roles can be deleted."
msgstr "No puedo eliminar el rol integrado «%s». Solo se pueden eliminar roles personalizados."

#: src/Actions/Handlers/UserHandler.php:229
msgid "Cannot delete role '%1$s': %2$d user(s) still assigned to it. Reassign them first."
msgstr "No puedo eliminar el rol «%1$s»: %2$d usuario(s) siguen asignados. Reasígnalos primero."

#: src/Actions/Handlers/UserHandler.php:235
msgid "Role '%s' has been deleted."
msgstr "He eliminado el rol «%s»."

#: src/Actions/Handlers/UserHandler.php:241
msgid "capabilities array is required for add_caps/remove_caps."
msgstr "El array capabilities es obligatorio para add_caps/remove_caps."

#: src/Actions/Handlers/UserHandler.php:244
msgid "Maximum 50 capabilities per operation."
msgstr "Máximo 50 capacidades por operación."

#: src/Actions/Handlers/UserHandler.php:247
msgid "Cannot remove manage_options from the administrator role. This would lock everyone out of site administration."
msgstr "No puedo quitar manage_options del rol administrador. Eso dejaría a todo el mundo fuera de la administración del sitio."

#: src/Actions/Handlers/UserHandler.php:265
msgid "added to"
msgstr "añadidas al"

#: src/Actions/Handlers/UserHandler.php:265
msgid "removed from"
msgstr "eliminadas del"

#: src/Actions/Handlers/UserHandler.php:266
msgid "%1$d capability(ies) %2$s role '%3$s'."
msgstr "%1$d capacidad(es) %2$s rol «%3$s»."

#: src/Actions/Handlers/WooReadHandler.php:51
#: src/Actions/Handlers/WooWriteHandler.php:43
msgid "WooCommerce is not installed or activated."
msgstr "WooCommerce no está instalado o activado."

#: src/Actions/Handlers/WooReadHandler.php:82
#: src/Actions/Handlers/WooWriteHandler.php:69
msgid "A valid product_id is required."
msgstr "Hace falta un product_id válido."

#: src/Actions/Handlers/WooReadHandler.php:84
#: src/Actions/Handlers/WooWriteHandler.php:71
msgid "Product not found."
msgstr "No encuentro el producto."

#: src/Actions/Handlers/WooReadHandler.php:126
#: src/Actions/Handlers/WooWriteHandler.php:108
msgid "A valid order_id is required."
msgstr "Hace falta un order_id válido."

#: src/Actions/Handlers/WooReadHandler.php:128
#: src/Actions/Handlers/WooWriteHandler.php:110
msgid "Order not found."
msgstr "No encuentro el pedido."

#: src/Actions/Handlers/WooWriteHandler.php:84
msgid "Stock quantity cannot be negative."
msgstr "La cantidad de stock no puede ser negativa."

#: src/Actions/Handlers/WooWriteHandler.php:103
msgid "Product updated successfully."
msgstr "He actualizado el producto correctamente."

#: src/Actions/Handlers/WooWriteHandler.php:115
msgid "Invalid order status provided."
msgstr "Estado de pedido no válido."

#: src/Actions/Handlers/WooWriteHandler.php:122
msgid "Order status updated."
msgstr "He actualizado el estado del pedido."

#: src/Actions/Handlers/WooWriteHandler.php:128
msgid "Product name and regular_price are required."
msgstr "El nombre del producto y regular_price son obligatorios."

#: src/Actions/Handlers/WooWriteHandler.php:145
msgid "Product '%1$s' created with ID %2$d."
msgstr "He creado el producto «%1$s» con ID %2$d."

#: src/Actions/Handlers/WooWriteHandler.php:154
msgid "Category name is required for create."
msgstr "El nombre de la categoría es obligatorio para crear."

#: src/Actions/Handlers/WooWriteHandler.php:162
msgid "Product category '%s' created."
msgstr "He creado la categoría de producto «%s»."

#: src/Actions/Handlers/WooWriteHandler.php:169
#: src/Actions/Handlers/WooWriteHandler.php:186
msgid "Product category ID %d not found."
msgstr "No encuentro la categoría de producto con ID %d."

#: src/Actions/Handlers/WooWriteHandler.php:179
msgid "Product category updated."
msgstr "He actualizado la categoría de producto."

#: src/Actions/Handlers/WooWriteHandler.php:190
msgid "Product category deleted."
msgstr "He eliminado la categoría de producto."

#: src/Actions/Handlers/WooWriteHandler.php:195
msgid "Invalid action. Use 'create', 'update', 'delete', 'list', or 'get'."
msgstr "Acción no válida. Usa 'create', 'update', 'delete', 'list' o 'get'."

#: src/Actions/Handlers/WooWriteHandler.php:223
msgid "coupon_id is required for get."
msgstr "coupon_id es obligatorio para get."

#: src/Actions/Handlers/WooWriteHandler.php:226
#: src/Actions/Handlers/WooWriteHandler.php:274
#: src/Actions/Handlers/WooWriteHandler.php:291
msgid "Coupon ID %d not found."
msgstr "No encuentro el cupón con ID %d."

#: src/Actions/Handlers/WooWriteHandler.php:247
msgid "Coupon code is required for create."
msgstr "El código del cupón es obligatorio para crear."

#: src/Actions/Handlers/WooWriteHandler.php:265
msgid "Coupon '%s' created."
msgstr "He creado el cupón «%s»."

#: src/Actions/Handlers/WooWriteHandler.php:272
msgid "coupon_id is required for update."
msgstr "coupon_id es obligatorio para actualizar."

#: src/Actions/Handlers/WooWriteHandler.php:284
msgid "Coupon updated."
msgstr "He actualizado el cupón."

#: src/Actions/Handlers/WooWriteHandler.php:289
msgid "coupon_id is required for delete."
msgstr "coupon_id es obligatorio para eliminar."

#: src/Actions/Handlers/WooWriteHandler.php:294
msgid "Coupon deleted."
msgstr "He eliminado el cupón."

#: src/Actions/Handlers/WooWriteHandler.php:294
msgid "Failed to delete coupon."
msgstr "No he podido eliminar el cupón."

#: src/Activation.php:39
msgid "LolaCore requires PHP version 8.0.0 or higher. You are running %s"
msgstr "LolaCore necesita PHP 8.0.0 o superior. Tienes la versión %s"

#: src/Activation.php:53
msgid "LolaCore requires WordPress version 7.0 or higher. You are running %s"
msgstr "LolaCore necesita WordPress 7.0 o superior. Tienes la versión %s"

#: src/Admin/Menu.php:66
#: src/Admin/Menu.php:67
#: src/Admin/Menu.php:134
#: templates/addons-page.php:15
#: templates/settings-page.php:108
#: templates/widget-chat.php:11
#: templates/widget-chat.php:19
#: templates/widget-chat.php:20
msgid "Lola"
msgstr "Lola"

#: src/Admin/Menu.php:78
#: src/Admin/Menu.php:79
msgid "Settings"
msgstr "Ajustes"

#: src/Admin/Menu.php:97
msgid "MCP Settings — Lola"
msgstr "Ajustes MCP — Lola"

#: src/Admin/Menu.php:98
#: src/Admin/views/mcp/page.php:11
msgid "MCP Settings"
msgstr "Ajustes MCP"

#: src/Admin/Menu.php:106
msgid "Skills — Lola"
msgstr "Skills — Lola"

#: src/Admin/Menu.php:107
#: src/Admin/views/skills-page.php:19
msgid "Skills"
msgstr "Skills"

#: src/Admin/Menu.php:115
msgid "Playbooks — Lola"
msgstr "Playbooks — Lola"

#: src/Admin/Menu.php:116
#: src/Admin/views/playbooks-page.php:19
msgid "Playbooks"
msgstr "Playbooks"

#: src/Admin/Menu.php:129
#: src/Admin/Menu.php:156
#: src/Admin/Menu.php:178
#: src/Admin/Menu.php:196
#: src/Admin/Menu.php:214
msgid "You do not have sufficient permissions to access this page."
msgstr "No tienes permisos suficientes para acceder a esta página."

#: src/Admin/Menu.php:142
msgid "Settings template not found."
msgstr "Plantilla de ajustes no encontrada."

#: src/Admin/Menu.php:167
msgid "Addons template not found."
msgstr "Plantilla de Addons no encontrada."

#: src/Admin/Menu.php:187
msgid "Skills template not found."
msgstr "No se encontró la plantilla de Skills."

#: src/Admin/Menu.php:205
msgid "Playbooks template not found."
msgstr "No se encontró la plantilla de Playbooks."

#: src/Admin/Menu.php:225
msgid "MCP Settings template not found."
msgstr "No encuentro la plantilla de ajustes de MCP."

#: src/Admin/Settings.php:53
msgid "Site Diagnostics & Security"
msgstr "Diagnóstico y seguridad del sitio"

#: src/Admin/Settings.php:54
msgid "Plugin Management"
msgstr "Gestión de plugins"

#: src/Admin/Settings.php:55
msgid "Plugin Builder"
msgstr "Plugin Builder"

#: src/Admin/Settings.php:56
#: src/BlockBuilder/PostType/BlockPostType.php:162
#: src/BlockBuilder/PostType/BlockPostType.php:163
#: src/BlockBuilder/PostType/BlockPostType.php:210
#: src/BlockBuilder/PostType/BlockPostType.php:212
msgid "Block Builder"
msgstr "Block Builder"

#: src/Admin/Settings.php:57
msgid "Content & Metadata"
msgstr "Contenido y metadatos"

#: src/Admin/Settings.php:58
msgid "User Management"
msgstr "Gestión de usuarios"

#: src/Admin/Settings.php:59
msgid "Database & Cache"
msgstr "Base de datos y caché"

#: src/Admin/Settings.php:60
msgid "Taxonomies & Media"
msgstr "Taxonomías y multimedia"

#: src/Admin/Settings.php:61
msgid "WooCommerce Operations"
msgstr "Operaciones WooCommerce"

#: src/Admin/Settings.php:62
msgid "Themes & Settings"
msgstr "Temas y ajustes"

#: src/Admin/Settings.php:728
msgid "Only .md files are accepted."
msgstr "Solo se aceptan archivos .md."

#: src/Admin/Settings.php:731
msgid "File exceeds 100 KB limit."
msgstr "El archivo supera el límite de 100 KB."

#: src/Admin/Settings.php:735
msgid "Failed to read uploaded file."
msgstr "No se pudo leer el archivo subido."

#: src/Admin/Settings.php:742
msgid "Skill content cannot be empty."
msgstr "El contenido de la skill no puede estar vacío."

#: src/Admin/Settings.php:1068
msgid "Upload a document or provide source text for regeneration."
msgstr "Sube un documento o indica el texto fuente para regenerar."

#: src/Admin/Settings.php:1398
msgid "playbooks guide"
msgstr "guía de playbooks"

#: src/Admin/Settings.php:1422
#: src/Admin/Settings.php:1436
msgid "Built-in"
msgstr "Integrado"

#: src/Admin/Settings.php:1423
#: src/Admin/Settings.php:1437
msgid "Addon-registered"
msgstr "Registrado por addon"

#: src/Admin/Settings.php:1424
#: src/Admin/Settings.php:1438
msgid "User filesystem"
msgstr "Sistema de archivos del usuario"

#: src/Admin/Settings.php:1425
#: src/Admin/Settings.php:1439
msgid "User / Lola-generated"
msgstr "Usuario / generado por Lola"

#: src/Admin/views/mcp/page.php:14
msgid "Core"
msgstr "Core"

#: src/Admin/views/mcp/page.php:19
msgid "Manage your IDE connections for Cursor, Claude Desktop, and Antigravity. Abilities exposed via MCP are managed from the main Settings page — they mirror the chat agent."
msgstr "Gestiona tus conexiones de IDE para Cursor, Claude Desktop y Antigravity. Las abilities expuestas por MCP se gestionan desde la página principal de Ajustes; son un espejo del agente del chat."

#: src/Admin/views/mcp/partials/config-card.php:10
msgid "Copy Your Config"
msgstr "Copia tu configuración"

#: src/Admin/views/mcp/partials/config-card.php:26
msgid "Copy JSON"
msgstr "Copiar JSON"

#: src/Admin/views/mcp/partials/cred-form.php:10
msgid "Connect Your AI Client"
msgstr "Conecta tu cliente de IA"

#: src/Admin/views/mcp/partials/cred-form.php:15
msgid "Create an Application Password to let your MCP client authenticate safely."
msgstr "Crea una contraseña de aplicación para que tu cliente MCP se autentique de forma segura."

#: src/Admin/views/mcp/partials/cred-form.php:16
msgid "Manage Application Passwords &rarr;"
msgstr "Gestionar contraseñas de aplicación &rarr;"

#: src/Admin/views/mcp/partials/cred-form.php:21
msgid "Username"
msgstr "Nombre de usuario"

#: src/Admin/views/mcp/partials/cred-form.php:25
msgid "Application Password"
msgstr "Contraseña de aplicación"

#: src/Admin/views/mcp/partials/cred-form.php:32
msgid "Generate Configs"
msgstr "Generar configuraciones"

#: src/Admin/views/mcp/tab-status.php:14
msgid "MCP Endpoints"
msgstr "Endpoints MCP"

#: src/Admin/views/mcp/tab-status.php:16
msgid "These are the REST API endpoints exposed for the active LolaCore modules."
msgstr "Estos son los endpoints de la API REST expuestos para los módulos activos de LolaCore."

#: src/Admin/views/mcp/tab-status.php:24
msgid "Copy"
msgstr "Copiar"

#: src/Admin/views/mcp/tab-status.php:36
msgid "Action Required: Install MCP Adapter"
msgstr "Acción necesaria: instala el MCP Adapter"

#: src/Admin/views/mcp/tab-status.php:39
msgid "To connect external AI clients (Cursor, Claude Desktop), you must install the WordPress MCP Adapter:"
msgstr "Para conectar clientes de IA externos (Cursor, Claude Desktop) tienes que instalar el MCP Adapter de WordPress:"

#: src/Admin/views/mcp/tab-status.php:44
msgid "Download the latest release from %s"
msgstr "Descarga la última versión desde %s"

#: src/Admin/views/mcp/tab-status.php:48
msgid "Upload the ZIP via Plugins > Add New > Upload Plugin."
msgstr "Sube el ZIP desde Plugins > Añadir nuevo > Subir plugin."

#: src/Admin/views/mcp/tab-status.php:49
msgid "Activate the MCP Adapter plugin and refresh this page."
msgstr "Activa el plugin MCP Adapter y recarga esta página."

#: src/Admin/views/partials/ack-modal.php:19
msgid "Notice"
msgstr "Aviso"

#: src/Admin/views/partials/ack-modal.php:25
msgid "Got it"
msgstr "Entendido"

#: src/Admin/views/partials/confirm-modal.php:19
#: src/I18n/SettingsUiStrings.php:34
#: templates/settings-page.php:512
msgid "Confirm Action"
msgstr "Confirmar acción"

#: src/Admin/views/partials/confirm-modal.php:22
#: src/I18n/SettingsUiStrings.php:35
#: templates/settings-page.php:515
msgid "Are you sure?"
msgstr "¿Estás seguro?"

#: src/Admin/views/partials/confirm-modal.php:25
#: src/Admin/views/playbooks-section.php:124
#: src/Admin/views/skills-section.php:291
#: src/BlockBuilder/Admin/AdminAssets.php:82
#: src/BlockBuilder/Admin/AdminAssets.php:114
#: src/I18n/ChatUiStrings.php:97
#: src/I18n/PlaybooksUiStrings.php:61
#: src/I18n/SettingsUiStrings.php:36
#: src/PluginBuilder/Admin/AdminAssets.php:86
#: src/PluginBuilder/Admin/AdminAssets.php:123
#: templates/settings-page.php:502
#: templates/settings-page.php:518
msgid "Cancel"
msgstr "Cancelar"

#: src/Admin/views/partials/confirm-modal.php:26
#: src/BlockBuilder/Admin/AdminAssets.php:108
#: src/BlockBuilder/Admin/AdminAssets.php:115
#: src/I18n/PlaybooksUiStrings.php:60
#: src/I18n/SettingsUiStrings.php:37
#: src/PluginBuilder/Admin/AdminAssets.php:117
#: src/PluginBuilder/Admin/AdminAssets.php:124
#: templates/settings-page.php:519
msgid "Confirm"
msgstr "Confirmar"

#: src/Admin/views/playbooks-page.php:20
msgid "Curated domain manuals Lola consults when working in a specific area. Playbooks hold knowledge — not memory facts or behavioral skills."
msgstr "Manuales de dominio curados que Lola consulta al trabajar en un área concreta. Los playbooks guardan conocimiento, no hechos de memoria ni skills de comportamiento."

#: src/Admin/views/playbooks-page.php:24
msgid "Read the %s for frontmatter fields, upload vs chat, and common save errors."
msgstr "Consulta la %s para los campos de frontmatter, las vías de subida frente al chat y los errores habituales al guardar."

#: src/Admin/views/playbooks-page.php:31
#: src/I18n/PlaybooksUiStrings.php:30
msgid "Distilling document…"
msgstr "Destilando documento…"

#: src/Admin/views/playbooks-section.php:39
#: src/Admin/views/skills-section.php:48
msgid "Active"
msgstr "Activa"

#: src/Admin/views/playbooks-section.php:40
#: src/Admin/views/skills-section.php:49
msgid "Inactive"
msgstr "Inactiva"

#: src/Admin/views/playbooks-section.php:41
msgid "Archived"
msgstr "Archivado"

#: src/Admin/views/playbooks-section.php:46
#: src/Admin/views/playbooks-section.php:143
msgid "New playbook"
msgstr "Nuevo playbook"

#: src/Admin/views/playbooks-section.php:49
msgid "Edit playbook: %s"
msgstr "Editar playbook: %s"

#: src/Admin/views/playbooks-section.php:58
msgid "Full markdown with YAML frontmatter. The name: field in frontmatter is the canonical slug. See the built-in playbook-format manual for the contract."
msgstr "Markdown completo con frontmatter YAML. El campo name: en el frontmatter es el slug canónico. Consulta el manual integrado playbook-format para el contrato."

#: src/Admin/views/playbooks-section.php:63
msgid "Frontmatter reference and save-error fixes: %s."
msgstr "Referencia de frontmatter y solución de errores al guardar: %s."

#: src/Admin/views/playbooks-section.php:69
#: src/Admin/views/playbooks-section.php:105
msgid "Slug (from frontmatter name)"
msgstr "Slug (del name del frontmatter)"

#: src/Admin/views/playbooks-section.php:75
msgid "Content"
msgstr "Contenido"

#: src/Admin/views/playbooks-section.php:86
#: src/Admin/views/playbooks-section.php:118
msgid "Save playbook"
msgstr "Guardar playbook"

#: src/Admin/views/playbooks-section.php:88
msgid "Back to list"
msgstr "Volver al listado"

#: src/Admin/views/playbooks-section.php:98
msgid "Review distilled playbook"
msgstr "Revisar playbook destilado"

#: src/Admin/views/playbooks-section.php:101
msgid "Edit the draft below, then save it to your database playbooks (inactive until you activate it). Distillation uses your configured AI provider."
msgstr "Edita el borrador y guárdalo en tus playbooks de base de datos (inactivo hasta que lo actives). La destilación usa tu proveedor de IA configurado."

#: src/Admin/views/playbooks-section.php:109
msgid "Draft content"
msgstr "Contenido del borrador"

#: src/Admin/views/playbooks-section.php:113
msgid "Regeneration instructions (optional)"
msgstr "Instrucciones de regeneración (opcional)"

#: src/Admin/views/playbooks-section.php:114
msgid "e.g. Shorten the body, add more examples, use domain woocommerce…"
msgstr "p. ej. Acorta el cuerpo, añade más ejemplos, usa el dominio woocommerce…"

#: src/Admin/views/playbooks-section.php:121
msgid "Regenerate"
msgstr "Regenerar"

#: src/Admin/views/playbooks-section.php:137
#: src/Admin/views/playbooks-section.php:144
msgid "%d playbook"
msgstr "%d playbook"

msgid "Upload playbook"
msgstr "Subir playbook"

#: src/Admin/views/playbooks-section.php:146
#: src/I18n/PlaybooksUiStrings.php:43
msgid "Reload playbooks"
msgstr "Recargar playbooks"

#: src/Admin/views/playbooks-section.php:153
msgid "Accepted formats: TXT, MD, DOCX, HTML. After extraction, the document must be %1$s characters or less (roughly 10–15 pages of dense text). Lola will distill it into a playbook you can review before saving. For longer manuals, upload one section at a time or ask Lola in the chat."
msgstr "Formatos aceptados: TXT, MD, DOCX, HTML. Tras la extracción, el documento debe tener %1$s caracteres o menos (unas 10–15 páginas de texto denso). Lola lo destilará en un playbook que podrás revisar antes de guardar. Para manuales más largos, sube una sección cada vez o pídeselo a Lola en el chat."

#: src/Admin/views/playbooks-section.php:219
msgid "View"
msgstr "Ver"

#: src/Admin/views/playbooks-section.php:222
msgid "Edit"
msgstr "Editar"

#: src/Admin/views/playbooks-section.php:227
#: src/Admin/views/skills-section.php:208
#: src/I18n/PlaybooksUiStrings.php:62
msgid "Delete"
msgstr "Eliminar"

#: src/Admin/views/playbooks-section.php:235
msgid "Read-only preview. Use Edit to change database playbooks, or ask Lola in the chat."
msgstr "Vista previa de solo lectura. Usa Editar para cambiar playbooks de base de datos, o pídeselo a Lola en el chat."

#: src/Admin/views/playbooks-section.php:237
msgid "Read-only — shipped with the plugin, an addon, or your filesystem folder."
msgstr "Solo lectura — incluido con el plugin, un addon o tu carpeta del sistema de archivos."

#: src/Admin/views/playbooks-section.php:255
msgid "Broken playbooks (%d)"
msgstr "Playbooks rotos (%d)"

#: src/Admin/views/playbooks-section.php:262
#: src/Admin/views/skills-section.php:251
msgid "Parse Error"
msgstr "Error de análisis"

#: src/Admin/views/skills-page.php:20
msgid "Behavioral overlays loaded into Lola's system prompt. Skills shape how Lola responds based on context."
msgstr "Capas de comportamiento cargadas en el system prompt de Lola. Las skills definen cómo responde Lola según el contexto."

#: src/Admin/views/skills-section.php:50
msgid "No triggers — add rules to activate"
msgstr "Sin disparadores — añade reglas para activarla"

#: src/Admin/views/skills-section.php:51
msgid "Requires newer LolaCore"
msgstr "Requiere un LolaCore más reciente"

#: src/Admin/views/skills-section.php:52
msgid "Missing dependencies"
msgstr "Faltan dependencias"

#: src/Admin/views/skills-section.php:59
msgid "Guides Lola when building WordPress Playground blueprint JSON to test a plugin in a safe disposable environment."
msgstr "Guía a Lola al construir el JSON de blueprint de WordPress Playground para probar un plugin en un entorno desechable y seguro."

#: src/Admin/views/skills-section.php:60
msgid "Enforces WordPress data conventions when manipulating slugs, meta keys, options, taxonomies, and post statuses."
msgstr "Aplica las convenciones de datos de WordPress al manipular slugs, claves meta, opciones, taxonomías y estados de entrada."

#: src/Admin/views/skills-section.php:61
msgid "Enables Lola to create, enrich, and refine LolaCore skill files."
msgstr "Permite a Lola crear, enriquecer y refinar archivos de skill de LolaCore."

#: src/Admin/views/skills-section.php:62
msgid "Non-negotiable security rules when generating or reviewing plugin code that handles input, output, forms, AJAX, or the database."
msgstr "Reglas de seguridad innegociables al generar o revisar código de plugin que maneja entrada, salida, formularios, AJAX o la base de datos."

#: src/Admin/views/skills-section.php:63
msgid "Methodology for auditing any existing plugin's functional and runtime correctness before iterating, catching behavior bugs the linter and reviewer miss."
msgstr "Metodología para auditar la corrección funcional y de ejecución de cualquier plugin existente antes de seguir trabajándolo, cazando errores de comportamiento que el linter y el revisor pasan por alto."

#: src/Admin/views/skills-section.php:64
msgid "Guides Lola when creating or iterating 3-file mini-plugins (PHP, JS, CSS) with correct structure and lifecycle."
msgstr "Guía a Lola al crear o evolucionar mini-plugins de 3 archivos (PHP, JS, CSS) con la estructura y el ciclo de vida correctos."

#: src/Admin/views/skills-section.php:65
msgid "Guides Lola to update, archive, or consolidate existing memory facts instead of accumulating contradictions."
msgstr "Guía a Lola para actualizar, archivar o consolidar hechos de memoria existentes en vez de acumular contradicciones."

#: src/Admin/views/skills-section.php:66
msgid "Gives Lola a coherent structured response when users ask about LolaCore as a product."
msgstr "Da a Lola una respuesta coherente y estructurada cuando el usuario pregunta por LolaCore como producto."

#: src/Admin/views/skills-section.php:67
msgid "Enforces a 4-step protocol before executing any destructive bulk operation on WordPress data."
msgstr "Impone un protocolo de 4 pasos antes de ejecutar cualquier operación masiva destructiva sobre datos de WordPress."

#: src/Admin/views/skills-section.php:68
msgid "Applies CRO analytical lenses to commercial copy review and generation."
msgstr "Aplica lentes analíticas de CRO a la revisión y generación de copy comercial."

#: src/Admin/views/skills-section.php:69
msgid "Defines anti-AI prose discipline for content generated to be published on the user's site."
msgstr "Define la disciplina de prosa anti-IA para el contenido generado que se publicará en el sitio del usuario."

#: src/Admin/views/skills-section.php:70
msgid "Structures every code delivery with context, placement location, risks, and a minimal test."
msgstr "Estructura cada entrega de código con contexto, ubicación, riesgos y una prueba mínima."

#: src/Admin/views/skills-section.php:71
msgid "Ensures post_content is written in Gutenberg block format, not raw HTML."
msgstr "Garantiza que post_content se escribe en formato de bloques de Gutenberg, no en HTML crudo."

#: src/Admin/views/skills-section.php:72
msgid "Structures action log presentation by domain and offers revert when a snapshot exists."
msgstr "Estructura la presentación del registro de acciones por dominio y ofrece revertir cuando existe una instantánea."

#: src/Admin/views/skills-section.php:89
msgid "Enable the Skills system"
msgstr "Activa el sistema de Skills"

#: src/Admin/views/skills-section.php:90
msgid "Activates the entire Skills layer. When on, all built-in skills load together."
msgstr "Activa la capa de Skills al completo. Cuando está encendida, todas las skills integradas se cargan a la vez."

#: src/Admin/views/skills-section.php:94
msgid "Beta"
msgstr "Beta"

#: src/Admin/views/skills-section.php:96
msgid "This section noticeably improves Lola's performance, but it's currently under development and ships as an opt-in beta. You can turn it on or off at any time."
msgstr "Esta sección mejora notablemente el rendimiento de Lola, pero todavía está en desarrollo y se ofrece como beta opcional. Puedes encenderla o apagarla cuando quieras."

#: src/Admin/views/skills-section.php:110
msgid "%1$s / %2$s active"
msgstr "%1$s / %2$s activas"

#: src/Admin/views/skills-section.php:117
msgid "Import skill"
msgstr "Importar skill"

#: src/Admin/views/skills-section.php:118
msgid "Reload skills"
msgstr "Recargar skills"

#: src/Admin/views/skills-section.php:122
msgid "Want a new skill written for you? Ask Lola directly in the chat — she'll guide you through it."
msgstr "¿Quieres una skill nueva hecha a medida? Pídesela a Lola directamente en el chat; ella te irá guiando."

#: src/Admin/views/skills-section.php:145
msgid "— managed by the master toggle"
msgstr "— gestionado por el interruptor general"

#: src/Admin/views/skills-section.php:190
msgid "priority:"
msgstr "prioridad:"

#: src/Admin/views/skills-section.php:203
msgid "View source"
msgstr "Ver código"

#: src/Admin/views/skills-section.php:223
msgid "Read-only source. To modify this skill, ask Lola in the chat — e.g. \"improve the skill %s so that…\"."
msgstr "Código de solo lectura. Para modificar esta skill, pídeselo a Lola en el chat — p. ej. \"mejora la skill %s para que…\"."

#: src/Admin/views/skills-section.php:244
msgid "Broken skills (%d)"
msgstr "Skills rotas (%d)"

#: src/Admin/views/skills-section.php:265
msgid "Import Skill"
msgstr "Importar skill"

#: src/Admin/views/skills-section.php:268
msgid "Paste markdown"
msgstr "Pegar markdown"

#: src/Admin/views/skills-section.php:269
msgid "Upload .md file"
msgstr "Subir archivo .md"

#: src/Admin/views/skills-section.php:273
msgid "Paste skill markdown here..."
msgstr "Pega aquí el markdown de la skill..."

#: src/Admin/views/skills-section.php:278
msgid "Choose .md file (max 100 KB)"
msgstr "Elige un archivo .md (máx. 100 KB)"

#: src/Admin/views/skills-section.php:281
msgid "No file selected"
msgstr "Ningún archivo seleccionado"

#: src/Admin/views/skills-section.php:288
msgid "Import"
msgstr "Importar"

#: src/Admin/views/skills-section.php:300
msgid "Advanced parameters ▼"
msgstr "Parámetros avanzados ▼"

#: src/Admin/views/skills-section.php:303
msgid "Warning:"
msgstr "Atención:"

#: src/Admin/views/skills-section.php:303
msgid "These parameters fine-tune how Lola loads and applies skills. Setting them outside the recommended range can lead to:"
msgstr "Estos parámetros afinan cómo Lola carga y aplica las skills. Configurarlos fuera del rango recomendado puede provocar:"

#: src/Admin/views/skills-section.php:305
msgid "slower responses (added latency on every turn)"
msgstr "respuestas más lentas (latencia añadida en cada turno)"

#: src/Admin/views/skills-section.php:306
msgid "unpredictable or inconsistent behavior"
msgstr "comportamiento impredecible o incoherente"

#: src/Admin/views/skills-section.php:307
msgid "instability if limits are pushed too high"
msgstr "inestabilidad si los límites se suben demasiado"

#: src/Admin/views/skills-section.php:308
msgid "higher token consumption per request"
msgstr "mayor consumo de tokens por petición"

#: src/Admin/views/skills-section.php:310
msgid "The \"Skill character budget\" is a token approximation based on characters (≈ chars/3, conservative estimate). Actual consumption may vary ±20% depending on the LLM provider (Anthropic, OpenAI, DeepSeek tokenize differently). Default values are calibrated for 95% of use cases."
msgstr "El \"Presupuesto de caracteres por skill\" es una aproximación a tokens basada en caracteres (≈ caracteres/3, estimación conservadora). El consumo real puede variar ±20% según el proveedor LLM (Anthropic, OpenAI y DeepSeek tokenizan de forma distinta). Los valores por defecto están calibrados para el 95% de los casos."

#: src/Admin/views/skills-section.php:314
msgid "Max active skills (5–100)"
msgstr "Máximo de skills activas (5–100)"

#: src/Admin/views/skills-section.php:320
msgid "Max skills per prompt (1–15)"
msgstr "Máximo de skills por prompt (1–15)"

#: src/Admin/views/skills-section.php:326
msgid "Skill character budget (1500–15000)"
msgstr "Presupuesto de caracteres por skill (1500–15000)"

#: src/Admin/views/skills-section.php:332
msgid "Skill registry cache (5–1440 min)"
msgstr "Caché del registro de skills (5–1440 min)"

#: src/Admin/views/skills-section.php:341
msgid "Require manual approval for Lola-generated skills"
msgstr "Requerir aprobación manual para las skills generadas por Lola"

#: src/Admin/views/skills-section.php:346
msgid "Save"
msgstr "Guardar"

#: src/Admin/views/skills-section.php:347
msgid "Restore defaults"
msgstr "Restaurar valores por defecto"

#: src/BlockBuilder/Admin/AdminAssets.php:70
#: src/I18n/ChatUiStrings.php:170
#: src/PluginBuilder/Admin/AdminAssets.php:76
msgid "Install on this site"
msgstr "Instalar en este sitio"

#: src/BlockBuilder/Admin/AdminAssets.php:71
msgid "I will copy the block files into wp-content/lolacore-blocks. The block will appear in the inserter right away."
msgstr "Voy a copiar los archivos del bloque en wp-content/lolacore-blocks. El bloque aparecerá en el insertador enseguida."

#: src/BlockBuilder/Admin/AdminAssets.php:72
#: src/PluginBuilder/Admin/AdminAssets.php:78
msgid "Overwrite installed copy"
msgstr "Sobrescribir la copia instalada"

#: src/BlockBuilder/Admin/AdminAssets.php:73
msgid "A version is already on this site. I will replace those files."
msgstr "Ya hay una versión en este sitio. Voy a reemplazar esos archivos."

#: src/BlockBuilder/Admin/AdminAssets.php:74
msgid "Block installed"
msgstr "Bloque instalado"

#: src/BlockBuilder/Admin/AdminAssets.php:75
msgid "Uninstall from this site"
msgstr "Desinstalar de este sitio"

#: src/BlockBuilder/Admin/AdminAssets.php:76
msgid "I will remove the block files from wp-content/lolacore-blocks. The block will disappear from the inserter. The library entry stays in the catalog."
msgstr "Voy a quitar los archivos del bloque de wp-content/lolacore-blocks. El bloque desaparecerá del insertador. La entrada de la biblioteca se queda en el catálogo."

#: src/BlockBuilder/Admin/AdminAssets.php:77
msgid "Block uninstalled"
msgstr "Bloque desinstalado"

#: src/BlockBuilder/Admin/AdminAssets.php:78
#: src/BlockBuilder/Admin/LibraryColumns.php:117
msgid "Uninstall"
msgstr "Desinstalar"

#: src/BlockBuilder/Admin/AdminAssets.php:79
#: src/PluginBuilder/Admin/AdminAssets.php:83
msgid "Close"
msgstr "Cerrar"

#: src/BlockBuilder/Admin/AdminAssets.php:80
#: src/BlockBuilder/Admin/LibraryColumns.php:103
#: src/BlockBuilder/Admin/LibraryColumns.php:109
#: src/PluginBuilder/Admin/AdminAssets.php:84
#: src/PluginBuilder/Admin/LibraryColumns.php:101
#: src/PluginBuilder/Admin/LibraryColumns.php:107
msgid "Install"
msgstr "Instalar"

#: src/BlockBuilder/Admin/AdminAssets.php:81
#: src/PluginBuilder/Admin/AdminAssets.php:85
msgid "Overwrite"
msgstr "Sobrescribir"

#: src/BlockBuilder/Admin/AdminAssets.php:83
#: src/PluginBuilder/Admin/AdminAssets.php:87
msgid "Installation failed"
msgstr "La instalación ha fallado"

#: src/BlockBuilder/Admin/AdminAssets.php:84
#: src/I18n/ChatUiStrings.php:116
#: src/PluginBuilder/Admin/AdminAssets.php:90
msgid "Working…"
msgstr "Trabajando…"

#: src/BlockBuilder/Admin/AdminAssets.php:85
msgid "Check your block in Playground"
msgstr "Revisa tu bloque en Playground"

#: src/BlockBuilder/Admin/AdminAssets.php:86
#: src/I18n/ChatUiStrings.php:147
msgid "Insert the block in the editor and check the front end. When it looks right, install it on your site."
msgstr "Inserta el bloque en el editor y revisa la parte pública. Cuando esté bien, instálalo en tu sitio."

#: src/BlockBuilder/Admin/AdminAssets.php:87
#: src/I18n/ChatUiStrings.php:168
#: src/PluginBuilder/Admin/AdminAssets.php:93
msgid "Install on my site"
msgstr "Instalar en mi sitio"

#: src/BlockBuilder/Admin/AdminAssets.php:88
#: src/I18n/ChatUiStrings.php:169
#: src/PluginBuilder/Admin/AdminAssets.php:94
msgid "Something's not right"
msgstr "Algo no cuadra"

#: src/BlockBuilder/Admin/BlockBuilderAjax.php:53
#: src/BlockBuilder/Admin/BlockBuilderAjax.php:84
#: src/BlockBuilder/Admin/BlockBuilderAjax.php:98
#: src/BlockBuilder/Admin/BlockBuilderAjax.php:122
#: src/BlockBuilder/Admin/BlockBuilderAjax.php:162
msgid "Invalid block ID."
msgstr "ID de bloque no válido."

#: src/BlockBuilder/Admin/BlockBuilderAjax.php:111
#: src/PluginBuilder/Admin/PluginBuilderAjax.php:123
msgid "Invalid attestation outcome."
msgstr "Resultado de verificación no válido."

#: src/BlockBuilder/Admin/BlockBuilderAjax.php:170
#: src/BlockBuilder/Handler/BlockBuilderHandler.php:612
#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:385
msgid "This block is not installed on the site yet."
msgstr "Este bloque todavía no está instalado en el sitio."

#: src/BlockBuilder/Admin/BlockBuilderAjax.php:209
#: src/BlockBuilder/Handler/BlockBuilderHandler.php:670
#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:143
#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:367
#: src/BlockBuilder/Playground/BlockBlueprintGenerator.php:158
msgid "Built block not found."
msgstr "No encuentro el bloque construido."

#: src/BlockBuilder/Admin/BlockEditScreen.php:47
#: src/PluginBuilder/Admin/PluginEditScreen.php:42
msgid "Generated files"
msgstr "Archivos generados"

#: src/BlockBuilder/Admin/BlockEditScreen.php:88
msgid "This block has incomplete generated files. Try updating it from chat or create a new version."
msgstr "Este bloque tiene archivos generados incompletos. Prueba a actualizarlo desde el chat o crea una versión nueva."

#: src/BlockBuilder/Admin/BlockEditScreen.php:94
#: src/BlockBuilder/Admin/LibraryColumns.php:54
msgid "Block name"
msgstr "Nombre del bloque"

#: src/BlockBuilder/Admin/BlockEditScreen.php:98
msgid "Install folder"
msgstr "Carpeta de instalación"

#: src/BlockBuilder/Admin/BlockEditScreen.php:102
#: src/BlockBuilder/Admin/LibraryColumns.php:52
#: src/PluginBuilder/Admin/LibraryColumns.php:51
#: src/PluginBuilder/Admin/PluginEditScreen.php:87
msgid "Version"
msgstr "Versión"

#: src/BlockBuilder/Admin/BlockEditScreen.php:106
#: src/BlockBuilder/Admin/LibraryColumns.php:53
#: src/PluginBuilder/Admin/LibraryColumns.php:52
#: src/PluginBuilder/Admin/PluginEditScreen.php:91
msgid "Status"
msgstr "Estado"

#: src/BlockBuilder/Admin/BlockEditScreen.php:114
#: src/PluginBuilder/Admin/PluginEditScreen.php:99
msgid "Load test"
msgstr "Prueba de carga"

#: src/BlockBuilder/Admin/BlockEditScreen.php:123
#: src/PluginBuilder/Admin/PluginEditScreen.php:108
msgid "Code review"
msgstr "Revisión de código"

#: src/BlockBuilder/Admin/BlockEditScreen.php:131
#: src/PluginBuilder/Admin/PluginEditScreen.php:116
msgid "Review note"
msgstr "Nota de revisión"

#: src/BlockBuilder/Admin/BlockEditScreen.php:138
#: src/PluginBuilder/Admin/PluginEditScreen.php:122
msgid "Description"
msgstr "Descripción"

#: src/BlockBuilder/Admin/BlockEditScreen.php:143
#: src/PluginBuilder/Admin/PluginEditScreen.php:139
msgid "Generated source files"
msgstr "Archivos fuente generados"

#: src/BlockBuilder/Admin/BlockEditScreen.php:145
msgid "block.json"
msgstr "block.json"

#: src/BlockBuilder/Admin/BlockEditScreen.php:148
msgid "edit.js"
msgstr "edit.js"

#: src/BlockBuilder/Admin/BlockEditScreen.php:151
msgid "edit.asset.php"
msgstr "edit.asset.php"

#: src/BlockBuilder/Admin/BlockEditScreen.php:154
msgid "style.css"
msgstr "style.css"

#: src/BlockBuilder/Admin/BlockEditScreen.php:158
msgid "render.php"
msgstr "render.php"

#: src/BlockBuilder/Admin/BlockEditScreen.php:184
#: src/PluginBuilder/Admin/PluginEditScreen.php:168
msgid "No file content stored for this tab."
msgstr "No hay contenido de archivo guardado para esta pestaña."

#: src/BlockBuilder/Admin/LibraryColumns.php:96
#: src/PluginBuilder/Admin/LibraryColumns.php:94
msgid "Try in Playground"
msgstr "Probar en Playground"

#: src/BlockBuilder/Admin/LibraryColumns.php:108
#: src/PluginBuilder/Admin/LibraryColumns.php:106
msgid "Test in Playground first, then confirm it works before installing."
msgstr "Pruébalo primero en Playground y confirma que funciona antes de instalarlo."

#: src/BlockBuilder/Admin/LibraryColumns.php:132
#: src/PluginBuilder/Admin/LibraryColumns.php:119
msgid "Saved only"
msgstr "Solo guardado"

#: src/BlockBuilder/Admin/LibraryColumns.php:135
#: templates/partials/addon-catalog-card.php:29
msgid "Installed"
msgstr "Instalado"

#: src/BlockBuilder/Artifact/BlockArtifactAdapter.php:61
#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:153
#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:251
#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:377
msgid "Built block install slug is missing."
msgstr "Falta el slug de instalación del bloque construido."

#: src/BlockBuilder/Artifact/BlockArtifactAdapter.php:92
msgid "Built block files are missing from the library."
msgstr "Faltan los archivos del bloque construido en la biblioteca."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:103
msgid "BlockBuilderHandler: unknown action '%s'."
msgstr "BlockBuilderHandler: acción desconocida «%s»."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:124
msgid "spec is required: provide a structured block specification for the scaffolder."
msgstr "spec es obligatorio: proporciona una especificación de bloque estructurada para el generador."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:145
#: src/BlockBuilder/Handler/BlockBuilderHandler.php:436
#: src/BlockBuilder/Handler/BlockBuilderHandler.php:463
#: src/BlockBuilder/Handler/BlockBuilderHandler.php:519
#: src/BlockBuilder/Handler/BlockBuilderHandler.php:543
#: src/BlockBuilder/Handler/BlockBuilderHandler.php:593
#: src/BlockBuilder/Handler/BlockBuilderHandler.php:641
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:337
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:937
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1045
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1131
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1243
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1375
msgid "post_id is required."
msgstr "post_id es obligatorio."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:156
msgid "spec is required: provide the updated block specification."
msgstr "spec es obligatorio: proporciona la especificación de bloque actualizada."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:172
msgid "files is required: provide the literal block file map (block.json, edit.js, …). From an external client Lola stores your exact files — it does not run the scaffolder. Use the wp-admin chat with spec if you want deterministic scaffolding."
msgstr "files es obligatorio: proporciona el mapa literal de archivos del bloque (block.json, edit.js, …). Desde un cliente externo, Lola guarda tus archivos tal cual — no ejecuta el generador. Usa el chat de wp-admin con spec si quieres un generado determinista."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:180
#: src/BlockBuilder/Validation/BlockJsonValidator.php:43
msgid "block.json must be valid JSON."
msgstr "block.json debe ser JSON válido."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:251
msgid "Will save the block as a new revision in the library."
msgstr "Guardaré el bloque como una nueva revisión en la biblioteca."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:252
msgid "Will save the block as a new library entry."
msgstr "Guardaré el bloque como una nueva entrada en la biblioteca."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:277
msgid "Could not update the built block: %s"
msgstr "No he podido actualizar el bloque construido: %s"

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:297
msgid "Could not save the built block: %s"
msgstr "No he podido guardar el bloque construido: %s"

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:479
msgid "This block is not installed on the site yet. Install it to make it live."
msgstr "Este bloque todavía no está instalado en el sitio. Instálalo para que esté activo."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:559
msgid "A version is already installed. This will overwrite the existing block files on this site."
msgstr "Ya hay una versión instalada. Esto sobrescribirá los archivos del bloque en este sitio."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:560
msgid "Will install this built block on this site. It will appear in the block inserter."
msgstr "Instalaré este bloque construido en este sitio. Aparecerá en el insertador de bloques."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:606
msgid "Will remove this block from wp-content/lolacore-blocks on this site and unregister it from the block inserter. The library entry stays in the catalog."
msgstr "Quitaré este bloque de wp-content/lolacore-blocks en este sitio y lo desregistraré del insertador. La entrada de la biblioteca se queda en el catálogo."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:607
msgid "This block is not installed on the site — nothing to remove from disk."
msgstr "Este bloque no está instalado en el sitio — no hay nada que quitar del disco."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:649
msgid "Will move built block to trash (library only — installed copy on disk is not removed)"
msgstr "Voy a mover el bloque construido a la papelera (solo biblioteca — la copia instalada en disco no se elimina)"

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:657
msgid "Could not move the built block to trash."
msgstr "No he podido mover el bloque construido a la papelera."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:678
msgid "You do not have permission to manage built blocks."
msgstr "No tienes permiso para gestionar bloques construidos."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:724
msgid "I couldn't save this block safely. Fix these issues and try again:"
msgstr "No he podido guardar este bloque de forma segura. Corrige estos problemas y reinténtalo:"

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:735
msgid "Block passed deterministic static safety checks."
msgstr "El bloque ha pasado las comprobaciones estáticas de seguridad deterministas."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:736
msgid "Block saved with non-blocking safety warnings."
msgstr "He guardado el bloque con advertencias de seguridad no bloqueantes."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:773
msgid "File map exceeds the inline audit budget; partial content returned."
msgstr "El mapa de archivos supera el presupuesto de auditoría inline; he devuelto contenido parcial."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:785
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1165
msgid "Playground URL generated for %1$s (v%2$d)."
msgstr "He generado la URL de Playground para %1$s (v%2$d)."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:796
msgid "Block \"%1$s\" saved (v%2$d)."
msgstr "He guardado el bloque «%1$s» (v%2$d)."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:807
msgid "Your block is ready to test in Playground."
msgstr "Tu bloque está listo para probar en Playground."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:808
msgid "Your block is saved to the library."
msgstr "He guardado el bloque en la biblioteca."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:809
msgid "Your block has been updated."
msgstr "He actualizado el bloque."

#: src/BlockBuilder/Handler/BlockBuilderHandler.php:810
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1193
msgid "Action completed."
msgstr "Hecho."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:133
#: src/PluginBuilder/Packaging/LocalInstaller.php:69
msgid "Direct installation is not available on multisite."
msgstr "La instalación directa no está disponible en multisitio."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:163
#: src/PluginBuilder/Packaging/LocalInstaller.php:83
msgid "A version is already installed. Overwrite it?"
msgstr "Ya hay una versión instalada. ¿La sobrescribo?"

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:215
msgid "I updated the block on this site. It is available in the block inserter."
msgstr "He actualizado el bloque en este sitio. Ya está disponible en el insertador de bloques."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:217
msgid "I installed the block on this site. It is available in the block inserter."
msgstr "He instalado el bloque en este sitio. Ya está disponible en el insertador de bloques."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:357
msgid "Direct uninstall is not available on multisite."
msgstr "La desinstalación directa no está disponible en multisitio."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:403
msgid "Could not remove the installed block files from this site."
msgstr "No he podido quitar los archivos del bloque instalado de este sitio."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:425
msgid "I removed the block from this site. It is no longer in the block inserter."
msgstr "He quitado el bloque de este sitio. Ya no está en el insertador de bloques."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:487
msgid "Could not write the block PHP file."
msgstr "No he podido escribir el archivo PHP del bloque."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:489
msgid "Could not write the block JavaScript file."
msgstr "No he podido escribir el archivo JavaScript del bloque."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:491
msgid "Could not write the block CSS file."
msgstr "No he podido escribir el archivo CSS del bloque."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:493
msgid "Could not write block.json."
msgstr "No he podido escribir block.json."

#: src/BlockBuilder/Packaging/BlockLocalInstaller.php:495
msgid "Could not create the block directory."
msgstr "No he podido crear el directorio del bloque."

#: src/BlockBuilder/Packaging/BlockTreeInstaller.php:49
#: src/BlockBuilder/Packaging/BlockTreeInstaller.php:89
#: src/BlockBuilder/Packaging/BlockTreeInstaller.php:164
#: src/Builder/Packaging/TreeInstaller.php:50
#: src/Builder/Packaging/TreeInstaller.php:159
#: src/PluginBuilder/Packaging/LocalInstaller.php:377
msgid "Could not initialize the WordPress filesystem."
msgstr "No he podido inicializar el sistema de archivos de WordPress."

#: src/BlockBuilder/Packaging/BlockTreeInstaller.php:71
#: src/Builder/Packaging/TreeInstaller.php:76
msgid "Could not write %s."
msgstr "No he podido escribir %s."

#: src/BlockBuilder/Packaging/BlockTreeInstaller.php:112
#: src/Builder/Packaging/TreeInstaller.php:98
msgid "PHP syntax validation failed."
msgstr "La validación de sintaxis PHP ha fallado."

#: src/BlockBuilder/Packaging/BlockTreeInstaller.php:117
#: src/Builder/Packaging/TreeInstaller.php:103
msgid " Error near line %d."
msgstr " Error cerca de la línea %d."

#: src/BlockBuilder/Packaging/BlockTreeInstaller.php:143
#: src/Builder/Packaging/TreeInstaller.php:135
msgid "Could not create directory %s."
msgstr "No he podido crear el directorio %s."

#: src/BlockBuilder/Playground/BlockBlueprintGenerator.php:56
#: src/PluginBuilder/Playground/BlueprintGenerator.php:88
msgid "Could not build the hosted Playground blueprint URL."
msgstr "No he podido construir la URL del blueprint de Playground alojado."

#: src/BlockBuilder/Playground/BlockBlueprintGenerator.php:76
msgid "Built block payload is incomplete."
msgstr "Los datos del bloque construido están incompletos."

#: src/BlockBuilder/Playground/BlockBlueprintGenerator.php:94
msgid "Built block file map is empty."
msgstr "El mapa de archivos del bloque construido está vacío."

#: src/BlockBuilder/Playground/BlockBlueprintGenerator.php:164
msgid "Built block slug metadata is missing."
msgstr "Falta el metadato del slug del bloque construido."

#: src/BlockBuilder/PostType/BlockPostType.php:211
msgid "Built Block"
msgstr "Bloque construido"

#: src/BlockBuilder/PostType/BlockPostType.php:213
#: src/PluginBuilder/PostType/PluginPostType.php:168
msgid "Add New"
msgstr "Añadir nuevo"

#: src/BlockBuilder/PostType/BlockPostType.php:214
msgid "Add New Block"
msgstr "Añadir bloque"

#: src/BlockBuilder/PostType/BlockPostType.php:215
msgid "Edit Block"
msgstr "Editar bloque"

#: src/BlockBuilder/PostType/BlockPostType.php:216
msgid "New Block"
msgstr "Nuevo bloque"

#: src/BlockBuilder/PostType/BlockPostType.php:217
msgid "View Block"
msgstr "Ver bloque"

#: src/BlockBuilder/PostType/BlockPostType.php:218
msgid "Search Blocks"
msgstr "Buscar bloques"

#: src/BlockBuilder/PostType/BlockPostType.php:219
msgid "No built blocks found."
msgstr "No hay bloques construidos."

#: src/BlockBuilder/PostType/BlockPostType.php:220
msgid "No built blocks found in Trash."
msgstr "No hay bloques construidos en la papelera."

#: src/BlockBuilder/Scaffold/BlockScaffolder.php:86
msgid "title is required in the block spec."
msgstr "title es obligatorio en la especificación del bloque."

#: src/BlockBuilder/Scaffold/BlockScaffolder.php:91
msgid "slug is required and must start with a letter and contain only lowercase letters, digits, and hyphens."
msgstr "slug es obligatorio y debe empezar por una letra y contener solo minúsculas, dígitos y guiones."

#: src/BlockBuilder/Validation/BlockJsonValidator.php:38
msgid "block.json is required in the file map."
msgstr "block.json es obligatorio en el mapa de archivos."

#: src/BlockBuilder/Validation/BlockJsonValidator.php:63
msgid "apiVersion %d is not supported. Use 2 or 3."
msgstr "apiVersion %d no es compatible. Usa 2 o 3."

#: src/BlockBuilder/Validation/BlockJsonValidator.php:70
msgid "viewScriptModule is not supported in Route 1 blocks."
msgstr "viewScriptModule no es compatible con los bloques de Ruta 1."

#: src/BlockBuilder/Validation/BlockJsonValidator.php:81
msgid "block.json name is required."
msgstr "El nombre en block.json es obligatorio."

#: src/BlockBuilder/Validation/BlockJsonValidator.php:85
msgid "block.json name must match namespace/slug (lowercase letters, digits, hyphens)."
msgstr "El nombre en block.json debe coincidir con namespace/slug (minúsculas, dígitos, guiones)."

#: src/BlockBuilder/Validation/BlockJsonValidator.php:93
msgid "block.json name must use the reserved namespace \"%s\"."
msgstr "El nombre en block.json debe usar el namespace reservado «%s»."

#: src/BlockBuilder/Validation/BlockJsonValidator.php:117
msgid "Block \"%s\" is already registered on this site."
msgstr "El bloque «%s» ya está registrado en este sitio."

#: src/BlockBuilder/Validation/BlockJsonValidator.php:156
msgid "block.json references missing file \"%1$s\" (%2$s)."
msgstr "block.json hace referencia al archivo faltante «%1$s» (%2$s)."

#: src/Builder/Artifact/FilesMap.php:61
msgid "File map entries must be string paths mapped to string contents."
msgstr "Las entradas del mapa de archivos deben ser rutas de texto asociadas a contenidos de texto."

#: src/Builder/Artifact/FilesMap.php:70
msgid "File \"%1$s\" exceeds the %2$d byte limit."
msgstr "El archivo «%1$s» supera el límite de %2$d bytes."

#: src/Builder/Artifact/FilesMap.php:82
msgid "The file tree exceeds the %d byte total limit."
msgstr "El árbol de archivos supera el límite total de %d bytes."

#: src/Builder/Artifact/FilesMap.php:136
msgid "File paths must not be empty."
msgstr "Las rutas de archivo no pueden estar vacías."

#: src/Builder/Artifact/FilesMap.php:143
msgid "File path \"%s\" contains control characters."
msgstr "La ruta de archivo «%s» contiene caracteres de control."

#: src/Builder/Artifact/FilesMap.php:153
msgid "File path \"%s\" must use forward slashes only."
msgstr "La ruta de archivo «%s» solo puede usar barras inclinadas (/)."

#: src/Builder/Artifact/FilesMap.php:163
msgid "File path \"%s\" must be relative."
msgstr "La ruta de archivo «%s» debe ser relativa."

#: src/Builder/Artifact/FilesMap.php:174
msgid "File path \"%s\" contains a traversal or empty segment."
msgstr "La ruta de archivo «%s» contiene un segmento de traversing o vacío."

#: src/Builder/Artifact/FilesMap.php:188
msgid "File path \"%s\" has no file name."
msgstr "La ruta de archivo «%s» no tiene nombre de archivo."

#: src/Builder/Artifact/FilesMap.php:198
msgid "File path \"%s\" has a disallowed extension."
msgstr "La ruta de archivo «%s» tiene una extensión no permitida."

#: src/Builder/Gate/AttestationGate.php:188
#: src/Builder/Runtime/RuntimeValidator.php:124
#: src/Builder/Runtime/RuntimeValidator.php:210
msgid "The plugin failed to load."
msgstr "El plugin no ha podido cargarse."

#: src/Builder/Gate/AttestationGate.php:283
msgid "This plugin triggers a fatal error when WordPress loads it%1$s: %2$s Ask me to fix it before testing or installing."
msgstr "Este plugin provoca un error fatal al cargar WordPress%1$s: %2$s Pídeme que lo corrija antes de probarlo o instalarlo."

#: src/Builder/Gate/AttestationGate.php:287
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:863
msgid " (line %d)"
msgstr " (línea %d)"

#: src/Builder/Playground/BlueprintBuilder.php:75
msgid "Could not encode the Playground blueprint."
msgstr "No he podido codificar el blueprint de Playground."

#: src/Builder/Playground/BlueprintBuilder.php:81
msgid "This plugin is too large to test via URL."
msgstr "Este plugin es demasiado grande para probarlo por URL."

#: src/Builder/Safety/Rules/DirectFileAccessRule.php:49
msgid "This PHP file runs code at load time but is missing a direct-access guard. Add: if ( ! defined( 'ABSPATH' ) ) { exit; }"
msgstr "Este archivo PHP ejecuta código al cargar pero le falta una protección de acceso directo. Añade: if ( ! defined( 'ABSPATH' ) ) { exit; }"

#: src/Builder/Safety/Rules/EarlyWooCommerceExitRule.php:56
msgid "A file-scope return/exit after class_exists(\"WooCommerce\") prevents the plugin from registering hooks when WooCommerce is inactive. Move dependency checks into an init hook instead of exiting at file scope."
msgstr "Un return/exit a nivel de archivo tras class_exists(\"WooCommerce\") impide que el plugin registre sus hooks cuando WooCommerce está inactivo. Mueve las comprobaciones de dependencias a un hook de init en vez de salir a nivel de archivo."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:78
msgid "eval() executes arbitrary PHP and is not allowed in generated plugins."
msgstr "eval() ejecuta PHP arbitrario y no está permitido en plugins generados."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:79
msgid "exec() runs shell commands and is not allowed in generated plugins."
msgstr "exec() ejecuta comandos shell y no está permitido en plugins generados."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:80
msgid "shell_exec() runs shell commands and is not allowed in generated plugins."
msgstr "shell_exec() ejecuta comandos shell y no está permitido en plugins generados."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:81
msgid "passthru() runs shell commands and is not allowed in generated plugins."
msgstr "passthru() ejecuta comandos shell y no está permitido en plugins generados."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:82
msgid "system() runs shell commands and is not allowed in generated plugins."
msgstr "system() ejecuta comandos shell y no está permitido en plugins generados."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:83
msgid "proc_open() runs shell commands and is not allowed in generated plugins."
msgstr "proc_open() ejecuta comandos shell y no está permitido en plugins generados."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:84
msgid "popen() runs shell commands and is not allowed in generated plugins."
msgstr "popen() ejecuta comandos shell y no está permitido en plugins generados."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:85
msgid "create_function() is deprecated and is not allowed in generated plugins."
msgstr "create_function() está obsoleto y no está permitido en plugins generados."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:86
msgid "assert() with string arguments can execute code and is not allowed in generated plugins."
msgstr "assert() con argumentos de tipo string puede ejecutar código y no está permitido en plugins generados."

#: src/Builder/Safety/Rules/ForbiddenFunctionsRule.php:87
msgid "This function is not allowed in generated plugins."
msgstr "Esta función no está permitida en plugins generados."

#: src/Builder/Safety/Rules/StrippedVendorNamespaceRule.php:54
msgid "The class reference \"%s\" is missing its namespace backslashes, so it points to a class that does not exist. Use the fully-qualified name with a leading and separating backslash, e.g. \\Automattic\\WooCommerce\\Utilities\\FeaturesUtil::declare_compatibility(...)."
msgstr "La referencia de clase «%s» no tiene las barras invertidas del namespace, así que apunta a una clase que no existe. Usa el nombre totalmente cualificado con barra invertida inicial y separadora, p. ej. \\Automattic\\WooCommerce\\Utilities\\FeaturesUtil::declare_compatibility(...)."

#: src/Builder/Safety/Rules/UnknownParentClassAtFileScopeRule.php:84
msgid "Class \"%1$s\" %2$s \"%3$s\", which is not available when this file loads. Wrap the declaration in a hook callback, guard it with class_exists(), or require the parent class before use."
msgstr "La clase «%1$s» %2$s «%3$s», que no está disponible cuando se carga este archivo. Envuelve la declaración en un callback de hook, protégela con class_exists() o requiere la clase padre antes de usarla."

#: src/Chat/Controller.php:326
#: src/Chat/Controller.php:371
msgid "The user denied execution of this action."
msgstr "Has denegado la ejecución de esta acción."

#: src/Chat/Controller.php:342
#: src/Chat/Controller.php:383
msgid "Execution failed: %s"
msgstr "La ejecución ha fallado: %s"

#: src/Chat/Controller.php:502
msgid "Escalation already used in this session. Work with the tools you have, or ask the user for help."
msgstr "Ya he usado la escalada en esta sesión. Trabaja con las herramientas que tienes, o pídele ayuda al usuario."

#: src/Chat/Controller.php:517
msgid "Escalation granted. Re-processing your request with the full toolset."
msgstr "Escalada concedida. Vuelvo a procesar tu petición con el conjunto completo de herramientas."

#: src/Chat/Controller.php:586
msgid "Error executing tool: %s"
msgstr "Error al ejecutar la herramienta: %s"

#: src/Chat/Controller.php:622
msgid "Generation started asynchronously. Job ID: %s"
msgstr "Generación iniciada de forma asíncrona. ID del trabajo: %s"

#: src/Chat/Controller.php:630
#: src/I18n/ChatUiStrings.php:103
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1936
msgid "The engineering team is drafting the plugin…"
msgstr "El equipo de desarrollo está redactando el plugin…"

#: src/Chat/Controller.php:641
msgid "**Preview (%s):**"
msgstr "**Vista previa (%s):**"

#: src/Chat/Controller.php:651
msgid "**Preview failed:** %s"
msgstr "**Vista previa fallida:** %s"

#: src/Chat/Controller.php:654
msgid "**Preview error:** %s"
msgstr "**Error de vista previa:** %s"

#: src/Chat/Controller.php:693
#: src/Chat/Controller.php:716
msgid "All pending updates"
msgstr "Todas las actualizaciones pendientes"

#: src/Chat/Controller.php:701
msgid "Lola requests permission to execute: %s"
msgstr "Lola pide permiso para ejecutar: %s"

#: src/Chat/Controller.php:702
msgid "Lola requests permission to execute %d actions"
msgstr "Lola pide permiso para ejecutar %d acciones"

#: src/Chat/Controller.php:729
msgid "%d actions"
msgstr "%d acciones"

#: src/Chat/Controller.php:747
msgid "Action limit reached."
msgstr "Límite de acciones alcanzado."

#: src/Chat/Controller.php:842
#: src/Chat/Controller.php:851
msgid "Action denied."
msgstr "Acción denegada."

#: src/I18n/ChatUiStrings.php:31
msgid "Thinking…"
msgstr "Pensando…"

#: src/I18n/ChatUiStrings.php:32
msgid "Looking into it…"
msgstr "Lo estoy mirando…"

#: src/I18n/ChatUiStrings.php:33
msgid "Let me check a few things…"
msgstr "Déjame comprobar unas cosas…"

#: src/I18n/ChatUiStrings.php:34
msgid "Going through the details…"
msgstr "Revisando los detalles…"

#: src/I18n/ChatUiStrings.php:35
msgid "Processing your request…"
msgstr "Procesando tu solicitud…"

#: src/I18n/ChatUiStrings.php:36
msgid "Connecting a few pieces…"
msgstr "Conectando algunas piezas…"

#: src/I18n/ChatUiStrings.php:37
msgid "Give me a second on this one…"
msgstr "Dame un segundo con esto…"

#: src/I18n/ChatUiStrings.php:38
msgid "On it…"
msgstr "En ello…"

#: src/I18n/ChatUiStrings.php:41
msgid "Hmm, trickier than I thought…"
msgstr "Hmm, más complicado de lo que pensaba…"

#: src/I18n/ChatUiStrings.php:42
msgid "Hold on — I want to get this right."
msgstr "Espera, quiero hacerlo bien."

#: src/I18n/ChatUiStrings.php:43
msgid "OK, I see what's going on here…"
msgstr "Vale, veo lo que está pasando aquí…"

#: src/I18n/ChatUiStrings.php:44
msgid "Don't rush me."
msgstr "No me metas prisa."

#: src/I18n/ChatUiStrings.php:45
msgid "This deserves a proper answer…"
msgstr "Esto merece una respuesta como es debida…"

#: src/I18n/ChatUiStrings.php:46
msgid "I have opinions about this. One sec."
msgstr "Tengo opiniones sobre esto. Un segundo."

#: src/I18n/ChatUiStrings.php:47
msgid "Let me approach this differently…"
msgstr "Déjame enfocarlo de otra manera…"

#: src/I18n/ChatUiStrings.php:48
msgid "OK let me focus a bit harder…"
msgstr "Vale, voy a concentrarme un poco más…"

#: src/I18n/ChatUiStrings.php:51
msgid "Still working — this one needs extra attention."
msgstr "Sigo en ello, esto necesita atención especial."

#: src/I18n/ChatUiStrings.php:52
msgid "Taking a bit longer than usual…"
msgstr "Está tardando un poco más de lo habitual…"

#: src/I18n/ChatUiStrings.php:53
msgid "Bear with me, almost cracked it…"
msgstr "Aguanta, casi lo tengo…"

#: src/I18n/ChatUiStrings.php:55
#: templates/widget-chat.php:21
msgid "ONLINE"
msgstr "EN LÍNEA"

#: src/I18n/ChatUiStrings.php:56
#: templates/widget-chat.php:24
msgid "Minimize"
msgstr "Minimizar"

#: src/I18n/ChatUiStrings.php:57
#: templates/widget-chat.php:25
msgid "New session"
msgstr "Nueva sesión"

#: src/I18n/ChatUiStrings.php:58
#: templates/widget-chat.php:31
msgid "Analyzing your site…"
msgstr "Analizando tu sitio…"

#: src/I18n/ChatUiStrings.php:59
msgid "Reviewing plugins and security…"
msgstr "Revisando plugins y seguridad…"

#: src/I18n/ChatUiStrings.php:60
msgid "Building your site profile…"
msgstr "Construyendo tu perfil de sitio…"

#: src/I18n/ChatUiStrings.php:61
#: templates/widget-chat.php:42
msgid "Write to Lola..."
msgstr "Escríbele a Lola..."

#: src/I18n/ChatUiStrings.php:62
#: templates/widget-chat.php:54
msgid "Lola is thinking…"
msgstr "Lola está pensando…"

#: src/I18n/ChatUiStrings.php:63
#: templates/widget-chat.php:59
msgid "Lola is an AI and can make mistakes. Please review actions before confirming."
msgstr "Lola es una IA y puede cometer errores. Revisa las acciones antes de confirmar."

#: src/I18n/ChatUiStrings.php:64
msgid "Hello. I'm ready. What shall we look into today?"
msgstr "Hola. Estoy lista. ¿En qué nos ponemos hoy?"

#: src/I18n/ChatUiStrings.php:65
msgid "Shall we continue or start something new?"
msgstr "¿Seguimos donde lo dejamos o empezamos algo nuevo?"

#: src/I18n/ChatUiStrings.php:66
msgid "Last session summary:"
msgstr "Resumen de la última sesión:"

#: src/I18n/ChatUiStrings.php:67
msgid "I've reviewed your site and the report is ready. To get started, I need you to connect an AI provider in Settings → Connectors. You'll need an account with the provider and an API key — about 5 minutes, and the Connectors screen links you to the right place for each one."
msgstr "Ya he revisado tu sitio y tengo el informe. Para que empecemos, necesito que conectes un proveedor de IA en Ajustes → Conectores. Tendrás que crear cuenta en el proveedor y generar una clave de API. Son unos 5 minutos, y la pantalla de Conectores te enlaza al sitio exacto de cada proveedor."

#: src/I18n/ChatUiStrings.php:68
msgid "Still waiting on that AI provider so we can get started. The button below takes you there — about 5 minutes."
msgstr "Sigo esperando el proveedor de IA para que podamos empezar. El botón de abajo te lleva, son unos 5 minutos."

#: src/I18n/ChatUiStrings.php:69
msgid "Connect an AI provider to chat with me"
msgstr "Conecta un proveedor de IA para hablar conmigo"

#: src/I18n/ChatUiStrings.php:70
msgid "Now I can see your site. I went over the initial report — ask me anything, or tell me to walk you through what I found."
msgstr "Ya te veo. He repasado el informe inicial. Pregúntame lo que quieras o dime que te cuente lo que he encontrado."

#: src/I18n/ChatUiStrings.php:71
msgid "Configure AI Connectors"
msgstr "Configurar conectores de IA"

#: src/I18n/ChatUiStrings.php:72
msgid "I've completed the initial scan of your site."
msgstr "He completado el análisis inicial de tu sitio."

#: src/I18n/ChatUiStrings.php:73
msgid "I've completed the initial scan of your site. Here's your summary:"
msgstr "He completado el análisis inicial de tu sitio. Aquí tienes el resumen:"

#: src/I18n/ChatUiStrings.php:74
msgid "Initial System Report"
msgstr "Informe inicial del sistema"

#: src/I18n/ChatUiStrings.php:75
msgid "Status:"
msgstr "Estado:"

#: src/I18n/ChatUiStrings.php:76
msgid "Healthy"
msgstr "Sin problemas"

#: src/I18n/ChatUiStrings.php:77
msgid "Needs Attention"
msgstr "Requiere atención"

#: src/I18n/ChatUiStrings.php:78
msgid "WordPress:"
msgstr "WordPress:"

#: src/I18n/ChatUiStrings.php:79
msgid "PHP:"
msgstr "PHP:"

#: src/I18n/ChatUiStrings.php:80
msgid "Active Theme:"
msgstr "Tema activo:"

#: src/I18n/ChatUiStrings.php:81
msgid "Plugins:"
msgstr "Plugins:"

#: src/I18n/ChatUiStrings.php:82
msgid "Content:"
msgstr "Contenido:"

#: src/I18n/ChatUiStrings.php:83
msgid "Database:"
msgstr "Base de datos:"

#: src/I18n/ChatUiStrings.php:84
msgid "active"
msgstr "activo"

#: src/I18n/ChatUiStrings.php:85
msgid "installed"
msgstr "instalado"

#: src/I18n/ChatUiStrings.php:86
msgid "posts"
msgstr "entradas"

#: src/I18n/ChatUiStrings.php:87
msgid "pages"
msgstr "páginas"

#: src/I18n/ChatUiStrings.php:88
#: src/I18n/ErrorMessages.php:35
msgid "I couldn't get a response. This is usually a temporary connection issue — try sending your message again. If it keeps happening, check that your AI provider is still connected in Settings → Connectors."
msgstr "No he podido obtener respuesta. Suele ser un problema de conexión temporal. Intenta enviar tu mensaje de nuevo. Si sigue pasando, comprueba que tu proveedor de IA sigue conectado en Ajustes → Conectores."

#: src/I18n/ChatUiStrings.php:89
msgid "Your hosting firewall blocked that message before it reached me — this can happen when a message includes code snippets. Ask your host to allow LolaCore's chat, then try again."
msgstr ""

#: src/I18n/ChatUiStrings.php:90
msgid "I need your approval to proceed:"
msgstr "Necesito tu aprobación para continuar:"

#: src/I18n/ChatUiStrings.php:91
msgid "Preview failed"
msgstr "Error en la vista previa"

#: src/I18n/ChatUiStrings.php:92
msgid "Approval required"
msgstr "Se requiere aprobación"

#: src/I18n/ChatUiStrings.php:93
msgid "Action"
msgstr "Acción"

#: src/I18n/ChatUiStrings.php:94
msgid "Approve and execute"
msgstr "Aprobar y ejecutar"

#: src/I18n/ChatUiStrings.php:95
msgid "Fix the preview error before executing."
msgstr "Corrige el error de la vista previa antes de ejecutar."

#: src/I18n/ChatUiStrings.php:96
msgid "Dismiss"
msgstr "Cerrar"

#: src/I18n/ChatUiStrings.php:98
msgid "Executing…"
msgstr "Ejecutando…"

#: src/I18n/ChatUiStrings.php:99
msgid "Cancelling…"
msgstr "Cancelando…"

#: src/I18n/ChatUiStrings.php:100
msgid "Executed"
msgstr "Ejecutado"

#: src/I18n/ChatUiStrings.php:101
msgid "Cancelled"
msgstr "Cancelado"

#: src/I18n/ChatUiStrings.php:102
msgid "Error"
msgstr "Error"

#: src/I18n/ChatUiStrings.php:104
msgid "Starting job..."
msgstr "Empezando…"

#: src/I18n/ChatUiStrings.php:105
msgid "Working..."
msgstr "Trabajando…"

#: src/I18n/ChatUiStrings.php:106
msgid "Building in background..."
msgstr "Construyendo en segundo plano…"

#: src/I18n/ChatUiStrings.php:107
msgid "Your starter plugin is ready for review."
msgstr "Tu plugin inicial está listo para revisar."

#: src/I18n/ChatUiStrings.php:108
msgid "Built plugin"
msgstr "Plugin construido"

#: src/I18n/ChatUiStrings.php:109
msgid "Technical details"
msgstr "Detalles técnicos"

#: src/I18n/ChatUiStrings.php:110
msgid "Try again"
msgstr "Reintentar"

#: src/I18n/ChatUiStrings.php:111
msgid "Couldn't finish this build"
msgstr "No he podido terminar esta construcción"

#: src/I18n/ChatUiStrings.php:112
msgid "I couldn't start the build again. Refresh the page and try once more."
msgstr "No he podido volver a empezar la construcción. Recarga la página e inténtalo una vez más."

#: src/I18n/ChatUiStrings.php:113
msgid "Open in Playground again"
msgstr "Abrir en Playground otra vez"

#: src/I18n/ChatUiStrings.php:114
msgid "Copy link"
msgstr "Copiar enlace"

#: src/I18n/ChatUiStrings.php:115
msgid "Copied"
msgstr "Copiado"

#: src/I18n/ChatUiStrings.php:117
msgid "Done."
msgstr "Hecho."

#: src/I18n/ChatUiStrings.php:118
msgid "Save to library"
msgstr "Guardar en la biblioteca"

#: src/I18n/ChatUiStrings.php:119
msgid "Not yet"
msgstr "Todavía no"

#: src/I18n/ChatUiStrings.php:120
msgid "Your update is ready. Save it when you're happy to continue."
msgstr "Tu actualización está lista. Guárdala cuando estés conforme para continuar."

#: src/I18n/ChatUiStrings.php:121
#: src/PluginBuilder/Async/BuilderWorker.php:276
msgid "Your starter plugin is ready. It should activate and show the settings you asked for — save it, try it in Playground, and tell me what to refine."
msgstr "Tu plugin inicial está listo. Debería activarse y mostrar los ajustes que pediste — guárdalo, pruébalo en Playground y dime qué pulir."

#: src/I18n/ChatUiStrings.php:122
msgid "Your update is ready to test"
msgstr "Tu actualización está lista para probar"

#: src/I18n/ChatUiStrings.php:123
msgid "Your starter plugin is ready"
msgstr "Tu plugin inicial está listo"

#: src/I18n/ChatUiStrings.php:124
msgid "The plugin was generated, but I couldn't render the review card. Open the Built Plugins library to find it."
msgstr "He generado el plugin, pero no he podido mostrar la tarjeta de revisión. Ábrelo en la biblioteca de Plugins construidos."

#: src/I18n/ChatUiStrings.php:125
#: src/PluginBuilder/Admin/ReviewQualityLabels.php:32
msgid "Passed"
msgstr "Superada"

#: src/I18n/ChatUiStrings.php:126
#: src/PluginBuilder/Admin/ReviewQualityLabels.php:33
msgid "Failed"
msgstr "Fallida"

#: src/I18n/ChatUiStrings.php:127
#: src/PluginBuilder/Admin/ReviewQualityLabels.php:34
msgid "Skipped"
msgstr "Omitida"

#: src/I18n/ChatUiStrings.php:128
msgid "Load test:"
msgstr "Prueba de carga:"

#: src/I18n/ChatUiStrings.php:129
msgid "Code review:"
msgstr "Revisión de código:"

#: src/I18n/ChatUiStrings.php:130
msgid "1 improvement we can make next"
msgstr "1 mejora que podemos hacer después"

#: src/I18n/ChatUiStrings.php:132
msgid "%d improvements we can make next"
msgstr "%d mejoras que podemos hacer después"

#: src/I18n/ChatUiStrings.php:133
msgid "Here's the next iteration of your plugin. Test the changes in Playground before installing on your live site."
msgstr "Aquí tienes la siguiente versión de tu plugin. Prueba los cambios en Playground antes de instalarlo en tu sitio real."

#: src/I18n/ChatUiStrings.php:134
msgid "Save when you're happy, then tell me what still needs to change."
msgstr "Guárdalo cuando estés conforme y dime qué falta por cambiar."

#: src/I18n/ChatUiStrings.php:135
msgid "This is your working first version — it should activate cleanly and include the settings and features you described. Fine-tuning how it behaves on your store is the normal next step in plugin development."
msgstr "Esta es tu primera versión funcional — debería activarse sin problemas e incluir los ajustes y funciones que describiste. Afinar cómo se comporta en tu tienda es el siguiente paso normal al desarrollar un plugin."

#: src/I18n/ChatUiStrings.php:136
msgid "Save it to your library, test it in Playground, then tell me what to adjust. You set the direction; I'll read the code and your site and we'll refine it together."
msgstr "Guárdalo en tu biblioteca, pruébalo en Playground y dime qué ajustar. Tú marcas la dirección; yo leo el código y tu sitio y lo pulimos juntos."

#: src/I18n/ChatUiStrings.php:137
msgid "How plugin building works"
msgstr "Cómo funciona construir un plugin"

#: src/I18n/ChatUiStrings.php:138
msgid "Most plugins start as a working base, then improve with each round of testing and feedback. You're the architect — you decide what the plugin should do. I'm your engineer on this site: I review the code, spot gaps, and help you iterate until it fits how you run your store. Behind the scenes, our development team turns that plan into PHP, JavaScript, and CSS."
msgstr "La mayoría de los plugins empiezan como una base funcional y mejoran con cada ronda de pruebas y comentarios. Tú eres el arquitecto — decides qué debe hacer el plugin. Yo soy tu ingeniera en este sitio: reviso el código, detecto huecos y te ayudo a iterar hasta que encaje con cómo llevas tu tienda. Entre bastidores, nuestro equipo de desarrollo convierte ese plan en PHP, JavaScript y CSS."

#: src/I18n/ChatUiStrings.php:139
msgid "Build complete"
msgstr "Construcción completada"

#: src/I18n/ChatUiStrings.php:140
msgid "Ready for review."
msgstr "Listo para revisar."

#: src/I18n/ChatUiStrings.php:141
msgid "I couldn't finish this build. Try again or simplify what you're asking for."
msgstr "No he podido terminar esta construcción. Reinténtalo o simplifica lo que pides."

#: src/I18n/ChatUiStrings.php:142
msgid "Still working on it"
msgstr "Sigo con ello"

#: src/I18n/ChatUiStrings.php:143
msgid "This is taking longer than expected. It may still finish in the background — check the library shortly."
msgstr "Está tardando más de lo normal. Puede que termine en segundo plano — echa un vistazo a la biblioteca dentro de un rato."

#: src/I18n/ChatUiStrings.php:144
msgid "Trying again..."
msgstr "Reintentando…"

#: src/I18n/ChatUiStrings.php:145
msgid "I've tried this a few times already. Let's try a smaller request, or switch to a stronger model in Settings."
msgstr "Ya lo he intentado varias veces. Probemos con una petición más pequeña, o cambia a un modelo más potente en Ajustes."

#: src/I18n/ChatUiStrings.php:146
msgid "Built block"
msgstr "Bloque construido"

#: src/I18n/ChatUiStrings.php:148
#: src/PluginBuilder/Admin/AdminAssets.php:92
msgid "Check the settings page and the front end. When it looks right, install it on your site."
msgstr "Revisa la página de ajustes y la parte pública. Cuando lo veas bien, instálalo en tu sitio."

#: src/I18n/ChatUiStrings.php:150
msgid "I tested \"%s\" in Playground and something's not right: "
msgstr "He probado \"%s\" en Playground y algo no va bien: "

#: src/I18n/ChatUiStrings.php:151
msgid "I could not install the block. Try again from Built Blocks."
msgstr "No he podido instalar el bloque. Reinténtalo desde Bloques construidos."

#: src/I18n/ChatUiStrings.php:152
msgid "I could not install the block. Check your connection and try again."
msgstr "No he podido instalar el bloque. Revisa tu conexión y reinténtalo."

#: src/I18n/ChatUiStrings.php:153
msgid "I installed the block files on this site."
msgstr "He instalado los archivos del bloque en este sitio."

#: src/I18n/ChatUiStrings.php:154
msgid "I could not install the plugin. Try again from Built Plugins."
msgstr "No he podido instalar el plugin. Reinténtalo desde Plugins construidos."

#: src/I18n/ChatUiStrings.php:155
msgid "I could not install the plugin. Check your connection and try again."
msgstr "No he podido instalar el plugin. Revisa tu conexión y reinténtalo."

#: src/I18n/ChatUiStrings.php:156
msgid "I installed the plugin files on this site."
msgstr "He instalado los archivos del plugin en este sitio."

#: src/I18n/ChatUiStrings.php:157
msgid "A copy is already installed. Overwrite it with this library version?"
msgstr "Ya hay una copia instalada. ¿La sobrescribo con esta versión de la biblioteca?"

#: src/I18n/ChatUiStrings.php:158
msgid "Open Plugins"
msgstr "Abrir Plugins"

#: src/I18n/ChatUiStrings.php:159
msgid "Want me to activate it now?"
msgstr "¿Quieres que lo active ahora?"

#: src/I18n/ChatUiStrings.php:160
#: src/PluginBuilder/Admin/AdminAssets.php:81
msgid "Activate now"
msgstr "Activar ahora"

#: src/I18n/ChatUiStrings.php:161
msgid "I could not activate the plugin. Open Plugins and try from there."
msgstr "No he podido activar el plugin. Abre Plugins e inténtalo desde ahí."

#: src/I18n/ChatUiStrings.php:162
msgid "Done. The plugin is active on this site."
msgstr "Hecho. El plugin está activo en este sitio."

#: src/I18n/ChatUiStrings.php:163
msgid "I could not save your Playground check. Try again."
msgstr "No he podido guardar tu revisión en Playground. Reinténtalo."

#: src/I18n/ChatUiStrings.php:164
msgid "Something did not look right last time. Open Playground again, or tell me what you saw."
msgstr "La última vez algo no iba bien. Abre Playground otra vez, o dime qué viste."

#: src/I18n/ChatUiStrings.php:165
msgid "You already checked this in Playground. Install it on your live site when you are ready."
msgstr "Ya lo revisaste en Playground. Instálalo en tu sitio real cuando quieras."

#: src/I18n/ChatUiStrings.php:166
msgid "Test in Playground before installing on your live site."
msgstr "Pruébalo en Playground antes de instalarlo en tu sitio real."

#: src/I18n/ChatUiStrings.php:167
msgid "Open in Playground"
msgstr "Abrir en Playground"

#: src/I18n/ChatUiStrings.php:171
msgid "Copy this link:"
msgstr "Copia este enlace:"

#: src/I18n/ChatUiStrings.php:172
msgid "Preparing Playground…"
msgstr "Preparando Playground…"

#: src/I18n/ChatUiStrings.php:173
msgid "Could not generate Playground link."
msgstr "No he podido generar el enlace de Playground."

#: src/I18n/ChatUiStrings.php:174
msgid "Could not generate Playground link. Check your connection and try again."
msgstr "No he podido generar el enlace de Playground. Revisa tu conexión y reinténtalo."

#: src/I18n/ChatUiStrings.php:175
msgid "Ready to test in Playground"
msgstr "Listo para probar en Playground"

#: src/I18n/ChatUiStrings.php:176
msgid "Unknown"
msgstr "Desconocido"

#: src/I18n/ChatUiStrings.php:177
msgid "Something went wrong and I couldn't process that. Try refreshing the page."
msgstr "Algo ha ido mal y no he podido procesarlo. Prueba a recargar la página."

#: src/I18n/ErrorMessages.php:42
msgid "I didn't get a usable reply from the model — the response came back empty. Please send your message again. If this keeps happening with DeepSeek V4 Flash on large plugin requests, switch to DeepSeek V4 Pro in Settings or try a shorter prompt first."
msgstr "No he recibido una respuesta útil del modelo — llegó vacía. Envíame tu mensaje otra vez. Si te sigue pasando con DeepSeek V4 Flash en peticiones de plugin grandes, cambia a DeepSeek V4 Pro en Ajustes o prueba antes con un prompt más corto."

#: src/I18n/ErrorMessages.php:50
msgid "Done — your changes were applied successfully. I had trouble generating a detailed summary, but everything went through. Ask me to verify if you want to double-check."
msgstr "Hecho — tus cambios se aplicaron. Me costó generar un resumen detallado, pero todo salió bien. Pídeme que lo verifique si quieres asegurarte."

#: src/I18n/ErrorMessages.php:61
msgid "The plugin preview expired before it could be saved. Ask me to build it again and it'll be ready in a moment."
msgstr "La vista previa del plugin caducó antes de poder guardarla. Pídeme que lo construya otra vez y estará listo en un momento."

#: src/I18n/ErrorMessages.php:68
msgid "I can't install this version on your site yet. Open it in Playground first, check the settings page and the front end, then tap Install on my site when it does what you asked for."
msgstr "Todavía no puedo instalar esta versión en tu sitio. Ábrela primero en Playground, revisa la página de ajustes y la parte pública, y luego toca Instalar en mi sitio cuando haga lo que pediste."

#: src/I18n/ErrorMessages.php:79
msgid "Your session has expired. Refresh the page to continue — your conversation history is saved."
msgstr "Tu sesión ha expirado. Recarga la página para continuar, tu historial de conversación está guardado."

#: src/I18n/ErrorMessages.php:86
msgid "I can't verify your login session. This usually happens if you've been logged out of WordPress in another tab. Log back in and refresh this page."
msgstr "No puedo verificar tu sesión de WordPress. Suele pasar si has cerrado sesión en otra pestaña. Vuelve a iniciar sesión y recarga esta página."

#: src/I18n/ErrorMessages.php:93
#: src/I18n/ErrorMessages.php:107
msgid "I lost track of this conversation. Refresh the page to start a new session — I'll still remember everything from our previous sessions."
msgstr "He perdido el hilo de esta conversación. Recarga la página para empezar una nueva sesión, seguiré recordando todo de nuestras sesiones anteriores."

#: src/I18n/ErrorMessages.php:100
msgid "That confirmation has expired. For safety, pending actions are only valid for a few minutes. Tell me what you need again and I'll set it up."
msgstr "Esa confirmación ha caducado. Por seguridad, las acciones pendientes solo son válidas unos minutos. Dime de nuevo lo que necesitas y lo preparo."

#: src/I18n/ErrorMessages.php:114
msgid "That confirmation link is no longer valid. Go back to Settings and try the operation again."
msgstr "Ese enlace de confirmación ya no es válido. Vuelve a Ajustes e intenta la operación de nuevo."

#: src/I18n/ErrorMessages.php:125
msgid "I need an AI provider to work. Go to Settings → Connectors and connect one — OpenAI, Anthropic, or any provider available in your WordPress. It takes about 2 minutes."
msgstr "Necesito un proveedor de IA para funcionar. Ve a Ajustes → Conectores y conecta uno: OpenAI, Anthropic o cualquier proveedor disponible en tu WordPress. Son unos 2 minutos."

#: src/I18n/ErrorMessages.php:136
msgid "I couldn't connect to your AI provider. The model you selected isn't responding. Check that your API key is valid and that you haven't hit your provider's usage limits.\n"
"\n"
"Details: %s"
msgstr "No pude conectar con tu proveedor de IA. El modelo que has seleccionado no responde. Comprueba que tu clave de API es válida y que no has alcanzado los límites de uso de tu proveedor.\n"
"\n"
"Detalles: %s"

#: src/I18n/ErrorMessages.php:162
msgid "Your AI provider returned an error. This is usually temporary — wait a minute and try again. If it persists, check your provider's dashboard for billing or usage issues.\n"
"\n"
"Details: %s"
msgstr "Tu proveedor de IA ha devuelto un error. Suele ser temporal: espera un minuto e inténtalo de nuevo. Si persiste, revisa el panel de tu proveedor por temas de facturación o uso.\n"
"\n"
"Detalles: %s"

#: src/I18n/ErrorMessages.php:178
msgid " Wait about %d seconds, then try again."
msgstr " Espera unos %d segundos e inténtalo de nuevo."

#: src/I18n/ErrorMessages.php:183
msgid "I've hit your AI provider's usage limit for now."
msgstr "He alcanzado el límite de uso de tu proveedor de IA por ahora."

#: src/I18n/ErrorMessages.php:186
msgid "On Google's free tier, Gemini Flash models allow about 20 requests per minute. Each message may use more than one request when I route tools or continue after an action. Check your usage at ai.google.dev, enable billing for higher limits, or switch to another provider in Settings → Connectors."
msgstr "En el nivel gratuito de Google, los modelos Gemini Flash permiten unas 20 solicitudes por minuto. Cada mensaje puede usar más de una solicitud cuando enruto herramientas o continúo tras una acción. Comprueba tu uso en ai.google.dev, activa la facturación para límites más altos, o cambia a otro proveedor en Ajustes → Conectores."

#: src/I18n/ErrorMessages.php:212
msgid "Your AI provider isn't responding, and my fallback attempt also failed. This typically means the provider is down or your API key has an issue. Check your provider's status page or try switching to a different provider in Settings → Connectors.\n"
"\n"
"Details: %s"
msgstr "Tu proveedor de IA no responde y mi intento de respaldo también ha fallado. Suele significar que el proveedor está caído o que hay un problema con tu clave de API. Revisa la página de estado de tu proveedor o cambia a otro proveedor en Ajustes → Conectores.\n"
"\n"
"Detalles: %s"

#: src/I18n/ErrorMessages.php:225
msgid "I'm having trouble processing your request — a required AI component couldn't load. This is usually a temporary provider issue. Try again in a moment.\n"
"\n"
"Details: %s"
msgstr "Tengo problemas para procesar tu solicitud: no pude cargar un componente de IA necesario. Suele ser un problema temporal del proveedor. Inténtalo de nuevo en un momento.\n"
"\n"
"Detalles: %s"

#: src/I18n/ErrorMessages.php:238
msgid "I ran into an issue while trying to expand my toolset for your request. Try rephrasing what you need, or try again in a moment.\n"
"\n"
"Details: %s"
msgstr "He tenido un problema al ampliar mi conjunto de herramientas para tu solicitud. Reformula lo que necesitas o inténtalo de nuevo en un momento.\n"
"\n"
"Detalles: %s"

#: src/I18n/ErrorMessages.php:251
msgid "That file doesn't contain valid data. Make sure you're uploading an export file generated by LolaCore (.json format)."
msgstr "Ese archivo no contiene datos válidos. Asegúrate de subir un archivo de exportación generado por LolaCore (formato .json)."

#: src/I18n/ErrorMessages.php:258
msgid "This file doesn't look like a LolaCore memory export — it's missing the expected data structure. Use a file exported from LolaCore's Settings → Maintenance → Export."
msgstr "Este archivo no parece una exportación de memoria de LolaCore: le falta la estructura de datos esperada. Usa un archivo exportado desde Ajustes → Mantenimiento → Exportar en LolaCore."

#: src/I18n/ErrorMessages.php:265
msgid "This memory export came from a different WordPress site. Importing memories from another site could cause Lola to reference plugins, settings, or content that don't exist here. If you're migrating, export from this site's current state instead."
msgstr "Esta exportación de memoria es de otro sitio WordPress. Importar memorias de otro sitio podría hacer que Lola referencie plugins, ajustes o contenido que no existe aquí. Si estás migrando, exporta desde el estado actual de este sitio."

#: src/I18n/ErrorMessages.php:276
msgid "The site scan didn't complete. This can happen if your server timed out during a large scan. Try again — if it keeps failing, your hosting may need a higher PHP execution time limit.\n"
"\n"
"Details: %s"
msgstr "El análisis del sitio no se completó. Puede ocurrir si el servidor agotó el tiempo durante un análisis grande. Inténtalo de nuevo; si sigue fallando, tu hosting puede necesitar un límite de tiempo de ejecución de PHP más alto.\n"
"\n"
"Detalles: %s"

#: src/I18n/ErrorMessages.php:285
msgid "I couldn't read that file. Make sure it's a .json file and that it's not empty or corrupted. Try downloading a fresh export and uploading again."
msgstr "No pude leer ese archivo. Asegúrate de que es un archivo .json y de que no está vacío ni corrupto. Descarga una exportación nueva e intenta subirlo de nuevo."

#: src/I18n/ErrorMessages.php:292
msgid "No file was received. Select a .json export file and try again."
msgstr "No se ha recibido ningún archivo. Selecciona un archivo de exportación .json e inténtalo de nuevo."

#: src/I18n/ErrorMessages.php:299
msgid "That upload doesn't look right. Make sure you're selecting a valid file and try again."
msgstr "Esa subida no parece correcta. Asegúrate de seleccionar un archivo válido e inténtalo de nuevo."

#: src/I18n/ErrorMessages.php:310
msgid "The memory cleanup didn't complete. This is usually a temporary database issue. Try again — if it persists, check that your database user has permission to optimize tables.\n"
"\n"
"Details: %s"
msgstr "La limpieza de memoria no se completó. Suele ser un problema temporal de la base de datos. Inténtalo de nuevo; si persiste, comprueba que tu usuario de base de datos tiene permiso para optimizar tablas.\n"
"\n"
"Detalles: %s"

#: src/I18n/ErrorMessages.php:323
msgid "The memory import didn't complete. This can happen if the file is corrupted or incompatible. Try exporting a fresh copy and importing again.\n"
"\n"
"Details: %s"
msgstr "La importación de memoria no se completó. Puede ocurrir si el archivo está corrupto o es incompatible. Exporta una copia nueva e impórtala de nuevo.\n"
"\n"
"Detalles: %s"

#: src/I18n/ErrorMessages.php:336
msgid "The memory wipe didn't complete. This is usually a temporary database issue. Try again in a moment.\n"
"\n"
"Details: %s"
msgstr "El borrado de memoria no se completó. Suele ser un problema temporal de la base de datos. Inténtalo de nuevo en un momento.\n"
"\n"
"Detalles: %s"

#: src/I18n/ErrorMessages.php:345
msgid "This feature is temporarily unavailable while we upgrade the underlying system. It will be back soon."
msgstr "Esta función no está disponible temporalmente mientras actualizamos el sistema. Volverá pronto."

#: src/I18n/ErrorMessages.php:356
msgid "Built-in and addon skills cannot be toggled here. They are controlled by the plugin or addon."
msgstr "Las skills integradas y de addons no se pueden activar aquí. Las controla el plugin o el addon."

#: src/I18n/ErrorMessages.php:363
msgid "Only user-created or Lola-generated skills can be deleted from here."
msgstr "Solo se pueden eliminar desde aquí las skills creadas por el usuario o generadas por Lola."

#: src/I18n/ErrorMessages.php:370
msgid "Skill not found."
msgstr "Skill no encontrada."

#: src/I18n/ErrorMessages.php:378
msgid "Only database playbooks can be toggled here. Built-in, addon, and filesystem playbooks are read-only."
msgstr "Solo los playbooks de base de datos se pueden activar o desactivar aquí. Los integrados, de addon y del sistema de archivos son de solo lectura."

#: src/I18n/ErrorMessages.php:382
msgid "Only user-created or Lola-generated playbooks can be deleted from here."
msgstr "Solo los playbooks creados por el usuario o por Lola se pueden eliminar desde aquí."

#: src/I18n/ErrorMessages.php:386
msgid "Only database playbooks can be edited from here."
msgstr "Solo los playbooks de base de datos se pueden editar desde aquí."

#: src/I18n/ErrorMessages.php:390
msgid "Playbook not found."
msgstr "Playbook no encontrado."

#: src/I18n/ErrorMessages.php:398
msgid "I need a license key to activate this addon. Paste it above and try again."
msgstr "Necesito una clave de licencia para activar este addon. Pégala arriba e inténtalo de nuevo."

#: src/I18n/ErrorMessages.php:402
msgid "I couldn't reach the license server. Check your connection and try again."
msgstr "No pude contactar con el servidor de licencias. Comprueba tu conexión e inténtalo de nuevo."

#: src/I18n/ErrorMessages.php:406
msgid "This license has reached its activation limit. Deactivate it from the other site first."
msgstr "Esta licencia ha alcanzado su límite de activaciones. Desactívala en el otro sitio primero."

#: src/I18n/ErrorMessages.php:410
msgid "I couldn't activate this license. Double-check the key and try again."
msgstr "No pude activar esta licencia. Comprueba la clave e inténtalo de nuevo."

#: src/I18n/ErrorMessages.php:414
msgid "This license key doesn't match this addon. Double-check the key and try again."
msgstr "Esta clave de licencia no corresponde a este addon. Comprueba la clave e inténtalo de nuevo."

#: src/I18n/ErrorMessages.php:418
msgid "I couldn't deactivate this license right now. Try again in a few minutes."
msgstr "No pude desactivar esta licencia ahora mismo. Inténtalo de nuevo en unos minutos."

#: src/I18n/ErrorMessages.php:437
msgid "Something went wrong on my end and I couldn't process that request. Try refreshing the page. If it keeps happening, your hosting provider's error log will have the details."
msgstr "Algo ha fallado de mi lado y no pude procesar la solicitud. Intenta recargar la página. Si sigue pasando, el registro de errores de tu hosting tendrá los detalles."

#: src/I18n/ErrorMessages.php:442
msgid "Something went wrong on my end. Here's what the server reported: \"%s\". If this doesn't make sense, try refreshing the page — if the problem persists, check your AI provider settings or hosting error log."
msgstr "Algo ha fallado de mi lado. Esto es lo que ha informado el servidor: \"%s\". Si no tiene sentido, intenta recargar la página. Si el problema persiste, revisa los ajustes de tu proveedor de IA o el registro de errores del hosting."

#: src/I18n/PlaybooksUiStrings.php:31
msgid "Document too long"
msgstr "Documento demasiado largo"

#: src/I18n/PlaybooksUiStrings.php:32
msgid "Your document has %s characters of extracted text."
msgstr "Tu documento tiene %s caracteres de texto extraído."

#: src/I18n/PlaybooksUiStrings.php:33
msgid "The maximum is %s characters."
msgstr "El máximo es %s caracteres."

#: src/I18n/PlaybooksUiStrings.php:34
msgid " (about %s over the limit)."
msgstr " (unos %s por encima del límite)."

#: src/I18n/PlaybooksUiStrings.php:35
msgid "Upload a shorter section (for example one chapter), or ask Lola in the chat to help you build a playbook from the parts you need."
msgstr "Sube una sección más corta (por ejemplo un capítulo), o pídele a Lola en el chat que te ayude a montar un playbook con las partes que necesites."

#: src/I18n/PlaybooksUiStrings.php:39
msgid "Delete playbook"
msgstr "Eliminar playbook"

#: src/I18n/PlaybooksUiStrings.php:40
msgid "Delete playbook \"%s\"? This cannot be undone."
msgstr "¿Eliminar el playbook «%s»? No se puede deshacer."

#: src/I18n/PlaybooksUiStrings.php:41
msgid "Server error while toggling playbook."
msgstr "Error del servidor al cambiar el estado del playbook."

#: src/I18n/PlaybooksUiStrings.php:42
msgid "Server error while deleting playbook."
msgstr "Error del servidor al eliminar el playbook."

#: src/I18n/PlaybooksUiStrings.php:44
msgid "Server error while reloading playbooks."
msgstr "Error del servidor al recargar los playbooks."

#: src/I18n/PlaybooksUiStrings.php:45
msgid "Distillation returned an empty draft."
msgstr "La destilación devolvió un borrador vacío."

#: src/I18n/PlaybooksUiStrings.php:46
msgid "Distillation failed."
msgstr "La destilación ha fallado."

#: src/I18n/PlaybooksUiStrings.php:47
msgid "Original source text is unavailable. Upload the document again."
msgstr "El texto fuente original ya no está disponible. Vuelve a subir el documento."

#: src/I18n/PlaybooksUiStrings.php:51
msgid "Playbook content cannot be empty."
msgstr "El contenido del playbook no puede estar vacío."

#: src/I18n/PlaybooksUiStrings.php:52
msgid "Add a name: field in the YAML frontmatter."
msgstr "Añade un campo name: en el frontmatter YAML."

#: src/I18n/PlaybooksUiStrings.php:53
msgid "Add a name: field in the YAML frontmatter (or fill in the slug)."
msgstr "Añade un campo name: en el frontmatter YAML (o rellena el slug)."

#: src/I18n/PlaybooksUiStrings.php:57
msgid "Saving…"
msgstr "Guardando…"

#: src/I18n/PlaybooksUiStrings.php:58
msgid "Save failed."
msgstr "No se pudo guardar."

#: src/I18n/PlaybooksUiStrings.php:59
msgid "Server error while saving playbook."
msgstr "Error del servidor al guardar el playbook."

#: src/I18n/PlaybooksUiStrings.php:63
msgid "Toggle failed."
msgstr "No se pudo cambiar el estado."

#: src/I18n/PlaybooksUiStrings.php:64
msgid "Delete failed."
msgstr "No se pudo eliminar."

#: src/I18n/PlaybooksUiStrings.php:65
msgid "Reload failed."
msgstr "No se pudo recargar."

#: src/I18n/PlaybooksUiStrings.php:66
msgid "Reloading…"
msgstr "Recargando…"

#: src/I18n/SettingsUiStrings.php:30
#: src/I18n/StatusMessages.php:29
msgid "Settings saved."
msgstr "Ajustes guardados."

#: src/I18n/SettingsUiStrings.php:31
msgid "Could not save settings. Try again."
msgstr "No se pudieron guardar los ajustes. Inténtalo de nuevo."

#: src/I18n/SettingsUiStrings.php:32
#: src/I18n/StatusMessages.php:37
msgid "Domains updated."
msgstr "Dominios actualizados."

#: src/I18n/SettingsUiStrings.php:33
#: src/I18n/StatusMessages.php:41
msgid "Safety settings saved."
msgstr "Ajustes de seguridad guardados."

#: src/I18n/SettingsUiStrings.php:38
msgid "Wipe All Memory"
msgstr "Borrar toda la memoria"

#: src/I18n/SettingsUiStrings.php:39
#: templates/settings-page.php:497
msgid "Are you sure you want to wipe ALL of Lola's memory? This cannot be undone."
msgstr "¿Seguro que quieres borrar TODA la memoria de Lola? Esta acción no se puede deshacer."

#: src/I18n/SettingsUiStrings.php:40
#: templates/settings-page.php:498
msgid "Type WIPE to confirm:"
msgstr "Escribe WIPE para confirmar:"

#: src/I18n/SettingsUiStrings.php:41
#: templates/settings-page.php:499
msgid "WIPE"
msgstr "WIPE"

#: src/I18n/SettingsUiStrings.php:42
#: templates/settings-page.php:503
msgid "Wipe Memory"
msgstr "Borrar memoria"

#: src/I18n/SettingsUiStrings.php:43
msgid "Unsaved changes"
msgstr "Cambios sin guardar"

#: src/I18n/StatusMessages.php:33
msgid "Defaults restored."
msgstr "Valores por defecto restaurados."

#: src/I18n/StatusMessages.php:48
msgid "Confirmations were re-enabled because no backup plugin is active. Install a backup solution before disabling confirmations."
msgstr "Las confirmaciones se han reactivado porque no hay ningún plugin de copia de seguridad activo. Instala una solución de backup antes de desactivar las confirmaciones."

#: src/I18n/StatusMessages.php:56
msgid "Site re-scan complete."
msgstr "Re-análisis del sitio completado."

#: src/I18n/StatusMessages.php:66
msgid "Imported %1$d facts (%2$d skipped)."
msgstr "Importados %1$d hechos (%2$d omitidos)."

#: src/I18n/StatusMessages.php:79
msgid "Compacted memory. Removed %1$d facts, %2$d remaining."
msgstr "Memoria compactada. Eliminados %1$d hechos, quedan %2$d."

#: src/I18n/StatusMessages.php:86
msgid "Memory wiped. Lola will rebuild her facts as you interact with her."
msgstr "Memoria borrada. Lola reconstruirá sus datos a medida que interactúes con ella."

#: src/I18n/StatusMessages.php:97
msgid "I've scanned your site and have the report ready. To start working together, connect an AI provider in Settings → Connectors. You'll need an API key from OpenAI, Anthropic, or any provider supported by WordPress."
msgstr "He analizado tu sitio y tengo el informe listo. Para que empecemos a trabajar, conecta un proveedor de IA en Ajustes → Conectores. Necesitarás una clave de API de OpenAI, Anthropic o cualquier proveedor compatible con WordPress."

#: src/I18n/StatusMessages.php:108
msgid "Skill \"%s\" enabled."
msgstr "Skill \"%s\" activada."

#: src/I18n/StatusMessages.php:113
msgid "Skill \"%s\" disabled."
msgstr "Skill \"%s\" desactivada."

#: src/I18n/StatusMessages.php:132
msgid "Skills reloaded. %d skills found."
msgstr "Skills recargadas. %d skills encontradas."

#: src/I18n/StatusMessages.php:140
msgid "Skill \"%s\" imported as draft. Review and activate when ready."
msgstr "Skill \"%s\" importada como borrador. Revísala y actívala cuando estés listo."

#: src/I18n/StatusMessages.php:162
msgid "Skill parameters saved."
msgstr "Parámetros de skill guardados."

#: src/I18n/StatusMessages.php:166
msgid "Skill parameters restored to defaults."
msgstr "Parámetros de skill restaurados a sus valores por defecto."

#: src/I18n/StatusMessages.php:171
msgid "Skills system enabled. Built-in skills are now active."
msgstr "Sistema de skills activado. Las skills integradas están ahora activas."

#: src/I18n/StatusMessages.php:172
msgid "Skills system disabled. Lola will not load any skill until you re-enable it."
msgstr "Sistema de skills desactivado. Lola no cargará ninguna skill hasta que lo reactives."

#: src/I18n/StatusMessages.php:188
msgid "Playbook \"%s\" deactivated."
msgstr "Playbook «%s» desactivado."

#: src/I18n/StatusMessages.php:204
msgid "Playbook \"%s\" saved."
msgstr "Playbook «%s» guardado."

#: src/I18n/StatusMessages.php:212
msgid "Playbook \"%s\" created (inactive). Activate it when you are ready."
msgstr "Playbook «%s» creado (inactivo). Actívalo cuando estés listo."

#: src/I18n/StatusMessages.php:223
msgid "Playbooks reloaded. %d playbooks found."
msgstr "Playbooks recargados. %d playbooks encontrados."

#: src/I18n/StatusMessages.php:233
msgid "License activated."
msgstr "Licencia activada."

#: src/I18n/StatusMessages.php:237
msgid "License deactivated."
msgstr "Licencia desactivada."

#: src/LLM/Providers/Anthropic/Provider/AnthropicProvider.php:77
msgid "Text generation with Claude."
msgstr "Generación de texto con Claude."

#: src/LLM/Providers/DeepSeek/DeepSeekProvider.php:74
msgid "Text generation with DeepSeek."
msgstr "Generación de texto con DeepSeek."

#: src/LLM/Providers/OpenAI/OpenAIProvider.php:74
msgid "Text generation with OpenAI."
msgstr "Generación de texto con OpenAI."

#: src/Marketing/AddonCatalog.php:73
msgid "Lola runs your store operations: orders, refunds, customers, and analytics."
msgstr "Lola lleva las operaciones de tu tienda: pedidos, reembolsos, clientes y análisis."

#: src/Marketing/AddonCatalog.php:87
msgid "Lola writes, tests, and manages code snippets on your site."
msgstr "Lola escribe, prueba y gestiona snippets de código en tu sitio."

#: src/Marketing/AddonCatalog.php:104
msgid "Lola reads your support tickets, spots the patterns, and drafts the replies."
msgstr "Lola lee tus tickets de soporte, detecta los patrones y redacta las respuestas."

#: src/Marketing/AddonCatalog.php:118
msgid "Lola manages your contacts, lists, and email campaigns."
msgstr "Lola gestiona tus contactos, tus listas y tus campañas de email."

#: src/Marketing/AddonCatalog.php:132
msgid "Lola builds and edits your Elementor pages: layouts, widgets, templates, and global styles."
msgstr "Lola construye y edita tus páginas de Elementor: estructuras, widgets, plantillas y estilos globales."

#: src/Marketing/AddonCatalog.php:147
msgid "Lola builds and fills your custom fields: field groups, fields, post types, and values."
msgstr "Lola crea y rellena tus campos personalizados: grupos de campos, campos, tipos de contenido y valores."

#: src/Marketing/AddonCatalog.php:166
msgid "Lola writes and audits your SEO: titles, meta descriptions, keyphrases, redirects, and site-wide fixes."
msgstr "Lola redacta y audita tu SEO: títulos, meta descripciones, frases clave, redirecciones y correcciones en todo el sitio."

#: src/Marketing/AddonCatalog.php:185
msgid "Ask Lola how your site is doing: visits, sources, content, and unusual patterns worth a look."
msgstr "Pregúntale a Lola cómo va tu sitio: visitas, fuentes, contenido y patrones raros que conviene mirar."

#: src/Marketing/AddonCatalog.php:201
msgid "Build forms and check submissions by talking to Lola — no drag-and-drop builder required."
msgstr "Crea formularios y revisa envíos hablando con Lola — no hace falta un constructor drag-and-drop."

#: src/PluginBuilder/Admin/AdminAssets.php:77
msgid "I will copy the generated files into wp-content/plugins. The plugin will stay inactive until you activate it."
msgstr "Copiaré los archivos generados en wp-content/plugins. El plugin quedará inactivo hasta que tú lo actives."

#: src/PluginBuilder/Admin/AdminAssets.php:79
msgid "A version is already on this site. I will replace those files. Any active copy will be deactivated first."
msgstr "Ya hay una versión en este sitio. Reemplazaré esos archivos. Si hay una copia activa, primero se desactivará."

#: src/PluginBuilder/Admin/AdminAssets.php:80
msgid "Plugin installed"
msgstr "Plugin instalado"

#: src/PluginBuilder/Admin/AdminAssets.php:82
msgid "Open Plugins screen"
msgstr "Abrir la pantalla de Plugins"

#: src/PluginBuilder/Admin/AdminAssets.php:88
msgid "Activation failed"
msgstr "La activación ha fallado"

#: src/PluginBuilder/Admin/AdminAssets.php:89
msgid "Plugin activated"
msgstr "Plugin activado"

#: src/PluginBuilder/Admin/AdminAssets.php:91
msgid "Check your plugin in Playground"
msgstr "Comprueba tu plugin en Playground"

#: src/PluginBuilder/Admin/LibraryColumns.php:124
msgid "Installed (active)"
msgstr "Instalado (activo)"

#: src/PluginBuilder/Admin/LibraryColumns.php:127
msgid "Installed (inactive)"
msgstr "Instalado (inactivo)"

#: src/PluginBuilder/Admin/PluginBuilderAjax.php:59
#: src/PluginBuilder/Admin/PluginBuilderAjax.php:93
#: src/PluginBuilder/Admin/PluginBuilderAjax.php:110
#: src/PluginBuilder/Admin/PluginBuilderAjax.php:137
#: src/PluginBuilder/Admin/PluginBuilderAjax.php:181
msgid "Invalid plugin ID."
msgstr "ID de plugin no válido."

#: src/PluginBuilder/Admin/PluginBuilderAjax.php:220
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1420
#: src/PluginBuilder/Packaging/LocalInstaller.php:75
#: src/PluginBuilder/Playground/BlueprintGenerator.php:178
msgid "Built plugin not found."
msgstr "Plugin creado no encontrado."

#: src/PluginBuilder/Admin/PluginEditScreen.php:77
msgid "This plugin has incomplete generated files."
msgstr "Este plugin tiene archivos generados incompletos."

#: src/PluginBuilder/Admin/PluginEditScreen.php:83
msgid "Slug"
msgstr "Slug"

#: src/PluginBuilder/Admin/PluginEditScreen.php:128
msgid "Suggestions"
msgstr "Sugerencias"

#: src/PluginBuilder/Admin/PluginEditScreen.php:141
msgid "PHP"
msgstr "PHP"

#: src/PluginBuilder/Admin/PluginEditScreen.php:144
msgid "JS"
msgstr "JS"

#: src/PluginBuilder/Admin/PluginEditScreen.php:147
msgid "CSS"
msgstr "CSS"

#: src/PluginBuilder/Admin/ReviewQualityLabels.php:46
msgid "Code review: %d%%"
msgstr "Revisión de código: %d%%"

#: src/PluginBuilder/Artifact/PluginArtifactAdapter.php:64
#: src/PluginBuilder/Packaging/LocalInstaller.php:262
#: src/PluginBuilder/Playground/BlueprintGenerator.php:105
#: src/PluginBuilder/Playground/BlueprintGenerator.php:183
msgid "Built plugin slug is missing."
msgstr "Falta el slug del plugin construido."

#: src/PluginBuilder/Async/BuilderWorker.php:413
msgid "Your update is ready to test. Save it when you're happy, then tell me what still needs to change."
msgstr "Tu actualización está lista para probar. Guárdala cuando estés conforme y dime qué falta por cambiar."

#: src/PluginBuilder/Async/JobController.php:86
#: src/PluginBuilder/Async/JobController.php:125
msgid "Job not found or expired."
msgstr "No encuentro el trabajo o ha caducado."

#: src/PluginBuilder/Async/JobController.php:135
msgid "Only a failed build can be retried."
msgstr "Solo se puede reintentar una construcción fallida."

#: src/PluginBuilder/Async/JobController.php:146
msgid "This build has already been retried the maximum number of times."
msgstr "Esta construcción ya se ha reintentado el máximo de veces."

#: src/PluginBuilder/Async/JobController.php:184
msgid "I could not start the build again right now."
msgstr "No he podido volver a empezar la construcción ahora mismo."

#: src/PluginBuilder/Generation/AiClientHelper.php:389
msgid " Check that your model in LolaCore Settings returned plugin code in the main response (not only in a thinking block)."
msgstr " Comprueba que tu modelo en Ajustes de LolaCore devolvió el código del plugin en la respuesta principal (no solo en un bloque de razonamiento)."

#: src/PluginBuilder/Generation/CodeExtractor.php:117
msgid "Generated plugin is incomplete. Missing code blocks: %s."
msgstr "El plugin generado está incompleto. Faltan bloques de código: %s."

#: src/PluginBuilder/Generation/CodeExtractor.php:253
msgid "The model returned an empty response. Check your model in LolaCore Settings and ensure the plugin code is in the main response text."
msgstr "El modelo ha devuelto una respuesta vacía. Revisa tu modelo en Ajustes de LolaCore y asegúrate de que el código del plugin está en el texto principal de la respuesta."

#: src/PluginBuilder/Generation/CodeExtractor.php:257
msgid "The response may have been truncated before all three files were finished."
msgstr "La respuesta puede haberse truncado antes de terminar los tres archivos."

#: src/PluginBuilder/Generation/CodeExtractor.php:261
msgid "The model replied with prose instead of the required fenced code blocks."
msgstr "El modelo ha respondido con prosa en lugar de los bloques de código delimitados requeridos."

#: src/PluginBuilder/Generation/CodeExtractor.php:264
msgid "Ensure the model returns ```php, ```js, and ```css fenced blocks. For large WooCommerce plugins, try DeepSeek V4 Pro or run the request again."
msgstr "Asegúrate de que el modelo devuelve bloques delimitados ```php, ```js y ```css. Para plugins grandes de WooCommerce, prueba DeepSeek V4 Pro o vuelve a lanzar la petición."

#: src/PluginBuilder/Generation/CodeReviewer.php:72
msgid "Cannot review an incomplete plugin (PHP, JS, and CSS are required)."
msgstr "No puedo revisar un plugin incompleto (hacen falta PHP, JS y CSS)."

#: src/PluginBuilder/Generation/PluginBuilderGenerationCache.php:64
msgid "The plugin preview expired or is no longer available. Ask Lola to run the action again."
msgstr "La vista previa del plugin ha caducado o ya no está disponible. Pídeme que ejecute la acción otra vez."

#: src/PluginBuilder/Generation/PluginBuilderGenerationCache.php:68
msgid "The cached preview does not match this action."
msgstr "La vista previa en caché no coincide con esta acción."

#: src/PluginBuilder/Generation/PluginBuilderGenerationCache.php:73
msgid "The cached preview no longer matches the requested parameters."
msgstr "La vista previa en caché ya no coincide con los parámetros pedidos."

#: src/PluginBuilder/Generation/PluginGenerator.php:50
msgid "A plugin description is required."
msgstr "Hace falta una descripción del plugin."

#: src/PluginBuilder/Generation/PluginGenerator.php:94
msgid "A repair prompt is required."
msgstr "Hace falta un prompt de reparación."

#: src/PluginBuilder/Generation/PromptLoader.php:38
msgid "Plugin Builder prompts file is missing."
msgstr "Falta el archivo de prompts del Plugin Builder."

#: src/PluginBuilder/Generation/PromptLoader.php:44
msgid "Plugin Builder prompts file is invalid."
msgstr "El archivo de prompts del Plugin Builder no es válido."

#: src/PluginBuilder/Generation/PromptLoader.php:58
msgid "Developer prompts are misconfigured."
msgstr "Los prompts de desarrollo están mal configurados."

#: src/PluginBuilder/Generation/PromptLoader.php:85
msgid "Reviewer prompts are misconfigured."
msgstr "Los prompts del revisor están mal configurados."

#: src/PluginBuilder/Generation/StructuredJsonParser.php:32
msgid "Plugin code review returned empty JSON."
msgstr "La revisión de código del plugin devolvió un JSON vacío."

#: src/PluginBuilder/Generation/StructuredJsonParser.php:63
msgid "Plugin code review returned invalid JSON."
msgstr "La revisión de código del plugin devolvió un JSON no válido."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:49
msgid "I couldn't deliver this plugin safely. Simplify the description or split it into smaller steps, then try again."
msgstr "No he podido entregar este plugin de forma segura. Simplifica la descripción o divídela en pasos más pequeños y reinténtalo."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:54
msgid "I hit the same safety issue twice and could not fix it automatically. Try a simpler description, or split the plugin into smaller steps."
msgstr "He encontrado el mismo problema de seguridad dos veces y no he podido corregirlo automáticamente. Prueba con una descripción más simple o divide el plugin en pasos más pequeños."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:122
msgid "PluginBuilderHandler: unknown action '%s'."
msgstr "PluginBuilderHandler: acción desconocida «%s»."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:147
msgid "description is required."
msgstr "description es obligatorio."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:234
msgid "Will generate and save a new built plugin in the library."
msgstr "Generaré y guardaré un nuevo plugin construido en la biblioteca."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:244
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:467
msgid "This build needs more work before saving. Review the suggestions carefully before approving."
msgstr "Esta construcción necesita más trabajo antes de guardar. Revisa las sugerencias con atención antes de aprobar."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:284
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:690
msgid "Could not save the built plugin: %s"
msgstr "No he podido guardar el plugin construido: %s"

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:348
msgid "instruction is required."
msgstr "instruction es obligatorio."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:457
msgid "Will update the built plugin and create a new revision."
msgstr "Actualizaré el plugin construido y crearé una nueva revisión."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:516
#: src/PluginBuilder/Handler/PluginBuilderHandler.php:670
msgid "Could not update the built plugin: %s"
msgstr "No he podido actualizar el plugin construido: %s"

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:574
msgid "php is required: provide the literal plugin source code. From an external client Lola stores your exact code — it does not run the server LLM. Use the wp-admin chat if you want Lola to generate the code from a description."
msgstr "php es obligatorio: proporciona el código fuente literal del plugin. Desde un cliente externo, Lola guarda tu código tal cual — no ejecuta el LLM del servidor. Usa el chat de wp-admin si quieres que Lola genere el código a partir de una descripción."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:606
msgid "Saved verbatim from author-provided source code (no AI generation)."
msgstr "Guardado tal cual desde el código fuente proporcionado por el autor (sin generación por IA)."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:636
msgid "Will save the provided code as a new revision of this built plugin."
msgstr "Guardaré el código proporcionado como una nueva revisión de este plugin construido."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:637
msgid "Will save the provided code as a new built plugin in the library."
msgstr "Guardaré el código proporcionado como un nuevo plugin construido en la biblioteca."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:819
msgid "Author-provided code stored verbatim; passed deterministic static safety checks (no AI code review ran)."
msgstr "Código del autor guardado tal cual; ha pasado las comprobaciones estáticas de seguridad deterministas (no se ejecutó revisión de código por IA)."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:820
msgid "Author-provided code stored verbatim; deterministic static safety checks raised non-blocking warnings (no AI code review ran)."
msgstr "Código del autor guardado tal cual; las comprobaciones estáticas de seguridad deterministas han generado advertencias no bloqueantes (no se ejecutó revisión de código por IA)."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:870
msgid "I couldn't save this code: it did not pass the static safety checks. Fix these issues and save it again:"
msgstr "No he podido guardar este código: no ha pasado las comprobaciones estáticas de seguridad. Corrige estos problemas y guárdalo otra vez:"

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1008
msgid "\n"
"... [truncated: %d chars omitted]"
msgstr "\n"
"... [truncado: %d caracteres omitidos]"

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1019
msgid "Code exceeds the inline audit budget (%1$d chars). Truncated to fit: %2$s. This audit reflects partial code — say so if it affects your assessment."
msgstr "El código supera el presupuesto de auditoría inline (%1$d caracteres). Truncado para encajar: %2$s. Esta auditoría refleja código parcial — dilo si afecta a tu valoración."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1064
msgid "This plugin is not installed on the site yet. Install it to make it live."
msgstr "Este plugin todavía no está instalado en el sitio. Instálalo para que esté activo."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1106
msgid "The installed plugin matches the latest library version."
msgstr "El plugin instalado coincide con la última versión de la biblioteca."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1109
msgid "The installed plugin differs from the latest library version (v%1$d). Out-of-date files: %2$s. Reinstall to make the latest version live."
msgstr "El plugin instalado difiere de la última versión de la biblioteca (v%1$d). Archivos desactualizados: %2$s. Reinstálalo para activar la última versión."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1176
msgid "Plugin \"%1$s\" saved (v%2$d)."
msgstr "He guardado el plugin «%1$s» (v%2$d)."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1190
msgid "Your plugin is ready to test in Playground."
msgstr "Tu plugin está listo para probar en Playground."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1191
msgid "Your plugin is saved to the library."
msgstr "He guardado el plugin en la biblioteca."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1192
msgid "Your plugin has been updated."
msgstr "He actualizado el plugin."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1261
msgid "A version is already installed. This will overwrite the existing plugin files. You can activate it afterward from Plugins."
msgstr "Ya hay una versión instalada. Esto sobrescribirá los archivos del plugin. Después puedes activarlo desde Plugins."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1262
msgid "Will install this built plugin on this site without activating it. You can activate it afterward from Plugins."
msgstr "Instalaré este plugin construido en este sitio sin activarlo. Después puedes activarlo desde Plugins."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1356
msgid "A backup plugin is active on this site. Make sure you have a recent backup before installing. Your built plugin is reversible by Lola (each version is a saved revision); the backup is your safety net for everything else."
msgstr "Hay un plugin de copia de seguridad activo en este sitio. Asegúrate de tener una copia reciente antes de instalar. Tu plugin construido es reversible por Lola (cada versión es una revisión guardada); la copia de seguridad es tu red de seguridad para todo lo demás."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1357
msgid "No active backup plugin was detected on this site. Make a recent backup before installing on your live site — a host or staging snapshot also counts. Your built plugin is reversible by Lola (each version is a saved revision); a full-site backup protects everything else. Offer to install a backup plugin (e.g. UpdraftPlus) if the user has none, but do not install it without their go-ahead."
msgstr "No he detectado ningún plugin de copia de seguridad activo en este sitio. Haz una copia reciente antes de instalar en tu sitio real — una instantánea del hosting o del staging también vale. Tu plugin construido es reversible por Lola (cada versión es una revisión guardada); una copia de seguridad completa del sitio protege todo lo demás. Ofrece instalar un plugin de copia de seguridad (p. ej. UpdraftPlus) si el usuario no tiene ninguno, pero no lo instales sin su visto bueno."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1383
msgid "Will move built plugin to trash"
msgstr "Voy a mover el plugin construido a la papelera"

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1391
msgid "Could not move the built plugin to trash."
msgstr "No he podido mover el plugin construido a la papelera."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1407
msgid "Built plugin moved to trash."
msgstr "Plugin construido movido a la papelera."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1413
msgid "Insufficient permissions to manage built plugins."
msgstr "No tienes permisos suficientes para gestionar plugins construidos."

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1514
#: src/PluginBuilder/PostType/PluginPostType.php:166
msgid "Built Plugin"
msgstr "Plugin creado"

#: src/PluginBuilder/Handler/PluginBuilderHandler.php:1715
msgid "I generated code, but it did not pass my internal quality checks. Try breaking your request into smaller steps or providing simpler instructions."
msgstr "He generado código, pero no ha pasado mis comprobaciones internas de calidad. Prueba a dividir tu petición en pasos más pequeños o a dar instrucciones más simples."

#: src/PluginBuilder/Packaging/LocalInstaller.php:111
msgid "I updated the plugin files on this site. Activate it from Plugins when you are ready."
msgstr "He actualizado los archivos del plugin en este sitio. Actívalo desde Plugins cuando quieras."

#: src/PluginBuilder/Packaging/LocalInstaller.php:112
msgid "I installed the plugin files on this site. Activate it from Plugins when you are ready."
msgstr "He instalado los archivos del plugin en este sitio. Actívalo desde Plugins cuando quieras."

#: src/PluginBuilder/Packaging/LocalInstaller.php:131
msgid "Direct activation is not available on multisite."
msgstr "La activación directa no está disponible en multisitio."

#: src/PluginBuilder/Packaging/LocalInstaller.php:135
msgid "Install the plugin on this site before activating it."
msgstr "Instala el plugin en este sitio antes de activarlo."

#: src/PluginBuilder/Packaging/LocalInstaller.php:144
msgid "The plugin main file is missing. Try installing again."
msgstr "Falta el archivo principal del plugin. Prueba a instalarlo otra vez."

#: src/PluginBuilder/Packaging/LocalInstaller.php:153
msgid "This plugin is already active."
msgstr "Este plugin ya está activo."

#: src/PluginBuilder/Packaging/LocalInstaller.php:166
msgid "I could not activate the plugin: %s"
msgstr "No he podido activar el plugin: %s"

#: src/PluginBuilder/Packaging/LocalInstaller.php:178
msgid "The plugin is now active."
msgstr "El plugin ya está activo."

#: src/PluginBuilder/Packaging/LocalInstaller.php:304
msgid "Could not write the plugin PHP file."
msgstr "No he podido escribir el archivo PHP del plugin."

#: src/PluginBuilder/Packaging/LocalInstaller.php:305
msgid "Could not write the plugin JavaScript file."
msgstr "No he podido escribir el archivo JavaScript del plugin."

#: src/PluginBuilder/Packaging/LocalInstaller.php:306
msgid "Could not write the plugin CSS file."
msgstr "No he podido escribir el archivo CSS del plugin."

#: src/PluginBuilder/Packaging/LocalInstaller.php:307
msgid "Could not create the plugin directory."
msgstr "No he podido crear el directorio del plugin."

#: src/PluginBuilder/Packaging/LocalInstaller.php:350
msgid "WooCommerce must be active before I can activate this plugin."
msgstr "WooCommerce tiene que estar activo antes de que yo pueda activar este plugin."

#: src/PluginBuilder/Playground/BlueprintGenerator.php:124
msgid "Built plugin PHP is missing."
msgstr "Falta el PHP del plugin construido."

#: src/PluginBuilder/PostType/PluginPostType.php:106
#: src/PluginBuilder/PostType/PluginPostType.php:107
#: src/PluginBuilder/PostType/PluginPostType.php:165
#: src/PluginBuilder/PostType/PluginPostType.php:167
msgid "My Built Plugins"
msgstr "Mis plugins creados"

#: src/PluginBuilder/PostType/PluginPostType.php:169
msgid "Add New Plugin"
msgstr "Añadir nuevo plugin"

#: src/PluginBuilder/PostType/PluginPostType.php:170
msgid "Edit Plugin"
msgstr "Editar plugin"

#: src/PluginBuilder/PostType/PluginPostType.php:171
msgid "New Plugin"
msgstr "Nuevo plugin"

#: src/PluginBuilder/PostType/PluginPostType.php:172
msgid "View Plugin"
msgstr "Ver plugin"

#: src/PluginBuilder/PostType/PluginPostType.php:173
msgid "Search Plugins"
msgstr "Buscar plugins"

#: src/PluginBuilder/PostType/PluginPostType.php:174
msgid "No built plugins found."
msgstr "No hay plugins creados."

#: src/PluginBuilder/PostType/PluginPostType.php:175
msgid "No built plugins found in Trash."
msgstr "No hay plugins creados en la papelera."

#: templates/addons-page.php:17
msgid "Lola learns by addon. Each one adds a domain: store operations, code, support tickets, email marketing. Install what your site needs and skip what it doesn't."
msgstr "Lola aprende por addons. Cada uno añade un oficio: operaciones de tienda, código, tickets de soporte, email marketing. Instala lo que tu sitio necesita y olvídate del resto."

#: templates/addons-page.php:38
msgid "memory · store · code"
msgstr "memoria · tienda · código"

#: templates/addons-page.php:39
msgid "Answer from history"
msgstr "Responder desde el historial"

#: templates/addons-page.php:40
msgid "In January you ask how the holiday sale went. Lola answers with revenue, coupon usage, and how many Black Friday customers came back — and notes she reused that campaign's banner snippet. She didn't re-scan anything. She remembered."
msgstr "En enero preguntas qué tal fue la campaña navideña. Lola responde con la facturación, el uso del cupón y cuántos clientes del Black Friday repitieron, y de paso apunta que reutilizó el snippet del banner de aquella campaña. No volvió a escanear nada. Lo recordaba."

#: templates/addons-page.php:46
msgid "tickets · store · campaigns"
msgstr "tickets · tienda · campañas"

#: templates/addons-page.php:47
msgid "Turn tickets into sales"
msgstr "Convertir tickets en ventas"

#: templates/addons-page.php:48
msgid "Five tickets in one week ask how to do something your premium product already handles. Lola spots the pattern, checks what each customer bought, and drafts a personal reply with the upgrade they're missing. The support queue starts paying for itself."
msgstr "Cinco tickets en una semana preguntan cómo hacer algo que tu producto premium ya resuelve. Lola detecta el patrón, comprueba qué compró cada cliente y redacta una respuesta personal con la mejora que les falta. La cola de soporte empieza a pagarse sola."

#: templates/addons-page.php:54
msgid "code · store · tickets · campaigns"
msgstr "código · tienda · tickets · campañas"

#: templates/addons-page.php:55
msgid "Trace the cause"
msgstr "Rastrear la causa"

#: templates/addons-page.php:56
msgid "A snippet breaks the checkout overnight and tickets start coming in. Lola traces them to the broken line, fixes it, drafts the replies, refunds the failed order, and excludes the affected customers from today's email sequence. One conversation."
msgstr "Un snippet rompe el checkout de madrugada y empiezan a llegar tickets. Lola los rastrea hasta la línea rota, la corrige, redacta las respuestas, reembolsa el pedido fallido y excluye a los clientes afectados de la secuencia de email de hoy. Una sola conversación."

#: templates/addons-page.php:70
msgid "One memory, every domain"
msgstr "Una memoria, todos los dominios"

#: templates/addons-page.php:72
msgid "Each addon teaches Lola one domain. Active together, they stop being separate jobs: Lola's memory is shared, so the store, the code, the tickets, and the campaigns become one picture — causes and effects included."
msgstr "Cada addon le enseña a Lola un dominio. Activos a la vez, dejan de ser trabajos separados: la memoria de Lola es compartida, así que la tienda, el código, los tickets y las campañas se convierten en una sola imagen, con sus causas y sus efectos."

#: templates/addons-page.php:86
msgid "Nothing to configure. Addons share Lola's memory automatically while they're active — each one you add widens what she can connect."
msgstr "No hay nada que configurar. Los addons comparten la memoria de Lola automáticamente mientras están activos; cada uno que añades amplía lo que puede conectar."

#: templates/addons-page.php:91
msgid "How cross-domain intelligence works →"
msgstr "Cómo funciona la inteligencia cross-domain →"

#: templates/partials/addon-catalog-card.php:31
#: templates/settings-page.php:329
msgid "FREE ADDON"
msgstr "ADDON GRATUITO"

#: templates/partials/addon-catalog-card.php:33
#: templates/settings-page.php:327
msgid "PREMIUM ADDON"
msgstr "PREMIUM ADDON"

#: templates/partials/addon-catalog-card.php:36
msgid "Works with your site"
msgstr "Compatible con tu sitio"

#: templates/partials/addon-catalog-card.php:43
#: templates/settings-page.php:318
msgid "%s abilities"
msgstr "%s habilidades"

#: templates/partials/addon-catalog-card.php:52
#: templates/settings-page.php:338
msgid "Configure →"
msgstr "Configurar →"

#: templates/partials/addon-catalog-card.php:53
#: templates/settings-page.php:334
msgid "Manage license →"
msgstr "Gestionar licencia →"

#: templates/partials/addon-catalog-card.php:57
msgid "Install from WordPress.org →"
msgstr "Instalar desde WordPress.org →"

#: templates/partials/addon-catalog-card.php:61
msgid "View on WordPress.org →"
msgstr "Ver en WordPress.org →"

#: templates/partials/addon-catalog-card.php:65
#: templates/partials/addon-catalog-card.php:71
msgid "Learn more →"
msgstr "Más información →"

#: templates/partials/addon-catalog-card.php:70
msgid "Download free →"
msgstr "Descárgalo gratis →"

#: templates/settings-page.php:27
msgid "Never"
msgstr "Nunca"

#: templates/settings-page.php:106
#: templates/settings-page.php:211
msgid "Lola Avatar"
msgstr "Avatar de Lola"

#: templates/settings-page.php:109
msgid "Lola Configuration"
msgstr "Configuración de Lola"

#: templates/settings-page.php:110
msgid "Your AI admin agent. Configure once and forget — Lola remembers the rest."
msgstr "Tu agente de administración IA. Configúralo una vez y olvídate, Lola recuerda el resto."

#: templates/settings-page.php:114
msgid "MEMORY ACTIVE"
msgstr "MEMORIA ACTIVA"

#: templates/settings-page.php:116
msgid "NO MEMORY"
msgstr "SIN MEMORIA"

#: templates/settings-page.php:118
msgid "PLUGINS"
msgstr "PLUGINS"

#: templates/settings-page.php:120
msgid "UPDATES"
msgstr "ACTUALIZACIONES"

#: templates/settings-page.php:133
msgid "Lola's Brain (AI Model)"
msgstr "El cerebro de Lola (modelo IA)"

#: templates/settings-page.php:139
msgid "Lola uses the AI model configured in your WordPress installation. You can add or change providers in %s."
msgstr "Lola usa el modelo IA configurado en tu instalación de WordPress. Puedes añadir o cambiar proveedores en %s."

#: templates/settings-page.php:140
msgid "Settings › Connectors"
msgstr "Ajustes › Conectores"

#: templates/settings-page.php:146
msgid "Preferred model for Lola:"
msgstr "Modelo preferido para Lola:"

#: templates/settings-page.php:149
msgid "Automatic (use WordPress default)"
msgstr "Automático (usar el predeterminado de WordPress)"

#: templates/settings-page.php:161
msgid "No AI providers connected yet."
msgstr "Todavía no hay proveedores de IA conectados."

#: templates/settings-page.php:162
msgid "Connect one now →"
msgstr "Conecta uno ahora →"

#: templates/settings-page.php:164
msgid "Select which model Lola will use. \"Automatic\" uses the first available text generation model."
msgstr "Selecciona qué modelo usará Lola. \"Automático\" usa el primer modelo de generación de texto disponible."

#: templates/settings-page.php:174
msgid "Communication Style"
msgstr "Estilo de comunicación"

#: templates/settings-page.php:176
msgid "How do you prefer Lola to talk to you?"
msgstr "¿Cómo prefieres que Lola te hable?"

#: templates/settings-page.php:182
msgid "Technical"
msgstr "Técnico"

#: templates/settings-page.php:183
msgid "Development terminology, shows code, doesn't explain basics."
msgstr "Terminología de desarrollo, muestra código, no explica lo básico."

#: templates/settings-page.php:189
msgid "Professional"
msgstr "Profesional"

#: templates/settings-page.php:190
msgid "Clear language, explains technical decisions without jargon."
msgstr "Lenguaje claro, explica decisiones técnicas sin jerga."

#: templates/settings-page.php:196
msgid "Direct"
msgstr "Directo"

#: templates/settings-page.php:197
msgid "Minimal explanations, maximum action."
msgstr "Mínimas explicaciones, máxima acción."

#: templates/settings-page.php:207
msgid "Lola's Avatar"
msgstr "Avatar de Lola"

#: templates/settings-page.php:214
msgid "Change Avatar"
msgstr "Cambiar avatar"

#: templates/settings-page.php:215
msgid "Restore Default"
msgstr "Restaurar por defecto"

#: templates/settings-page.php:218
msgid "Formats: JPG, PNG, WebP. Recommended: 128×128px."
msgstr "Formatos: JPG, PNG, WebP. Recomendado: 128×128px."

#: templates/settings-page.php:227
msgid "Memory Settings"
msgstr "Ajustes de memoria"

#: templates/settings-page.php:229
msgid "Configure how Lola stores and forgets information about your site."
msgstr "Configura cómo Lola almacena y olvida información sobre tu sitio."

#: templates/settings-page.php:233
msgid "Decay Rate"
msgstr "Tasa de decaimiento"

#: templates/settings-page.php:238
msgid "How fast old facts are forgotten. Default 0.02."
msgstr "Velocidad a la que se olvidan los hechos antiguos. Por defecto 0.02."

#: templates/settings-page.php:242
msgid "Archive Threshold"
msgstr "Umbral de archivo"

#: templates/settings-page.php:247
msgid "Score below which a fact is archived. Default 0.10."
msgstr "Puntuación por debajo de la cual se archiva un hecho. Por defecto 0.10."

#: templates/settings-page.php:251
msgid "Max Context Entries"
msgstr "Máximo de entradas de contexto"

#: templates/settings-page.php:256
msgid "Maximum memory facts injected into the system prompt. Default 20."
msgstr "Número máximo de hechos de memoria inyectados en el system prompt. Por defecto 20."

#: templates/settings-page.php:260
msgid "Log Retention Days"
msgstr "Días de retención de logs"

#: templates/settings-page.php:265
msgid "How long to keep action logs. Default 90."
msgstr "Tiempo de conservación de los registros de acciones. Por defecto 90."

#: templates/settings-page.php:271
msgid "Restore Memory Defaults"
msgstr "Restaurar valores de memoria por defecto"

#: templates/settings-page.php:279
msgid "%1$s facts in memory. Last maintenance: %2$s."
msgstr "%1$s hechos en memoria. Último mantenimiento: %2$s."

#: templates/settings-page.php:299
msgid "What Lola Can Do"
msgstr "Qué puede hacer Lola"

#: templates/settings-page.php:304
msgid "%1$s abilities across %2$s domains. Enable or disable categories based on your needs."
msgstr "%1$s habilidades en %2$s dominios. Activa o desactiva categorías según tus necesidades."

#: templates/settings-page.php:355
msgid "View all %s abilities ↓"
msgstr "Ver todas las %s habilidades ↓"

#: templates/settings-page.php:389
msgid "Expansions"
msgstr "Expansiones"

#: templates/settings-page.php:391
msgid "Addons that teach Lola new domains. Each one is built for a specific plugin on your site."
msgstr "Addons que le enseñan a Lola nuevos oficios. Cada uno está hecho para un plugin concreto de tu sitio."

#: templates/settings-page.php:410
msgid "Safety & Confirmations"
msgstr "Seguridad y confirmaciones"

#: templates/settings-page.php:412
msgid "Configure when Lola requires your explicit approval to act."
msgstr "Configura cuándo Lola necesita tu aprobación explícita para actuar."

#: templates/settings-page.php:416
msgid "Confirm before every write action"
msgstr "Confirmar antes de cada acción de escritura"

#: templates/settings-page.php:417
msgid "Recommended. If disabled, Lola will execute actions without asking."
msgstr "Recomendado. Si lo desactivas, Lola ejecutará las acciones sin preguntar."

#: templates/settings-page.php:417
msgid "Disclaimer: Lola is an AI and can make mistakes."
msgstr "Aviso: Lola es una IA y puede cometer errores."

#: templates/settings-page.php:426
msgid "Block destructive actions without verified backup"
msgstr "Bloquear acciones destructivas sin copia de seguridad verificada"

#: templates/settings-page.php:427
msgid "Lola checks for a recent backup before deleting content."
msgstr "Lola comprueba que haya una copia de seguridad reciente antes de eliminar contenido."

#: templates/settings-page.php:436
msgid "Learning mode"
msgstr "Modo aprendizaje"

#: templates/settings-page.php:437
msgid "Lola explains what she's about to do before showing the preview, so you understand each action."
msgstr "Lola explica lo que va a hacer antes de mostrar la vista previa, para que entiendas cada acción."

#: templates/settings-page.php:446
msgid "Save Safety Settings"
msgstr "Guardar ajustes de seguridad"

#: templates/settings-page.php:455
msgid "Maintenance"
msgstr "Mantenimiento"

#: templates/settings-page.php:457
msgid "Manual controls for database and memory health."
msgstr "Controles manuales para la salud de la base de datos y la memoria."

#: templates/settings-page.php:460
msgid "Re-scan site"
msgstr "Re-analizar sitio"

#: templates/settings-page.php:461
msgid "Export memory"
msgstr "Exportar memoria"

#: templates/settings-page.php:462
msgid "Import memory"
msgstr "Importar memoria"

#: templates/settings-page.php:463
msgid "Compact memory"
msgstr "Compactar memoria"

#: templates/settings-page.php:464
msgid "Wipe all memory"
msgstr "Borrar toda la memoria"

#: templates/settings-page.php:469
msgid "OK"
msgstr "OK"

#: templates/settings-page.php:473
msgid "Last maintenance: %s"
msgstr "Último mantenimiento: %s"

#: templates/settings-page.php:484
msgid "Discard"
msgstr "Descartar"

#: templates/settings-page.php:485
msgid "Save Changes"
msgstr "Guardar cambios"

#: templates/settings-page.php:494
msgid "⚠️ Wipe All Memory"
msgstr "⚠️ Borrar toda la memoria"

#: templates/widget-chat.php:43
msgid "Send message"
msgstr "Enviar mensaje"

#: src/Actions/ToolSchemaGenerator.php
msgid "Retrieves general status of the WordPress site (versions, SSL, active theme, active plugins count, DB size)."
msgstr "Obtiene el estado general del sitio WordPress: versiones, SSL, tema activo, número de plugins activos y tamaño de la BD."

#: src/Actions/ToolSchemaGenerator.php
msgid "Retrieves a list of all installed plugins, their active status, and if they have updates available."
msgstr "Obtiene la lista de todos los plugins instalados, su estado de activación y si tienen actualizaciones disponibles."

#: src/Actions/ToolSchemaGenerator.php
msgid "Retrieves database metrics like size, number of revisions, and transients."
msgstr "Obtiene métricas de la base de datos: tamaño, número de revisiones y transients."

#: src/Actions/ToolSchemaGenerator.php
msgid "Retrieves specific non-sensitive WordPress options by key."
msgstr "Obtiene opciones de WordPress no sensibles por clave."

#: src/Actions/ToolSchemaGenerator.php
msgid "Retrieves posts, pages, or custom post types with full body content (HTML), excerpt, slug, and dates. Use post_type parameter to target specific types."
msgstr "Obtiene entradas, páginas o tipos de post personalizados con el contenido completo (HTML), extracto, slug y fechas. Usa el parámetro post_type para especificar el tipo."

#: src/Actions/ToolSchemaGenerator.php
msgid "Performs a comprehensive SEO audit: missing meta descriptions, images without alt text, permalink structure, search engine visibility. Returns findings by severity (critical, warning, info)."
msgstr "Realiza una auditoría SEO completa: meta descripciones ausentes, imágenes sin texto alternativo, estructura de permalinks y visibilidad en buscadores. Devuelve los hallazgos por severidad (critical, warning, info)."

#: src/Actions/ToolSchemaGenerator.php
msgid "Performs a security audit: exposed debug.log, WP_DEBUG status, weak admin usernames, XML-RPC, file editor access, WP version exposure. Returns findings with severity and recommendations."
msgstr "Realiza una auditoría de seguridad: debug.log expuesto, estado de WP_DEBUG, usuarios administrador débiles, XML-RPC, acceso al editor de archivos y exposición de la versión de WP. Devuelve los hallazgos con severidad y recomendaciones."

#: src/Actions/ToolSchemaGenerator.php
msgid "Searches the WordPress.org plugin repository by keyword. Returns top results with name, slug, version, active installs, rating, and compatibility. Use this to find plugins before installing."
msgstr "Busca en el repositorio de plugins de WordPress.org por palabra clave. Devuelve los mejores resultados con nombre, slug, versión, instalaciones activas, valoración y compatibilidad. Úsala para encontrar plugins antes de instalarlos."

#: src/Actions/ToolSchemaGenerator.php
msgid "Reads meta values for a specific post, page, or product. Can return all meta or specific keys. Useful for reading plugin data like Yoast SEO fields, WooCommerce product data, ACF custom fields, etc."
msgstr "Lee los valores meta de una entrada, página o producto específico. Puede devolver todos los meta o claves concretas. Útil para leer datos de plugins como campos de Yoast SEO, datos de productos WooCommerce, campos personalizados de ACF, etc."

#: src/Actions/ToolSchemaGenerator.php
msgid "Retrieves a list of WordPress users with their roles and IDs."
msgstr "Obtiene la lista de usuarios de WordPress con sus roles e IDs."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists all WordPress roles with their display names, user count, and capabilities. Use this to understand what permissions each role has before creating or modifying roles."
msgstr "Lista todos los roles de WordPress con sus nombres, número de usuarios y capacidades. Úsala para entender qué permisos tiene cada rol antes de crearlos o modificarlos."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists categories, tags, or custom taxonomies with their terms and hierarchy."
msgstr "Lista categorías, etiquetas o taxonomías personalizadas con sus términos y jerarquía."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists WordPress comments. Can filter by status (approve, hold, spam, trash)."
msgstr "Lista los comentarios de WordPress. Puede filtrar por estado (approve, hold, spam, trash)."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists files in the WordPress Media Library (images, PDFs, videos)."
msgstr "Lista los archivos de la Biblioteca de medios de WordPress (imágenes, PDFs, vídeos)."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists all registered WordPress navigation menus and their items (links, pages, categories). Shows menu locations and item hierarchy."
msgstr "Lista todos los menús de navegación registrados en WordPress y sus elementos (enlaces, páginas, categorías). Muestra las ubicaciones de los menús y la jerarquía de elementos."

#: src/Actions/ToolSchemaGenerator.php
msgid "Retrieves grouped WordPress site settings in a structured payload: General (blogname, description, timezone, language, date/time format), Reading (posts_per_page, show_on_front, page_on_front), Discussion (comments, moderation), and Permalinks."
msgstr "Obtiene los ajustes del sitio WordPress agrupados: General (blogname, description, timezone, language, date/time format), Lectura (posts_per_page, show_on_front, page_on_front), Comentarios (comments, moderation) y Permalinks."

#: src/Actions/ToolSchemaGenerator.php
msgid "Gets info about the active WordPress theme and lists all installed themes with name, version, update availability, and parent/child relationships."
msgstr "Obtiene información sobre el tema activo de WordPress y lista todos los temas instalados con nombre, versión, disponibilidad de actualización y relaciones padre/hijo."

#: src/Actions/ToolSchemaGenerator.php
msgid "Searches themes on the WordPress.org repository by keyword. Returns name, slug, version, author, description, rating, downloads, and PHP/WP requirements for up to 10 themes. Use the returned slug with installTheme."
msgstr "Busca temas en el repositorio de WordPress.org por palabra clave. Devuelve nombre, slug, versión, autor, descripción, valoración, descargas y requisitos PHP/WP para hasta 10 temas. Usa el slug devuelto con installTheme."

#: src/Actions/ToolSchemaGenerator.php
msgid "Generates a WordPress WXR (XML) export of posts, pages, or a specific custom post type. Returns a temporary download URL valid for 1 hour."
msgstr "Genera una exportación WordPress WXR (XML) de entradas, páginas o un tipo de post personalizado específico. Devuelve una URL de descarga temporal válida durante 1 hora."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists WooCommerce products with name, price, stock status, and type. Only available if WooCommerce is active."
msgstr "Lista los productos de WooCommerce con nombre, precio, estado de stock y tipo. Solo disponible si WooCommerce está activo."

#: src/Actions/ToolSchemaGenerator.php
msgid "Gets detailed info for a single WooCommerce product: price, stock, SKU, categories, attributes, dimensions, weight, images, and sales data."
msgstr "Obtiene información detallada de un producto WooCommerce: precio, stock, SKU, categorías, atributos, dimensiones, peso, imágenes y datos de ventas."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists WooCommerce orders with status, total, customer, and date. Only available if WooCommerce is active."
msgstr "Lista los pedidos de WooCommerce con estado, total, cliente y fecha. Solo disponible si WooCommerce está activo."

#: src/Actions/ToolSchemaGenerator.php
msgid "Gets full details of a single WooCommerce order: line items, shipping, billing address, payment method, totals, and notes."
msgstr "Obtiene los detalles completos de un pedido WooCommerce: líneas de pedido, envío, dirección de facturación, método de pago, totales y notas."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists WooCommerce customers with name, email, order count, and total spent. Only available if WooCommerce is active."
msgstr "Lista los clientes de WooCommerce con nombre, email, número de pedidos y total gastado. Solo disponible si WooCommerce está activo."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists WooCommerce product categories with name, slug, hierarchy, and product count. Only available if WooCommerce is active."
msgstr "Lista las categorías de productos de WooCommerce con nombre, slug, jerarquía y número de productos. Solo disponible si WooCommerce está activo."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists WooCommerce discount coupons with code, type, amount, usage count, usage limit, and expiry date. Only available if WooCommerce is active."
msgstr "Lista los cupones de descuento de WooCommerce con código, tipo, importe, usos realizados, límite de uso y fecha de caducidad. Solo disponible si WooCommerce está activo."

#: src/Actions/ToolSchemaGenerator.php
msgid "Returns a sales performance summary: total sales, net revenue, order count, items sold, and top-selling products. Only available if WooCommerce is active."
msgstr "Devuelve un resumen del rendimiento de ventas: total de ventas, ingresos netos, número de pedidos, artículos vendidos y productos más vendidos. Solo disponible si WooCommerce está activo."

#: src/Actions/ToolSchemaGenerator.php
msgid "Saves a fact to Lola's persistent memory (survives across sessions). Call when user asks to remember something, or when a significant decision/preference/config happens. Classify accurately."
msgstr "Guarda un hecho en la memoria persistente de Lola (se mantiene entre sesiones). Úsala cuando el usuario pida recordar algo o cuando ocurra una decisión, preferencia o configuración significativa. Clasifica con precisión."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists plugins generated by Plugin Builder and stored in the LolaCore library (lolacore_plugin CPT). Returns post_id, name, slug, version, confidence score, and last modified date. Call this before updating, testing, installing, or deleting a built plugin so you use real post IDs."
msgstr "Lista los plugins generados por Plugin Builder y guardados en la biblioteca de LolaCore (CPT lolacore_plugin). Devuelve post_id, name, slug, version, puntuación de confianza y fecha de última modificación. Llámalo antes de actualizar, probar, instalar o borrar un plugin construido para usar IDs de post reales."

#: src/Actions/ToolSchemaGenerator.php
msgid "Returns a WordPress Playground URL to test a built plugin in an isolated environment. Use only when the user explicitly asks to regenerate a Playground link outside the saved plugin card. After createPlugin or updatePluginCode, the chat card handles Playground automatically — do not call this tool."
msgstr "Devuelve una URL de WordPress Playground para probar un plugin construido en un entorno aislado. Úsalo solo cuando el usuario pida explícitamente regenerar un enlace de Playground fuera de la tarjeta del plugin guardado. Tras createPlugin o updatePluginCode, la tarjeta del chat gestiona Playground automáticamente — no llames a esta herramienta."

#: src/Actions/ToolSchemaGenerator.php
msgid "Lists blocks generated by Block Builder and stored in the LolaCore library (lolacore_block CPT). Returns post_id, name, block_name, version, and last modified date."
msgstr "Lista los bloques generados por Block Builder y guardados en la biblioteca de LolaCore (CPT lolacore_block). Devuelve post_id, name, block_name, version y fecha de última modificación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Loads the saved block file map (block.json, edit.js, style.css, render.php) for one built block. Read-only. Requires post_id from listBuiltBlocks."
msgstr "Carga el mapa de archivos guardado (block.json, edit.js, style.css, render.php) de un bloque construido. Solo lectura. Requiere post_id de listBuiltBlocks."

#: src/Actions/ToolSchemaGenerator.php
msgid "Reads the block actually installed in wp-content/lolacore-blocks on this site and compares it to the latest library version. Read-only."
msgstr "Lee el bloque realmente instalado en wp-content/lolacore-blocks en este sitio y lo compara con la última versión de la biblioteca. Solo lectura."

#: src/Actions/ToolSchemaGenerator.php
msgid "Returns a WordPress Playground URL to test a built block in isolation."
msgstr "Devuelve una URL de WordPress Playground para probar un bloque construido de forma aislada."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates a built plugin in the Plugin Builder library. Two modes. (1) In the wp-admin chat: provide a natural-language description and Lola generates a three-file plugin (PHP, JS, CSS) via the site AI, runs a security review, and saves it; pass an optional prd so it fits this exact site. (2) From a programmatic client over MCP (a code editor): provide the exact plugin source in php (and optionally js/css) and it is stored VERBATIM with NO AI generation, after the same deterministic static safety check — because the external agent already wrote the code, the server must not re-derive it. The literal-code mode is honored ONLY for MCP/REST calls; in the chat the code fields are ignored and a description is required. After saving (either mode) the plugin must still be tested in Playground and attested before installPluginLocal."
msgstr "Crea un plugin construido en la biblioteca del Plugin Builder. Dos modos. (1) En el chat de wp-admin: describe en lenguaje natural y Lola genera un plugin de tres archivos (PHP, JS, CSS) con la IA del sitio, pasa la revisión de seguridad y lo guarda; puedes pasar un PRD opcional para que encaje con este sitio. (2) Desde un cliente programático por MCP (un editor de código): envía el código exacto en php (y opcionalmente js/css) y se guarda TAL CUAL sin generación por IA, tras la misma comprobación estática de seguridad — el agente externo ya escribió el código y el servidor no debe rehacerlo. El modo código literal solo aplica en llamadas MCP/REST; en el chat se ignoran los campos de código y hace falta una descripción. Tras guardar (en cualquier modo) el plugin debe probarse en Playground y attestarse antes de installPluginLocal."

#: src/Actions/ToolSchemaGenerator.php
msgid "Iterates on an existing built plugin (post_id from listBuiltPlugins), saving a new revision and incrementing the version. Two modes. (1) In the wp-admin chat: provide an instruction and Lola applies it to the saved code via the site AI and re-reviews security. (2) From a programmatic client over MCP: provide the exact new source in php (and optionally js/css) and it is stored VERBATIM with NO AI; the instruction is kept as the revision note. The literal-code mode is honored ONLY for MCP/REST calls; in the chat the code fields are ignored."
msgstr "Itera sobre un plugin construido existente (post_id de listBuiltPlugins), guarda una nueva revisión e incrementa la versión. Dos modos. (1) En el chat de wp-admin: da una instrucción y Lola la aplica al código guardado con la IA del sitio y vuelve a revisar la seguridad. (2) Desde un cliente programático por MCP: envía el código nuevo exacto en php (y opcionalmente js/css) y se guarda TAL CUAL sin IA; la instrucción queda como nota de revisión. El modo código literal solo aplica en llamadas MCP/REST; en el chat se ignoran los campos de código."

#: src/Actions/ToolSchemaGenerator.php
msgid "Installs a built plugin from the library into wp-content/plugins on THIS site without activating it. Only available after the user attested Playground testing for the current version. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Instala un plugin construido desde la biblioteca en wp-content/plugins en ESTE sitio sin activarlo. Solo disponible después de que el usuario haya atestado la prueba en Playground de la versión actual. DEBES llamar a esta herramienta para ejecutar esta acción. El sistema se detendrá automáticamente y pedirá permiso al usuario."

#: src/Actions/ToolSchemaGenerator.php
msgid "Moves a built plugin library entry to trash. Does not uninstall a plugin already copied to wp-content/plugins. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Manda a la papelera una entrada de plugin construido de la biblioteca. No desinstala un plugin que ya se haya copiado en wp-content/plugins. DEBES llamar a esta herramienta para ejecutar esta acción. El sistema se detendrá automáticamente y pedirá permiso al usuario."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates a built block in the Block Builder library. Chat mode: provide a structured spec (title, slug, attributes, dynamic, inner_blocks, supports) and the deterministic scaffolder emits block.json + Route 1 assets. MCP mode: provide a literal files map and it is stored verbatim after safety checks."
msgstr "Crea un bloque construido en la biblioteca del Block Builder. Modo chat: proporciona una spec estructurada (title, slug, attributes, dynamic, inner_blocks, supports) y el generador determinista emite block.json + los archivos de Ruta 1. Modo MCP: proporciona un mapa literal de archivos y se guarda tal cual tras las comprobaciones de seguridad."

#: src/Actions/ToolSchemaGenerator.php
msgid "Iterates on a built block (post_id from listBuiltBlocks), saving a new revision. Chat: new spec. MCP: literal files map."
msgstr "Itera sobre un bloque construido (post_id de listBuiltBlocks) y guarda una nueva revisión. Chat: nueva spec. MCP: mapa literal de archivos."

#: src/Actions/ToolSchemaGenerator.php
msgid "Installs a built block into wp-content/lolacore-blocks on this site. LolaCore registers it in the block inserter — no separate plugin entry. Requires Playground attestation for the current library version."
msgstr "Instala un bloque construido en wp-content/lolacore-blocks en este sitio. LolaCore lo registra en el insertador de bloques — sin una entrada de plugin aparte. Requiere la atestación en Playground de la versión actual de la biblioteca."

#: src/Actions/ToolSchemaGenerator.php
msgid "Removes an installed block from wp-content/lolacore-blocks on this site and unregisters it from the block inserter. Does not delete the library entry — use deleteBuiltBlock to trash the catalog copy."
msgstr "Quita un bloque instalado de wp-content/lolacore-blocks en este sitio y lo desregistra del insertador de bloques. No borra la entrada de la biblioteca — usa deleteBuiltBlock para mandar a la papelera la copia del catálogo."

#: src/Actions/ToolSchemaGenerator.php
msgid "Moves a built block library entry to trash. Does not remove files from wp-content/lolacore-blocks — use uninstallBlock for that."
msgstr "Manda a la papelera una entrada de bloque construido de la biblioteca. No quita los archivos de wp-content/lolacore-blocks — usa uninstallBlock para eso."

#: src/Actions/ToolSchemaGenerator.php
msgid "Updates a WordPress plugin to its latest version. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission. Always warn the user about backup before updating."
msgstr "Actualiza un plugin de WordPress a su última versión. Esta acción requiere tu confirmación. Avisa siempre de hacer una copia de seguridad antes de actualizar."

#: src/Actions/ToolSchemaGenerator.php
msgid "Cleans up the WordPress database by removing post revisions, spam comments, orphaned postmeta, and expired transients. Processes in safe batches of 1000 rows to prevent timeouts on large databases. Returns actual space recovered. If interrupted by time limits, reports partial progress — the user can run it again to continue. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission. This is destructive and irreversible."
msgstr "Limpia la base de datos de WordPress eliminando revisiones de posts, comentarios spam, postmeta huérfanos y transients caducados. Procesa en lotes seguros de 1000 filas para evitar timeouts en bases de datos grandes. Devuelve el espacio recuperado. Si se interrumpe por límites de tiempo, informa del progreso parcial y puedes ejecutarla de nuevo para continuar. Esta acción requiere tu confirmación y es destructiva e irreversible."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates a new post or page in WordPress. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Crea una nueva entrada o página en WordPress. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Purges all cache from detected caching plugins (WP Rocket, W3 Total Cache, etc). YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Vacía toda la caché de los plugins de caché detectados (WP Rocket, W3 Total Cache, etc.). Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Activates or deactivates a WordPress plugin. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Activa o desactiva un plugin de WordPress. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Installs a plugin from the WordPress.org repository. Optionally activates it after installation. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Instala un plugin desde el repositorio de WordPress.org. Opcionalmente lo activa tras la instalación. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Updates multiple plugins at once. If no slugs provided, updates ALL plugins with pending updates. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Actualiza varios plugins a la vez. Si no se indican slugs, actualiza TODOS los plugins con actualizaciones pendientes. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Edits an existing post or page. Only modifies the fields explicitly provided. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Edita una entrada o página existente. Solo modifica los campos proporcionados explícitamente. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Moves posts/pages to trash or deletes permanently. Default is trash (recoverable). If permanent=true, warn user about backup. Max 50 posts per call. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Mueve entradas o páginas a la papelera o las elimina de forma permanente. Por defecto va a la papelera (recuperable). Si permanent=true, avisa del backup. Máximo 50 posts por llamada. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates a new user, updates a user role, or deletes a user. For delete, reassign_to is mandatory to prevent content loss. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Crea un nuevo usuario, actualiza su rol o lo elimina. Para eliminar, reassign_to es obligatorio para evitar pérdida de contenido. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates, deletes, or modifies WordPress roles and capabilities. Use getRoles first to inspect existing roles. IMPORTANT: Built-in roles (administrator, editor, author, contributor, subscriber) cannot be deleted. The administrator role's manage_options capability cannot be removed. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Crea, elimina o modifica roles y capacidades de WordPress. Usa getRoles primero para ver los roles existentes. IMPORTANTE: Los roles integrados (administrator, editor, author, contributor, subscriber) no se pueden eliminar. La capacidad manage_options del rol administrator no se puede quitar. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Audits or cleans up WordPress cron jobs. \"audit\" lists all cron jobs and identifies orphaned ones. \"clean_orphaned\" removes cron hooks with no registered callback (leftover from uninstalled plugins). REQUIRES USER CONFIRMATION for clean_orphaned."
msgstr "Audita o limpia los cron jobs de WordPress. \"audit\" lista todos los cron jobs e identifica los huérfanos. \"clean_orphaned\" elimina los hooks de cron sin callback registrado (residuos de plugins desinstalados). Requiere tu confirmación para clean_orphaned."

#: src/Actions/ToolSchemaGenerator.php
msgid "Updates a meta value on a specific post, page, or product. Use this to configure plugin settings per-post: Yoast SEO meta descriptions (_yoast_wpseo_metadesc), WooCommerce prices (_price, _regular_price), ACF fields, etc. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Actualiza un valor meta en una entrada, página o producto específico. Úsala para configurar ajustes de plugins por post: meta descripciones de Yoast SEO (_yoast_wpseo_metadesc), precios de WooCommerce (_price, _regular_price), campos ACF, etc. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates, updates, or deletes taxonomy terms (categories, tags). YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Crea, actualiza o elimina términos de taxonomía (categorías, etiquetas). Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Updates the status of comments (approve, spam, trash) or deletes them permanently. Can operate on multiple comments at once. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Actualiza el estado de los comentarios (approve, spam, trash) o los elimina de forma permanente. Puede operar sobre varios comentarios a la vez. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Uploads (sideloads) a media file from an external URL into the WordPress Media Library. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Sube (sideload) un archivo multimedia desde una URL externa a la Biblioteca de medios de WordPress. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Permanently deletes an attachment from the WordPress Media Library, removing the physical file from the server. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Elimina permanentemente un archivo adjunto de la Biblioteca de medios de WordPress, borrando el archivo físico del servidor. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates a new navigation menu, adds items to an existing menu, or removes items. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Crea un nuevo menú de navegación, añade elementos a uno existente o los elimina. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Changes the active WordPress theme. WARNING: Switching themes may cause loss of theme-specific widgets, menus, and customizer settings. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Cambia el tema activo de WordPress. AVISO: cambiar de tema puede suponer la pérdida de widgets, menús y ajustes del personalizador del tema anterior. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Installs a theme from the WordPress.org repository. The theme is installed but NOT activated automatically — use switchTheme to activate it. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Instala un tema desde el repositorio de WordPress.org. El tema se instala pero NO se activa automáticamente; usa switchTheme para activarlo. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Updates a single installed theme to its latest version from WordPress.org. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Actualiza un tema instalado a su última versión desde WordPress.org. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Updates multiple themes at once. Pass an array of stylesheet names. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Actualiza varios temas a la vez. Pasa un array con los nombres de stylesheet. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Permanently deletes an installed theme from the site. The active theme and the parent of an active child theme cannot be deleted. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Elimina permanentemente un tema instalado del sitio. No se puede eliminar el tema activo ni el tema padre de un tema hijo activo. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Updates a WooCommerce product: price, stock, name, description, status, SKU, categories, etc. Only fields provided will be changed. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Actualiza un producto de WooCommerce: precio, stock, nombre, descripción, estado, SKU, categorías, etc. Solo se modificarán los campos proporcionados. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Changes the status of a WooCommerce order (e.g., processing → completed). Optionally adds an order note. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Cambia el estado de un pedido WooCommerce (p. ej., processing → completed). Opcionalmente añade una nota al pedido. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates a new WooCommerce product (simple). Sets name, prices, stock, SKU, description, and status. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Crea un nuevo producto WooCommerce simple. Establece nombre, precios, stock, SKU, descripción y estado. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates, updates, or deletes WooCommerce product categories. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Crea, actualiza o elimina categorías de productos de WooCommerce. Esta acción requiere tu confirmación."

#: src/Actions/ToolSchemaGenerator.php
msgid "Creates, updates, or deletes WooCommerce discount coupons. YOU MUST call this tool to execute this action. The system will automatically pause and ask the user for permission."
msgstr "Crea, actualiza o elimina cupones de descuento de WooCommerce. Esta acción requiere tu confirmación."
