{
  "_meta": {
    "language": "es",
    "language_name": "Español",
    "version": "1.0",
    "description": "AliothPress Admin Panel — Español"
  },
  "sidebar": {
    "main": "Principal",
    "dashboard": "Panel",
    "content": "Contenido",
    "posts": "Entradas",
    "all_posts": "Todas las entradas",
    "add_new": "Añadir nueva",
    "pages": "Páginas",
    "all_pages": "Todas las páginas",
    "media": "Multimedia",
    "library": "Biblioteca",
    "all_media": "Todos los archivos",
    "upload_new": "Subir nuevo",
    "files": "Archivos",
    "appearance": "Apariencia",
    "themes": "Temas",
    "menus": "Menús",
    "favicon": "Favicon",
    "tools": "Herramientas",
    "ai_assistant": "Asistente IA",
    "seo_tools": "Herramientas SEO y AEO",
    "audit_log": "Registro de actividad",
    "backup": "Copia de seguridad",
    "users": "Usuarios",
    "settings": "Ajustes",
    "system": "Sistema",
    "forms": "Formularios",
    "all_forms": "Todos los formularios",
    "new_form": "Nuevo formulario",
    "newsletter": "Boletín",
    "all_newsletters": "Todas las campañas",
    "new_campaign": "Nueva campaña",
    "admin_panel": "Panel de administración",
    "my_profile": "Mi perfil",
    "logout": "Cerrar sesión",
    "plugins": "Plugins"
  },
  "dashboard": {
    "title": "Panel",
    "greeting": "Hola,",
    "current_version": "Versión {version}",
    "welcome": "Esto es lo que está pasando con tu contenido.",
    "new_post": "Nueva entrada",
    "new_page": "Nueva página",
    "upload_image": "Subir imagen",
    "total_posts": "Total de entradas",
    "published": "Publicadas",
    "drafts": "Borradores",
    "total_pages": "Páginas",
    "total_images": "Imágenes",
    "total_users": "Usuarios",
    "total_forms": "Formularios",
    "new_submissions": "Nuevos envíos",
    "recent_posts": "Entradas recientes",
    "recent_pages": "Páginas recientes",
    "recent_activity": "Actividad reciente",
    "view_all": "Ver todo",
    "no_posts_yet": "Aún no hay entradas.",
    "no_pages_yet": "Aún no hay páginas.",
    "create_first_post": "¡Crea tu primera entrada!",
    "create_first_page": "¡Crea tu primera página!",
    "no_activity": "Aún no se ha registrado actividad.",
    "updated": "Actualizado",
    "edit": "Editar →",
    "update_available": "¡Hay una nueva versión de AliothPress disponible!",
    "update_now": "Actualizar ahora",
    "update_confirm": "Se creará una copia de seguridad completa antes de actualizar. ¿Continuar?",
    "updating": "Actualizando… por favor espera",
    "restart_hint": "Actualización aplicada. Recarga o reinicia tu servidor para ver los cambios.",
    "restarting": "Reiniciando servidor… {seconds}s",
    "reload": "Recargar página",
    "auto_restart": "El servidor se está reiniciando automáticamente. Recarga la página en unos segundos.",
    "manual_restart": "Por favor, reinicia tu servidor para aplicar la actualización.",
    "connection_error": "No se pudo conectar con el servidor de actualizaciones",
    "update_failed": "La actualización falló",
    "update_license_hint": "Las actualizaciones automáticas requieren una licencia activa.",
    "activate_license": "Activar licencia",
    "recent_submissions": "Envíos recientes",
    "view_submission": "Ver →"
  },
  "posts": {
    "title": "Todas las entradas",
    "subtitle": "Gestiona las entradas de tu blog",
    "new_post": "Añadir nueva entrada",
    "create_new": "Crear nueva entrada",
    "start_writing": "Empieza a escribir tu contenido",
    "edit_post": "Editar entrada",
    "edit_subtitle": "Edita tu entrada y optimízala para SEO",
    "no_posts": "No se encontraron entradas",
    "create_first": "Crea tu primera entrada para comenzar",
    "create_first_btn": "Crear primera entrada",
    "try_adjusting": "Prueba a ajustar tus filtros",
    "clear_filters": "Limpiar filtros",
    "search_placeholder": "Buscar entradas...",
    "delete_confirm": "¿Estás seguro de que quieres eliminar \"{title}\"? Esta acción no se puede deshacer.",
    "duplicate_confirm": "¿Crear una copia de \"{title}\"?\n\nSe creará un nuevo borrador con todo el contenido y la estructura.",
    "usage_warning": "⚠️ Otro contenido enlaza a esta entrada:",
    "usage_confirm_delete": "Todos los enlaces internos serán eliminados (el texto se conserva, los enlaces se eliminan) y los elementos del menú serán borrados. ¿Eliminar de todos modos?"
  },
  "pages": {
    "title": "Todas las páginas",
    "subtitle": "Gestiona las páginas de tu sitio",
    "new_page": "Añadir nueva página",
    "create_new": "Crear nueva página",
    "create_subtitle": "Crea una nueva página para tu sitio",
    "edit_page": "Editar página",
    "edit_subtitle": "Edita tu página y optimízala para SEO",
    "no_pages": "No se encontraron páginas",
    "create_first": "Crea tu primera página para comenzar",
    "create_first_btn": "Crear primera página",
    "try_adjusting": "Prueba a ajustar tus filtros",
    "clear_filters": "Limpiar filtros",
    "search_placeholder": "Buscar páginas...",
    "in_menu": "En menú",
    "delete_confirm": "¿Estás seguro de que quieres eliminar \"{title}\"? Esta acción no se puede deshacer.",
    "duplicate_confirm": "¿Crear una copia de \"{title}\"?\n\nSe creará un nuevo borrador con todo el contenido y la estructura.",
    "usage_warning": "⚠️ Otro contenido enlaza a esta página:",
    "usage_confirm_delete": "Todos los enlaces internos serán eliminados (el texto se conserva, los enlaces se eliminan) y los elementos del menú serán borrados. ¿Eliminar de todos modos?"
  },
  "editor": {
    "title_label": "Título",
    "title_post_placeholder": "Introduce el título de la entrada...",
    "title_page_placeholder": "Introduce el título de la página...",
    "title_help": "Título principal de tu entrada",
    "title_help_page": "Título principal de tu página",
    "slug_label": "Slug (URL)",
    "slug_help": "Déjalo vacío para generarlo automáticamente a partir del título",
    "slug_placeholder": "slug-de-la-url",
    "slug_taken": "Por favor, corrige el slug — ya está en uso.",
    "slug_available": "El slug está disponible",
    "excerpt_label": "Extracto",
    "excerpt_placeholder": "Breve resumen...",
    "excerpt_placeholder_page": "Breve resumen de esta página...",
    "excerpt_help": "Resumen breve (usado en vistas previas y meta descripción)",
    "content_label": "Contenido",
    "content_placeholder": "Escribe tu contenido aquí...",
    "content_required": "¡El contenido es obligatorio!",
    "status_language": "Estado e idioma",
    "status_label": "Estado",
    "status_draft": "Borrador",
    "status_published": "Publicado",
    "language_label": "Idioma",
    "categorization": "Categorización",
    "category_label": "Categoría",
    "category_placeholder_post": "p. ej. Tecnología",
    "category_placeholder_page": "p. ej. Legal",
    "tags_label": "Etiquetas",
    "tags_placeholder": "IA, CMS, Tecnología",
    "tags_help": "Separadas por comas",
    "display_options": "Opciones de visualización",
    "show_date": "Mostrar fecha de publicación en la página",
    "show_author": "Mostrar nombre del autor en la página",
    "display_help": "Esto solo afecta a lo que ven los visitantes. El autor y la fecha siempre se incluyen en las meta etiquetas para SEO.",
    "quick_actions": "Acciones rápidas",
    "save_draft": "Guardar como borrador",
    "publish": "Publicar",
    "save_changes": "Guardar cambios",
    "cancel": "Cancelar",
    "delete_post": "Eliminar entrada",
    "delete_page": "Eliminar página",
    "created": "Creado:",
    "last_updated": "Última actualización:",
    "info": "Info",
    "template_label": "Plantilla",
    "template_default": "Predeterminada",
    "template_full_width": "Ancho completo",
    "template_landing": "Página de aterrizaje",
    "template_landing_narrow": "Aterrizaje estrecho",
    "slug_check_error": "No se pudo verificar el slug.",
    "published": "Publicado:",
    "status_section": "Estado",
    "settings_section": "Ajustes",
    "faq_section": "Sección FAQ (AEO)",
    "faq_help": "Añade preguntas y respuestas para mejorar la citación por IA. Aparecen en la página y generan el esquema FAQPage automáticamente.",
    "faq_question": "Pregunta",
    "faq_answer": "Respuesta",
    "faq_add": "Añadir pregunta",
    "faq_remove": "Eliminar",
    "faq_question_placeholder": "¿Qué es...?",
    "faq_answer_placeholder": "Una respuesta concisa...",
    "posts_page": "Mostrar las últimas entradas en esta página",
    "posts_page_help": "Añade bajo el contenido de la página una lista paginada de las últimas entradas publicadas en el idioma de esta página. Se aplica a todas las traducciones de esta página."
  },
  "aeditor": {
    "tab_visual": "Visual",
    "undo": "Deshacer",
    "redo": "Rehacer",
    "paragraph": "Párrafo",
    "heading": "Encabezado",
    "blockquote": "Cita",
    "bold": "Negrita",
    "italic": "Cursiva",
    "underline": "Subrayado",
    "strikethrough": "Tachado",
    "inline_code": "Código en línea",
    "align_left": "Alinear a la izquierda",
    "align_center": "Centrar",
    "align_right": "Alinear a la derecha",
    "bullet_list": "Lista con viñetas",
    "numbered_list": "Lista numerada",
    "link": "Insertar enlace",
    "link_prompt": "URL del enlace:",
    "unlink": "Quitar enlace",
    "image": "Insertar imagen",
    "image_url_prompt": "URL de la imagen:",
    "image_alt_prompt": "Texto alternativo (accesibilidad):",
    "table": "Insertar tabla",
    "table_size_prompt": "Tamaño de la tabla (columnas x filas):",
    "code_block": "Bloque de código",
    "code_lang_prompt": "Lenguaje (p. ej. python, js — vacío para texto plano):",
    "hr": "Línea horizontal",
    "clear_format": "Borrar formato",
    "fullscreen": "Pantalla completa",
    "words": "palabras",
    "chars": "caracteres",
    "text_color": "Color del texto",
    "bg_color": "Color de resaltado",
    "default_color": "Predeterminado",
    "readonly_hint": "Solo lectura",
    "tab_markdown": "Markdown",
    "tab_html": "HTML",
    "ok": "OK",
    "cancel": "Cancelar",
    "columns": "Columnas",
    "rows": "Filas"
  },
  "seo": {
    "meta_tags": "Meta etiquetas SEO",
    "meta_title": "Meta título",
    "meta_title_placeholder": "Título SEO (máx. 60 caracteres)",
    "meta_title_help": "Título para motores de búsqueda. Déjalo vacío para usar el título de la entrada.",
    "meta_description": "Meta descripción",
    "meta_description_placeholder": "Descripción SEO (máx. 160 caracteres)",
    "meta_description_help": "Descripción para motores de búsqueda (máx. 160 caracteres)",
    "keywords": "Palabras clave",
    "keywords_placeholder": "palabra1, palabra2",
    "keywords_help": "Palabras clave separadas por comas (principalmente como referencia)",
    "canonical_url": "URL canónica",
    "canonical_url_placeholder": "https://...",
    "canonical_url_help": "Configúrala si este contenido fue publicado originalmente en otro lugar",
    "og_section": "Open Graph (Facebook, LinkedIn)",
    "og_title": "Título OG",
    "og_title_placeholder": "Título para compartir en redes sociales",
    "og_title_help": "Título al compartir en Facebook/LinkedIn",
    "og_description": "Descripción OG",
    "og_description_placeholder": "Descripción para compartir en redes sociales",
    "og_image": "URL de imagen OG",
    "og_image_help": "URL de imagen para vista previa en redes sociales (recomendado 1200x630px)",
    "twitter_section": "Tarjeta de Twitter",
    "twitter_title": "Título de Twitter",
    "twitter_description": "Descripción de Twitter",
    "twitter_image": "URL de imagen de Twitter",
    "twitter_image_help": "Imagen para tarjeta de Twitter (recomendado 1200x600px)",
    "schema_section": "Schema.org (datos estructurados)",
    "schema_type": "Tipo de esquema",
    "schema_author": "Nombre del autor",
    "schema_author_help": "Déjalo vacío para usar tu nombre visible",
    "schema_publisher": "Nombre del editor",
    "schema_publisher_help": "Déjalo vacío para usar el nombre del sitio",
    "featured_image": "Imagen destacada",
    "featured_image_url": "URL de imagen",
    "featured_image_alt": "Texto alternativo",
    "featured_image_alt_help": "¡Obligatorio para accesibilidad! Describe la imagen.",
    "featured_image_caption": "Leyenda",
    "featured_image_help": "Imagen principal de esta entrada",
    "featured_image_social_hint": "También se usa como vista previa en redes sociales (OG / Twitter) a menos que se configure una diferente arriba.",
    "meta_title_help_page": "Título para motores de búsqueda (máx. 60 caracteres). Déjalo vacío para usar el título de la página.",
    "og_description_help": "Descripción al compartir en redes sociales",
    "schema_type_help": "Indica a los motores de búsqueda qué tipo de contenido es",
    "og_hint_uses_featured": "La vista previa en redes usará la imagen destacada. El tamaño 1200×630 se genera automáticamente.",
    "og_hint_no_image": "Déjalo vacío si esta página no necesita una imagen de vista previa en redes sociales.",
    "twitter_hint_uses_og": "Usará automáticamente la imagen OG.",
    "twitter_hint_uses_featured": "Usará automáticamente la imagen destacada.",
    "twitter_hint_no_image": "Déjalo vacío si esta página no necesita una imagen de vista previa en redes sociales."
  },
  "translate": {
    "create_translation_post": "Crear una versión traducida de una entrada existente",
    "create_translation_page": "Crear una versión traducida de una página existente",
    "creating_translation": "Creando traducción",
    "translating_from": "Traduciendo desde:",
    "translate_to": "Traducir a",
    "select_language": "Selecciona primero el idioma de destino",
    "no_translations_yet": "Aún no hay traducciones",
    "all_languages_done": "¡Todos los idiomas ya tienen traducción!",
    "existing_translations": "Traducciones existentes",
    "original": "Original:",
    "slug_help": "Déjalo vacío para generarlo automáticamente a partir del título. Original: /{slug}",
    "status_and_slug": "Estado: {status} · Slug: /{slug}",
    "copied_from_source": "Copiado del original. Separadas por comas.",
    "keywords_no_translation": "Palabras clave copiadas del original (generalmente no necesitan traducción)",
    "image_copied": "Imagen copiada del original",
    "open_existing": "¿Abrir la traducción existente?",
    "save_translation_draft": "Guardar traducción como borrador",
    "publish_translation": "Publicar traducción",
    "copy_for_manual": "Copiar para traducción manual",
    "copy_manual_help": "Crea una copia exacta con los textos originales y la estructura completa. No se usan tokens de IA.",
    "instructions_label": "Instrucciones para la IA (opcional)",
    "instructions_placeholder": "p. ej. Usar tono formal, adaptar referencias culturales...",
    "ai_confirm": "¿Crear traducción con IA a {lang}?\n\nSe creará un nuevo borrador con el contenido, título, extracto y todos los campos SEO traducidos.",
    "manual_confirm_post": "¿Crear una copia para {lang}?\n\nSe duplicará la entrada con todo su contenido. Luego podrás traducirla manualmente.\n\nNo se usarán tokens de IA.",
    "manual_confirm_page": "¿Crear una copia para {lang}?\n\nSe duplicará la página con todo su contenido y la estructura del Page Builder. Luego podrás traducirla manualmente.\n\nNo se usarán tokens de IA.",
    "translations_title": "Traducciones",
    "this_version": "esta versión",
    "source_page": "Página de origen",
    "back_to_original": "Volver al original",
    "target_language": "Idioma de destino",
    "create_translation": "Crear traducción",
    "ai_translate_create": "IA: Traducir y crear",
    "ai_translate_help": "Crea una nueva página con contenido traducido por IA (como borrador)",
    "ai_translate_help_post": "Crea una nueva entrada con contenido traducido por IA (como borrador)",
    "ai_translate_all": "IA: Traducir todos los campos",
    "ai_translate_all_help": "Rellena el título, contenido, extracto y todos los campos SEO con traducción por IA. Puedes editar todo antes de guardar.",
    "translating_to": "Traduciendo a {lang}...",
    "select_language_option": "— Seleccionar idioma —",
    "select_language_first": "Por favor, selecciona primero un idioma de destino.",
    "creating_copy": "Creando copia...",
    "translated_title_placeholder": "Título traducido...",
    "translated_excerpt_placeholder": "Extracto traducido...",
    "translated_content_placeholder": "Contenido traducido...",
    "translated_slug_placeholder": "slug-de-url-traducido",
    "title_required": "¡El título es obligatorio!",
    "source_badge": "origen",
    "group_label": "Grupo",
    "redirecting_to_edit": "Redirigiendo a la edición de la traducción..."
  },
  "ai": {
    "title": "Asistente IA",
    "subtitle": "Herramientas con IA para creación de contenido, traducción y optimización SEO",
    "api_config": "Configuración de API",
    "status": "Estado:",
    "connected": "Conectado",
    "not_configured": "No configurado",
    "api_key_label": "Clave API",
    "api_key_placeholder": "sk-ant-api03-...",
    "api_key_help": "Obtén tu clave API en console.anthropic.com. La clave se almacena de forma segura en tu base de datos.",
    "api_key_required": "Clave API requerida",
    "api_key_required_hint": "Configura tu clave API arriba para usar las herramientas de IA.",
    "tools_title": "Herramientas de IA",
    "content_generator": "Generador de contenido",
    "content_generator_desc": "Genera contenido para artículos a partir de una idea o indicación",
    "content_prompt_label": "Describe sobre qué quieres escribir",
    "content_prompt_placeholder": "Escribe una guía completa sobre prácticas de desarrollo web sostenible, incluyendo optimización del rendimiento, alojamiento ecológico y programación eficiente en energía...",
    "output_language": "Idioma de salida",
    "generate_btn": "Generar contenido",
    "translator": "Traductor",
    "translator_desc": "Traduce contenido entre idiomas preservando el formato HTML",
    "content_to_translate": "Contenido a traducir",
    "content_to_translate_placeholder": "Pega tu contenido HTML aquí...",
    "from": "De",
    "to": "A",
    "translate_btn": "Traducir",
    "seo_optimizer": "Optimizador SEO",
    "seo_optimizer_desc": "Genera meta etiquetas, descripciones y datos Open Graph optimizados",
    "post_page_title": "Título de la entrada/página",
    "content_or_excerpt": "Contenido (o extracto)",
    "generate_seo_btn": "Generar campos SEO",
    "ai_working": "La IA está trabajando",
    "result": "Resultado:",
    "copy": "Copiar",
    "copied": "¡Copiado!",
    "ai_generate_content": "IA: Generar contenido",
    "ai_fill_seo": "IA: Rellenar campos SEO",
    "seo_help": "Rellena los campos de SEO, Open Graph y tarjeta de Twitter basándose en tu título y contenido",
    "ai_translate_all": "IA: Traducir todos los campos",
    "seo_filled": "¡Campos SEO rellenados! Revisa las secciones de SEO, Open Graph y Twitter.",
    "could_not_parse": "No se pudo procesar la respuesta de la IA.",
    "generating": "Generando...",
    "generating_seo": "Generando SEO...",
    "translating": "Traduciendo...",
    "prompt_placeholder": "Describe lo que necesitas — tema, tono, puntos clave...",
    "send": "Enviar",
    "apply_result": "Aplicar a la página",
    "apply_to_form": "Aplicar al formulario",
    "new_conversation": "Nueva conversación",
    "new_chat": "Nuevo chat",
    "new_chat_hint": "Iniciar nueva conversación",
    "messages_count": "mensajes",
    "chat_welcome": "¡Hola! Soy tu asistente del CMS. Solo dime qué necesitas — puedo escribir contenido, traducir, optimizar el SEO, diseñar formularios o construir diseños de página. ¡Todo en una misma conversación!",
    "chat_welcome_hint": "Usa las acciones rápidas de arriba para empezar, o simplemente describe lo que necesitas en cualquier idioma.",
    "chip_generate": "Escribe un artículo sobre ",
    "chip_translate": "Traduce esto al ",
    "chip_seo": "Genera campos SEO para mi página sobre ",
    "chip_builder": "Crea un diseño de página para ",
    "chip_form": "Diseña un formulario para ",
    "result_done": "¡Listo! Aquí están los resultados:",
    "error_label": "Error:",
    "connection_error": "Error de conexión:",
    "page_builder": "Page Builder",
    "form_designer": "Diseñador de formularios",
    "task_content": "Contenido",
    "task_translate": "Traducir",
    "task_seo": "SEO",
    "task_builder": "Builder",
    "task_form": "Formulario",
    "result_label": "Resultado",
    "copy_btn": "Copiar",
    "copied_btn": "¡Copiado!",
    "label_title": "Título",
    "label_excerpt": "Extracto",
    "label_meta_title": "Meta título",
    "label_meta_desc": "Meta desc.",
    "label_description": "Descripción",
    "label_fields": "Campos",
    "label_fields_count": "campos",
    "label_content_preview": "Vista previa del contenido:",
    "result_builder_blocks": "Bloques del Builder",
    "result_form_design": "Diseño del formulario",
    "result_generated_content": "Contenido generado",
    "result_seo_fields": "Campos SEO",
    "provider_label": "Proveedor de IA",
    "provider_help": "Selecciona el proveedor de IA para todas las funciones de IA. Puedes guardar claves de todos los proveedores y cambiar en cualquier momento.",
    "key_saved": "guardada",
    "key_keep_hint": "dejar vacío para mantener la actual",
    "key_link_anthropic": "→ Claves API",
    "key_link_deepseek": "→ Claves API",
    "key_link_gemini": "→ Obtener clave API",
    "provider_anthropic": "Anthropic",
    "provider_deepseek": "DeepSeek",
    "provider_gemini": "Gemini",
    "modal_mode_generate": "Generar {content_type} completo",
    "modal_mode_seo": "Generar campos SEO",
    "modal_mode_translate": "Traducir contenido",
    "modal_mode_builder": "Generar diseño de página con bloques",
    "modal_mode_form": "Generar campos de formulario",
    "modal_context_language": "Idioma:",
    "modal_welcome_generate": "Dime de qué debería tratar este {content_type}. Incluye el tema, público objetivo, tono (profesional, informal, técnico...) y los puntos clave a cubrir. Generaré el título, contenido, extracto y todos los campos SEO.",
    "modal_welcome_seo": "Generaré el meta título, descripción, palabras clave y campos Open Graph basándome en tu contenido. Menciona las palabras clave o audiencia objetivo — o simplemente di \"adelante\" para que analice lo que tienes.",
    "modal_welcome_translate": "Traduciré tu contenido preservando todo el formato. Menciona tus preferencias — tono formal/informal, variante regional (p. ej. español de España vs. latinoamericano), o terminología que no debe cambiar. O simplemente di \"adelante\" para una traducción estándar.",
    "modal_welcome_builder": "Describe la página que quieres construir: propósito, secciones (hero, características, testimonios, FAQ, contacto...), contenido y estilo. Cuanto más detalle, mejor será el diseño.",
    "modal_welcome_form": "Describe el formulario que necesitas: cuál es su propósito, qué datos debe recoger y quién lo rellenará. Por ejemplo: \"Formulario de contacto con nombre, email, asunto y mensaje\" o \"Registro de evento con preferencia de fecha y requisitos dietéticos\". Generaré campos, etiquetas, validación y ajustes.",
    "modal_welcome_default": "¿En qué puedo ayudarte?",
    "modal_thinking": "Pensando...",
    "modal_network_error": "Error de red:",
    "modal_summary_generated": "Generado:",
    "modal_summary_title": "Título:",
    "modal_summary_excerpt": "Extracto:",
    "modal_summary_content": "Contenido:",
    "modal_summary_seo_title": "Título SEO:",
    "modal_summary_seo_desc": "Desc. SEO:",
    "modal_summary_blocks": "Bloques:",
    "modal_summary_blocks_count": "bloques generados",
    "modal_summary_fields": "Campos:",
    "modal_summary_fields_count": "campos de formulario generados",
    "modal_summary_submit": "Enviar:"
  },
  "media": {
    "library_title": "Biblioteca multimedia",
    "library_subtitle": "Gestiona tus imágenes",
    "upload_title": "Subir imagen",
    "upload_subtitle": "Añade una nueva imagen a tu biblioteca multimedia",
    "edit_title": "Editar imagen",
    "edit_subtitle": "Actualiza los metadatos y la información de accesibilidad de la imagen",
    "upload_btn": "Subir",
    "upload_image_btn": "Subir imagen",
    "upload_first": "Subir primera imagen",
    "select_image": "Seleccionar imagen",
    "choose_btn": "Elegir",
    "no_images": "Aún no hay imágenes",
    "no_images_text": "Sube tu primera imagen para comenzar",
    "no_images_picker": "No hay imágenes.",
    "upload_first_link": "Subir primera",
    "loading": "Cargando...",
    "error_loading": "Error al cargar las imágenes.",
    "error_loading_retry": "Error al cargar las imágenes. Por favor, inténtalo de nuevo.",
    "select_file": "Seleccionar imagen",
    "file_help": "Formatos admitidos: JPG, PNG, GIF, WebP, SVG — Máx. 16 MB",
    "alt_text": "Texto alternativo",
    "alt_text_placeholder": "Describe la imagen...",
    "alt_text_help": "Describe el contenido de la imagen para lectores de pantalla",
    "title_label": "Título",
    "title_placeholder": "Título de la imagen (opcional)",
    "caption": "Leyenda",
    "caption_placeholder": "Leyenda mostrada debajo de la imagen (opcional)",
    "description": "Descripción",
    "description_placeholder": "Descripción detallada (opcional)",
    "image_url": "URL de la imagen",
    "image_url_help": "Usa esta URL en entradas y páginas para imagen OG, imagen de Twitter, etc.",
    "public_slug": "Slug público de la URL",
    "public_slug_help": "La dirección pública limpia para esta imagen. Solo se permiten letras minúsculas, dígitos y guiones — cualquier otro carácter se elimina automáticamente. Cambiar el slug crea una redirección 301 automática desde la URL antigua para que los enlaces existentes sigan funcionando.",
    "filename": "Nombre de archivo:",
    "size": "Tamaño:",
    "dimensions": "Dimensiones:",
    "type": "Tipo:",
    "dominant_color": "Color dominante:",
    "uploaded": "Subido:",
    "generated_variants": "Variantes generadas",
    "og_social": "OG/Social (1200×630):",
    "accessibility_notice": "Accesibilidad obligatoria",
    "accessibility_notice_text": "El texto alternativo es obligatorio para todas las imágenes para cumplir con las normas de accesibilidad (WCAG 2.1)",
    "optimization_notice": "Optimización automática",
    "optimization_notice_text": "Las imágenes se optimizan automáticamente al subirlas: se redimensionan a máx. 2560px, se convierten a WebP y AVIF, y se generan múltiples tamaños responsivos para carga rápida. Los datos EXIF se eliminan por privacidad. El archivo original se conserva como respaldo.",
    "save_changes": "Guardar cambios",
    "delete": "Eliminar",
    "delete_confirm": "¿Estás seguro de que quieres eliminar esta imagen? Esta acción no se puede deshacer.",
    "usage_warning": "⚠️ Esta imagen se está usando en:",
    "usage_confirm_delete": "Todas las referencias se limpiarán automáticamente. ¿Eliminar de todos modos?",
    "copy_url": "Copiar",
    "copied": "¡Copiado!",
    "search_placeholder": "Buscar imágenes…",
    "no_results": "No hay imágenes que coincidan con tu búsqueda",
    "clear_search": "Limpiar búsqueda",
    "favicon_title": "Gestor de favicons",
    "favicon_subtitle": "Sube una imagen — todos los tamaños se generan automáticamente",
    "favicon_upload_section": "Subir imagen de origen",
    "favicon_tip_title": "Recomendación",
    "favicon_tip_text": "Usa una imagen PNG cuadrada de al menos 512×512px para mejores resultados. SVG también funciona perfectamente. La imagen se redimensionará y optimizará automáticamente para todas las plataformas.",
    "favicon_drop_label": "Haz clic o arrastra la imagen aquí",
    "favicon_drop_hint": "PNG, JPG, SVG o WebP · Mín. 512×512px recomendado",
    "favicon_generate_btn": "Generar todos los favicons",
    "favicon_current_section": "Favicons actuales",
    "favicon_empty": "Aún no se han generado favicons. Sube una imagen arriba.",
    "favicon_delete_btn": "Eliminar todos los favicons",
    "favicon_delete_confirm": "¿Eliminar todos los favicons generados? Puedes regenerarlos en cualquier momento.",
    "uploading": "Subiendo y optimizando…",
    "generating_favicons": "Generando favicons…",
    "fav_label_ico": "favicon.ico",
    "fav_label_png96": "PNG 96×96",
    "fav_label_png192": "PNG 192×192",
    "fav_label_png512": "PNG 512×512",
    "fav_label_apple": "Apple Touch",
    "fav_label_svg": "SVG",
    "fav_label_manifest": "Manifest",
    "fav_desc_ico": "ICO 16+32+48",
    "fav_desc_96": "Pestaña del navegador",
    "fav_desc_192": "Android / Chrome",
    "fav_desc_512": "Pantalla de inicio PWA",
    "fav_desc_apple": "180×180 iOS",
    "fav_desc_svg": "Vector escalable",
    "fav_desc_manifest": "site.webmanifest",
    "unit_kb": "KB"
  },
  "files": {
    "title": "Archivos",
    "subtitle": "Gestiona tus documentos y archivos",
    "upload_title": "Subir archivo",
    "upload_subtitle": "Añade un nuevo documento a tu biblioteca de archivos",
    "edit_title": "Editar archivo",
    "edit_subtitle": "Actualiza los metadatos del archivo",
    "upload_btn": "Subir",
    "upload_file_btn": "Subir archivo",
    "upload_first": "Subir primer archivo",
    "no_files": "Aún no hay archivos",
    "no_files_text": "Sube tu primer documento para comenzar",
    "search_placeholder": "Buscar archivos…",
    "file_url": "URL del archivo",
    "file_url_help": "Usa esta URL para enlazar a este archivo en tus entradas y páginas",
    "filename": "Nombre de archivo:",
    "size": "Tamaño:",
    "type": "Tipo:",
    "uploaded": "Subido:",
    "title_field": "Título",
    "title_placeholder": "Título del archivo (opcional)",
    "description_field": "Descripción",
    "description_placeholder": "Breve descripción de este archivo (opcional)",
    "delete": "Eliminar",
    "delete_confirm": "¿Estás seguro de que quieres eliminar este archivo? Esta acción no se puede deshacer.",
    "usage_warning": "⚠️ Este archivo está enlazado en:",
    "usage_confirm_delete": "Todos los enlaces y botones de descarga de este archivo se eliminarán automáticamente. ¿Eliminar de todos modos?",
    "copy_url": "Copiar",
    "copied": "¡Copiado!",
    "save_changes": "Guardar cambios",
    "allowed_types": "Formatos admitidos: PDF, DOC, DOCX, XLS, XLSX, ZIP, RAR, TXT, CSV — Máx. 50 MB",
    "drop_label": "Haz clic o arrastra el archivo aquí",
    "drop_hint": "PDF, DOC, XLS, ZIP, TXT, CSV — Máx. 50 MB",
    "uploading": "Subiendo…",
    "no_results": "No hay archivos que coincidan con tu búsqueda",
    "clear_search": "Limpiar búsqueda"
  },
  "settings": {
    "title": "Ajustes",
    "general": "General",
    "site_name": "Nombre del sitio",
    "tagline": "Eslogan",
    "site_description": "Descripción del sitio",
    "site_description_help": "Breve descripción de tu sitio",
    "meta_description_home": "Meta descripción de la página de inicio",
    "logo": "URL del logotipo",
    "logo_placeholder": "/static/uploads/logo.png",
    "logo_help": "Elige de la biblioteca multimedia o pega la URL",
    "homepage": "Página de inicio",
    "homepage_help": "Selecciona cualquier versión de idioma de una página — el sistema mostrará la traducción correcta a cada visitante.",
    "languages": "Idiomas",
    "default_language": "Idioma predeterminado",
    "default_language_help": "Idioma principal de tu sitio",
    "active_languages": "Idiomas activos",
    "active_languages_help": "Selecciona qué idiomas están disponibles en tu sitio",
    "language_switcher": "Mostrar menú de selección de idioma en el sitio público",
    "analytics": "Analítica",
    "google_analytics": "ID de Google Analytics",
    "google_analytics_placeholder": "G-XXXXXXXXXX",
    "tag_manager": "ID de Google Tag Manager",
    "tag_manager_placeholder": "GTM-XXXXXXX",
    "custom_code": "Código de analítica personalizado",
    "custom_code_placeholder": "<!-- Tu código de seguimiento aquí -->",
    "custom_code_help": "Pega tu código de seguimiento personalizado (Plausible, Goatcounter, etc.). Se insertará en <head>",
    "cookie_consent_enabled": "Activar banner de consentimiento de cookies",
    "cookie_consent_help": "Muestra a los visitantes un banner pidiendo consentimiento antes de ejecutar cualquier script de seguimiento. Desactivado por defecto.",
    "email": "Configuración de correo electrónico",
    "email_intro": "Para enviar correos desde tu sitio (invitaciones, notificaciones), necesitas una cuenta de correo en tu alojamiento. Así es como:",
    "email_step1": "Paso 1: Crea una cuenta de correo",
    "email_step1_text": "Inicia sesión en el panel de control de tu alojamiento (cPanel, Plesk o similar). Busca \"Cuentas de correo\" y crea una nueva dirección de email.",
    "email_step2": "Paso 2: Encuentra los ajustes SMTP",
    "email_step2_text": "En el mismo panel de control, busca \"Configuración de correo\" o \"Configuración de email\" para tu nuevo correo. Anota el Host SMTP, Puerto, Nombre de usuario y Contraseña.",
    "email_step3": "Paso 3: Rellena el formulario, guarda y prueba",
    "smtp_host": "Host SMTP",
    "smtp_host_placeholder": "mail.tudominio.com",
    "smtp_port": "Puerto SMTP",
    "smtp_port_help": "Normalmente 587 (TLS) o 465 (SSL) — consulta los ajustes de correo de tu alojamiento",
    "smtp_username": "Nombre de usuario SMTP",
    "smtp_username_help": "Normalmente es el mismo que el nombre de usuario SMTP",
    "smtp_password": "Contraseña SMTP",
    "smtp_password_help": "La contraseña que configuraste al crear el correo",
    "smtp_confirm_password": "Confirmar contraseña",
    "smtp_password_stored": "La contraseña de tu cuenta de correo del alojamiento. Se almacena cifrada. Deja ambos campos vacíos para mantener la contraseña actual.",
    "smtp_passwords_mismatch": "Las contraseñas SMTP no coinciden. Por favor, corrígelo antes de guardar.",
    "connection_security": "Seguridad de conexión",
    "connection_security_help": "Elige la opción que coincida con el puerto indicado arriba. La mayoría de proveedores de alojamiento usan TLS.",
    "from_email": "Email del remitente",
    "from_email_help": "La dirección de email completa que creaste en tu alojamiento",
    "from_name": "Nombre del remitente",
    "from_name_help": "El nombre que verán los destinatarios (p. ej. el nombre de tu sitio)",
    "test_email": "Email de prueba",
    "test_email_help": "Guarda los ajustes primero y luego envía un email de prueba para verificar que todo funciona.",
    "send_test": "Enviar email de prueba",
    "sending": "Enviando…",
    "social_links": "Redes sociales",
    "social_links_help": "Pega la URL de tu perfil en cada plataforma. Solo los enlaces completados se mostrarán como iconos en el pie de página.",
    "footer": "Pie de página",
    "copyright": "Texto de copyright",
    "copyright_help": "Introduce el nombre de tu empresa o sitio. El año y \"Todos los derechos reservados\" se añaden y traducen automáticamente.",
    "copyright_placeholder": "Mi Empresa",
    "license": "Licencia",
    "license_placeholder": "CC BY 4.0",
    "additional_footer": "Contenido adicional del pie de página",
    "additional_footer_help": "Se permite HTML. Úsalo para socios, redes sociales, etc.",
    "save_settings": "Guardar ajustes",
    "saved_success": "¡Ajustes guardados correctamente!",
    "license_updates": "Licencia y actualizaciones",
    "license_version": "Versión",
    "license_status": "Licencia",
    "license_active": "Activa",
    "license_invalid": "Clave inválida",
    "license_free": "Edición gratuita",
    "license_key": "Clave de licencia",
    "license_saved": "guardada",
    "license_key_placeholder": "Pega tu licencia",
    "license_key_help": "Introduce tu código de compra o clave de licencia. El sistema detecta automáticamente el marketplace. Déjalo vacío para mantener la clave actual.",
    "license_deactivate": "Desactivar licencia",
    "license_deactivate_confirm": "¿Estás seguro? Esto eliminará tu licencia de esta instalación. Puedes reactivarla más tarde.",
    "license_updates_check": "Actualizaciones de software",
    "license_click_check": "Haz clic en el botón para buscar actualizaciones disponibles.",
    "check_for_updates": "Buscar actualizaciones",
    "checking_updates": "Comprobando…",
    "up_to_date": "¡Estás ejecutando la última versión!",
    "update_available_short": "¡está disponible!",
    "license_up_to_date": "Ya estás ejecutando la última versión.",
    "license_free_note": "Edición gratuita: las actualizaciones requieren una licencia activa. Tu sitio funciona completamente sin licencia — se muestra un pequeño enlace \"Powered by AliothPress\" en el pie de página.",
    "license_free_note_short": "Activa una licencia para habilitar las actualizaciones automáticas",
    "license_updates_dashboard_hint": "Las notificaciones de actualización aparecen en tu Panel cuando hay una nueva versión disponible.",
    "deactivation_failed": "Error al desactivar la licencia. Por favor, inténtalo de nuevo.",
    "connection_error": "Error de conexión. Por favor, verifica tu conexión a internet e inténtalo de nuevo.",
    "remove_logo": "Eliminar logotipo",
    "homepage_filter_placeholder": "🔍 Escribe para filtrar páginas…",
    "homepage_default_option": "— Predeterminado (últimas entradas) —",
    "email_guide_title": "Cómo configurar el correo en tu alojamiento",
    "guide_col_field": "Campo",
    "guide_col_value": "Valor típico",
    "guide_port_value": "587 (TLS) o 465 (SSL)",
    "email_step3_text": "Introduce los valores de tu alojamiento, haz clic en <strong>{save_label}</strong> y luego usa el botón de prueba para verificar que todo funciona.",
    "smtp_username_placeholder": "noreply@tudominio.com",
    "smtp_from_placeholder": "noreply@tudominio.com",
    "smtp_password_saved_placeholder": "●●●●●●●● (guardada)",
    "smtp_password_enter_placeholder": "Introduce la contraseña",
    "smtp_password_keep_placeholder": "Dejar vacío para mantener la actual",
    "smtp_password_repeat_placeholder": "Repite la contraseña",
    "test_email_placeholder": "prueba@ejemplo.com",
    "security_tls_label": "TLS (puerto 587)",
    "security_ssl_label": "SSL (puerto 465)",
    "passwords_match": "✅ Las contraseñas coinciden",
    "passwords_no_match": "❌ Las contraseñas no coinciden",
    "ssl_domain_placeholder": "ejemplo.com",
    "social_facebook_placeholder": "https://facebook.com/tupagina",
    "social_twitter_placeholder": "https://x.com/tuperfil",
    "social_linkedin_placeholder": "https://linkedin.com/in/tuperfil",
    "social_github_placeholder": "https://github.com/tuperfil",
    "social_youtube_placeholder": "https://youtube.com/@tucanal",
    "social_instagram_placeholder": "https://instagram.com/tuperfil",
    "aeo_section": "Visibilidad de IA (AEO)",
    "aeo_help": "Estos enlaces ayudan a los sistemas de IA (ChatGPT, Perplexity, Google AI) a verificar la identidad de tu organización y citar tu contenido con mayor precisión.",
    "org_legal_name": "Nombre legal",
    "org_legal_name_placeholder": "Tu Empresa S.L.",
    "org_founding_year": "Año de fundación",
    "org_founding_year_placeholder": "2026",
    "org_sameas_wikipedia": "URL de Wikipedia",
    "org_sameas_wikidata": "URL de Wikidata",
    "org_sameas_crunchbase": "URL de Crunchbase",
    "default_language_active_note": "Este es el idioma predeterminado; no se puede desactivar. Elige primero otro idioma predeterminado.",
    "timezone": "Zona horaria",
    "timezone_help": "Todas las fechas y horas del panel y del sitio se muestran en esta zona horaria. Los datos se almacenan en UTC, por lo que cambiarla siempre es seguro.",
    "timezone_filter_placeholder": "Escribe para filtrar…"
  },
  "ssl": {
    "title": "Dominio y HTTPS",
    "domain_label": "Nombre de dominio",
    "domain_help": "Introduce tu dominio (p. ej. ejemplo.com). El registro A debe apuntar a la IP de este servidor antes de activar HTTPS.",
    "enable_title": "Certificado SSL gratuito (Let's Encrypt)",
    "click_to_enable": "Introduce tu dominio arriba y haz clic para obtener un certificado SSL gratuito.",
    "click_to_renew": "El certificado se renueva automáticamente. Haz clic para configurarlo en un nuevo dominio.",
    "btn_enable": "Activar HTTPS",
    "btn_renew": "Volver a ejecutar configuración SSL",
    "status_active": "HTTPS está activo",
    "status_active_short": "✅ HTTPS activo",
    "auto_renew": "El certificado se renueva automáticamente",
    "confirm": "Esto configurará HTTPS para {domain}. Asegúrate de que el registro DNS A ya apunta a este servidor. ¿Continuar?",
    "setting_up": "Configurando SSL…",
    "setting_up_detail": "Obteniendo certificado de Let's Encrypt — puede tardar hasta 60 segundos…",
    "setup_failed": "La configuración SSL falló",
    "success": "¡HTTPS está activo ahora para {domain}! HTTP redirigirá automáticamente a HTTPS.",
    "reload_hint": "Recarga esta página para ver el estado actualizado.",
    "instructions": "Paso 1: Añade un registro A de tu dominio apuntando a la IP de este servidor. Paso 2: Espera 5–15 minutos para la propagación DNS. Paso 3: Introduce el dominio arriba y haz clic en Activar HTTPS. El certificado es gratuito y se renueva automáticamente.",
    "error_empty_domain": "Por favor, introduce un nombre de dominio.",
    "error_invalid_domain": "Formato de dominio inválido. Usa algo como ejemplo.com o blog.ejemplo.com (sin http://, sin barra final).",
    "error_domain_too_long": "El nombre de dominio es demasiado largo (máx. 253 caracteres).",
    "error_dns_failed": "La consulta DNS falló para {domain}. Asegúrate de que tu registro A esté configurado y haya tenido tiempo de propagarse (5–15 minutos).",
    "error_dns_mismatch": "{domain} resuelve a {resolved}, pero este servidor es {server}. Actualiza tu registro DNS A para que apunte a {server}.",
    "error_not_cloud": "La configuración SSL solo está disponible en instalaciones de AliothPress alojadas en la nube. Para otros entornos, configura SSL manualmente a través de tu proveedor de alojamiento.",
    "error_rate_limit": "Límite de Let's Encrypt alcanzado (máx. 5 certificados por dominio por semana). Por favor, inténtalo más tarde.",
    "error_firewall": "Let's Encrypt no pudo acceder a {domain} en el puerto 80. Asegúrate de que tu firewall permite tráfico HTTP (puerto 80).",
    "error_challenge": "La verificación de dominio falló para {domain}. Asegúrate de que el dominio resuelve a este servidor y el puerto 80 está abierto.",
    "error_server_ip_unknown": "No se pudo determinar la dirección IP pública de este servidor. Inténtalo de nuevo en un minuto o contacta con tu proveedor de hosting.",
    "error_dns_apex_mismatch": "El registro A de {domain} no apunta a este servidor. Revisa tu configuración DNS y espera 5–15 minutos para la propagación.",
    "error_dns_www_missing": "El registro DNS para www.{domain} falta o no apunta a este servidor. Añade un registro CNAME para www que apunte a {domain} (o un registro A con la misma IP), y espera 5–15 minutos antes de volver a intentarlo.",
    "error_timeout": "La configuración SSL excedió el tiempo de espera. Por favor, inténtalo de nuevo."
  },
  "users": {
    "title": "Usuarios",
    "subtitle": "Gestiona los miembros del equipo y sus roles",
    "invite_title": "Invitar nuevo usuario",
    "invite_email": "Dirección de email",
    "invite_email_placeholder": "colega@tudominio.com",
    "invite_role": "Rol",
    "send_invitation": "Enviar invitación",
    "invite_help_editor": "puede crear y editar entradas, páginas y multimedia.",
    "invite_help_admin": "Administrador — acceso completo incluyendo ajustes, usuarios y herramientas.",
    "invite_owner_only": "Solo el propietario del sitio puede invitar administradores.",
    "team_members": "Miembros del equipo",
    "you": "(tú)",
    "joined": "Se unió",
    "invitation_pending": "Invitación pendiente",
    "role_owner": "Propietario",
    "role_admin": "Admin",
    "role_editor": "Editor",
    "role_pending": "Pendiente",
    "save": "Guardar",
    "delete": "Eliminar",
    "cancel_invitation": "Cancelar",
    "delete_confirm": "¿Eliminar al usuario {name}? Sus entradas y páginas también se eliminarán.",
    "cancel_confirm": "¿Cancelar la invitación para {email}?"
  },
  "profile": {
    "title": "Mi perfil",
    "subtitle": "Edita tu perfil de autor y los ajustes de la cuenta",
    "your_role": "Tu rol:",
    "member_since": "Miembro desde",
    "author_profile": "Perfil de autor",
    "author_help": "Esta información se usa en tus entradas publicadas y en los metadatos de motores de búsqueda (Schema.org).",
    "display_name": "Nombre visible",
    "display_name_help": "Se muestra como nombre del autor en entradas y páginas. Si está vacío, se usa tu nombre de usuario.",
    "bio": "Biografía",
    "bio_placeholder": "Unas palabras sobre ti...",
    "bio_help": "Se usa en el marcado de autor para Schema (mejora el SEO). Visible para motores de búsqueda y opcionalmente en tus entradas.",
    "avatar_url": "URL del avatar",
    "avatar_placeholder": "/static/uploads/avatar.jpg",
    "avatar_help": "Foto de perfil. Se usa en el marcado de autor para motores de búsqueda.",
    "select_avatar": "Seleccionar avatar",
    "account_settings": "Ajustes de la cuenta",
    "username": "Nombre de usuario",
    "username_unchangeable": "El nombre de usuario no se puede cambiar",
    "email": "Email",
    "new_password": "Nueva contraseña",
    "new_password_placeholder": "Déjalo vacío para mantener la actual",
    "confirm_password": "Confirmar nueva contraseña",
    "confirm_password_placeholder": "Repite la nueva contraseña",
    "password_help": "Mín. 8 caracteres con mayúscula, minúscula y un dígito. Déjalo vacío para mantener la actual.",
    "current_password": "Contraseña actual",
    "current_password_placeholder": "Introduce tu contraseña actual",
    "current_password_help": "Necesaria para cambiar tu contraseña",
    "admin_language": "Idioma del panel de administración",
    "admin_language_help": "Idioma de la interfaz de administración. Los idiomas del contenido se gestionan por separado en Ajustes.",
    "admin_theme": "Tema del panel",
    "theme_light": "Claro",
    "theme_dark": "Oscuro",
    "theme_system": "Sistema",
    "admin_theme_help": "Elige la apariencia del panel de administración. \"Sistema\" sigue los ajustes de tu dispositivo.",
    "save_profile": "Guardar perfil",
    "author_links": "Enlaces del autor",
    "author_links_help": "Estos enlaces se añaden al marcado Schema.org del autor. Ayudan a los sistemas de IA a verificar tu experiencia y citar tus artículos con mayor precisión.",
    "linkedin_url": "URL de LinkedIn",
    "website_url": "Sitio web personal",
    "github_url": "URL de GitHub"
  },
  "themes": {
    "title": "Temas",
    "subtitle": "Elige y personaliza la apariencia de tu sitio",
    "default_mode": "Modo de visualización predeterminado",
    "default_mode_help": "Esto establece el tema inicial para los visitantes nuevos. Los usuarios siempre pueden alternar entre modo oscuro y claro con el botón de cambio en tu sitio.",
    "dark": "Oscuro",
    "light": "Claro",
    "auto": "Automático",
    "save_mode": "Guardar modo",
    "available_themes": "Temas disponibles",
    "active": "Activo",
    "activate": "Activar",
    "currently_active": "Actualmente activo",
    "single_mode": "Modo único",
    "no_themes": "No se encontraron temas",
    "no_themes_help": "Añade carpetas de temas a static/css/themes/",
    "custom_css": "CSS personalizado",
    "custom_css_help": "Ajusta con precisión los estilos de los bloques: espaciado, colores, tipografía, bordes, efectos hover, animaciones. En la barra lateral de Page Builder, configura una \"clase CSS\" en cualquier bloque; luego estiliza esa clase aquí.",
    "custom_css_placeholder": "/* Estiliza cualquier \"clase CSS\" que configures en los bloques de Page Builder */\n\n.my-cool-card {\n  padding: 2rem;\n  border-radius: 12px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\n}",
    "save_custom_css": "Guardar CSS personalizado",
    "desc_stellar_origin": "Precisión y claridad del espacio profundo — la estrella Alioth como punto de navegación a través del significado y el diseño minimalista.",
    "desc_midnight_botanist": "El crecimiento orgánico de las ideas bajo el brillo del musgo lunar — modo oscuro de bosque profundo con suaves acentos botánicos.",
    "desc_emerald_forest": "Armonía y calma orgánica — un jardín digital donde la tecnología sirve a la naturaleza. Como una antigua biblioteca en un bosque profundo.",
    "desc_oceanic_depth": "Fiabilidad, serenidad, intelecto poderoso y profundidad — un océano nocturno bajo un cielo despejado, donde solo brillan las crestas de las olas.",
    "desc_nebula_rose": "Creatividad y elegancia — luz de una nebulosa lejana, violeta profundo con suave oro rosado. Como leer una revista de arte.",
    "desc_frozen_moss": "La serenidad de un bosque helado — sombras profundas de siempreverde bajo plata pálida de menta y el suave brillo del hielo en las ramas.",
    "desc_amber_blossom": "Una cálida tarde de verano en un jardín en flor — acentos de ámbar miel sobre superficies cremosas, terracota suave y tonos de corteza profunda.",
    "desc_ocean_whispers": "La claridad fresca de la brisa marina — arena blanca, agua transparente y horizontes turquesa para una experiencia de lectura costera limpia.",
    "desc_volcanic_ash": "El oscuro misterio de la lava enfriada — grafito profundo con un matiz vinoso, brillo violeta mágico y el peso del basalto antiguo.",
    "desc_corporate_clean": "Claridad profesional y confianza — superficies blancas limpias, acentos azules precisos y grises neutros. Diseñado para empresas y agencias.",
    "desc_editorial_press": "La elegancia atemporal de la imprenta — acentos sepia cálidos, encabezados con serifa, generoso espacio en blanco. Diseñado para revistas y escritura de formato largo.",
    "desc_neon_launch": "La energía de un lanzamiento de producto — violeta eléctrico sobre superficies nítidas, geometría audaz, tipografía cortante. Diseñado para startups y blogs tecnológicos.",
    "desc_handmade_story": "La calidez de una carta escrita a mano — terracota y oliva sobre papel crema, formas suaves y redondeadas. Diseñado para artesanos y pequeños negocios.",
    "desc_crimson_velvet": "El lujo discreto de una bodega privada — terciopelo burdeos, roble envejecido y luz de velas sobre cristal. Diseñado para restaurantes, marcas de lujo y alta gastronomía.",
    "desc_solar_flare": "La calidez explosiva de una corona solar contra el vacío — ámbar fundido y oro sobre azul tinta profundo. Diseñado para marcas audaces que quieren destacar.",
    "mode_lock": "Bloqueo de modo",
    "mode_lock_help": "Forzar un solo modo para todos los visitantes y ocultar el interruptor en tu sitio.",
    "both_modes": "Ambos modos",
    "light_only": "Solo claro",
    "dark_only": "Solo oscuro",
    "upload_title": "Instalar tema desde ZIP",
    "upload_help": "Sube un ZIP de tema: una carpeta con theme.css y una imagen de vista previa opcional. El tema aparece en la lista de inmediato. Los temas subidos aquí sobreviven a las actualizaciones del CMS (salvo que el nombre coincida con un tema integrado).",
    "upload_btn": "Instalar",
    "upload_ok": "Tema «{name}» instalado.",
    "upload_replaced": "Tema «{name}» reemplazado.",
    "upload_err": "El archivo no es un ZIP de tema válido.",
    "delete_confirm": "¿Eliminar este tema? Sus archivos se borrarán.",
    "deleted_ok": "Tema «{name}» eliminado.",
    "cannot_delete_active": "El tema activo no se puede eliminar. Activa primero otro tema."
  },
  "tools": {
    "title": "Herramientas SEO y AEO",
    "subtitle": "Gestiona sitemap, robots.txt, feeds RSS y visibilidad de IA para motores de búsqueda y motores de respuestas",
    "sitemap_title": "Sitemap XML",
    "sitemap_desc": "Generado automáticamente a partir de tu contenido publicado. Los motores de búsqueda lo usan para descubrir e indexar tus páginas.",
    "sitemap_status": "Estado",
    "sitemap_active": "Activo",
    "total_urls": "Total de URLs",
    "published_posts": "Entradas publicadas",
    "published_pages": "Páginas publicadas",
    "homepage": "Página de inicio",
    "sitemap_listings": "Páginas de etiquetas y categorías",
    "view": "Ver",
    "sitemap_auto": "El sitemap se genera automáticamente — no se necesita edición manual. El contenido nuevo aparece automáticamente.",
    "robots_title": "robots.txt",
    "robots_desc": "Controla qué páginas pueden rastrear los motores de búsqueda. La URL del sitemap se añade automáticamente.",
    "robots_content": "Contenido",
    "robots_help": "Directivas estándar: User-agent, Allow, Disallow. Una por línea.",
    "save": "Guardar",
    "reset_default": "Restablecer valores predeterminados",
    "reset_confirm": "¿Restablecer robots.txt a los valores predeterminados? Esto sobrescribirá tu contenido actual.",
    "rss_title": "Feed RSS",
    "rss_desc": "Feeds RSS generados automáticamente para cada idioma. Los lectores RSS, agregadores y Google News los usan para seguir tu contenido.",
    "rss_posts_per_feed": "Entradas por feed",
    "rss_auto": "Los feeds se generan automáticamente — uno por idioma activo. Las últimas 20 entradas con todos los metadatos.",
    "llms_title": "llms.txt",
    "llms_desc": "Resumen del sitio compatible con IA para ChatGPT, Claude, Perplexity y otros sistemas de IA. Ayuda a la IA a comprender tu sitio y citar tu contenido con precisión.",
    "llms_posts_included": "Publicaciones incluidas",
    "llms_pages_included": "Páginas incluidas",
    "llms_auto": "Se genera automáticamente a partir del contenido publicado. Incluye las últimas 50 publicaciones y todas las páginas con meta descripciones."
  },
  "audit_log": {
    "title": "Registro de actividad",
    "subtitle": "Monitorización de actividad y seguridad",
    "all_actions": "Todas las acciones",
    "clear_filter": "Limpiar filtro",
    "entries": "entradas",
    "time": "Hora",
    "user": "Usuario",
    "action": "Acción",
    "details": "Detalles",
    "ip": "IP",
    "no_entries": "Aún no hay entradas en el registro",
    "no_entries_text": "La actividad aparecerá aquí a medida que los usuarios interactúen con el panel de administración.",
    "prev": "← Anterior",
    "next": "Siguiente →",
    "action_login": "Inicio de sesión",
    "action_login_failed": "Inicio de sesión fallido",
    "action_login_blocked": "Inicio de sesión bloqueado",
    "action_logout": "Cierre de sesión",
    "action_create_post": "Crear entrada",
    "action_edit_post": "Editar entrada",
    "action_delete_post": "Eliminar entrada",
    "action_create_page": "Crear página",
    "action_edit_page": "Editar página",
    "action_edit_page_builder": "Editar página (Builder)",
    "action_delete_page": "Eliminar página",
    "action_create_form": "Crear formulario",
    "action_edit_form": "Editar formulario",
    "action_translate_form": "Traducir formulario",
    "action_delete_form": "Eliminar formulario",
    "action_save_newsletter": "Guardar boletín",
    "action_send_newsletter": "Enviar boletín",
    "action_delete_newsletter": "Eliminar boletín",
    "action_edit_settings": "Editar ajustes",
    "action_change_theme": "Cambiar tema",
    "action_create_backup": "Crear copia de seguridad",
    "action_restore_backup": "Restaurar copia de seguridad",
    "action_backup_failed": "Copia de seguridad fallida",
    "action_restore_failed": "Restauración fallida",
    "action_update_favicon": "Actualizar favicon",
    "action_delete_favicon": "Eliminar favicon",
    "detail_login_blocked": "IP {ip} bloqueada (fuerza bruta)",
    "detail_login_success": "Inicio de sesión exitoso",
    "detail_login_failed": "Intento de inicio de sesión fallido para \"{name}\"",
    "detail_logout": "El usuario cerró sesión",
    "detail_password_reset_email_failed": "Error al enviar email de restablecimiento a {email}: {error}",
    "detail_password_reset_request": "Restablecimiento de contraseña solicitado para {email}",
    "detail_password_reset": "Contraseña restablecida para {email}",
    "detail_created_post": "Entrada creada \"{title}\" ({lang})",
    "detail_edited_post": "Entrada editada \"{title}\" ({lang})",
    "detail_deleted_post": "Entrada eliminada \"{title}\"",
    "detail_duplicated_post": "Entrada duplicada de \"{title}\"",
    "detail_created_page": "Página creada \"{title}\" ({lang})",
    "detail_edited_page": "Página editada \"{title}\" ({lang})",
    "detail_deleted_page": "Página eliminada \"{title}\"",
    "detail_duplicated_page": "Página duplicada de \"{title}\"",
    "detail_updated_builder": "Bloques del Page Builder actualizados para \"{title}\"",
    "detail_created_form": "Formulario creado: {title}",
    "detail_updated_form": "Formulario actualizado: {title}",
    "detail_translated_form": "Traducción de formulario creada: {title} ({lang})",
    "detail_deleted_form": "Formulario eliminado: {title}",
    "detail_duplicated_form": "Formulario duplicado de \"{title}\"",
    "detail_bulk_deleted_submissions": "{count} envíos eliminados del formulario \"{title}\"",
    "detail_created_newsletter": "Boletín creado: {title}",
    "detail_saved_newsletter": "Boletín guardado: {title}",
    "detail_translated_newsletter": "Traducción de boletín creada ({lang}): {title}",
    "detail_deleted_newsletter": "Boletín eliminado",
    "detail_sent_newsletter": "Boletín enviado a {count} destinatarios ({failed} fallidos)",
    "detail_duplicated_newsletter": "Boletín duplicado de \"{title}\"",
    "detail_file_uploaded": "Archivo subido: {name}",
    "detail_file_deleted": "Archivo eliminado: {name}",
    "detail_favicon_updated": "Favicons generados: {sizes}",
    "detail_favicon_deleted": "Todos los favicons eliminados",
    "detail_license_activated": "Licencia activada ({platform})",
    "detail_license_deactivated": "Licencia desactivada",
    "detail_settings_updated": "Ajustes del sitio actualizados",
    "detail_update_backup": "Copia de seguridad previa a la actualización creada",
    "detail_updated_cms": "Actualizado a v{version}",
    "detail_update_rolled_back": "Actualización fallida, reversión aplicada: {error}",
    "detail_update_error": "Error de actualización: {error}",
    "detail_ssl_enabled": "HTTPS activado para {domain}",
    "detail_ssl_failed": "Configuración SSL fallida para {domain}: {error}",
    "detail_ssl_timeout": "Configuración SSL excedió el tiempo para {domain}",
    "detail_created_backup": "Copia de seguridad creada ({size} MB)",
    "detail_backup_failed": "Copia de seguridad fallida: {error}",
    "detail_restored_backup": "Copia de seguridad restaurada: {items}",
    "detail_restore_failed": "Restauración fallida: {error}",
    "detail_changed_theme_mode": "Modo de visualización cambiado: {old_mode} → {new_mode}",
    "detail_activated_theme": "Tema activado: {theme}",
    "detail_custom_css_updated": "CSS personalizado actualizado",
    "detail_changed_mode_lock": "Bloqueo de modo cambiado: {old_lock} → {new_lock}",
    "action_accept_invite": "Aceptar invitación",
    "action_activate_license": "Activar licencia",
    "action_bulk_delete_submissions": "Eliminar envíos en lote",
    "action_change_mode_lock": "Cambiar bloqueo de modo",
    "action_change_theme_mode": "Cambiar modo de visualización",
    "action_change_user_role": "Cambiar rol de usuario",
    "action_create_newsletter": "Crear boletín",
    "action_deactivate_license": "Desactivar licencia",
    "action_delete_image": "Eliminar imagen",
    "action_delete_user": "Eliminar usuario",
    "action_duplicate_form": "Duplicar formulario",
    "action_duplicate_newsletter": "Duplicar boletín",
    "action_duplicate_page": "Duplicar página",
    "action_duplicate_post": "Duplicar entrada",
    "action_edit_custom_css": "Editar CSS personalizado",
    "action_edit_image": "Editar imagen",
    "action_file_deleted": "Eliminar archivo",
    "action_file_uploaded": "Subir archivo",
    "action_invite_user": "Invitar usuario",
    "action_password_reset": "Restablecer contraseña",
    "action_password_reset_email_failed": "Fallo del correo de restablecimiento",
    "action_password_reset_request": "Solicitud de restablecimiento",
    "action_save_menu": "Guardar menú",
    "action_ssl_setup": "Configuración SSL",
    "action_ssl_setup_failed": "Fallo de configuración SSL",
    "action_translate_newsletter": "Traducir boletín",
    "action_update_backup": "Copia antes de actualizar",
    "action_update_cms": "Actualizar CMS",
    "action_update_failed": "Actualización fallida",
    "action_update_profile": "Actualizar perfil",
    "action_upload_image": "Subir imagen",
    "detail_accepted_invite": "Invitación aceptada y cuenta \"{name}\" creada",
    "detail_changed_user_role": "Rol de {name} cambiado a {role}",
    "detail_deleted_image": "Imagen eliminada: {filename}",
    "detail_deleted_user": "Usuario \"{name}\" eliminado",
    "detail_edited_image": "Imagen editada: {filename}",
    "detail_invited_user": "{email} invitado como {role}",
    "detail_saved_menu": "Menú {location} guardado",
    "detail_updated_profile": "Perfil propio actualizado",
    "detail_uploaded_image": "Imagen subida: {filename}",
    "action_install_plugin": "Instalar plugin",
    "action_update_plugin": "Actualizar plugin",
    "action_toggle_plugin": "Activar/desactivar plugin",
    "action_delete_plugin": "Eliminar plugin",
    "action_activate_plugin_license": "Activar licencia del plugin",
    "action_upload_theme": "Subir tema",
    "action_delete_theme": "Eliminar tema",
    "actor_all": "Todos los actores",
    "actor_human": "Solo humanos",
    "actor_agent": "Solo agentes de IA",
    "via_agent": "Agente de IA",
    "via_agent_hint": "Realizado por un agente de IA (WebMCP) dentro de la sesión de este usuario",
    "action_2fa_enabled": "2FA activada",
    "action_2fa_disabled": "2FA desactivada",
    "action_2fa_login_failed": "Código 2FA incorrecto",
    "action_2fa_recovery_used": "Código de recuperación 2FA usado",
    "action_2fa_email_code": "Código 2FA enviado por correo",
    "action_2fa_reset_by_admin": "2FA restablecida por un admin",
    "action_2fa_bypass_file": "2FA omitida (archivo)",
    "detail_twofa_enabled": "Activó la autenticación en dos pasos",
    "detail_twofa_disabled": "Desactivó la autenticación en dos pasos",
    "detail_twofa_login_failed": "Introdujo un código de segundo factor incorrecto",
    "detail_twofa_recovery_used": "Inició sesión con un código de recuperación de un solo uso",
    "detail_twofa_email_code": "Solicitó un código de acceso de un solo uso por correo",
    "detail_twofa_reset_by_admin": "Restableció la autenticación en dos pasos de {name}",
    "detail_twofa_bypass_file": "Segundo factor omitido — existe el archivo DISABLE_2FA"
  },
  "backup": {
    "title": "Copia de seguridad",
    "subtitle": "Crea una copia de seguridad completa de tu sitio",
    "overview": "Resumen del sitio",
    "posts": "Entradas",
    "pages": "Páginas",
    "images": "Imágenes",
    "files_in_uploads": "Archivos en uploads",
    "database": "Base de datos",
    "uploads_folder": "Carpeta de uploads",
    "download_title": "Descargar copia de seguridad",
    "download_desc": "Crea un archivo ZIP que contiene tu base de datos, todos los archivos multimedia subidos y la configuración.",
    "create_download": "Crear y descargar copia de seguridad",
    "creating_backup": "Creando copia de seguridad…",
    "whats_included": "Qué incluye:",
    "includes_db": "Base de datos completa (todas las entradas, páginas, ajustes, usuarios)",
    "includes_media": "Todos los archivos multimedia subidos (imágenes, variantes)",
    "includes_env": "Configuración del entorno (.env)",
    "restore_title": "Restaurar desde copia de seguridad",
    "restore_desc": "Sube un ZIP de copia de seguridad creado anteriormente para restaurar tu sitio. Esto sobrescribirá la base de datos y los archivos subidos actuales.",
    "restore_btn": "Restaurar desde copia de seguridad",
    "restoring": "Restaurando…",
    "restore_warning": "Advertencia:",
    "restore_warning_text": "Restaurar una copia de seguridad reemplazará tu base de datos y archivos subidos actuales. Asegúrate de tener una copia de seguridad actual antes de restaurar una anterior.",
    "restore_select_file": "Por favor, selecciona primero un archivo ZIP de copia de seguridad.",
    "restore_confirm": "¿Estás seguro de que quieres restaurar desde esta copia de seguridad?\n\nEsto SOBRESCRIBIRÁ tu base de datos y archivos subidos actuales.\n¡Esta acción no se puede deshacer!"
  },
  "menus": {
    "title": "Menús",
    "subtitle": "Configura los menús de cabecera y pie de página",
    "header_menu": "Menú de cabecera",
    "footer_menu": "Menú del pie de página",
    "current_header": "Menú de cabecera actual:",
    "current_footer": "Menú del pie de página actual:",
    "menu_label": "Etiqueta del menú",
    "lang": "Idioma",
    "published": "Publicado",
    "no_pages": "Aún no hay páginas publicadas.",
    "no_posts": "Aún no hay entradas publicadas.",
    "create_first_page": "Crea tu primera página →",
    "create_first_post": "Crea tu primera entrada →",
    "save_menu": "Guardar menú",
    "all_languages": "Todos los idiomas",
    "custom_label_placeholder": "Etiqueta del menú",
    "header_info": "Selecciona páginas, entradas, archivos o enlaces para añadir a la navegación de cabecera. Puedes establecer una <strong>etiqueta del menú</strong> para cada elemento — útil cuando el título es demasiado largo para un menú.",
    "footer_info": "Selecciona páginas, entradas, archivos o enlaces para la navegación del pie de página. Normalmente se usa para páginas legales e información de la empresa.",
    "add_submenu_item": "Añadir subelemento",
    "submenu_items": "Subelementos del menú",
    "no_menu_items": "Aún no hay elementos en este menú.",
    "drag_to_reorder": "Arrastra para reordenar",
    "drag_to_nest": "Arrastra sobre un elemento principal para anidarlo como submenú",
    "remove_item": "Eliminar",
    "submenu_note": "Los submenús son compatibles con el menú de cabecera. Los menús del pie de página se muestran como enlaces planos.",
    "anchor_links_hint": "Se admiten enlaces de ancla, p. ej. /about#team",
    "parent_item": "Elemento principal",
    "child_item": "Subelemento",
    "custom_links": "Enlaces",
    "custom_url_placeholder": "https://example.com",
    "pick_file": "Elige un archivo…",
    "open_new_window": "Abrir en nueva ventana",
    "add_to_menu": "Añadir al menú",
    "custom_url_invalid": "La URL debe comenzar con https://, http://, mailto:, tel: o /",
    "custom_label_required": "La etiqueta es obligatoria",
    "custom_links_empty": "Rellena al menos un idioma con URL y etiqueta",
    "update_link": "Actualizar enlace",
    "edit_link": "Editar",
    "custom_url_header": "URL",
    "max_depth_reached": "Profundidad máxima del menú alcanzada (3 niveles)"
  },
  "login": {
    "title": "Inicio de sesión",
    "username": "Nombre de usuario",
    "username_or_email": "Nombre de usuario o email",
    "password": "Contraseña",
    "login_btn": "Iniciar sesión",
    "forgot_password": "¿Olvidaste tu contraseña?",
    "back_to_site": "← Volver al sitio"
  },
  "forgot_password": {
    "title": "Restablecer tu contraseña",
    "email_label": "Dirección de email",
    "email_placeholder": "Introduce el email de tu cuenta",
    "email_help": "Te enviaremos un enlace para restablecer tu contraseña. El enlace es válido durante 1 hora.",
    "send_btn": "Enviar enlace de restablecimiento",
    "back_to_login": "← Volver al inicio de sesión"
  },
  "reset_password": {
    "title": "Establecer nueva contraseña",
    "password_label": "Nueva contraseña",
    "password_placeholder": "Introduce la nueva contraseña",
    "password_help": "Al menos 8 caracteres",
    "confirm_label": "Confirmar nueva contraseña",
    "confirm_placeholder": "Repite la nueva contraseña",
    "submit_btn": "Establecer nueva contraseña",
    "back_to_login": "← Volver al inicio de sesión"
  },
  "accept_invite": {
    "welcome": "¡Bienvenido!",
    "subtitle": "Has sido invitado a unirte al equipo",
    "invited_as": "Se te invita como {role} para {email}",
    "username": "Nombre de usuario",
    "username_placeholder": "Elige un nombre de usuario",
    "username_help": "Se usa para iniciar sesión",
    "display_name": "Nombre visible",
    "display_name_placeholder": "Tu nombre público (se muestra en entradas)",
    "display_name_help": "Visible para los visitantes del sitio como nombre de autor",
    "password": "Contraseña",
    "password_placeholder": "Al menos 8 caracteres",
    "confirm_password": "Confirmar contraseña",
    "confirm_placeholder": "Repite la contraseña",
    "create_account": "Crear mi cuenta"
  },
  "table": {
    "title": "Título",
    "status": "Estado",
    "language": "Idioma",
    "author": "Autor",
    "published_date": "Publicado",
    "updated_date": "Actualizado",
    "actions": "Acciones",
    "edit": "Editar",
    "translate": "Traducir",
    "view": "Ver",
    "preview": "Vista previa",
    "delete": "Eliminar",
    "duplicate": "Duplicar",
    "all": "Todos",
    "published": "Publicados",
    "drafts": "Borradores",
    "search": "Buscar",
    "selected": "seleccionados",
    "all_languages": "Todos los idiomas",
    "newest_first": "Más recientes primero",
    "oldest_first": "Más antiguos primero"
  },
  "pagination": {
    "prev": "← Anterior",
    "next": "Siguiente →",
    "per_page": "Mostrar",
    "per_page_suffix": "por página"
  },
  "common": {
    "save": "Guardar",
    "cancel": "Cancelar",
    "delete": "Eliminar",
    "edit": "Editar",
    "back": "Volver",
    "search": "Buscar",
    "loading": "Cargando...",
    "success": "Éxito",
    "error": "Error",
    "confirm": "Confirmar",
    "yes": "Sí",
    "no": "No",
    "choose": "Elegir",
    "copy": "Copiar",
    "copied": "¡Copiado!",
    "close": "Cerrar",
    "or": "o",
    "and": "y",
    "required": "obligatorio",
    "connection_error": "Error de conexión. Por favor, inténtalo de nuevo.",
    "clear": "Limpiar",
    "remove": "Eliminar",
    "preview": "Vista previa",
    "show_hide": "Mostrar/ocultar",
    "show_hide_password": "Mostrar/ocultar contraseña",
    "view": "Ver",
    "status_published": "Publicado",
    "status_draft": "Borrador",
    "status_read": "Leído",
    "status_new": "Nuevo",
    "unit_b": "B",
    "unit_kb": "KB",
    "unit_mb": "MB",
    "language_deactivated": "desactivado",
    "update_now": "Actualizar ahora",
    "updating": "Actualizando…",
    "update_confirm": "¿Actualizar el CMS ahora? El sitio no estará disponible por un momento.",
    "reload": "Recargar",
    "restart_hint": "Reinicie el servicio para completar la actualización."
  },
  "dates": {
    "months_short": [
      "Ene",
      "Feb",
      "Mar",
      "Abr",
      "May",
      "Jun",
      "Jul",
      "Ago",
      "Sep",
      "Oct",
      "Nov",
      "Dic"
    ],
    "months_long": [
      "Enero",
      "Febrero",
      "Marzo",
      "Abril",
      "Mayo",
      "Junio",
      "Julio",
      "Agosto",
      "Septiembre",
      "Octubre",
      "Noviembre",
      "Diciembre"
    ],
    "format_date": "{day} {month_short} {year}",
    "format_datetime": "{day} {month_short}, {time}"
  },
  "builder": {
    "page_builder": "Page Builder",
    "open_builder": "Abrir Page Builder",
    "save_first_hint": "Guarda la página primero y luego abre el Page Builder desde la página de edición",
    "save_translation_hint": "Guarda la traducción primero y luego abre el Page Builder desde la página de edición",
    "save": "Guardar",
    "saving": "Guardando...",
    "saved": "Guardado correctamente",
    "save_failed": "Error al guardar",
    "network_error": "Error de red — cambios no guardados",
    "no_blocks": "No hay datos de bloques",
    "preview": "Vista previa",
    "back_to_editor": "Volver al editor",
    "drag_hint": "Arrastra bloques aquí o haz clic en un bloque de la barra lateral",
    "block_settings": "Ajustes del bloque",
    "select_block_hint": "Selecciona un bloque en el lienzo para editar sus ajustes",
    "loading": "Cargando...",
    "layout": "Diseño",
    "basic": "Básico",
    "structure": "Estructura",
    "media": "Multimedia",
    "advanced": "Avanzado",
    "heading": "Encabezado",
    "text": "Texto",
    "image": "Imagen",
    "button": "Botón",
    "divider": "Divisor",
    "spacer": "Espaciador",
    "columns": "Columnas",
    "section": "Sección",
    "video": "Vídeo",
    "gallery": "Galería",
    "audio": "Audio",
    "quote": "Cita",
    "table": "Tabla",
    "accordion": "Acordeón",
    "tabs": "Pestañas",
    "html": "HTML",
    "code": "Código",
    "form": "Formulario",
    "form_select": "Seleccionar formulario",
    "form_no_forms": "Aún no hay formularios. Crea uno en la sección Formularios.",
    "form_fields": "campos",
    "form_submit_default": "Enviar",
    "form_show_title": "Mostrar título",
    "form_show_description": "Mostrar descripción",
    "alignment": "Alineación",
    "left": "Izquierda",
    "center": "Centro",
    "right": "Derecha",
    "justify": "Justificar",
    "top_margin": "Margen superior",
    "bottom_margin": "Margen inferior",
    "none": "Ninguno",
    "css_class": "Clase CSS",
    "anchor_id": "ID de ancla",
    "text_content": "Texto",
    "level": "Nivel",
    "image_url": "URL de la imagen",
    "image_url_hint": "Pega la URL o usa la biblioteca multimedia",
    "alt_text": "Texto alternativo",
    "caption": "Leyenda",
    "link_url": "URL del enlace",
    "size": "Tamaño",
    "size_full": "Ancho completo",
    "size_medium": "Mediano",
    "size_small": "Pequeño",
    "size_auto": "Automático",
    "button_text": "Texto del botón",
    "button_url": "URL",
    "style": "Estilo",
    "style_primary": "Principal",
    "style_outline": "Contorno",
    "style_ghost": "Fantasma",
    "style_solid": "Sólido",
    "style_dashed": "Discontinuo",
    "style_dotted": "Punteado",
    "style_gradient": "Degradado",
    "size_sm": "Pequeño",
    "size_md": "Mediano",
    "size_lg": "Grande",
    "target": "Destino",
    "target_self": "Misma pestaña",
    "target_blank": "Nueva pestaña",
    "height_px": "Altura (px)",
    "columns_layout": "Diseño",
    "columns_hint": "Consejo: Añade bloques dentro de las columnas desde el lienzo.",
    "video_url": "URL de YouTube o Vimeo",
    "video_url_hint": "p. ej. https://youtube.com/watch?v=...",
    "video_title": "Título (accesibilidad)",
    "aspect_ratio": "Relación de aspecto",
    "ratio_cinematic": "21:9 (cinematográfico)",
    "ratio_auto": "Automático (altura del contenido)",
    "html_code": "Código HTML",
    "html_executes": "Se ejecuta en la página",
    "quote_text": "Texto de la cita",
    "author": "Autor",
    "code_language": "Lenguaje",
    "code_content": "Código",
    "audio_url": "URL del audio",
    "audio_title": "Título",
    "table_headers": "Encabezados (separados por comas)",
    "table_rows": "Filas (coma por celda, nueva línea por fila)",
    "table_rows_count": "filas",
    "accordion_items": "Elementos",
    "accordion_title": "Título",
    "accordion_content": "Contenido",
    "add_item": "Añadir elemento",
    "remove": "Eliminar",
    "tabs_count": "Pestañas",
    "tab_title": "Título de pestaña",
    "tab_content": "Contenido",
    "add_tab": "Añadir pestaña",
    "gallery_images": "imágenes",
    "gallery_images_hint": "Pega las URLs de las imágenes abajo (una por línea)",
    "gallery_images_format": "Imágenes (url|alt|leyenda)",
    "gallery_columns": "Columnas",
    "background": "Fondo",
    "bg_none": "Ninguno",
    "bg_color": "Color",
    "bg_gradient": "Degradado",
    "bg_image": "Imagen",
    "bg_value": "Valor del fondo",
    "bg_color_pick": "Elegir color",
    "bg_gradient_value": "Degradado CSS",
    "bg_image_url": "URL de la imagen",
    "bg_image_hint": "Recomendado: 1920×1080px o más ancho. La imagen cubre todo el ancho de la sección.",
    "text_color": "Color del texto",
    "text_color_auto": "Automático (colores del tema)",
    "text_color_light": "Claro (para fondos oscuros)",
    "text_color_dark": "Oscuro (para fondos claros)",
    "min_height": "Altura mínima",
    "min_height_auto": "Automático",
    "min_height_50_screen": "50% de la pantalla",
    "min_height_75_screen": "75% de la pantalla",
    "min_height_full_screen": "Pantalla completa",
    "bg_overlay": "Color de superposición",
    "bg_light_mode": "Fondo del modo claro",
    "bg_light_color_pick": "Elegir color del modo claro",
    "bg_light_gradient_value": "Degradado del modo claro",
    "bg_light_image_url": "URL de imagen del modo claro",
    "bg_light_overlay": "Superposición del modo claro",
    "bg_dark_mode": "Fondo del modo oscuro",
    "bg_dark_color_pick": "Elegir color del modo oscuro",
    "bg_dark_gradient_value": "Degradado del modo oscuro",
    "bg_dark_image_url": "URL de imagen del modo oscuro",
    "bg_dark_overlay": "Superposición del modo oscuro",
    "bg_theme_default": "Predeterminado del tema",
    "choose_image": "Seleccionar imagen",
    "gallery_add_from_library": "Añadir desde la biblioteca",
    "gallery_pick_title": "Seleccionar imágenes",
    "gallery_add_selected": "Añadir seleccionadas",
    "section_layout": "Diseño de sección",
    "section_full_width": "Ancho completo (fondo de borde a borde)",
    "section_full_width_hint": "El ancho completo extiende el fondo hasta los bordes de la pantalla. El ancho del contenido controla el área interior.",
    "section_content_width": "Ancho del contenido",
    "section_width_narrow": "Estrecho (768px)",
    "section_width_default": "Predeterminado (ancho de página)",
    "section_width_wide": "Ancho (1200px)",
    "section_width_full": "Completo (sin límite)",
    "slideshow": "Presentación",
    "slideshow_mode": "Modo",
    "slideshow_mode_image": "Solo imagen",
    "slideshow_mode_hero": "Hero (imagen + contenido)",
    "slideshow_animation": "Animación",
    "animation_slide": "Deslizar",
    "animation_fade": "Fundido",
    "slideshow_autoplay": "Reproducción automática",
    "slideshow_interval": "Intervalo (segundos)",
    "slideshow_arrows": "Mostrar flechas",
    "slideshow_dots": "Mostrar puntos",
    "slideshow_overlay": "Superposición",
    "slideshow_slides": "Diapositivas",
    "slideshow_add_slide": "Añadir diapositiva",
    "slideshow_remove_slide": "Eliminar diapositiva",
    "alt_text_override": "Texto alternativo (personalizado)",
    "alt_text_library_hint": "Heredado de la biblioteca multimedia. Editar en Multimedia → Biblioteca.",
    "padding": "Relleno",
    "padding_sm": "Pequeño",
    "padding_md": "Mediano",
    "padding_lg": "Grande",
    "padding_xl": "Extra grande",
    "move_up": "Subir",
    "move_down": "Bajar",
    "duplicate": "Duplicar",
    "delete": "Eliminar",
    "drag": "Arrastrar",
    "unsaved_warning": "Tienes cambios sin guardar. ¿Estás seguro de que quieres salir?",
    "content_alignment": "Alineación del texto",
    "alignment_auto": "— Automático",
    "block_position": "Posición del bloque",
    "slide_select_hint": "Haz clic en un número de diapositiva para editar sus bloques",
    "slideshow_add_block": "Añadir bloque a la diapositiva",
    "default_heading": "Nuevo encabezado",
    "default_text": "Empieza a escribir aquí...",
    "text_edit_canvas_hint": "Haz clic en el texto del lienzo para editar",
    "default_button": "Haz clic aquí",
    "default_accordion_title": "Nueva pregunta",
    "default_tab": "Pestaña",
    "click_select_image": "Haz clic para seleccionar imagen",
    "click_select_form": "Haz clic para seleccionar formulario",
    "add_block": "Añadir bloque",
    "section_full_width_badge": "ANCHO COMPLETO",
    "table_add_row": "Fila",
    "table_add_col": "Columna",
    "table_width": "Ancho de tabla",
    "column_alignment": "Alineación de columna",
    "table_remove_row": "Fila",
    "table_remove_col": "Columna",
    "table_insert_row": "Insertar fila",
    "column_width": "Ancho de columna",
    "column_width_hint": "%",
    "total": "Total",
    "undo": "Deshacer",
    "redo": "Rehacer",
    "visibility": "Visibilidad",
    "visibility_all": "Todos los dispositivos",
    "visibility_desktop": "Solo escritorio",
    "visibility_mobile": "Solo móvil",
    "scroll_animation": "Animación al hacer scroll",
    "animation_fade_in": "Fundido",
    "animation_slide_up": "Deslizar hacia arriba",
    "alt_missing": "Sin texto alternativo — selecciona imagen de la biblioteca",
    "delete_block_confirm": "¿Eliminar este bloque de {type}?",
    "delete_item_confirm": "¿Eliminar este elemento?",
    "empty_hint": "Aún no hay elementos. Haz clic en el botón de abajo para añadir uno.",
    "video_gallery": "Galería de vídeos",
    "video_gallery_add": "Añadir vídeo",
    "video_gallery_add_title": "Añadir vídeo",
    "video_gallery_add_btn": "Añadir",
    "video_gallery_empty": "Haz clic para añadir vídeos",
    "video_gallery_videos": "vídeos",
    "video_gallery_title_fetched": "Título obtenido automáticamente",
    "video_meta_fetch_failed": "No se pudo obtener la información del vídeo",
    "ticker": "Ticker de logos",
    "ticker_speed": "Velocidad",
    "ticker_slow": "Lento",
    "ticker_medium": "Medio",
    "ticker_fast": "Rápido",
    "ticker_pause_hover": "Pausar al pasar el cursor",
    "ticker_grayscale": "Efecto escala de grises",
    "ticker_height": "Altura del logo",
    "ticker_direction": "Dirección",
    "ticker_dir_rtl": "Derecha a izquierda",
    "ticker_dir_ltr": "Izquierda a derecha",
    "ticker_images": "logos",
    "toggle_preview": "Alternar vista previa: oscuro ↔ claro",
    "canvas": "Lienzo",
    "bold": "Negrita",
    "italic": "Cursiva",
    "underline": "Subrayado",
    "strikethrough": "Tachado",
    "align_left": "Alinear a la izquierda",
    "align_center": "Centrar",
    "align_right": "Alinear a la derecha",
    "align_justify": "Justificar",
    "bullet_list": "Lista con viñetas",
    "numbered_list": "Lista numerada",
    "link": "Enlace",
    "clear_formatting": "Limpiar formato",
    "icon_check": "Marca",
    "icon_cross": "Cruz",
    "icon_star": "Estrella",
    "icon_feature": "Característica",
    "icon_tip": "Consejo",
    "icon_warning": "Advertencia",
    "icon_plus": "Más",
    "icon_minus": "Menos",
    "icon_dot": "Punto",
    "error_loading_forms": "Error al cargar formularios",
    "form_search_placeholder": "Buscar formularios...",
    "form_all_languages": "Todos",
    "form_new": "Crear un formulario",
    "ai_placeholder": "Describe tu página: propósito, secciones, contenido, estilo...",
    "ai_welcome": "¡Dime qué página te gustaría construir! Describe el propósito, qué secciones necesitas (hero, características, testimonios, FAQ, contacto...) y cualquier contenido específico. Cuanto más detalle des, mejor será el resultado. También puedes pedirme que modifique el diseño después de generarlo.",
    "ai_thinking": "Pensando...",
    "ai_generated": "✅ Se generaron <strong>{count} bloques</strong>. Haz clic en \"Aplicar\" para cargarlos en el lienzo.",
    "ai_no_blocks": "No se generaron bloques. Intenta ser más específico sobre la estructura de la página.",
    "ai_apply_blocks": "Aplicar bloques",
    "ai_blocks_loaded": "Bloques de IA cargados — {count} bloques",
    "editor_readonly_hint": "Este contenido es gestionado por Page Builder",
    "convert_from_editor_title": "¿Cambiar esta página al Page Builder?",
    "convert_from_editor_warning": "Esta página se creó en el editor normal. Al guardar aquí pasará a ser gestionada por el Page Builder: el editor normal quedará en solo lectura para esta página y el formato original puede cambiar. Para seguir editándola en el editor normal, cierra el builder sin guardar.",
    "convert_from_editor_ok": "Guardar en el Page Builder"
  },
  "forms": {
    "title": "Formularios",
    "subtitle": "Crea y gestiona formularios, encuestas y recopilación de datos",
    "new_form": "Crear nuevo formulario",
    "create_subtitle": "Elige una plantilla y empieza a construir tu formulario",
    "edit_form": "Editar formulario",
    "edit_subtitle": "Diseña los campos de tu formulario y configura los ajustes",
    "no_forms": "Aún no hay formularios",
    "no_forms_text": "Crea tu primer formulario para empezar a recopilar datos",
    "no_forms_filtered": "No hay formularios que coincidan con tus filtros",
    "clear_filters": "Limpiar filtros",
    "search_placeholder": "Buscar formularios...",
    "all_types": "Todos los tipos",
    "create_first": "Crear primer formulario",
    "delete_confirm": "¿Estás seguro de que quieres eliminar \"{title}\"? Todos los envíos también se eliminarán.",
    "delete_confirm_generic": "¿Estás seguro de que quieres eliminar este formulario? Todos los envíos también se eliminarán.",
    "usage_warning": "⚠️ Este formulario está incrustado en bloques del Page Builder:",
    "usage_confirm_delete": "El bloque del formulario se eliminará de estas páginas. ¿Eliminar de todos modos?",
    "form_type": "Tipo de formulario",
    "type_contact": "Formulario de contacto",
    "type_contact_desc": "Nombre, email, asunto, mensaje — formulario de contacto clásico con consentimiento de privacidad",
    "type_survey": "Encuesta / Sondeo",
    "type_survey_desc": "Valoración, botones de radio, casillas — recopila opiniones y comentarios",
    "type_subscription": "Suscripción",
    "type_subscription_desc": "Registro de email con consentimiento — listo para integración con boletín",
    "type_custom": "Formulario personalizado",
    "type_custom_desc": "Empieza desde cero y construye exactamente lo que necesitas",
    "status_active": "Activo",
    "status_inactive": "Inactivo",
    "submissions_count": "Envíos",
    "new_badge": "nuevo",
    "fields": "Campos",
    "form_settings": "Ajustes del formulario",
    "field_types": "Tipos de campo",
    "add_field": "Añadir campo",
    "field_label": "Etiqueta",
    "field_name": "Nombre del campo",
    "field_name_help": "Nombre interno (sin espacios, minúsculas)",
    "field_placeholder": "Texto de ejemplo",
    "field_required": "Obligatorio",
    "field_width": "Ancho",
    "field_width_full": "Ancho completo",
    "field_width_half": "Medio ancho",
    "field_help_text": "Texto de ayuda",
    "field_options": "Opciones (una por línea)",
    "field_max_rating": "Estrellas máximas",
    "field_consent_text": "Texto de consentimiento",
    "type_text": "Texto",
    "type_email": "Email",
    "type_phone": "Teléfono",
    "type_number": "Número",
    "type_textarea": "Área de texto",
    "type_select": "Desplegable",
    "type_radio": "Botones de radio",
    "type_checkbox": "Casillas de verificación",
    "type_date": "Fecha",
    "type_url": "URL",
    "type_file": "Subir archivo",
    "type_hidden": "Oculto",
    "type_rating": "Valoración con estrellas",
    "type_consent": "Consentimiento / RGPD",
    "settings_submit_label": "Texto del botón de envío",
    "settings_success_message": "Mensaje de éxito",
    "settings_success_help": "Se muestra después de un envío exitoso",
    "settings_redirect_url": "URL de redirección (opcional)",
    "settings_redirect_help": "Redirigir a esta URL después del envío en lugar de mostrar el mensaje de éxito",
    "settings_notify_email": "Email de notificación",
    "settings_notify_help": "Recibir un email cuando alguien envíe este formulario",
    "settings_notify_on_submit": "Enviar notificación por email en cada envío",
    "settings_store_submissions": "Almacenar envíos en la base de datos",
    "settings_anti_spam": "Protección antispam",
    "settings_anti_spam_honeypot": "Honeypot (recomendado)",
    "settings_anti_spam_none": "Ninguna",
    "preview": "Vista previa",
    "move_up": "Subir",
    "move_down": "Bajar",
    "duplicate_field": "Duplicar",
    "remove_field": "Eliminar",
    "form_slug": "Slug del formulario",
    "form_description": "Descripción",
    "form_description_help": "Se muestra encima del formulario en el sitio público",
    "translate_form": "Crear traducción",
    "translating_from": "Traduciendo desde:",
    "select_target_language": "Seleccionar idioma de destino",
    "existing_translations": "Traducciones existentes",
    "ai_translate_fields": "IA: Traducir todos los campos",
    "translating_fields": "Traduciendo campos...",
    "language": "Idioma",
    "translations": "Traducciones",
    "no_translations": "Aún no hay traducciones",
    "create_translation": "Crear traducción",
    "ai_translate_create": "IA: Traducir y crear",
    "translation_group": "Grupo de traducción",
    "ai_generate_form": "IA: Generar formulario",
    "ai_generate_form_desc": "Deja que la IA cree los campos del formulario basándose en tu descripción",
    "ai_hint_create_first": "Crea el formulario primero, luego usa la IA para generar campos en la página de edición",
    "ai_hint_translate": "Usa la IA para generar o ajustar el contenido del formulario para el idioma de destino",
    "this_version": "— esta versión",
    "or_use_ai": "O usa la IA:",
    "select_language_placeholder": "— Seleccionar idioma —",
    "ai_translate_help": "Crea un nuevo formulario con campos traducidos por IA",
    "group": "Grupo",
    "drag": "Arrastrar",
    "copy": "Copiar",
    "select_language_first": "Por favor, selecciona primero un idioma de destino.",
    "confirm_ai_translate": "¿Crear traducción con IA a {lang}? Se creará un nuevo formulario con todos los campos traducidos.",
    "open_existing_translation": "¿Abrir la traducción existente?",
    "default_text_field": "Campo de texto",
    "default_email": "Email",
    "default_phone": "Teléfono",
    "default_number": "Número",
    "default_message": "Mensaje",
    "default_select": "Seleccionar",
    "default_choice": "Opción",
    "default_select_all": "Selecciona todas las que apliquen",
    "default_date": "Fecha",
    "default_website": "Sitio web",
    "default_rating": "Valoración",
    "default_privacy": "Privacidad",
    "default_hidden": "Oculto",
    "default_consent_text": "Acepto el tratamiento de mis datos personales.",
    "default_option": "Opción",
    "default_your_message": "Tu mensaje...",
    "source_form": "Formulario de origen",
    "source_badge": "origen",
    "source_form_fields": "Campos del formulario de origen",
    "original": "Original",
    "translated_title_placeholder": "Título del formulario traducido...",
    "translated_desc_placeholder": "Descripción traducida...",
    "source_settings": "Ajustes",
    "source_submit": "Enviar",
    "source_success": "Éxito",
    "source_placeholder": "Texto de ejemplo",
    "source_help": "Ayuda",
    "source_consent": "Consentimiento",
    "source_options": "Opciones",
    "ai_translate_all_help": "Traduce el título, descripción, todas las etiquetas de campos, textos de ejemplo, opciones, textos de consentimiento y el botón de envío mediante IA. Crea el formulario traducido automáticamente.",
    "confirm_ai_translate_full": "¿Crear traducción con IA a {lang}? Se creará un nuevo formulario con todos los campos, etiquetas, textos de ejemplo y ajustes traducidos.",
    "redirect_to_translation": "Redirigiendo a la edición de la traducción...",
    "fields_count": "campos",
    "new_form_placeholder": "Mi formulario de contacto",
    "tpl_contact_name": "Tu nombre",
    "tpl_contact_name_placeholder": "Juan Pérez",
    "tpl_contact_email": "Dirección de email",
    "tpl_contact_email_placeholder": "juan@ejemplo.com",
    "tpl_contact_subject": "Asunto",
    "tpl_contact_subject_placeholder": "¿En qué podemos ayudarte?",
    "tpl_contact_message": "Mensaje",
    "tpl_contact_message_placeholder": "Tu mensaje...",
    "tpl_contact_privacy": "Política de privacidad",
    "tpl_contact_consent": "Acepto el tratamiento de mis datos personales de acuerdo con la Política de Privacidad.",
    "tpl_contact_submit": "Enviar mensaje",
    "tpl_contact_success": "¡Gracias! Nos pondremos en contacto contigo pronto.",
    "tpl_survey_name": "Tu nombre (opcional)",
    "tpl_survey_satisfaction": "¿Cuál es tu nivel de satisfacción con nuestro servicio?",
    "tpl_survey_opt_very_satisfied": "Muy satisfecho",
    "tpl_survey_opt_satisfied": "Satisfecho",
    "tpl_survey_opt_neutral": "Neutral",
    "tpl_survey_opt_dissatisfied": "Insatisfecho",
    "tpl_survey_opt_very_dissatisfied": "Muy insatisfecho",
    "tpl_survey_rating": "Valora tu experiencia general",
    "tpl_survey_improvements": "¿Qué podríamos mejorar?",
    "tpl_survey_opt_speed": "Velocidad",
    "tpl_survey_opt_quality": "Calidad",
    "tpl_survey_opt_communication": "Comunicación",
    "tpl_survey_opt_price": "Precio",
    "tpl_survey_opt_support": "Soporte",
    "tpl_survey_comments": "Comentarios adicionales",
    "tpl_survey_comments_placeholder": "Cuéntanos más...",
    "tpl_survey_submit": "Enviar encuesta",
    "tpl_survey_success": "¡Gracias por tus comentarios! Nos ayudan a mejorar.",
    "tpl_sub_email": "Dirección de email",
    "tpl_sub_email_placeholder": "tu@email.com",
    "tpl_sub_name": "Nombre (opcional)",
    "tpl_sub_name_placeholder": "Tu nombre",
    "tpl_sub_consent_label": "Consentimiento del boletín",
    "tpl_sub_consent_text": "Acepto recibir actualizaciones por email. Puedo cancelar mi suscripción en cualquier momento.",
    "tpl_sub_submit": "Suscribirse",
    "tpl_sub_success": "¡Te has suscrito! Revisa tu bandeja de entrada para el email de confirmación.",
    "tpl_custom_field": "Campo 1",
    "tpl_custom_submit": "Enviar",
    "tpl_custom_success": "¡Gracias! Tu respuesta ha sido registrada.",
    "email_new_submission": "Nuevo envío: {title}",
    "email_subject_submission": "[{title}] Nuevo envío",
    "default_thank_you": "¡Gracias!",
    "default_submit": "Enviar",
    "all_translated": "Todos los idiomas ya tienen traducción.",
    "settings_confirmation_email": "Enviar email de confirmación al visitante",
    "settings_confirmation_email_help": "Envía un email de agradecimiento al visitante después del envío (requiere un campo de email obligatorio)",
    "settings_double_opt_in": "Requerir confirmación de email (doble opt-in)",
    "settings_double_opt_in_help": "El visitante debe hacer clic en un enlace del email para confirmar su dirección. Recomendado para formularios de suscripción."
  },
  "submissions": {
    "title": "Envíos",
    "subtitle": "Ver respuestas de",
    "no_submissions": "Aún no hay envíos",
    "no_submissions_text": "Los envíos aparecerán aquí cuando los visitantes rellenen el formulario.",
    "no_results": "No hay envíos que coincidan con tu búsqueda",
    "clear_search": "Limpiar búsqueda",
    "search_placeholder": "Buscar por email, nombre, IP...",
    "delete_selected": "Eliminar seleccionados",
    "clear_selection": "Limpiar selección",
    "select_all": "Seleccionar todo",
    "bulk_delete_confirm": "¿Eliminar {count} envíos seleccionados? Esta acción no se puede deshacer.",
    "export_csv": "Exportar CSV",
    "export_excel": "Exportar Excel",
    "all": "Todos",
    "new": "Nuevos",
    "read": "Leídos",
    "archived": "Archivados",
    "spam": "Spam",
    "mark_as": "Marcar como",
    "delete": "Eliminar",
    "delete_confirm": "¿Eliminar este envío?",
    "date": "Fecha",
    "status": "Estado",
    "ip": "Dirección IP",
    "data": "Datos",
    "detail_title": "Detalle del envío",
    "back_to_list": "← Volver a envíos",
    "submitted_at": "Enviado",
    "user_agent": "Navegador",
    "referrer": "Referencia",
    "metadata": "Metadatos",
    "agreed": "Aceptó",
    "not_agreed": "No aceptó",
    "email_confirmed": "Confirmado",
    "email_pending": "Pendiente",
    "email_not_applicable": "N/A",
    "email_status": "Estado del email"
  },
  "admin_bar": {
    "edit_page": "Editar página",
    "edit_post": "Editar entrada",
    "page_builder": "Page Builder",
    "dashboard": "Panel"
  },
  "newsletter": {
    "title": "Boletín",
    "subtitle": "Envía correos a tus suscriptores y encuestados",
    "compose": "Nueva campaña",
    "compose_subtitle": "Crea una campaña de email y envíala a tu audiencia",
    "edit_campaign": "Editar campaña",
    "view_campaign": "Ver campaña",
    "subject": "Asunto",
    "subject_placeholder": "Asunto de tu boletín...",
    "content": "Contenido del email",
    "audience": "Audiencia",
    "target_languages": "Filtrar por idioma",
    "target_languages_help": "Selecciona los idiomas a los que dirigirte. Déjalo vacío para enviar a todos.",
    "target_forms": "Filtrar por formulario",
    "target_forms_help": "Selecciona formularios específicos. Déjalo vacío para incluir todos los formularios con campo de email.",
    "no_forms_with_email": "No se encontraron formularios activos con campo de email.",
    "recipients": "Destinatarios",
    "languages": "Idiomas",
    "all_languages": "Todos",
    "status_label": "Estado",
    "status_draft": "Borrador",
    "status_sending": "Enviando...",
    "status_sent": "Enviado",
    "status_failed": "Fallido",
    "date": "Fecha",
    "failed": "fallidos",
    "actions": "Acciones",
    "save_draft": "Guardar borrador",
    "save_first_hint": "Guarda el borrador primero para desbloquear el envío de prueba y la entrega.",
    "test_send": "Email de prueba",
    "send_test": "Enviar prueba",
    "send_now": "Enviar a todos los destinatarios",
    "send_warning": "Esta acción no se puede deshacer. Los correos se enviarán inmediatamente.",
    "send_confirm": "¿Enviar este boletín a {count} destinatarios? Esta acción no se puede deshacer.",
    "no_recipients_alert": "No se encontraron destinatarios. Revisa tus filtros de idioma y formulario.",
    "sent_info": "Esta campaña ha sido enviada.",
    "sent_at": "Enviado el",
    "no_newsletters": "Aún no hay campañas",
    "no_newsletters_text": "Crea tu primera campaña de email para llegar a tus suscriptores.",
    "delete_confirm": "¿Eliminar esta campaña? Esta acción no se puede deshacer.",
    "recipient_list": "Lista de destinatarios",
    "recipient_list_help": "Estas personas recibirán el correo. Desmarca para excluir.",
    "translate_recipients_help": "Destinatarios del idioma de destino seleccionado. Esta es una vista previa — los ajustes de audiencia se heredan de la campaña original.",
    "search_recipients": "Buscar por nombre o email...",
    "sort_email": "Email",
    "sort_name": "Nombre",
    "sort_source": "Origen",
    "select_all": "Seleccionar todo",
    "deselect_all": "Deseleccionar todo",
    "import_csv": "Importar CSV",
    "import_csv_help": "Archivo CSV con columnas: email, nombre (opcional)",
    "imported_badge": "importado",
    "excluded_badge": "excluido",
    "no_recipients_yet": "No hay destinatarios que coincidan con los filtros actuales.",
    "showing_recipients": "Mostrando {shown} de {total}",
    "csv_imported": "{count} correos importados desde CSV",
    "test_banner": "EMAIL DE PRUEBA — Esta es una vista previa, no se envía a los suscriptores",
    "unsubscribe_link": "Cancelar suscripción",
    "confirmed_only": "Solo suscriptores confirmados",
    "confirmed_only_help": "Enviar solo a destinatarios que confirmaron su email mediante doble opt-in. Los suscriptores importados y sin opt-in siempre se incluyen.",
    "confirmed_badge": "confirmado",
    "pending_badge": "pendiente",
    "imported_source": "Importación CSV",
    "search_placeholder": "Buscar por asunto...",
    "no_campaigns": "No hay campañas que coincidan con tus filtros.",
    "try_adjusting": "Prueba a ajustar tus filtros o consulta de búsqueda.",
    "clear_filters": "Limpiar filtros",
    "create_first": "Crea tu primera campaña de email para llegar a tus suscriptores.",
    "create_first_btn": "Crear campaña",
    "campaign_language_help": "El idioma en el que está escrita esta campaña.",
    "duplicate_confirm": "¿Crear una copia de \"{title}\"?",
    "ai_translate_help": "Crea una nueva campaña con el asunto y contenido traducidos por IA (como borrador).",
    "translate_confirm": "¿Crear traducción con IA a {lang}?\n\nSe creará un nuevo borrador con el asunto y contenido traducidos.",
    "manual_confirm": "¿Crear una copia para {lang}?\n\nSe duplicará la campaña con todo su contenido. Luego podrás traducirla manualmente.\n\nNo se usarán tokens de IA.",
    "translate_campaign": "Crear una versión traducida de una campaña de boletín",
    "translated_subject_placeholder": "Asunto traducido...",
    "source_campaign": "Campaña de origen",
    "ai_generate_help": "Generar asunto y contenido del email con IA"
  },
  "flash": {
    "setup_completed": "¡Configuración completada correctamente! Bienvenido a AliothPress.",
    "setup_already_done": "La configuración ya se completó",
    "fields_required": "Todos los campos son obligatorios",
    "passwords_mismatch": "Las contraseñas no coinciden",
    "password_min_length": "La contraseña debe tener al menos 8 caracteres.",
    "invalid_credentials": "Nombre de usuario o contraseña inválidos",
    "logged_out": "Has cerrado sesión",
    "too_many_attempts": "Demasiados intentos fallidos. Por favor, espera 15 minutos.",
    "post_created": "¡Entrada creada correctamente!",
    "post_updated": "¡Entrada actualizada correctamente!",
    "post_deleted": "¡Entrada eliminada correctamente!",
    "page_created": "¡Página creada correctamente!",
    "page_updated": "¡Página actualizada correctamente!",
    "page_deleted": "¡Página eliminada correctamente!",
    "translation_created": "¡Traducción creada correctamente! Estado: {status}",
    "translation_exists": "¡La traducción en {language} ya existe!",
    "slug_exists": "El slug ya existe (usado por otra entrada o página), se usará un slug generado automáticamente",
    "image_uploaded": "¡Imagen subida y optimizada correctamente!",
    "image_updated": "¡Imagen actualizada correctamente!",
    "image_deleted": "¡Imagen eliminada correctamente!",
    "file_uploaded": "¡Archivo subido correctamente!",
    "file_updated": "¡Archivo actualizado correctamente!",
    "file_deleted": "¡Archivo eliminado correctamente!",
    "file_too_large": "El archivo es demasiado grande. Tamaño máximo: {size}MB.",
    "alt_text_required": "¡El texto alternativo es obligatorio para la accesibilidad!",
    "alt_text_required_short": "¡El texto alternativo es obligatorio!",
    "invalid_file_type": "Tipo de archivo inválido. Formatos permitidos: {formats}. Tamaño máximo: {size}MB.",
    "no_file_selected": "No se seleccionó ningún archivo",
    "settings_saved": "¡Ajustes guardados correctamente!",
    "email_test_sent": "¡Email de prueba enviado a {email}!",
    "email_test_failed": "Error al enviar el email de prueba: {message}",
    "email_address_required": "Por favor, proporciona una dirección de email para la prueba.",
    "access_denied": "Acceso denegado",
    "owner_only": "Solo el propietario del sitio puede realizar esta acción.",
    "permission_denied": "No tienes permiso para acceder a esta página.",
    "invite_email_required": "Por favor, introduce una dirección de email.",
    "invite_email_exists": "Ya existe un usuario con el email {email}.",
    "invite_admin_owner_only": "Solo el propietario del sitio puede invitar administradores.",
    "invite_sent": "¡Invitación enviada a {email}!",
    "invite_email_failed": "Usuario creado pero el email falló: {message}. Comparte este enlace manualmente: {url}",
    "invite_invalid": "Enlace de invitación inválido.",
    "invite_expired": "Esta invitación ha expirado. Por favor, pide al administrador que envíe una nueva.",
    "username_password_required": "El nombre de usuario y la contraseña son obligatorios.",
    "username_taken": "Este nombre de usuario ya está en uso.",
    "account_created": "¡Cuenta creada! Por favor, inicia sesión.",
    "cannot_change_owner_role": "No se puede cambiar el rol del propietario del sitio.",
    "owner_assign_admin_only": "Solo el propietario del sitio puede asignar el rol de administrador.",
    "role_changed": "{name} ahora es {role}.",
    "cannot_delete_owner": "No se puede eliminar al propietario del sitio.",
    "cannot_delete_self": "No puedes eliminar tu propia cuenta.",
    "user_deleted": "El usuario {name} ha sido eliminado.",
    "email_in_use": "Este email ya está en uso.",
    "profile_updated": "¡Perfil actualizado!",
    "menu_updated": "¡Menú {location} actualizado correctamente!",
    "api_key_saved": "¡Clave API guardada correctamente!",
    "theme_activated": "¡Tema \"{name}\" activado!",
    "theme_not_found": "Tema no encontrado",
    "display_mode_changed": "Modo de visualización predeterminado actualizado.",
    "custom_css_saved": "CSS personalizado guardado.",
    "custom_css_url_not_supported": "El CSS personalizado no admite url() ni @import.",
    "robots_updated": "¡robots.txt actualizado correctamente!",
    "backup_failed": "Error en la copia de seguridad: {error}",
    "backup_invalid_zip": "Archivo ZIP inválido",
    "backup_upload_zip": "Por favor, sube un archivo .zip de copia de seguridad válido",
    "backup_suspicious": "Archivo de copia de seguridad inválido: se detectaron rutas sospechosas",
    "backup_restored": "Copia de seguridad restaurada correctamente: {items}. Por favor, reinicia el servidor.",
    "backup_no_data": "El archivo de copia de seguridad no contenía datos reconocibles",
    "backup_restore_failed": "Error en la restauración: {error}",
    "password_reset_sent": "Si existe una cuenta con ese email, se ha enviado un enlace para restablecer la contraseña.",
    "password_reset_invalid": "Este enlace de restablecimiento de contraseña es inválido o ha expirado.",
    "password_reset_done": "¡Tu contraseña ha sido restablecida! Por favor, inicia sesión con tu nueva contraseña.",
    "email_enter_address": "Por favor, introduce tu dirección de email.",
    "favicon_invalid_format": "Por favor, sube una imagen PNG, JPG, SVG o WebP.",
    "favicon_generated": "¡Todos los favicons generados correctamente!",
    "favicon_generation_failed": "Error al generar favicons: {error}",
    "favicon_svg_only": "SVG guardado, pero no se pudieron generar los tamaños rasterizados. Instala cairosvg para compatibilidad completa con SVG.",
    "favicon_deleted": "Todos los favicons eliminados.",
    "form_created": "¡Formulario creado correctamente!",
    "form_updated": "¡Formulario actualizado correctamente!",
    "form_deleted": "¡Formulario eliminado correctamente!",
    "form_fields_invalid": "JSON de campos inválido. Por favor, revisa la estructura del formulario.",
    "submission_deleted": "Envío eliminado.",
    "submissions_bulk_deleted": "{count} envíos eliminados.",
    "newsletter_saved": "¡Campaña guardada como borrador!",
    "newsletter_deleted": "Campaña eliminada.",
    "newsletter_test_sent": "¡Email de prueba enviado a {email}!",
    "newsletter_test_failed": "Error en el email de prueba: {message}",
    "newsletter_sent": "¡Boletín enviado a {count} destinatarios! ({failed} fallidos)",
    "newsletter_already_sent": "Este boletín ya fue enviado.",
    "newsletter_no_recipients": "No se encontraron destinatarios. Revisa tus filtros de idioma y formulario.",
    "session_expired": "La sesión ha expirado. Por favor, inténtalo de nuevo.",
    "current_password_wrong": "La contraseña actual es incorrecta.",
    "password_needs_uppercase": "La contraseña debe contener al menos una letra mayúscula.",
    "password_needs_lowercase": "La contraseña debe contener al menos una letra minúscula.",
    "password_needs_digit": "La contraseña debe contener al menos un dígito.",
    "license_activated": "¡Licencia activada correctamente!",
    "license_deactivated": "Licencia desactivada.",
    "license_validation_failed": "No se pudo validar la clave de licencia. Se ha guardado — la validación se reintentará.",
    "update_success": "¡AliothPress actualizado a v{version}!",
    "update_failed": "Error en la actualización: {error}",
    "too_many_requests": "Demasiadas solicitudes. Por favor, espera un momento e inténtalo de nuevo.",
    "db_connection_error": "Error de conexión a la base de datos: {error}",
    "openpyxl_required": "openpyxl es necesario para la exportación a Excel. Instálalo con: pip install openpyxl",
    "db_restore_warning": "Advertencia de restauración de base de datos: {warning}",
    "email_sent_ok": "¡Email enviado correctamente!",
    "smtp_auth_failed": "Error de autenticación. Verifica el nombre de usuario y contraseña SMTP.",
    "smtp_connect_failed": "No se pudo conectar a {host}:{port}. Verifica el host y el puerto.",
    "smtp_recipient_rejected": "Dirección del destinatario rechazada: {email}",
    "smtp_error": "Error de email: {error}",
    "newsletter_duplicated": "¡Campaña duplicada como borrador!",
    "newsletter_translation_exists": "Ya existe una traducción en {language} para esta campaña.",
    "invite_email_invalid": "Introduce una dirección de correo válida (máximo 120 caracteres)."
  },
  "email": {
    "reset_subject": "Restablecer contraseña",
    "reset_title": "Restablece tu contraseña",
    "reset_intro": "Solicitaste restablecer la contraseña de tu cuenta en {site_name}.",
    "reset_your_username": "Nombre de usuario",
    "reset_button": "Restablecer contraseña",
    "reset_expires": "Este enlace es válido durante 1 hora.",
    "reset_ignore": "Si no solicitaste esto, puedes ignorar este correo con seguridad.",
    "test_subject": "Email de prueba de {site_name}",
    "test_subtitle": "Prueba de configuración de email",
    "test_body": "¡Tu configuración de correo funciona correctamente!",
    "test_body_detail": "Este email de prueba fue enviado desde el panel de administración de {site_name} para verificar la configuración SMTP.",
    "invite_subject": "Estás invitado a unirte a {site_name}",
    "invite_subtitle": "¡Estás invitado!",
    "invite_body": "{inviter} te ha invitado a unirte a <strong>{site_name}</strong> como {role}.",
    "invite_cta": "Aceptar invitación",
    "invite_expires": "Esta invitación expira en 7 días.",
    "invite_click_hint": "Haz clic en el botón de abajo para crear tu cuenta:",
    "role_admin": "Administrador",
    "role_editor": "Editor",
    "sent_by": "Enviado por {site_name}",
    "confirm_subject": "Por favor confirma tu email — {site_name}",
    "confirm_title": "Confirma tu dirección de email",
    "confirm_intro": "Gracias por enviar el formulario \"{form_title}\". Por favor, haz clic en el botón de abajo para confirmar tu dirección de email.",
    "confirm_button": "Confirmar email",
    "confirm_ignore": "Si no enviaste este formulario, puedes ignorar este correo con seguridad.",
    "confirmation_subject": "Gracias por tu envío — {site_name}",
    "confirmation_title": "¡Gracias!",
    "confirmation_body": "Hemos recibido tu envío del formulario \"{form_title}\" en {site_name}. Nos pondremos en contacto contigo si es necesario."
  },
  "footer": {
    "all_rights_reserved": "Todos los derechos reservados."
  },
  "api": {
    "too_many_requests": "Demasiadas solicitudes. Por favor, espera un momento e inténtalo de nuevo.",
    "setup_already_completed": "La configuración ya se completó",
    "setup_db_fields_required": "El host, nombre de la base de datos y usuario son obligatorios",
    "setup_connected": "Conectado a \"{db_name}\" en {host}:{port}",
    "setup_timeout": "La operación excedió el tiempo de espera. Inténtalo de nuevo o instala manualmente.",
    "no_file_uploaded": "No se subió ningún archivo",
    "empty_file": "Archivo vacío",
    "form_not_accepting": "Este formulario no acepta envíos.",
    "form_inactive": "Formulario inactivo",
    "too_many_submissions": "Demasiados envíos. Por favor, inténtalo más tarde.",
    "no_blocks_data": "No hay datos de bloques",
    "convert_requires_confirm": "Esta página contiene contenido del editor normal. Guardar bloques la convertirá al Page Builder y el editor normal quedará en solo lectura para ella. Repite la solicitud con convert=true para confirmar.",
    "slug_empty": "El slug no puede estar vacío",
    "slug_available": "El slug está disponible",
    "missing_source_or_lang": "Falta source_id o target_lang",
    "missing_source_id": "Falta source_id",
    "source_not_found": "Contenido de origen no encontrado",
    "could_not_parse": "No se pudo procesar la respuesta de traducción de la IA",
    "api_key_not_configured": "Clave API no configurada. Ve a los ajustes del Asistente IA.",
    "unknown_task": "Tarea desconocida",
    "access_denied": "Acceso denegado",
    "backup_failed": "Error en la copia de seguridad. Actualización cancelada por seguridad.",
    "download_failed": "Error en la descarga o el checksum no coincide.",
    "slug_taken": "El slug \"/{slug}\" ya está en uso por: {title} ({language})",
    "translation_already_exists": "Ya existe una traducción en {language}",
    "apt_update_failed": "Error en apt-get update: {error}",
    "postgres_install_failed": "Error en la instalación de PostgreSQL: {error}",
    "pg_ready": "¡PostgreSQL está listo! Base de datos \"{db_name}\" creada.",
    "slug_invalid_chars": "Caracteres inválidos. Sugerencia: \"{slug}\"",
    "translation_copy_created": "Copia para {language} creada como borrador. Ahora puedes traducirla manualmente.",
    "duplicate_created": "Copia creada como borrador: \"{title}\"",
    "form_translation_created": "¡Traducción del formulario a {language} creada!",
    "ai_translation_created": "¡Traducción a {language} creada como borrador!",
    "api_error": "Error de API: {code}",
    "api_error_detail": "Error de API {code}: {detail}",
    "no_data_provided": "No se proporcionaron datos.",
    "unknown_provider": "Proveedor de IA desconocido: {provider}",
    "newsletter_translation_created": "¡Traducción del boletín a {language} creada como borrador!",
    "newsletter_duplicate_created": "Campaña duplicada como borrador: \"{title}\""
  },
  "webmcp": {
    "section_title": "Acceso de agentes de IA (WebMCP)",
    "section_help": "Permite que los agentes de IA usen tu sitio como herramientas estructuradas en lugar de adivinar dónde hacer clic. Funciona con navegadores agénticos (el agente que usa estas herramientas hoy es Gemini en Chrome; se espera que otros lo sigan). Función experimental del navegador: requiere HTTPS, y el agente siempre actúa dentro de los permisos del usuario actual.",
    "admin_label": "Panel de administración",
    "admin_help": "Permite que un usuario con sesión iniciada delegue tareas de administración (borradores, traducciones, subida de medios, imágenes adjuntas, bloques de página, menús) a su agente. Cada escritura pide confirmación y los agentes nunca pueden publicar — solo guardar borradores. Desactívalo para revocar el acceso al instante.",
    "public_label": "Herramientas públicas (búsqueda + formularios)",
    "public_help": "Registra la búsqueda del sitio como herramienta de agente en cada página pública, más herramientas de formulario en las páginas que muestran un formulario. El agente de un visitante puede encontrar contenido y rellenar y enviar formularios; el visitante confirma antes de enviar nada.",
    "polyfill_label": "Cargar polyfill de compatibilidad",
    "polyfill_help": "Añade la API modelContext en los navegadores que aún no la incluyen (carga un pequeño script desde una CDN). Déjalo desactivado si no quieres ninguna solicitud de terceros.",
    "token_label": "Token de origin trial",
    "token_placeholder": "Pega tu token de Chrome Origin Trial para este dominio",
    "token_help": "Necesario para ejecutar WebMCP con visitantes reales en producción (hasta que llegue a la versión estable de Chrome). Registra el dominio de tu sitio para el origin trial de WebMCP en Chrome y pega el token aquí. Sin él, el acceso de agentes solo funciona para usuarios que activan manualmente la marca del navegador. → developer.chrome.com/origintrials",
    "saved": "Ajustes de acceso de agentes guardados.",
    "confirm_create_post": "¿Crear la entrada \"{title}\" como {status}?",
    "confirm_create_page": "¿Crear la página \"{title}\" como {status}?",
    "confirm_create_builder_page": "¿Crear la página \"{title}\" (Page Builder) como {status}?",
    "confirm_build_menu": "¿Reemplazar el menú {location} con {count} elemento(s)?",
    "confirm_set_page_blocks": "¿Reemplazar el diseño de la página #{id} con los nuevos bloques?",
    "confirm_convert_page_blocks": "La página #{id} se creó en el editor normal. ¿Reemplazar su contenido con los nuevos bloques y convertirla al Page Builder? El editor normal quedará en solo lectura para esta página.",
    "declined": "Cancelado: no se cambió nada.",
    "confirm_upload_image": "¿Subir la imagen «{name}» a la biblioteca de medios?",
    "confirm_update_post": "¿Guardar los cambios de la entrada #{id} «{title}» (estado: {status})?",
    "confirm_update_page": "¿Guardar los cambios de la página #{id} «{title}» (estado: {status})?",
    "confirm_attach_image": "¿Adjuntar imagen ({slot}) a {type} #{id} «{title}»?",
    "publish_blocked": "La publicación no está disponible para agentes. Guarda un borrador — el propietario del sitio publica desde el panel de administración.",
    "builder_content_locked": "Esta página usa el constructor de páginas — cambia su diseño con set_page_blocks, no con el campo content.",
    "confirm_title": "El agente solicita aprobación",
    "approve": "Aprobar",
    "cancel": "Cancelar",
    "select_all": "Seleccionar todo",
    "approve_selected": "Aprobar seleccionados ({count})",
    "batch_title_posts": "El agente quiere crear {count} entrada(s) como borradores",
    "batch_title_pages": "El agente quiere crear {count} página(s) como borradores",
    "batch_title_images": "El agente quiere subir {count} imagen(es) a la biblioteca de medios",
    "autopilot_label": "Aprobar automáticamente las acciones del agente durante",
    "autopilot_minutes": "{min} min",
    "autopilot_badge": "Piloto automático del agente: acciones aprobadas automáticamente (quedan {min} min)",
    "autopilot_revoke": "Revocar"
  },
  "plugins": {
    "title": "Plugins",
    "subtitle": "Instala, licencia y gestiona plugins.",
    "installed": "Plugins instalados",
    "no_plugins": "Todavía no hay plugins instalados.",
    "upload_title": "Instalar plugin desde ZIP",
    "upload_help": "Sube un archivo ZIP de plugin. Los plugins nuevos empiezan desactivados — actívalos tras la instalación.",
    "install_btn": "Instalar",
    "third_party_warning": "Un plugin se ejecuta con los mismos permisos que el propio CMS. Instala solo plugins de fuentes de confianza.",
    "core_license_note": "Los plugins requieren una licencia válida de AliothPress. Activa primero tu licencia en Ajustes.",
    "restart_required": "Los cambios surten efecto tras un reinicio.",
    "restart_now": "Reiniciar ahora",
    "restart_scheduled": "Reinicio programado — el sitio volverá en unos segundos.",
    "status_active": "Activo",
    "status_disabled": "Desactivado",
    "status_needs_license": "Se requiere licencia",
    "status_needs_core_license": "Se requiere licencia del CMS",
    "status_pending_restart": "Se requiere reinicio",
    "status_error": "Error",
    "enable": "Activar",
    "disable": "Desactivar",
    "delete": "Eliminar",
    "delete_confirm": "¿Eliminar este plugin? Sus archivos se borrarán. Esta acción no se puede deshacer.",
    "license_key": "Clave de licencia del plugin",
    "activate_license": "Activar licencia",
    "license_valid": "Licencia activa",
    "license_invalid": "La clave de licencia no es válida.",
    "enabled_ok": "Plugin activado.",
    "disabled_ok": "Plugin desactivado.",
    "installed_ok": "Plugin instalado.",
    "removed_ok": "Plugin eliminado.",
    "err_not_zip": "Sube un archivo ZIP válido.",
    "err_too_big": "El archivo del plugin es demasiado grande.",
    "err_invalid_plugin": "El archivo ZIP no es un plugin válido.",
    "err_install_failed": "La instalación del plugin ha fallado.",
    "err_not_found": "Plugin no encontrado.",
    "err_empty_key": "Introduce una clave de licencia.",
    "check_updates": "Buscar actualizaciones",
    "updates_found": "Actualizaciones de plugins disponibles: {count}.",
    "up_to_date": "Todos los plugins están actualizados.",
    "update_check_failed": "Error al buscar actualizaciones: {error}",
    "update_available": "Actualización disponible: v{version}",
    "update_now": "Actualizar a v{version}",
    "changelog": "Novedades",
    "update_ok": "Plugin actualizado a v{version}.",
    "update_failed": "La actualización del plugin falló: no se pudo descargar el paquete o la suma de verificación no coincidió.",
    "err_no_update": "No hay ninguna actualización disponible para este plugin.",
    "update_needs_cms": "Esta actualización requiere AliothPress {version} o superior. Actualiza primero el CMS.",
    "restart_in_progress": "El servidor se está reiniciando para aplicar los cambios. Esta página se actualizará automáticamente en unos segundos.",
    "available_title": "Plugins disponibles",
    "available_help": "Publicados en tu servidor de actualizaciones — instalación con un clic. Cada descarga se verifica por suma de comprobación antes de desempaquetarse.",
    "catalog_refresh": "Actualizar catálogo",
    "catalog_refreshed": "Catálogo de plugins actualizado.",
    "catalog_error": "No se pudo actualizar el catálogo de plugins: {error}",
    "catalog_empty": "Nada nuevo en el servidor de actualizaciones — todo lo publicado ya está instalado.",
    "catalog_search": "Buscar plugins…",
    "install_from_server": "Instalar",
    "catalog_install_failed": "La descarga desde el servidor de actualizaciones falló. Comprueba el servidor e inténtalo de nuevo.",
    "catalog_activate_hint": "Este plugin necesita su clave de licencia — pégala en la tarjeta del plugin de abajo y actívala.",
    "catalog_free": "gratis",
    "catalog_license": "requiere clave de licencia",
    "catalog_requires_cms": "Requiere AliothPress {version}+",
    "show_all": "Mostrar todos ({count})",
    "show_less": "Mostrar menos",
    "err_invalid_id": "Id de plugin no válido: {pid}",
    "err_id_mismatch": "El id del manifiesto {pid} no coincide con la carpeta {folder}",
    "err_missing_init": "Falta el archivo __init__.py",
    "err_needs_cms": "Requiere AliothPress {min_ver} o superior (la versión instalada es {current}). Actualice primero el CMS.",
    "err_reserved_setting": "Plugin '{plugin}': el nombre de ajuste '{key}' está reservado por el núcleo — allí guarda el estado de activación y los datos de licencia del plugin. Elija otro nombre, p. ej. 'tracking' en lugar de 'enabled'.",
    "trial_days_left": "Prueba — quedan {days} día(s)",
    "trial_started": "Prueba gratuita iniciada — {days} días. Introduce una clave de licencia en cualquier momento para conservar el plugin después de la prueba.",
    "recheck_license": "Comprobar pago / revalidar licencia",
    "err_no_stored_key": "Aún no hay clave de licencia guardada — introdúcela y actívala primero.",
    "locked_page_msg": "La prueba gratuita ha terminado o la licencia no está activa. Introduce la clave de licencia para desbloquear el plugin — todos sus datos se conservan y todo vuelve en cuanto se valide la clave.",
    "catalog_trial": "Prueba gratuita de {days} días — instala ahora, sin clave; la clave de licencia se puede introducir más tarde.",
    "trial_on_enable": "Prueba gratuita de {days} días — comienza cuando activas el plugin."
  },
  "twofa": {
    "title": "Autenticación en dos pasos",
    "profile_help": "Al iniciar sesión se pedirá además un código de un solo uso de una app de autenticación. Opcional: la activas solo para tu propia cuenta.",
    "status_on": "La autenticación en dos pasos está activada para tu cuenta.",
    "status_off": "La autenticación en dos pasos no está activada para tu cuenta.",
    "btn_enable": "Activar la autenticación en dos pasos",
    "btn_disable": "Desactivar",
    "disable_password_label": "Contraseña actual (necesaria para desactivar)",
    "setup_title": "Configurar la autenticación en dos pasos",
    "setup_intro": "Escanea el código QR con cualquier app de autenticación (FreeOTP, Aegis, Google Authenticator, 1Password…) y luego introduce el código actual de la app. Nada se activa hasta completar toda la configuración.",
    "setup_scan": "Escanea este código QR con tu app de autenticación",
    "setup_manual_key": "¿No puedes escanear? Introduce esta clave manualmente:",
    "setup_code_step": "Introduce el código actual de la app",
    "setup_verify_btn": "Verificar código",
    "setup_cancel": "Cancelar",
    "setup_wrong_code": "El código no coincide. Revisa la app y el reloj del dispositivo e inténtalo de nuevo.",
    "recovery_title": "Códigos de recuperación",
    "recovery_intro": "Guarda ahora estos códigos de un solo uso: imprímelos o guárdalos en un gestor de contraseñas. Cada código te permite iniciar sesión una vez si pierdes tu dispositivo de autenticación. Solo se muestran esta vez.",
    "recovery_copy": "Copiar códigos",
    "recovery_confirm_label": "He guardado mis códigos de recuperación en un lugar seguro",
    "recovery_finish_btn": "Finalizar y activar",
    "recovery_confirm_required": "Confirma que has guardado tus códigos de recuperación.",
    "enabled_ok": "La autenticación en dos pasos está ahora activada.",
    "disabled_ok": "La autenticación en dos pasos se ha desactivado.",
    "site_disabled": "La autenticación en dos pasos no está habilitada en este sitio.",
    "login_title": "Código de verificación",
    "login_intro": "Introduce el código actual de tu app de autenticación.",
    "login_code_label": "Código",
    "login_recovery_hint": "También puedes introducir aquí uno de tus códigos de recuperación.",
    "login_trust_label": "Confiar en este navegador durante 30 días",
    "login_submit": "Verificar",
    "login_email_send": "Enviar un código de un solo uso a mi correo",
    "login_email_sent": "Se ha enviado un código de un solo uso a tu dirección de correo.",
    "login_email_failed": "No se pudo enviar el correo. Usa tu app de autenticación o un código de recuperación.",
    "login_email_unavailable": "Los códigos por correo no están habilitados en este sitio.",
    "login_back": "Volver al inicio de sesión",
    "login_failed": "Código incorrecto. Inténtalo de nuevo.",
    "login_expired": "El intento de inicio de sesión ha caducado. Vuelve a iniciar sesión.",
    "attempts_exceeded": "Demasiados códigos incorrectos. Vuelve a iniciar sesión.",
    "bypass_file_warning": "La autenticación en dos pasos se OMITIÓ porque existe el archivo DISABLE_2FA junto a app.py. Elimina el archivo en cuanto recuperes el acceso.",
    "reset_done": "Se ha restablecido la autenticación en dos pasos de {name}.",
    "reset_confirm": "¿Restablecer la autenticación en dos pasos de {name}? Iniciará sesión solo con contraseña hasta que la configure de nuevo.",
    "reset_btn_users": "Restablecer 2FA",
    "settings_title": "Autenticación en dos pasos",
    "settings_help": "Segundo factor opcional para las cuentas del panel, con apps de autenticación gratuitas (TOTP). Sin servicios externos: los códigos se verifican localmente y los correos usan tu propio SMTP.",
    "site_enable_label": "Permitir la autenticación en dos pasos en este sitio",
    "site_enable_help": "Desactivado por defecto. Al habilitarlo, cada usuario puede activar la 2FA para su propia cuenta desde su perfil. Nadie está obligado.",
    "email_fallback_label": "Permitir códigos de acceso de un solo uso por correo",
    "email_fallback_help": "Una vía de recuperación si se pierde el dispositivo de autenticación: se envía un código de un solo uso al correo de la cuenta mediante tu configuración SMTP.",
    "break_glass_help": "Acceso de emergencia: si alguna vez te quedas completamente bloqueado, crea un archivo vacío llamado DISABLE_2FA junto a app.py (basta el administrador de archivos de tu hosting); el segundo factor se omitirá hasta que borres el archivo. Cada inicio de sesión así queda marcado en el registro de auditoría.",
    "email_subtitle": "Seguridad de la cuenta",
    "email_code_subject": "{site} — tu código de acceso de un solo uso",
    "email_code_body": "Tu código de acceso de un solo uso para {site}:\n\n{code}\n\nEs válido durante 10 minutos. Si no intentaste iniciar sesión, cambia tu contraseña.",
    "email_enabled_subject": "{site} — autenticación en dos pasos activada",
    "email_enabled_body": "Hola {name}:\n\nse acaba de activar la autenticación en dos pasos en tu cuenta de {site}. Si no fuiste tú, restablécela desde tu perfil y cambia tu contraseña.",
    "email_disabled_subject": "{site} — autenticación en dos pasos desactivada",
    "email_disabled_body": "Hola {name}:\n\nse acaba de desactivar la autenticación en dos pasos en tu cuenta de {site}. Si no fuiste tú, cambia tu contraseña de inmediato.",
    "email_reset_subject": "{site} — autenticación en dos pasos restablecida",
    "email_reset_body": "Hola {name}:\n\nun administrador ha restablecido la autenticación en dos pasos de tu cuenta de {site}. Puedes iniciar sesión con tu contraseña y configurarla de nuevo en tu perfil."
  },
  "demo": {
    "banner": "Modo demo — explora todo libremente. Guardar, publicar, subir archivos y enviar están desactivados.",
    "read_only": "Esta es una demo de solo lectura — los cambios no se guardan.",
    "feature_disabled": "Esta función está desactivada en la demo.",
    "login_hint": "Acceso demo — las credenciales ya están rellenadas. Solo haz clic en «Iniciar sesión».",
    "pref_saved": "Idioma y tema aplicados — en la demo solo se conservan para tu sesión de navegador actual.",
    "theme_preview": "Tema aplicado — en la demo, tu elección solo es visible en tu sesión de navegador actual."
  }
}
