import type { Dict } from '../types';
import { en } from './en';

export const esES: Dict = {
  ...en,
  'homeHero.addMenu': 'Añadir contexto',
  'homeHero.addPlugin': 'Añadir plugin',
  'homeHero.addConnectors': 'Añadir conectores',
  'homeHero.addMcp': 'Añadir servidor MCP',
  'homeHero.noPlugins': 'No hay plugins instalados',
  'homeHero.noMcp': 'No hay servidores MCP',
  'homeHero.noConnectors': 'No hay conectores conectados',
  'chat.amrCard.switchTitle': 'Falló la llamada al modelo — esta ejecución está en pausa',
  'chat.amrCard.switchBody': 'Cambia al servicio oficial de modelos AMR de Open Design — sin configurar API Key. Tras iniciar sesión, autorizar y recargar, esta ejecución se reintentará automáticamente.',
  'chat.amrCard.chipOfficial': 'Alojamiento oficial',
  'chat.amrCard.chipNoKey': 'Sin API Key',
  'chat.amrCard.chipAutoRetry': 'Reintento automático tras iniciar sesión',
  'chat.amrCard.switchCta': 'Cambiar a AMR y reintentar',
  'chat.amrError.authMessage': 'Tu cuenta de AMR aún no está autorizada. Autorízala y esta ejecución se reintentará automáticamente.',
  'chat.amrError.balanceMessage': 'Tu saldo de AMR se ha agotado. Recarga para continuar esta ejecución.',
  'chat.amrError.authorizeCta': 'Autorizar y reintentar',
  'chat.amrError.rechargeCta': 'Recargar AMR',
  'chat.antigravityError.launchTerminalCta': 'Sign in via terminal',
  'chat.antigravityError.launchSwitchModelCta': 'Switch model in terminal',
  'plugins.actions.copyInstallCommand': 'Copiar comando de instalación',
  'plugins.actions.copyPluginId': 'Copiar ID del plugin',
  'plugins.actions.copyReadmeBadge': 'Copiar insignia README',
  'plugins.actions.openSourceGithub': 'Abrir código fuente en GitHub',
  'plugins.actions.openSource': 'Abrir código fuente',
  'plugins.actions.openHomepage': 'Abrir página de inicio',
  'plugins.actions.openMarketplace': 'Abrir en el marketplace',
  'workingDirPicker.title': "Folder",
  'workingDirPicker.homeTitle': "Choose where this project should live",
  'workingDirPicker.processing': "Processing…",
  'workingDirPicker.select': "Choose working directory",
  'workingDirPicker.clearAria': "Clear working directory",
  'workingDirPicker.replaceFailed': "Could not replace working directory",
  'workingDirPicker.unavailable': "Folder picker is unavailable in this build. Run the desktop app to pick a folder.",
  'workingDirPicker.openUnavailable': "Open this project in the desktop app to show the folder.",
  'workingDirPicker.openFailed': "Could not show this folder",
  'workingDirPicker.showInFileManager': "Show in file manager",
  'workingDirPicker.replace': "Replace directory…",
  'workingDirPicker.recent': "Recent directories",
  'handoff.toTarget': 'Hand off to {target}',
  'handoff.action': 'Hand off',
  'handoff.fallbackTitle': 'No editors found on $PATH - opens in {target}',
  'handoff.chooseTargetAria': 'Choose hand-off target',
  'handoff.notInstalled': 'Not installed',
  'handoff.notDetectedTitle': '{target} - not detected on $PATH',
  'homeHero.promptExamples': "Ejemplos",
  'homeHero.footer.designSystem': "Estilo",
  'homeHero.footer.autoDesignSystem': "Auto",
  'homeHero.footer.autoDesignSystemSummary': "Elige automáticamente el sistema de diseño y estilo visual más adecuados para el prompt actual.",
  'homeHero.footer.ratio': "Proporción",
  'homeHero.footer.duration': "Duración",
  'homeHero.footer.resolution': "Resolución",
  'homeHero.footer.speakerNotes': "Notes",
  'homeHero.footer.noSpeakerNotes': "Sin notas",
  'homeHero.footer.availableCount': "{n} available",
  'homeHero.footer.noMatches': "No matches",
  'homeHero.moreShortcuts': "Más",
  'common.cancel': 'Cancelar',
  'home.openExistingProject': "Abrir proyecto existente",
  'home.openExistingProjectOpening': "Abriendo...",
  'home.chooseFolderSubtitle': "Elige una carpeta de tu disco.",
  'common.save': 'Guardar',
  'common.close': 'Cerrar',
  'common.clear': 'Limpiar',
  'common.delete': 'Eliminar',
  'common.rename': 'Renombrar',
  'common.edit': 'Editar',
  'common.preview': 'Vista previa',
  'common.share': 'Compartir',
  'common.search': 'Buscar',
  'common.searchEllipsis': 'Buscar…',
  'common.loading': 'Cargando…',
  'common.all': 'Todos',
  'common.none': 'Ninguno',
  'common.default': 'Predeterminado',
  'common.installed': 'instalado',
  'common.notInstalled': 'no instalado',
  'common.active': 'activo',
  'common.offline': 'sin conexión',
  'common.selected': 'seleccionado',
  'common.create': 'Crear',
  'common.openPreview': 'Abrir vista previa',
  'common.exitFullscreen': 'Salir de pantalla completa',
  'common.fullscreen': 'Pantalla completa',
  'common.openInNewTab': 'Abrir en pestaña nueva',
  'common.exportPdf': 'Exportar como PDF',
  'common.exportZip': 'Descargar como .zip',
  'common.exportHtml': 'Exportar como HTML independiente',
  'common.exportImage': 'Exportar como imagen',
  'common.exportImageFailed': 'Error al capturar la imagen. Inténtalo de nuevo o usa la herramienta de captura de pantalla de tu navegador.',
  'common.justNow': 'justo ahora',
  'common.minutesAgo': 'hace {n} min',
  'common.hoursAgo': 'hace {n} h',
  'common.daysAgo': 'hace {n} d',
  'common.weeksAgo': '{n}w ago',
  'common.now': 'ahora',
  'common.minutesShort': '{n} min',
  'common.hoursShort': '{n} h',
  'common.daysShort': '{n} d',
  'common.untitled': 'Sin título',

  'app.brand': 'Open Design',
  'app.brandPill': 'Vista previa de investigación',
  'app.brandSubtitle': 'por Nexu Labs',
  'app.welcomeLoading': 'Cargando espacio de trabajo…',

  'settings.welcomeKicker': "",
  'settings.welcomeTitle': "Welcome",
  'settings.welcomeSubtitle': "",
  'settings.onboardingCreateTitle': 'Start from a brief',
  'settings.onboardingCreateBody':
    'Describe the site, app, deck, image, or video you want. Open Design will create a project and keep the work editable.',
  'settings.onboardingMemoryTitle': 'Save working context',
  'settings.onboardingMemoryBody':
    'Add preferences, project facts, and recurring rules so future chats pick up the right context.',
  'settings.onboardingSystemsTitle': 'Bring your design system',
  'settings.onboardingSystemsBody':
    'Pick or create a brand system so generated work follows real colors, typography, and product language.',
  'settings.onboardingExecutionTitle': 'Choose how generation runs',
  'settings.onboardingExecutionBody':
    'Official CLI with one-click setup and ready-to-use defaults. Use one key to choose from many models with better pricing.',
  'settings.onboardingAmrCloudBenefitOfficial': 'Recomendado oficialmente',
  'settings.onboardingAmrCloudBenefitReady': 'Sin despliegue',
  'settings.onboardingAmrCloudBenefitModels': 'Compatible con Claude Opus 4.8',
  'settings.onboardingAmrCloudBenefitPricing': 'SOTA Harness',
  'settings.onboardingAmrCloudUpcomingLabel': 'Próximamente',
  'settings.onboardingAmrCloudUpcomingImageVideo': 'Imagen y video',
  'settings.onboardingAmrCloudUpcomingSkills': 'Skills masivas',
  'settings.onboardingAmrCloudUpcomingRouting': 'Enrutamiento inteligente',
  'settings.onboardingAmrModelSourceLabel': 'AMR CLI',
  'settings.onboardingAmrCloudAuthorizeAction': 'Autorizar AMR',
  'settings.onboardingAmrCloudAuthorizedAction': 'Autorizado',
  'settings.onboardingStepConnect': "Connect",
  'settings.onboardingStepDesignSystem': "Design system",
  'settings.onboardingStepProfile': "About you",
  'settings.onboardingConnectTitle': "Choose a runtime",
  'settings.onboardingConnectBody': "",
  'settings.onboardingRecommended': "Recommended",
  'settings.onboardingLocalTitle': "Local coding agent",
  'settings.onboardingLocalBody': "Use an installed CLI such as Claude Code, Codex, Cursor, Gemini, or OpenCode.",
  'settings.onboardingLocalAction': "Open CLI settings",
  'settings.onboardingCliScanHint': "This usually takes 5-10 seconds.",
  'settings.onboardingByokTitle': "Bring your own key",
  'settings.onboardingByokBody': "Use your own model provider credentials.",
  'settings.onboardingByokAction': "Open BYOK settings",
  'settings.onboardingDesignTitle': "Design system",
  'settings.onboardingDesignBody': "Generate once, reuse everywhere.",
  'settings.onboardingDesignIntroGenerateTitle': "Generate from existing work",
  'settings.onboardingDesignIntroGenerateBody': "Upload your design system from GitHub or local code repositories, Figma files, images, and other content assets.",
  'settings.onboardingDesignIntroReuseTitle': "Reuse in future work",
  'settings.onboardingDesignIntroReuseBody': "Future prototypes, slides, and other content can reference your existing fonts, spacing, logo style, and color tone.",
  'settings.onboardingDesignIntroSkipTitle': "Optional for now",
  'settings.onboardingDesignIntroSkipBody': "Skip this step if you want to start without generating a design system.",
  'settings.onboardingGithubTitle': "Import from GitHub",
  'settings.onboardingGithubBody': "Use a frontend repository.",
  'settings.onboardingUploadTitle': "Upload local files",
  'settings.onboardingUploadBody': "Add project files, screenshots, CSS, docs, or assets.",
  'settings.onboardingPromptTitle': "Generate from prompt",
  'settings.onboardingPromptBody': "Describe the product or brand.",
  'settings.onboardingProfileTitle': "About you",
  'settings.onboardingProfileBody': "Optional details for better defaults.",
  'settings.onboardingRoleLabel': "Your role",
  'settings.onboardingOrgSizeLabel': "Organization size",
  'settings.onboardingUseCaseLabel': "Use case",
  'settings.onboardingSourceLabel': "Where did you hear about us?",
  'settings.onboardingSelectPlaceholder': "Select one",
  'settings.onboardingSelectMultiplePlaceholder': "Select one or more",
  'settings.onboardingOrgSolo': "Solo / personal (1)",
  'settings.onboardingOrgTeam': "Small team (2-10)",
  'settings.onboardingOrgStartup': "Startup / SMB (11-50)",
  'settings.onboardingOrgGrowth': "Growth company (51-200)",
  'settings.onboardingOrgMidMarket': "Mid-market (201-1000)",
  'settings.onboardingOrgEnterprise': "Enterprise (1000+)",
  'settings.onboardingRolePm': "📋 Product manager",
  'settings.onboardingRoleDesigner': "🎨 Designer",
  'settings.onboardingRoleEngineer': "💻 Engineer",
  'settings.onboardingRoleMarketing': "📣 Marketing",
  'settings.onboardingRoleGrowth': "📈 Growth",
  'settings.onboardingRoleOps': "⚙️ Operations",
  'settings.onboardingRoleFounder': "🚀 Founder / executive",
  'settings.onboardingRoleStudent': "🎓 Student / educator",
  'settings.onboardingRoleOther': "✨ Other",
  'settings.onboardingUseProduct': "🎨 Product design",
  'settings.onboardingUseDesignSystem': "🧩 Design system",
  'settings.onboardingUsePrototype': "📱 Prototype / app UI",
  'settings.onboardingUseLanding': "🌐 Landing pages",
  'settings.onboardingUseAds': "📣 Ads / social content",
  'settings.onboardingUseDashboard': "📊 Dashboards / internal tools",
  'settings.onboardingUseDeck': "🖥️ Presentation / deck",
  'settings.onboardingUseMarketing': "📈 Marketing / growth",
  'settings.onboardingUseEngineering': "🤝 Engineering handoff",
  'settings.onboardingUseAgency': "💼 Agency / client work",
  'settings.onboardingSourceGithub': "🐙 GitHub",
  'settings.onboardingSourceFriend': "👥 Friend or coworker",
  'settings.onboardingSourceSocial': "📱 Social media",
  'settings.onboardingSourceProductHunt': "🅿️ Product Hunt",
  'settings.onboardingSourceCommunity': "💬 Design / AI community",
  'settings.onboardingSourceYoutube': "▶️ YouTube",
  'settings.onboardingSourceBlog': "📰 Blog or newsletter",
  'settings.onboardingSourceAiTool': "✨ AI tool recommendation",
  'settings.onboardingSourceSearch': "🔍 Search",
  'settings.onboardingSourceEvent': "🎤 Event or community",
  'settings.onboardingBack': "Back",
  'settings.onboardingContinue': "Continue",
  'settings.onboardingFinish': "Finish setup",
  'settings.onboardingSkip': "Skip for now",
  'settings.kicker': 'Ajustes',
  'settings.title': 'Modo de ejecución',
  'settings.subtitle': 'Elige entre CLI local y BYOK.',
  'settings.modeAria': 'Modo de ejecución',
  'settings.protocolAria': 'Protocolo de API',
  'settings.modeDaemon': 'CLI local',
  'settings.modeDaemonHelp': 'Ejecuta a través de una CLI de agente de código en tu máquina',
  'settings.modeDaemonOffline': 'El daemon no está en ejecución',
  'settings.modeDaemonOfflineMeta': 'daemon sin conexión',
  'settings.modeDaemonInstalledMeta': '{count} instalados',
  'settings.modeApi': 'Proveedor de API',
  'settings.modeApiMeta': 'BYOK',
  'settings.codeAgent': 'Agente de código',
  'settings.codeAgentHint':
    'Detectado al escanear tu PATH. Elige la CLI por la que quieres que pasen las generaciones.',
  'settings.rescan': '↻ Reescanear',
  'settings.rescanTitle': 'Reescanear PATH',
  'settings.rescanRunning': 'Escaneando...',
  'settings.rescanSuccess': 'Escaneo completado. {count} disponibles.',
  'settings.designSystemRenameFailed': 'No se pudo cambiar el nombre. Comprueba el daemon e inténtalo de nuevo.',
  'settings.rescanFailed': 'El escaneo falló. Comprueba el daemon e inténtalo de nuevo.',
  'settings.test': 'Probar',
  'settings.testTitle': 'Envía un mensaje minúsculo de prueba para verificar la conexión',
  'settings.testRunning': 'Probando conexión…',
  'settings.byokReadyToTest': 'Listo para probar',
  'settings.testCancel': 'Cancelar',
  'settings.testSuccessApi': 'Conectado. Respondió en {ms} ms — \'{sample}\'',
  'settings.testSuccessCli': '{agentName} respondió en {ms} ms — \'{sample}\'',
  'settings.testAuthFailed': 'Autenticación fallida. Comprueba tu clave de API.',
  'settings.testForbidden': 'Acceso prohibido. Verifica cuenta, región u organización.',
  'settings.testNotFoundModel': 'No se encontró el modelo \'{model}\' en este endpoint.',
  'settings.testInvalidModelId': 'El id de modelo \'{model}\' no es válido. Los ids personalizados deben empezar con una letra o un número y no contener espacios.',
  'settings.testInvalidBaseUrl': 'La Base URL no es válida o no es accesible.',
  'settings.testRateLimited': 'El proveedor limitó la prueba. La configuración parece válida.',
  'settings.testUpstream': 'El proveedor devolvió {status}. Inténtalo de nuevo.',
  'settings.testTimeout': 'La prueba expiró tras {ms} ms.',
  'settings.testAgentMissing': '{agentName} no está instalado o no está en el PATH.',
  'settings.testAgentSpawn': 'No se pudo iniciar {agentName}: {detail}.',
  'settings.testUnknown': 'Prueba fallida: {detail}',
  'settings.agentInstall.install': 'Instalar',
  'settings.agentInstall.docs': 'Docs',
  'settings.agentInstall.pathHint':
    'Si instalaste una CLI con npm o Homebrew y sigue apareciendo como no instalada, asegúrate de que el directorio bin de la herramienta esté en el PATH que hereda el daemon de Open Design (Terminal y apps GUI pueden diferir en macOS). Consulta QUICKSTART.md (sección "Local agent CLI and PATH").',
  'settings.agentInstall.stepOpenLinks': 'Abre Instalar o Docs para el agente que prefieras.',
  'settings.agentInstall.stepAuth':
    'Autentícate con la CLI del proveedor (inicia sesión o añade credenciales API) antes de volver a Open Design.',
  'settings.agentInstall.stepRescan': 'Haz clic en Reescanear en esta sección.',
  'settings.agentInstall.stepSelect': 'Selecciona la tarjeta del agente cuando aparezca como instalado.',
  'settings.noAgentsDetected':
    'Aún no se ha detectado ningún agente. Instala Claude Code, Codex, Devin for Terminal, Gemini CLI, OpenCode, Cursor Agent, Qwen o GitHub Copilot CLI y pulsa Reescanear.',
  'settings.agentInstalledGroup': 'Tus CLI ({count})',
  'settings.agentInstallGroup': 'Disponibles para instalar ({count})',
  'settings.agentAuthRequired': 'Autenticación requerida',
  'settings.agentAuthUnknown': 'Estado de autenticación desconocido',
  'settings.amrLogin': 'Sign in',
  'settings.amrLogout': 'Sign out',
  'settings.amrLoggingIn': 'Signing in…',
  'settings.amrLoggingOut': 'Signing out…',
  'settings.amrLoggedInAs': 'Signed in as {email}',
  'settings.amrLoggedInWithPlan': 'Signed in as {email} · {plan}',
  'settings.amrLoggedInPill': 'Signed in',
  'settings.amrNotLoggedIn': 'Not signed in',
  'settings.amrCloud': 'Open Design AMR',
  'settings.amrAuthorize': 'Authorize',
  'settings.amrBenefitOfficial': 'Officially maintained',
  'settings.amrBenefitLowerPrice': 'Lower price',
  'settings.amrBenefitManyModels': 'Many models',
  'settings.amrPromoBonus': 'Limited bonus: +100%',
  'settings.amrSignInToContinue': 'Sign in to continue',
  'settings.amrSignIn': 'Sign in',
  'settings.amrSignedIn': 'Signed in',
  'settings.amrNotSignedIn': 'Not signed in',
  'settings.amrSigningIn': 'Signing in…',
  'settings.amrCancelSignIn': 'Cancel sign-in',
  'settings.amrAccountStatus': 'AMR account status',
  'settings.amrConsole': 'AMR Console',
  'settings.amrLoginErrorCompact': 'AMR sign-in failed.',
  'settings.apiSection': 'API de Anthropic',
  'settings.quickFillProvider': 'Rellenar proveedor',
  'settings.customProvider': 'Proveedor personalizado',
  'settings.providerPreset': 'Preajuste de gateway',
  'settings.protocolGroupProtocols': 'Protocolos',
  'settings.protocolGroupGateways': 'Gateways',
  'settings.apiKey': 'Clave de API',
  'settings.showKey': 'Mostrar clave',
  'settings.hideKey': 'Ocultar clave',
  'settings.show': 'Mostrar',
  'settings.hide': 'Ocultar',
  'settings.model': 'Modelo',
  'settings.suggestedModelsHint':
    'Estos son modelos sugeridos para este protocolo. Tu proveedor puede admitir modelos diferentes.',
  'settings.baseUrl': 'URL base',
  'settings.baseUrlInvalid': 'Usa una URL pública http:// o https://.',
  'settings.baseUrlCustomize': 'Personalizar',
  'settings.baseUrlDefaultHint': 'Endpoint predeterminado. Normalmente no hace falta cambiarlo.',
  'settings.azureBaseUrlPlaceholder': 'https://my-resource.openai.azure.com',
  'settings.azureBaseUrlHint': 'Find this in Azure portal → your resource → Endpoint.',
  'settings.azureDeploymentModel': 'Nombre del despliegue',
  'settings.azureCustomDeploymentName': 'Custom deployment name',
  'settings.azureDeploymentModelHint':
    'Para Azure OpenAI, este campo se usa como nombre del despliegue en /openai/deployments/<model>. Introduce el nombre del despliegue que creaste en Azure.',
  'settings.apiVersion': 'Versión de API',
  'settings.byokImageModel': 'Modelo de generación de imágenes',
  'settings.byokVideoModel': 'Modelo de generación de vídeo',
  'settings.byokVideoI2vHint': 'Modelo de imagen a vídeo: se requiere una imagen de referencia (si no eliges una, se usa la más reciente del proyecto)',
  'settings.byokSpeechModel': 'Modelo de voz',
  'settings.byokSpeechVoice': 'Voz',
  'settings.byokModelDefaultOption': 'Predeterminado',
  'settings.maxTokens': 'Tokens máx. (opcional)',
  'settings.maxTokensHint':
    'Tope para la longitud de la respuesta. Cada modelo tiene un valor por defecto ajustado (visible en el placeholder); déjalo vacío para usarlo o introduce un número para anularlo.',
  'settings.apiHint': 'Las llamadas pasan por el proxy del daemon local hasta la URL base configurada. La clave se guarda solo en este navegador y se envía con las solicitudes al proveedor.',
  'settings.skipForNow': 'Omitir por ahora',
  'settings.getStarted': 'Empezar',
  'settings.envConfigure': 'Modo de ejecución',
  'settings.localCli': 'CLI local',
  'settings.anthropicApi': 'API de Anthropic',
  'settings.noAgentSelected': 'ningún agente seleccionado',
  'settings.language': 'Idioma',
  'settings.languageHint': 'Cambia el idioma de la interfaz. Se guarda en este navegador.',
  'settings.appearance': 'Apariencia',
  'settings.appearanceHint': 'Elige claro, oscuro o seguir la configuración del sistema.',
  'settings.themeSystem': 'Sistema',
  'settings.themeLight': 'Claro',
  'settings.themeDark': 'Oscuro',
  'settings.agentModelHead': 'Modelo para:',
  'settings.modelPicker': 'Modelo',
  'settings.modelSourceLive': 'En vivo desde la CLI',
  'settings.modelSourceFallback': 'Lista integrada',
  'settings.reasoningPicker': 'Esfuerzo de razonamiento',
  'settings.modelPickerHint':
    'Se obtiene de la CLI cuando expone un comando `models`. «Predeterminado» deja la elección a la propia configuración de la CLI; «Personalizado…» permite escribir cualquier id de modelo aceptado por la CLI.',
  'settings.modelPickerLiveHint':
    'Los modelos se actualizaron desde la CLI instalada. Predeterminado sigue usando la configuración de la CLI.',
  'settings.modelPickerLiveCatalogOnlyHint':
    'Los modelos se actualizaron desde la CLI instalada.',
  'settings.modelPickerFallbackHint':
    'Mostrando valores predeterminados integrados. Pulsa Reescanear para obtener modelos en vivo desde la CLI.',
  'settings.cliEnvTitle': 'CLI config locations',
  'settings.cliEnvHint':
    'Set non-secret config directories for packaged app runs and agent detection.',
  'settings.cliEnvClaudeConfigDir': 'Claude Code config directory',
  'settings.cliEnvClaudeBaseUrl': 'Claude proxy base URL',
  'settings.cliEnvClaudeApiKey': 'Claude proxy API key',
  'settings.cliEnvCodexHome': 'Codex home',
  'settings.cliEnvCodexBin': 'Codex executable path',
  'settings.cliEnvCodexBaseUrl': 'Codex/OpenAI proxy base URL',
  'settings.cliEnvCodexApiKey': 'Codex/OpenAI proxy API key',
  'settings.modelCustom': 'Personalizado (escribe abajo)…',
  'settings.modelCustomLabel': 'Id de modelo personalizado',
  'settings.modelCustomPlaceholder': 'p. ej., anthropic/claude-sonnet-4-6',
  'settings.mediaProviders': 'Proveedores de medios',
  'settings.mediaProvidersHint':
    'Claves de API para generación de imagen, vídeo y audio. Se guardan localmente y se sincronizan con el daemon local.',
  'settings.mcpServerTitle': 'Servidor MCP',
  'settings.mcpServerHint': 'Expón Open Design como servidor MCP para tu agente de código.',
  'settings.externalMcpTitle': 'MCP externo',
  'settings.externalMcpHint': 'Añade herramientas MCP desde servicios externos (Higgsfield, GitHub, …).',
  'settings.mediaProviderApiKey': 'Clave de API',
  'settings.mediaProviderBaseUrl': 'URL base',
  'settings.mediaProviderConfigured': 'Configurado',
  'settings.mediaProviderUnset': 'Sin configurar',
  'settings.mediaProviderClear': 'Limpiar',
  'settings.mediaProviderClearConfirm': '¿Eliminar la configuración guardada de {name}? Tendrás que introducirla de nuevo para usar {name}.',
  'settings.mediaProviderPlaceholder': 'Pega la clave de API',
  'settings.mediaProviderBaseUrlPlaceholder': 'Sobrescribir URL base por defecto',
  'settings.mediaProviderReload': 'Recargar desde el daemon',
  'settings.mediaProviderReloadError': 'No se pudieron recargar los ajustes de los proveedores de medios desde el daemon local.',
  'settings.mediaProviderReloadSuccess': 'Se recargaron los ajustes de los proveedores de medios desde el daemon local.',
  'settings.mediaProviderLoadError': 'No se pudieron cargar los ajustes de los proveedores de medios desde el daemon local. Por ahora se usarán los ajustes guardados en el navegador.',
  'settings.mediaProviderComingSoonHint': 'Rastreamos estos para la hoja de ruta; el daemon aún no incluye un cliente, por lo que no hay nada que configurar.',
  'settings.privacy': 'Privacy',
  'settings.privacyHint': 'What data is shared with the Open Design team',
  'settings.privacyConsentKicker': 'Help us improve Open Design',
  'settings.privacyConsentLead': 'Open Design can share usage data with our team to help us improve. This includes:',
  'settings.privacyConsentFooter': 'You can change either of these any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
  'settings.privacyConsentShare': 'Share usage data',
  'settings.privacyConsentDecline': "Don't share",
  'settings.privacyConsentAccept': 'I get it',
  'settings.privacyConsentBannerFooter':
    'Data sharing is on by default. You can turn it off any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
  'settings.privacyConsentPolicyLink': 'Read the privacy policy',
  'settings.privacyMetrics': 'Anonymous metrics',
  'settings.privacyMetricsHint': 'Run counts, token usage, error rate, duration. No prompts, no project data.',
  'settings.privacyContent': 'Conversation content',
  'settings.privacyContentHint': "Your prompts and the assistant's responses (truncated 8 KB / 16 KB). API keys, tokens, JWTs, emails, IPs, and credit-card numbers are stripped automatically before send.",
  'settings.privacyArtifacts': 'Project artifacts manifest',
  'settings.privacyArtifactsHint': 'Filenames, types, sizes of generated files. File contents are never sent.',
  'settings.privacyInstallationId': 'Anonymous ID',
  'settings.privacyOptedOut': 'opted out',
  'settings.privacyDataDeletion': 'Delete my data',
  'settings.privacyDataDeletionHint': 'Rotates your anonymous ID and stops sending. Existing traces age out under our retention policy.',
  'settings.about': 'Acerca de',
  'settings.aboutHint': 'Versión y detalles de ejecución',
  'settings.appVersion': 'Versión',
  'settings.appChannel': 'Canal',
  'settings.appRuntime': 'Ejecución',
  'settings.appPlatform': 'Plataforma',
  'settings.appArchitecture': 'Arquitectura',
  'settings.runtimePackaged': 'App empaquetada',
  'settings.runtimeDevelopment': 'Desarrollo',
  'settings.versionUnavailable': 'Los detalles de versión no están disponibles mientras el daemon está offline.',
  'settings.installLatest': 'Instalar la última versión',
  'settings.alreadyLatest': 'Ya tienes la última versión',

  'entry.tabDesigns': 'Diseños',
  'entry.tabTemplates': 'Plantillas',
  'entry.tabDesignSystems': 'Sistemas de diseño',
  'entry.openSettingsTitle': 'Ajustes',
  'entry.openSettingsAria': 'Abrir ajustes',
  'entry.resizeAria': 'Redimensionar barra lateral',
  'entry.loadingWorkspace': 'Cargando espacio de trabajo…',
  'entry.useEverywhereTitle': 'Usar en todas partes',
  'entry.useEverywhereAria': 'Abrir la guía «Usar en todas partes» (CLI, MCP, HTTP, Skills)',
  'entry.navExpand': 'Mostrar barra lateral',
  'entry.navCollapse': 'Ocultar barra lateral',
  'entry.navNewProject': 'Nuevo proyecto',
  'entry.navHome': 'Inicio',
  'entry.navProjects': 'Proyectos',
  'entry.navDesignSystems': 'Sistemas de diseño',
  'entry.helpAria': 'Ayuda',
  'entry.helpMenuAria': 'Menú de ayuda',
  'entry.helpGetHelp': 'Obtener ayuda en GitHub',
  'entry.helpSubmitFeature': 'Enviar una sugerencia',
  'entry.helpWhatsNew': 'Novedades',
  'entry.helpDownloadDesktop': 'Descargar app de escritorio',
  'entry.githubStarLabel': 'Star',
  'entry.githubStarTitle': 'Haz clic para darnos una estrella en GitHub',
  'entry.githubStarAria': 'Dar una estrella a Open Design en GitHub',
  'entry.tabImageTemplates': 'Plantillas de imagen',
  'entry.tabVideoTemplates': 'Plantillas de vídeo',
  'promptTemplates.searchPlaceholder': 'Buscar plantillas…',
  'promptTemplates.countLabel': '{n} resultados',
  'promptTemplates.emptyImage': 'Aún no hay plantillas de prompt de imagen instaladas.',
  'promptTemplates.emptyVideo': 'Aún no hay plantillas de prompt de vídeo instaladas.',
  'promptTemplates.emptyNoMatch': 'Ninguna plantilla coincide con tu búsqueda.',
  'promptTemplates.attributionFooter':
    'Adaptadas de bibliotecas públicas de prompts. Cada tarjeta enlaza al autor original.',
  'promptTemplates.openPreviewTitle': 'Abrir prompt y vista previa',
  'promptTemplates.sourcePrefix': 'Fuente:',
  'promptTemplates.fetchError': 'No se pudo cargar el cuerpo de esta plantilla.',
  'promptTemplates.promptLabel': 'Cuerpo del prompt',
  'promptTemplates.copyPrompt': 'Copiar prompt',
  'promptTemplates.copyDone': '¡Copiado!',
  'promptTemplates.modelHint': 'Modelo sugerido: {model}',
  'promptTemplates.openSource': 'Ver original',
  'promptTemplates.openFullscreen': 'Abrir vista previa en pantalla completa',
  'promptTemplates.closeFullscreen': 'Cerrar vista previa en pantalla completa',
  'promptTemplates.allSources': 'Todas las fuentes',
  'promptTemplates.sourceFilterAria': 'Filtrar por fuente',
  'promptTemplates.retry': 'Reintentar',

  'newproj.tabPrototype': 'Prototipo',
  'newproj.tabDeck': 'Presentación',
  'newproj.tabTemplate': 'Desde plantilla',
  'newproj.tabMedia': 'Medios',
  'newproj.tabOther': 'Otro',
  'newproj.titlePrototype': 'Nuevo prototipo',
  'newproj.titleDeck': 'Nueva presentación',
  'newproj.titleTemplate': 'Empezar desde una plantilla',
  'newproj.titleImage': 'Nueva imagen',
  'newproj.titleVideo': 'Nuevo vídeo',
  'newproj.titleAudio': 'Nuevo audio',
  'newproj.titleMedia': 'Nuevo medio',
  'newproj.titleOther': 'Nuevo proyecto',
  'newproj.namePlaceholder': 'Nombre del proyecto',
  'newproj.fidelityLabel': 'Fidelidad',
  'newproj.fidelityWireframe': 'Wireframe',
  'newproj.fidelityHigh': 'Alta fidelidad',
  'newproj.toggleSpeakerNotes': 'Usar notas del orador',
  'newproj.toggleSpeakerNotesHint': 'Menos texto en las diapositivas: deja los puntos clave en las notas.',
  'newproj.toggleAnimations': 'Incluir animaciones',
  'newproj.toggleAnimationsHint':
    'Añade movimiento (entrada, hover, transiciones) sobre la plantilla.',
  'newproj.templateLabel': 'Plantilla',
  'newproj.noTemplatesTitle': 'Aún no hay plantillas',
  'newproj.noTemplatesBody':
    'Abre cualquier proyecto y usa el menú Compartir dentro del visor de archivos para convertirlo en plantilla. Las plantillas aparecerán aquí.',
  'newproj.savedTemplate': 'Plantilla guardada',
  'newproj.fileSingular': 'archivo',
  'newproj.filePlural': 'archivos',
  'newproj.create': 'Crear',
  'newproj.locationLabel': 'Guardar en',
  'newproj.locationDefault': 'Proyectos de Open Design',
  'newproj.locationExternalBase': 'Base externa',
  'newproj.createFromTemplate': 'Crear desde plantilla',
  'newproj.createDisabledTitle':
    'Guarda primero un proyecto como plantilla (menú Compartir dentro de cualquier proyecto).',
  'newproj.importClaudeZip': 'Importar ZIP de Claude Design',
  'newproj.importClaudeZipTitle': 'Importar una exportación .zip de Claude Design',
  'newproj.importingClaudeZip': 'Importando…',
  'newproj.privacyFooter': 'Por defecto, solo tú puedes ver tu proyecto.',
  'newproj.designSystem': 'Sistema de diseño',
  'newproj.dsNoneFreeform': 'Ninguno: estilo libre',
  'newproj.dsNoneSubtitleEmpty': 'Sin tokens de sistema, elige tu propia paleta',
  'newproj.dsNoneSubtitleSelected': 'Omitir tokens de sistema. El agente elige su propia paleta.',
  'newproj.dsCategoryFallback': 'Sistema de diseño',
  'newproj.dsSearch': 'Buscar sistemas de diseño…',
  'newproj.dsModeAria': 'Modo de selección',
  'newproj.dsModeSingle': 'Único',
  'newproj.dsModeMulti': 'Múltiple',
  'newproj.dsNoneTitle': 'Ninguno: estilo libre',
  'newproj.dsNoneSub': 'Omitir tokens de sistema. El agente elige su propia paleta.',
  'newproj.dsEmpty': 'Ningún sistema de diseño coincide con «{query}».',
  'newproj.dsFootSingular': 'es solo inspiración.',
  'newproj.dsFootPlural': 'son solo inspiración.',
  'newproj.dsFootClear': 'Limpiar',
  'newproj.dsBadgeDefault': 'PREDETERMINADO',
  'newproj.dsPrimaryFallback': 'Principal',
  'newproj.surfaceImage': 'Imagen',
  'newproj.surfaceVideo': 'Vídeo',
  'newproj.surfaceAudio': 'Audio',
  'newproj.modelLabel': 'Modelo',
  'newproj.modelSearch': 'Buscar modelos…',
  'newproj.modelEmpty': 'No hay modelos que coincidan.',
  'newproj.modelRecommended': 'Recomendado',
  'newproj.modelMissingTitle': 'Elegir un modelo',
  'newproj.modelMissingSub': 'Elige un modelo para esta superficie.',
  'newproj.aspectLabel': 'Proporción',
  'newproj.videoLengthLabel': 'Duración',
  'newproj.videoLengthSeconds': '{n} s',
  'newproj.audioKindLabel': 'Tipo de audio',
  'newproj.audioKindMusic': 'Música',
  'newproj.audioKindSpeech': 'Voz / TTS',
  'newproj.audioKindSfx': 'Efecto de sonido',
  'newproj.audioDurationLabel': 'Duración',
  'newproj.audioDurationSeconds': '{n} s',
  'newproj.voiceLabel': 'Voz',
  'newproj.voicePlaceholder': 'Id de voz del proveedor, opcional',
  'newproj.promptTemplateLabel': 'Plantilla de referencia',
  'newproj.promptTemplateNoneTitle': 'Ninguna — escribe la tuya',
  'newproj.promptTemplateNoneSub': 'Sáltate la galería y describe tu propio briefing',
  'newproj.promptTemplateRefSub': 'Plantilla de referencia',
  'newproj.promptTemplateSearch': 'Buscar plantillas…',
  'newproj.promptTemplateEmpty': 'Aún no hay plantillas para este formato.',
  'newproj.promptTemplateBodyLabel': 'Prompt (editable)',
  'newproj.promptTemplateOptimizeHint':
    'Edita lo que quieras — tus cambios se incorporan al briefing del agente.',
  'newproj.promptTemplateBodyEmpty':
    'Cuerpo vacío — el agente no recibirá ninguna referencia de plantilla.',
  'newproj.deleteTemplateTitle': 'Eliminar plantilla',
  'newproj.deleteTemplateConfirm': '¿Eliminar «{name}»? Esta acción no se puede deshacer.',
  'newproj.deleteTemplateConfirmCta': 'Eliminar plantilla',
  'newproj.deleteTemplateError':
    'No se pudo eliminar esta plantilla. Inténtalo de nuevo.',

  'designs.subRecent': 'Recientes',
  'designs.subYours': 'Tus diseños',
  'designs.filterAria': 'Filtrar proyectos',
  'designs.searchPlaceholder': 'Buscar…',
  'designs.emptyNoProjects': 'Aún no hay proyectos.',
  'designs.emptyNoMatch': 'Ningún proyecto coincide con tu búsqueda.',
  'designs.deleteTitle': 'Eliminar proyecto',
  'designs.deleteConfirm': '¿Eliminar «{name}»?',
  'designs.cardFreeform': 'estilo libre',
  'designs.status.notStarted': 'Sin empezar',
  'designs.status.queued': 'En cola',
  'designs.status.running': 'En ejecución',
  'designs.status.awaitingInput': 'Necesita respuesta',
  'designs.status.succeeded': 'Completado',
  'designs.status.published': 'Publicado',
  'designs.status.failed': 'Fallido',
  'designs.status.canceled': 'Cancelado',
  'designs.viewToggleAria': 'Modo de vista',
  'designs.viewGrid': 'Vista en cuadrícula',
  'designs.viewKanban': 'Vista en tablero',
  'designs.kanbanEmptyColumn': 'Sin diseños',
  'designs.deleteAria': 'Eliminar proyecto {name}',
  'designs.menuMore': 'More actions',
  'designs.menuRename': 'Rename',
  'designs.menuDelete': 'Delete',
  'designs.renamePrompt': 'New name for "{name}"',
  'designs.selectMode': 'Select',
  'designs.cancelSelect': 'Cancel',
  'designs.deleteSelected': 'Delete selected',
  'designs.selectedCount': '{n} selected',
  'designs.deleteSelectedConfirm': 'Delete {n} project(s)?',
  'designs.deleteSelectedSuccess': '{n} project(s) deleted successfully.',
  'designs.deleteSelectedPartial': 'Deleted {deleted} project(s); {failed} failed.',
  'designs.tagPrototype': 'Prototype',
  'designs.tagLiveArtifact': 'Live Artifact',
  'designs.tagSlide': 'Slide',
  'designs.tagMedia': 'Media',
  'designs.renameTitle': 'Rename project',
  'designs.renameSave': 'OK',
  'designs.renameCancel': 'Cancel',

  'examples.typeLabel': 'Tipo',
  'examples.surfaceLabel': 'Superficie',
  'examples.surfaceWeb': 'Web',
  'examples.surfaceImage': 'Imagen',
  'examples.surfaceVideo': 'Vídeo',
  'examples.surfaceAudio': 'Audio',
  'examples.scenarioLabel': 'Escenario',
  'examples.modeAll': 'Todos',
  'examples.modePrototypeDesktop': 'Prototipos · Escritorio',
  'examples.modePrototypeMobile': 'Prototipos · Móvil',
  'examples.modeDeck': 'Diapositivas',
  'examples.modeDocument': 'Documentos y plantillas',
  'examples.modeOrbit': 'Orbit',
  'examples.modeLive': 'En vivo',
  'examples.scenarioGeneral': 'General',
  'examples.scenarioEngineering': 'Ingeniería',
  'examples.scenarioProduct': 'Producto',
  'examples.scenarioDesign': 'Diseño',
  'examples.scenarioMarketing': 'Marketing',
  'examples.scenarioSales': 'Ventas',
  'examples.scenarioFinance': 'Finanzas',
  'examples.scenarioHr': 'RR. HH.',
  'examples.scenarioOperations': 'Operaciones',
  'examples.scenarioSupport': 'Soporte',
  'examples.scenarioLegal': 'Legal',
  'examples.scenarioEducation': 'Educación',
  'examples.scenarioPersonal': 'Personal',
  'examples.emptyNoSkills': 'No hay skills disponibles. ¿Está el daemon en ejecución?',
  'examples.searchPlaceholder': 'Buscar ejemplos…',
  'examples.searchAria': 'Buscar ejemplos por nombre',
  'examples.emptyNoMatch': 'Ningún ejemplo coincide con estos filtros.',
  'examples.openPreview': '⤢ Abrir vista previa',
  'examples.loadingPreview': 'Cargando vista previa…',
  'examples.hoverPreview': 'Pasa el cursor para ver la vista previa',
  'examples.usePrompt': 'Usar este prompt',
  'examples.previewModalTitle': 'Abrir vista previa completa (modal)',
  'examples.shareTitle': 'Compartir este ejemplo',
  'examples.shareLoadFirst': 'Pasa el cursor para cargar primero la vista previa',
  'examples.unavailablePlaceholder': 'Sin vista previa {kind} incluida — abre para saber más',
  'examples.shareUnavailable': 'Sin vista previa {kind} incluida para compartir',
  'examples.shareMenu': 'Compartir ▾',
  'examples.exportPdfAllSlides': 'Exportar como PDF (todas las diapositivas)',
  'examples.exportPptxLocked': 'Exportar como PPTX… (abre primero la plantilla)',
  'examples.tagSlideDeck': 'Presentación',
  'examples.tagTemplate': 'Plantilla',
  'examples.tagDesignSystem': 'Sistema de diseño',
  'examples.tagMobilePrototype': 'Prototipo móvil',
  'examples.tagDesktopPrototype': 'Prototipo de escritorio',
  'examples.tagImage': 'Imagen',
  'examples.tagVideo': 'Vídeo',
  'examples.tagAudio': 'Audio',
  'examples.previewLabel': 'Vista previa',

  'ds.surfaceLabel': 'Superficie',
  'ds.surfaceWeb': 'Web',
  'ds.surfaceImage': 'Imagen',
  'ds.surfaceVideo': 'Vídeo',
  'ds.surfaceAudio': 'Audio',
  'ds.searchPlaceholder': 'Buscar sistemas de diseño…',
  'ds.emptyNoMatch': 'Ningún sistema de diseño coincide con tu búsqueda.',
  'ds.badgeDefault': 'PREDETERMINADO',
  'ds.preview': 'Vista previa',
  'ds.previewTitle': 'Vista previa del sistema de diseño',
  'ds.categoryAll': 'Todos',
  'ds.categoryUncategorized': 'Sin categoría',
  'ds.showcase': 'Vitrina',
  'ds.tokens': 'Tokens',
  'ds.specToggle': 'DESIGN.md',
  'ds.specLoading': 'Cargando DESIGN.md…',

  'avatar.title': 'Cuenta y ajustes',
  'avatar.localCli': 'CLI local',
  'avatar.anthropicApi': 'API de Anthropic',
  'avatar.useLocal': 'Usar CLI local',
  'avatar.useApi': 'Usar API · BYOK',
  'avatar.codeAgent': 'Agente de código',
  'avatar.rescan': 'Reescanear PATH',
  'avatar.amrConsole': 'AMR account',
  'avatar.amrConsoleMeta': 'Balance & recharge',
  'avatar.settings': 'Ajustes',
  'avatar.backToProjects': 'Volver a los proyectos',
  'avatar.metaActive': 'activo',
  'avatar.metaOffline': 'sin conexión',
  'avatar.metaSelected': 'seleccionado',
  'avatar.noAgentSelected': 'ningún agente seleccionado',
  'avatar.modelSection': 'Modelo',
  'avatar.modelLabel': 'Modelo',
  'avatar.reasoningLabel': 'Razonamiento',
  'avatar.customSuffix': '(personalizado)',

  'inlineSwitcher.chipTitle': 'Cambiar CLI / modelo',
  'inlineSwitcher.chipCli': 'CLI local',
  'inlineSwitcher.chipByok': 'BYOK',
  'inlineSwitcher.modelDefault': 'predeterminado',
  'inlineSwitcher.noAgent': 'sin agente',
  'inlineSwitcher.modeLabel': 'Modo',
  'inlineSwitcher.agentLabel': 'Agente',
  'inlineSwitcher.providerLabel': 'Proveedor',
  'inlineSwitcher.modelLabel': 'Modelo',
  'inlineSwitcher.useCli': 'Usar CLI local',
  'inlineSwitcher.useByok': 'Usar clave API propia',
  'inlineSwitcher.daemonOffline': 'Daemon offline — abrir ajustes',
  'inlineSwitcher.noAgentsDetected': 'No se detectó CLI en PATH',
  'inlineSwitcher.openSettingsForModel': 'Configura el proveedor en Ajustes',
  'inlineSwitcher.missingApiKey': 'Falta la clave API — abre Ajustes para añadirla.',
  'inlineSwitcher.openFullSettings': 'Abrir ajustes de ejecución',
  'inlineSwitcher.customSuffix': '(personalizado)',

  'project.backToProjects': 'Volver a los proyectos',
  'project.metaFreeform': 'estilo libre',
  'project.resizeChatPanel': 'Redimensionar panel de chat',
  'project.instructionsActive': 'Activo: se incluye en cada mensaje',
  'chat.tabChat': 'Chat',
  'chat.tabComments': 'Comentarios',
  'chat.commentsSoon': 'Comentarios — próximamente',
  'chat.comments.attached': 'Attached to chat',
  'chat.comments.emptyAttached': 'No comments attached.',
  'chat.comments.saved': 'Saved comments',
  'chat.comments.emptySaved': 'No saved comments.',
  'chat.comments.add': 'Add',
  'chat.comments.addAll': 'Add all',
  'chat.comments.remove': 'Remove',
  'chat.comments.placeholder': 'Comment on this element…',
  'chat.comments.addSend': 'Add & send',
  'chat.comments.updateSend': 'Update & send',
  'chat.comments.removeAttachment': 'Remove comment attachment',
  'chat.comments.removeAttachmentAria': 'Remove comment attachment for {name}',
  'chat.comments.comment': 'Comment',
  'chat.comments.sendToChat': 'Send to chat',
  'chat.comments.sending': 'Sending…',
  'chat.comments.edit': 'Edit',
  'chat.comments.select': 'Select',
  'chat.comments.selectAll': 'Seleccionar todo',
  'chat.comments.deselect': 'Deselect',
  'chat.comments.nSelected': '{n} selected',
  'chat.comments.pin': 'Pin',
  'chat.comments.addNote': 'Add note',
  'chat.comments.savedToast': 'Comment saved',
  'chat.comments.pinSavedToast': 'Pin saved',
  'chat.comments.pinAtCoords': 'at {x}, {y}',
  'chat.comments.capturedItems': '{n} captured items',
  'chat.comments.clear': 'Clear',
  'chat.comments.targetImage': 'Image',
  'chat.comments.targetControl': 'Control',
  'chat.comments.targetLink': 'Link',
  'chat.comments.targetText': 'Text',
  'chat.comments.targetSection': 'Section',
  'chat.comments.targetPage': 'Page',
  'chat.comments.targetArea': 'Area',
  'chat.annotationNotePlaceholder': 'Add a note for this mark',
  'chat.annotationAttachImage': 'Adjuntar imagen',
  'chat.annotationAttachedImages': 'Imágenes adjuntas',
  'chat.annotationAttachedRemove': 'Quitar última imagen',
  'chat.annotationAddToInput': 'Add to input',
  'chat.annotationAddingToInput': 'Adding...',
  'chat.annotationQueue': 'Queue',
  'chat.annotationQueueing': 'Queueing...',
  'chat.annotationSending': 'Sending...',
  'chat.annotationSendDisabledReason': 'A task is currently running',
  'chat.annotationPreviewMissing': 'Could not capture the preview. Please try again.',
  'chat.annotationPreviewMissingInk': 'Could not capture the preview. Try again to avoid sending only ink.',
  'chat.annotationTimeout': 'Annotation send timed out. Please try again.',
  'chat.annotationFailed': 'Annotation send failed. Please try again.',
  'chat.annotationProjectCreateFailed': 'Could not create a project, so the annotation was not sent.',
  'chat.annotationUploadFailed': 'Attachment upload failed. Please try again.',
  'chat.inspect.noEditableTargets': 'This page has no editable elements yet.',
  'chat.inspect.noCommentTargets': 'This page has no commentable elements yet.',
  'chat.inspect.editHint': 'Click an element in the canvas to edit its styles.',
  'chat.inspect.commentHint': 'Click an element in the canvas to add a comment.',
  'chat.conversationsTitle': 'Conversaciones',
  'chat.conversationsAria': 'Historial de conversaciones',
  'chat.newConversation': 'Nueva conversación',
  'chat.newConversationsTitle': 'Nueva conversación',
  'chat.conversationsHeading': 'Conversaciones',
  'chat.new': 'Nueva',
  'chat.emptyConversations': 'Aún no hay conversaciones.',
  'chat.deleteConversation': 'Eliminar conversación',
  'chat.renameConversationLabel': 'Renombrar «{title}»',
  'chat.deleteConversationConfirm':
    '¿Eliminar «{title}»? Se borrarán sus mensajes.',
  'chat.untitledConversation': 'Conversación sin título',
  'chat.forkedConversationTitle': 'Bifurcación de {title}',
  'chat.forkConversationFailed': 'No se pudo bifurcar esta conversación.',
  'chat.startTitle': 'Empieza una conversación',
  'chat.startHint': "Describe lo que quieres generar o empieza con uno de estos ejemplos:",
  'chat.fillInputTitle': 'Haz clic para rellenar el campo',
  'chat.jumpToLatest': 'Ir al más reciente',
  'chat.scrollToLatest': 'Desplazar al más reciente',
  'chat.you': 'Tú',
  'chat.openFile': 'Abrir {name}',
  'chat.copyPrompt': 'Copiar prompt',
  'chat.copyDone': '¡Copiado!',
  'chat.composerPlaceholder': "Describe lo que quieres generar…",
  'chat.activeFileEditingLabel': "Editando",
  'chat.activeFilePlaceholder': "Pide a Open Design que cambie {file}...",
  'chat.designArtifactsShowMore': "Mostrar {count} archivos de diseño más",
  'chat.mode.chat.label': 'Ask',
  'chat.mode.chat.title': 'Modo Ask',

  'chat.mode.chat.summary': 'Para respuestas rápidas, cambios, planificación y conversación sin asumir que hay que crear un artefacto de diseño.',
  'chat.mode.chat.solves': 'Úsalo para aclarar ideas, ajustar prompts, comparar opciones o preguntar sobre trabajo existente.',
  'chat.mode.chat.query1': 'Resume este borrador y señala los huecos.',
  'chat.mode.chat.query2': 'Ayúdame a decidir la mejor estructura para esta landing page.',
  'chat.mode.chat.query3': 'Revisa este diseño y sugiere mejoras concretas.',
  'chat.mode.design.label': 'Design Agent',
  'chat.mode.design.title': 'Modo Design Agent',
  'chat.mode.design.summary': 'Para crear o cambiar resultados concretos: páginas, prototipos, artefactos en vivo, diapositivas, imágenes, vídeos, HyperFrames, audio, paneles y archivos de proyecto.',
  'chat.mode.design.solves': 'Úsalo cuando quieras que Open Design genere archivos, actualice el workspace o convierta un brief en entregables multimodales.',
  'chat.mode.design.query1': 'Crea una landing page de lanzamiento y un prototipo HyperFrames a partir de este brief.',
  'chat.mode.design.query2': 'Haz un deck para inversores de 10 diapositivas con notas de presentación.',
  'chat.mode.design.query3': 'Genera conceptos de imagen, vídeo y audio para esta campaña.',
  'chat.mode.cardBestFor': 'Ideal para',
  'chat.mode.cardTry': 'Prueba con',
  'chat.composerHint': "⌘/Ctrl + Enter para enviar · incluye objetivo, contenido, estilo y formato",
  'chat.cliSettingsTitle': 'Ajustes de CLI y modelo',
  'chat.cliSettingsAria': 'Abrir ajustes de CLI y modelo',
  'chat.attachTitle': 'Adjuntar archivos (o pegar / soltar)',
  'chat.attachAria': 'Adjuntar archivos',
  'chat.importTitle': 'Importar fuentes (próximamente)',
  'chat.importLabel': 'Importar',
  'chat.importComingSoon': 'Próximamente',
  'chat.importSoon': 'Pronto',
  'chat.importFig': 'Subir archivo .fig',
  'chat.importGitHub': 'Conectar GitHub',
  'chat.importWeb': 'Capturar elemento web',
  'chat.importFolder': 'Vincular carpeta de código',
  'chat.importSkills': 'Skills y sistemas de diseño',
  'chat.importProject': 'Reference another project',
  'chat.importDesignSystemHeader': 'Elegir un sistema de diseño',
  'chat.importDesignSystemBack': 'Atrás',
  'chat.importDesignSystemSearch': 'Buscar sistemas de diseño…',
  'chat.importDesignSystemEmpty': 'Ningún sistema de diseño coincide con "{query}"',
  'chat.importDesignSystemNone': 'Ninguno — libre',
  'chat.importDesignSystemNoneSub': "No anclar a un sistema esta vez",
  'chat.importDesignSystemActive': 'Activo',
  'chat.importDesignSystemSwitched': 'Sistema de diseño cambiado a {title}',
  'chat.importDesignSystemFailed': "No se pudo cambiar el sistema de diseño. Vuelve a intentarlo.",
  'chat.importDesignSystemLoadFailed': 'No se pudieron cargar los sistemas de diseño.',
  'chat.linkedFolderRemoveAria': 'Eliminar carpeta vinculada {path}',
  'chat.linkedFolderNotFound': 'La carpeta no existe',
  'chat.linkedFolderAlready': 'Esta carpeta ya está vinculada',
  'chat.linkedFolderPickError': 'No se pudo abrir el selector de carpetas',
  'chat.queuedHeader': 'Queued',
  'chat.queuedToSend': 'to Send',
  'chat.queuedEditQueuedTaskAria': 'Edit queued task',
  'chat.queuedSave': 'Save',
  'chat.queuedCancel': 'Cancel',
  'chat.queuedReorder': 'Drag to reorder',
  'chat.queuedEdit': 'Edit',
  'chat.queuedMore': 'more queued',
  'chat.queuedFollowUpFallback': 'Queued follow-up',
  'chat.send': 'Enviar',
  'chat.stop': 'Detener',
  'chat.removeAria': 'Quitar {name}',
  'chat.example1Title': 'Pitch deck editorial',
  'chat.example1Tag': 'Revista',
  'chat.example1Prompt':
    'Una presentación editorial de 10 diapositivas para un estudio de diseño que levanta una ronda seed: maquetación con grid suizo, titulares serif enormes con capitulares marcadas, números de sección en monoespaciada, abundante espacio en blanco y diapositivas a sangre con foto intercaladas con otras densas en texto. Portada, visión, mercado, producto, tracción, equipo, petición y contacto.',
  'chat.example2Title': 'Dashboard de analítica SaaS',
  'chat.example2Tag': 'Datos',
  'chat.example2Prompt':
    'Un dashboard denso de analítica para un SaaS de herramientas para desarrolladores: tira de KPIs con variaciones semana a semana, dos gráficos de líneas apilados (MRR y workspaces activos), un mapa de calor mundial de uso, una rejilla de retención por cohortes, un ranking de clientes principales y un feed de eventos en tiempo real. Tema oscuro, números monoespaciados tabulares, acentos con sparklines.',
  'chat.example3Title': 'Memoria anual long-scroll',
  'chat.example3Tag': 'Editorial',
  'chat.example3Prompt':
    'Una memoria anual interactiva para una ONG climática: maquetación editorial long-scroll mezclando grandes bloques de citas, visualizaciones de datos (barras apiladas, contadores animados, un mapa coroplético de proyectos), separadores con fotografía, muro de donantes y llamada a la acción final. Cuerpo en serif moderna, etiquetas de gráficos en sans-serif, paleta terrosa de papel.',

  'preview.shareMenu': 'Compartir',
  'preview.exportMenu': 'Export',
  'preview.shareTemplateBadge': 'Template',
  'preview.shareToX': 'X / Twitter',
  'preview.shareToReddit': 'Reddit',
  'preview.shareToFacebook': 'Facebook',
  'preview.shareToLinkedIn': 'LinkedIn',
  'preview.shareToInstagram': 'Instagram',
  'preview.shareToXiaohongshu': '小红书',
  'preview.copyTemplateLink': 'Copy template link',
  'preview.copyShareText': 'Copy share text',
  'preview.shareSocialGroup': 'Share to social',
  'preview.shareCopyGroup': 'Copy',
  'preview.shareExportGroup': 'Export files',
  'preview.shareCopied': 'Copied',
  'preview.shareCopyFailed': 'Copy failed',
  'preview.shareTextDefault': 'Open Design template: {title}',
  'preview.openInNewTab': 'Abrir en pestaña nueva',
  'preview.exit': '⤓ Salir',
  'preview.fullscreen': '⤢ Pantalla completa',
  'preview.closeTitle': 'Cerrar (Esc)',
  'preview.loading': 'Cargando {label}…',
  'preview.errorTitle': 'No se pudo cargar este ejemplo.',
  'preview.errorBody': 'No se pudo obtener el HTML del ejemplo. Asegúrate de que Open Design esté en ejecución e inténtalo de nuevo.',
  'preview.retry': 'Reintentar',
  'preview.unavailableTitle': 'No hay vista previa incluida para {noun}.',
  'preview.unavailableBody': 'Ejecuta el prompt en el chat para generar un resultado {kind}.',
  'preview.nounSkill': 'esta skill',
  'preview.nounPlugin': 'este plugin',
  'preview.nounTemplate': 'esta plantilla',
  'preview.showSidebar': 'Mostrar {label}',
  'preview.hideSidebar': 'Ocultar {label}',

  'misc.savedTemplate': 'Plantilla guardada',
  'misc.primary': 'Principal',
  'misc.designSystem': 'Sistema de diseño',

  'workspace.designFiles': 'Archivos de diseño',
  'workspace.focusMode': 'Focus workspace',
  'workspace.showChat': 'Show chat',
  'workspace.closeTab': 'Cerrar pestaña',
  'workspace.deleteFileConfirm': '¿Eliminar «{name}» de la carpeta del proyecto?',
  'workspace.deleteSelectedFilesConfirm': '¿Eliminar {n} archivo(s) seleccionado(s) de la carpeta del proyecto?',
  'workspace.deleteSelectedFilesPartial': 'No se pudieron eliminar {n} archivo(s).',
  'workspace.openFromDesignFiles': 'Abre un archivo desde',
  'workspace.designFilesLink': 'Archivos de diseño',
  'workspace.loadingSketch': 'Cargando boceto…',
  'workspace.newTab': 'Nueva pestaña',
  'workspace.searchFilesPlaceholder': 'Buscar archivos…',
  'workspace.openFile': 'Abrir un archivo',
  'workspace.noFilesMatch': 'No hay archivos coincidentes',
  'workspace.allFiles': 'Todos',
  'workspace.createNew': 'Crear nuevo',
  'workspace.tabOpen': 'Abierto',
  'workspace.newSideChat': 'Nuevo chat lateral',
  'workspace.newSideChatDescription': 'Abrir un chat con contexto en una pestaña nueva',
  'workspace.sideChatContextBanner': 'Contexto de la conversación actual integrado',
  'workspace.sideChatDefaultTitle': 'Chat lateral',
  'workspace.newTerminal': 'Nueva terminal',
  'workspace.newTerminalDescription': 'Abrir un shell en el directorio del proyecto en una pestaña nueva',
  'workspace.newBrowser': 'Nuevo navegador',
  'workspace.newBrowserDescription': 'Abrir una pestaña de navegador integrada para sitios de referencia y tareas',
  'workspace.terminalStarting': 'Iniciando terminal…',
  'workspace.terminalStartingDescription': 'Preparando el shell del proyecto. Normalmente tarda unos segundos.',
  'workspace.terminalSessionEnded': 'Sesión finalizada',
  'workspace.terminalReconnecting': 'Reconectando…',
  'workspace.terminalStartFailed': 'No se pudo iniciar la sesión de terminal',
  'workspace.terminalRestart': 'Reiniciar',
  'designFiles.title': 'Archivos de diseño',
  'designFiles.upload': 'Subir archivos',
  'designFiles.pasteText': 'Pegar como archivo de texto',
  'designFiles.newSketch': 'Nuevo boceto',
  'designFiles.empty': 'Las creaciones aparecerán aquí',
  'designFiles.refresh': 'Actualizar',
  'designFiles.delete': 'Eliminar',
  'designFiles.searchPlaceholder': 'Buscar archivos…',
  'designFiles.up': 'Subir',
  'designFiles.back': 'Atrás',
  'designFiles.crumbs': 'proyecto',
  'designFiles.rowMenu': 'Menú de la fila',
  'designFiles.openInTab': 'Abrir en pestaña',
  'designFiles.download': 'Descargar',
  'designFiles.downloadSelected': 'Descargar {n} como ZIP',
  'designFiles.deleteSelected': 'Eliminar {n}',
  'designFiles.clearSelection': 'Limpiar selección',
  'designFiles.selectPage': 'Seleccionar todo en la página',
  'designFiles.selectAll': 'Seleccionar todo',
  'designFiles.dropTitle': '⤓ Suelta archivos aquí',
  'designFiles.dropDesc':
    'Imágenes, documentos, referencias o carpetas: el agente los usará como contexto.',
  'designFiles.upload.title': 'Subir archivos',
  'designFiles.paste.title': 'Pegar texto como archivo',
  'designFiles.upload.label': 'Subir',
  'designFiles.paste.label': 'Pegar',
  'designFiles.previewOpen': 'Abrir',
  'designFiles.previewClose': 'Cerrar vista previa',
  'designFiles.modified': 'Modificado {time} · {size}',
  'designFiles.weeksAgo': 'hace {n} sem',
  'designFiles.groupBy': 'Agrupar por',
  'designFiles.groupByKind': 'Tipo',
  'designFiles.groupByModified': 'Modificado',
  'designFiles.expandGroup': 'Expandir',
  'designFiles.collapseGroup': 'Contraer',
  'designFiles.sectionPages': 'Páginas',
  'designFiles.sectionScripts': 'Scripts',
  'designFiles.sectionImages': 'Imágenes',
  'designFiles.sectionSketches': 'Bocetos',
  'designFiles.sectionOther': 'Otros',
  'designFiles.modifiedToday': 'Hoy',
  'designFiles.modifiedYesterday': 'Ayer',
  'designFiles.modifiedPrevious7Days': 'Últimos 7 días',
  'designFiles.modifiedPrevious30Days': 'Últimos 30 días',
  'designFiles.modifiedOlder': 'Anterior',
  'designFiles.showMore': 'Mostrar +{n} más',
  'designFiles.kindHtml': 'Página HTML',
  'designFiles.kindImage': 'Imagen',
  'designFiles.kindSketch': 'Boceto',
  'designFiles.kindText': 'Texto',
  'designFiles.kindCode': 'Script',
  'designFiles.kindPdf': 'PDF',
  'designFiles.kindDocument': 'Documento',
  'designFiles.kindPresentation': 'Presentación',
  'designFiles.kindSpreadsheet': 'Hoja de cálculo',
  'designFiles.kindBinary': 'Binario',
  'designFiles.kindFolder': 'Carpeta',
  'designFiles.folderCount': '{n} archivos',
  'designFiles.newFolderTitle': 'Nueva carpeta',
  'designFiles.newFolderLabel': 'Nombre de la carpeta',
  'designFiles.moveTitle': 'Mover a la carpeta',
  'designFiles.moveLabel': 'Carpeta de destino',
  'designFiles.moveRoot': 'Raíz del proyecto',
  'designFiles.moveNewFolder': 'Nueva carpeta…',
  'designFiles.move': 'Mover',
  'designFiles.copyPath': 'Copiar ruta',
  'designFiles.copiedPath': 'Ruta copiada',
  'designFiles.deleteFolderConfirm': '¿Eliminar la carpeta "{name}" y todo su contenido?',
  'designFiles.folderCreated': 'Carpeta "{name}" creada',
  'designFiles.folderDeleted': 'Carpeta "{name}" eliminada',
  'designFiles.filesMoved': '{n} movido(s) a {dest}',
  'designFiles.colName': 'Nombre',
  'designFiles.colKind': 'Tipo',
  'designFiles.colModified': 'Modificado',
  'designFiles.perPage': 'Mostrar',
  'designFiles.all': 'Todos',
  'designFiles.prev': 'Anterior',
  'designFiles.next': 'Siguiente',
  'designFiles.jumpToPage': 'Ir a la página',
  'designFiles.pageInfo': '{start}–{end} de {total}',
  'designFiles.sectionFolders': 'Folders',
  'designFiles.sectionStylesheets': 'Stylesheets',
  'designFiles.sectionDocuments': 'Documents',
  'designFiles.kindStylesheet': 'Stylesheet',
  'designFiles.modifiedExt': 'Modified {time} · {size} · {ext}',
  'designFiles.usefulInfoLabel': 'Useful info',
  'designFiles.usefulInfoTip': 'Double-click any file to open it in a full tab.',
  'quickSwitcher.placeholder': 'Abrir archivo…',
  'quickSwitcher.empty': 'No hay archivos en este proyecto',
  'quickSwitcher.noMatches': 'Sin resultados',
  'quickSwitcher.navigate': 'navegar',
  'quickSwitcher.open': 'abrir',
  'quickSwitcher.close': 'cerrar',
  'pasteDialog.title': 'Pegar texto',
  'pasteDialog.hint': 'Se guarda en la carpeta del proyecto. Elige cualquier nombre.',
  'pasteDialog.fileNameLabel': 'Nombre del archivo',
  'pasteDialog.namePlaceholder': 'notas.txt',
  'pasteDialog.contentLabel': 'Contenido',
  'pasteDialog.contentPlaceholder': 'Pega lo que quieras…',
  'pasteDialog.save': 'Guardar',
  'pasteDialog.cancel': 'Cancelar',
  'sketch.save': 'Guardar boceto',
  'sketch.cancel': 'Cancelar',
  'sketch.saving': 'Guardando…',
  'sketch.saved': 'Guardado',
  'sketch.tooltipDirty': 'Cambios sin guardar',
  'sketch.tooltipClean': 'Guardado',
  'fileViewer.empty': 'Selecciona un archivo para verlo.',
  'fileViewer.loading': 'Cargando…',
  'fileViewer.exportPptx': 'Exportar como PPTX',
  'fileViewer.openInNewTab': 'Abrir en pestaña nueva',
  'fileViewer.copyPath': 'Copiar ruta',
  'fileViewer.copied': '¡Copiado!',
  'fileViewer.share': 'Compartir',
  'fileViewer.binaryMeta': 'Binario · {size}',
  'fileViewer.binaryNote':
    'Archivo binario ({size} bytes). Descárgalo o ábrelo desde el disco para inspeccionarlo.',
  'fileViewer.pdfMeta': 'PDF · {size}',
  'fileViewer.documentMeta': 'Documento',
  'fileViewer.presentationMeta': 'Presentación',
  'fileViewer.spreadsheetMeta': 'Hoja de cálculo',
  'fileViewer.previewUnavailable': 'Vista previa no disponible. Descarga o abre el archivo para inspeccionarlo.',
  'fileViewer.download': 'Descargar',
  'fileViewer.open': 'Abrir',
  'fileViewer.imageMeta': 'Imagen · {size}',
  'fileViewer.reactMeta': 'Componente React · {size}',
  'fileViewer.sketchMeta': 'Boceto · {size}',
  'fileViewer.markdownStreamingMeta': 'Vista previa en streaming…',
  'fileViewer.markdownErrorMeta': 'La vista previa puede estar incompleta (error de generación).',
  'fileViewer.markdownStreamingStatus': 'Streaming… mostrando markdown parcial.',
  'fileViewer.markdownErrorStatus': 'Error de generación. Mostrando el último contenido disponible.',
  'fileViewer.videoMeta': 'Vídeo · {size}',
  'fileViewer.audioMeta': 'Audio · {size}',
  'fileViewer.reload': 'Recargar',
  'fileViewer.reloadDisk': 'Recargar desde el disco',
  'fileViewer.copy': 'Copiar',
  'fileViewer.copyTitle': 'Copiar el contenido del archivo',
  'fileViewer.saveDisabled': 'Guardar (visor de solo lectura)',
  'fileViewer.save': 'Guardar',
  'fileViewer.preview': 'Vista previa',
  'fileViewer.source': 'Código fuente',
  'fileViewer.tweaks': 'Ajustes',
  'fileViewer.tweaksUnavailable': 'Sin panel de ajustes en este artefacto',
  'fileViewer.jsxModuleTitle': 'Sin vista previa independiente',
  'fileViewer.jsxModuleBody': 'Este archivo es un módulo de componente cargado por otra página.',
  'fileViewer.jsxModuleCta': 'Abre la página que lo renderiza:',
  'fileViewer.comment': 'Comentar',
  'fileViewer.edit': 'Editar',
  'fileViewer.draw': 'Dibujar',
  'fileViewer.mark': 'Marcar',
  'fileViewer.markTool': 'Herramienta de marcado',
  'fileViewer.boxSelect': 'Seleccionar área',
  'fileViewer.screenshot': 'Captura',
  'manualEdit.layers': "Layers",
  'manualEdit.editableCount': "{count} editable",
  'manualEdit.hiddenBadge': "Hidden",
  'manualEdit.title': "Manual editor",
  'manualEdit.fallbackTitle': 'Edit',
  'manualEdit.movePanel': 'Move edit panel',
  'manualEdit.editParams': 'Editar parámetros',
  'manualEdit.closePanel': 'Close edit panel',
  'manualEdit.selectLayer': "Select a layer",
  'manualEdit.empty': "Click an element in the preview or choose a layer.",
  'manualEdit.noEditableLayers': "No editable layers found.",
  'manualEdit.noClass': "no class",
  'manualEdit.tabsAria': "Manual edit tabs",
  'manualEdit.tabContent': "Content",
  'manualEdit.tabStyle': "Style",
  'manualEdit.tabAttributes': "Attributes",
  'manualEdit.tabHtml': "Html",
  'manualEdit.tabSource': "Source",
  'manualEdit.attributesJson': "Attributes JSON",
  'manualEdit.selectedHtml': "Selected element HTML",
  'manualEdit.fullSource': "Full artifact source",
  'manualEdit.applyContent': "Apply Content",
  'manualEdit.applyStyle': "Apply Style",
  'manualEdit.applyAttributes': "Apply Attributes",
  'manualEdit.applyHtml': "Apply HTML",
  'manualEdit.applySource': "Apply Source",
  'manualEdit.invalidAttributes': "Invalid attributes JSON.",
  'manualEdit.changes': "Changes",
  'manualEdit.undo': "Undo",
  'manualEdit.redo': "Redo",
  'manualEdit.noChanges': "No manual edits yet.",
  'manualEdit.imageUrl': "Image URL",
  'manualEdit.altText': "Alt text",
  'manualEdit.label': "Label",
  'manualEdit.text': "Text",
  'manualEdit.href': "Href",
  'manualEdit.textColor': "Text color",
  'manualEdit.background': "Background",
  'manualEdit.fontSize': "Font size",
  'manualEdit.weight': "Weight",
  'manualEdit.align': "Align",
  'manualEdit.padding': "Padding",
  'manualEdit.margin': "Margin",
  'manualEdit.radius': "Radius",
  'manualEdit.border': "Border",
  'manualEdit.width': "Width",
  'manualEdit.minHeight': "Min height",
  'fileViewer.zoomOut': 'Reducir zoom',
  'fileViewer.zoomIn': 'Aumentar zoom',
  'fileViewer.resetZoom': 'Restablecer zoom',
  'fileViewer.viewportAria': 'Preview viewport',
  'fileViewer.viewportDesktop': 'Desktop',
  'fileViewer.viewportDesktopTitle': 'Full-width desktop preview',
  'fileViewer.viewportTablet': 'Tablet',
  'fileViewer.viewportTabletTitle': 'Tablet preview at 820 × 1180 (modern portrait baseline)',
  'fileViewer.viewportMobile': 'Mobile',
  'fileViewer.viewportMobileTitle': 'Mobile preview at 390 × 844',
  'fileViewer.reloadAria': 'Recargar',
  'fileViewer.previousSlide': 'Diapositiva anterior',
  'fileViewer.nextSlide': 'Diapositiva siguiente',
  'fileViewer.slideNavAria': 'Navegación de diapositivas',
  'fileViewer.present': 'Presentar',
  'fileViewer.presentInTab': 'En esta pestaña',
  'fileViewer.presentFullscreen': 'Pantalla completa',
  'fileViewer.presentNewTab': 'Pestaña nueva',
  'fileViewer.exitPresentation': 'Salir de la presentación',
  'fileViewer.shareLabel': "Compartir",
  'fileViewer.shareMenuShareLink': 'COMPARTIR',
  'fileViewer.shareMenuPublishOnline': 'PUBLICAR EN LÍNEA',
  'fileViewer.shareMenuDownload': 'DESCARGAR',
  'fileViewer.shareMenuPresentation': 'Presentación',
  'fileViewer.shareMenuSourceFiles': 'Archivos fuente',
  'fileViewer.shareMenuSave': 'GUARDAR',
  'fileViewer.copyShareLink': 'Copiar enlace compartido',
  'fileViewer.openSharePage': 'Abrir página compartida',
  'fileViewer.shareLinkRequiresDeploy': 'Publica en línea primero para obtener un enlace',
  'fileViewer.shareLinkPublishGuide': 'Publica en línea arriba para habilitar compartir ↑',
  'fileViewer.shareAfterGenerationComplete': 'Comparte cuando termine la generación',
  'fileViewer.copyProviderLink': 'Copy {provider} link',
  'fileViewer.copyCloudflareLink': 'Copy Cloudflare link',
  'fileViewer.screenshotCopying': 'Copying screenshot...',
  'fileViewer.screenshotCopied': 'Screenshot copied to clipboard',
  'fileViewer.screenshotClipboardDenied': 'Browser blocked clipboard access',
  'fileViewer.screenshotPreviewLoading': 'Preview is still loading. Try again in a moment.',
  'fileViewer.screenshotCaptureFailed': 'Could not capture the preview. Please try again.',
  'fileViewer.exportPdf': 'Exportar como PDF',
  'fileViewer.exportPdfAllSlides': 'Exportar como PDF (todas las diapositivas)',
  'fileViewer.exportPptxBusy': 'Espera a que termine el turno actual.',
  'fileViewer.exportPptxHint':
    'Envía una solicitud al agente para convertir este diseño a PPTX.',
  'fileViewer.exportPptxNa': 'La exportación a PPTX no está disponible aquí.',
  'fileViewer.exportZip': 'Descargar como .zip',
  'fileViewer.exportHtml': 'Exportar como HTML independiente',
  'fileViewer.exportMd': 'Exportar como Markdown',
  'fileViewer.exportImage': 'Exportar como imagen',
  'fileViewer.exportImageFailed': 'Error al capturar la imagen. Inténtalo de nuevo o usa la herramienta de captura de pantalla de tu navegador.',
  'fileViewer.exportImageModalSubtitle': 'Elige un formato y descarga la vista previa actual como imagen.',
  'fileViewer.exportImageFormatLabel': 'Formato',
  'fileViewer.exportImageSaving': 'Guardando imagen…',
  'fileViewer.exportImageSaved': 'Imagen guardada',
  'fileViewer.exportImageDownloadStarted': 'Descarga iniciada',
  'fileViewer.exportImageDownloadDetails': '{filename} está en las descargas del navegador si no apareció un cuadro de diálogo Guardar como.',
  'fileViewer.exportJsx': 'Exportar como JSX',
  'fileViewer.exportReactHtml': 'Exportar vista previa como HTML',
  'fileViewer.exportStarted': 'Export started',
  'fileViewer.saveAsTemplate': 'Guardar como plantilla…',
  'fileViewer.savingTemplate': 'Guardando plantilla…',
  'fileViewer.savedTemplate': 'Guardado como «{name}»',
  'fileViewer.savedTemplateFail': 'No se pudo guardar la plantilla. Inténtalo de nuevo.',
  'fileViewer.templateNamePrompt': 'Nombre de la plantilla',
  'fileViewer.templateNameDefault': 'Plantilla sin título',
  'fileViewer.templateDescPrompt':
    'Descripción breve (opcional: ¿qué hace útil esta plantilla?)',
  'fileViewer.deployToVercel': 'Desplegar en Vercel',
  'fileViewer.redeployToVercel': 'Volver a desplegar',
  'fileViewer.deployingToVercel': 'Desplegando en Vercel…',
  'fileViewer.deployProviderLabel': 'Proveedor',
  'fileViewer.vercelProvider': 'Vercel',
  'fileViewer.cloudflarePagesProvider': 'Cloudflare Pages',
  'fileViewer.deployToProvider': 'Desplegar en {provider}',
  'fileViewer.redeployToProvider': 'Volver a desplegar en {provider}',
  'fileViewer.deployingToProvider': 'Desplegando en {provider}…',
  'fileViewer.preparingPublicLink': 'Preparando enlace público…',
  'fileViewer.copyDeployLink': 'Copiar enlace',
    'fileViewer.deployModalTitle': 'Desplegar',
  'fileViewer.deployModalSubtitle': 'Usa la cuenta del proveedor seleccionado para desplegar esta vista previa HTML.',
  'fileViewer.vercelToken': 'Token de Vercel',
  'fileViewer.vercelTokenGetLink': 'Obtener token de Vercel',
  'fileViewer.vercelTokenPlaceholder': 'Pega tu token de Vercel',
  'fileViewer.vercelTokenReuseHint': 'Se usará el token guardado. Introduce uno nuevo para sustituirlo.',
  'fileViewer.vercelTokenRequired': 'Introduce y guarda primero un token de Vercel.',
  'fileViewer.cloudflareApiToken': 'Token de API de Cloudflare',
  'fileViewer.cloudflareApiTokenGetLink': 'Obtener token de API',
  'fileViewer.cloudflareApiTokenPlaceholder': 'Pega tu token de API de Cloudflare',
  'fileViewer.cloudflareApiTokenReuseHint': 'Se usará el token de API de Cloudflare guardado. Introduce uno nuevo para sustituirlo.',
  'fileViewer.cloudflareApiTokenRequired': 'Introduce y guarda primero un token de API de Cloudflare.',
  'fileViewer.cloudflareApiTokenScopeHint': 'Selecciona Pages Edit al crear el token de API; los dominios personalizados necesitan Zone Read / DNS Edit.',
  'fileViewer.vercelTeamId': 'ID del equipo',
  'fileViewer.vercelTeamSlug': 'Slug del equipo',
  'fileViewer.cloudflareAccountId': 'ID de cuenta',
  'fileViewer.cloudflareAccountIdHint': 'Encuentra el ID de cuenta en el panel de Cloudflare.',
  'fileViewer.cloudflareAccountIdRequired': 'Introduce y guarda primero un Cloudflare Account ID.',
  'fileViewer.cloudflareZoneLabel': 'Domain',
  'fileViewer.cloudflareZonePlaceholder': 'Save Cloudflare settings to load domains',
  'fileViewer.cloudflareZoneRequired': 'Select a Cloudflare domain first.',
  'fileViewer.cloudflareZonesLoading': 'Loading Cloudflare domains…',
  'fileViewer.cloudflareZonesRefresh': 'Refresh domains',
  'fileViewer.cloudflareZonesLoadFailed': 'Could not load Cloudflare domains.',
  'fileViewer.cloudflareZonesEmpty': 'No active full Cloudflare domains were found for this account.',
  'fileViewer.cloudflareDomainPrefixLabel': 'Subdomain prefix',
  'fileViewer.cloudflareDomainPrefixPlaceholder': 'demo',
  'fileViewer.cloudflareDomainPrefixInvalid': 'Use one DNS label only: lowercase letters, numbers, and hyphens.',
  'fileViewer.cloudflareHostnamePreview': 'Custom domain preview: {hostname}',
  'fileViewer.cloudflareCustomDomainHint': 'Opcional: vincula un dominio personalizado. Si lo dejas vacío, se seguirá creando un enlace pages.dev.',
  'fileViewer.cloudflarePagesDevLinkLabel': 'pages.dev URL',
  'fileViewer.cloudflareCustomDomainLinkLabel': 'Custom domain',
  'fileViewer.optional': 'Opcional',
  'fileViewer.vercelPreviewOnly': 'Los despliegues son solo Preview por ahora.',
  'fileViewer.cloudflarePagesPreviewHint': 'Cloudflare Pages usa Direct Upload.',
  'fileViewer.savingConfig': 'Guardando…',
  'fileViewer.deployConfigSaveFailed': 'No se pudo guardar la configuración de Vercel.',
  'fileViewer.deployFailed': 'El despliegue falló. Revisa la configuración de Vercel e inténtalo de nuevo.',
  'fileViewer.deployProviderConfigSaveFailed': 'No se pudo guardar la configuración de {provider}.',
  'fileViewer.deployProviderFailed': 'El despliegue en {provider} falló. Revisa la configuración e inténtalo de nuevo.',
  'fileViewer.deployResultLabel': 'URL desplegada',
  'fileViewer.deployLinkReady': 'Listo',
  'fileViewer.deploySuccessToast': 'Despliegue subido correctamente',
  'fileViewer.deploySuccessToastDetails': '{provider} · {url}',
  'fileViewer.deployLinkPreparingLabel': 'Enlace público pendiente',
  'fileViewer.deployLinkDelayed': 'El sitio se ha desplegado. El proveedor aún está preparando el enlace público.',
  'fileViewer.deployLinkFailed': 'Falló el dominio personalizado',
  'fileViewer.deployLinkProtectedLabel': 'Protección del despliegue activada',
  'fileViewer.deployLinkProtected': 'El sitio se ha desplegado, pero este enlace de vista previa requiere autenticación. Desactiva Deployment Protection o usa un dominio personalizado.',
  'fileViewer.retryLink': 'Reintentar ahora',

  'questionForm.submit': 'Enviar',
  'questionForm.skip': 'Omitir',
  'questionForm.locked': 'Respondido',

  'conv.switch': 'Cambiar de conversación',
  'conv.label': 'Conversación',
  'conv.heading': 'Conversaciones',
  'conv.new': '+ Nueva',
  'conv.empty': 'Aún no hay conversaciones.',
  'conv.untitled': 'Conversación sin título',
  'conv.renameTooltip': 'Doble clic para renombrar',
  'conv.delete': 'Eliminar conversación',
  'conv.deleteConfirm': '¿Eliminar «{title}»? Se borrarán sus mensajes.',

  'agentPicker.label': 'Agente',
  'agentPicker.modeChoose': 'Elige el modo de ejecución',
  'agentPicker.localCli': 'CLI local',
  'agentPicker.daemonOff': 'daemon apagado',
  'agentPicker.byok': 'API · BYOK',
  'agentPicker.selectAgent': 'Selecciona una CLI de agente de código detectada',
  'agentPicker.noAgents': 'no hay agentes en el PATH',
  'agentPicker.notInstalled': 'no instalado',
  'agentPicker.rescan': 'Reescanear el PATH local en busca de agentes',

  'tool.openInTab': 'Abrir {name} en una pestaña',
  'tool.open': 'abrir',
  'tool.todos': 'Tareas',
  'tool.askQuestion': 'Pregunta',
  'tool.askQuestionSubmit': 'Enviar',
  'tool.askQuestionPending': 'Esperando tu respuesta',
  'tool.askQuestionAnswered': 'Respondido',
  'tool.todosExpand': 'Mostrar tareas',
  'tool.todosCollapse': 'Ocultar tareas',
  'tool.todosDone': 'Listo',
  'tool.todosDismiss': 'Descartar lista de tareas',
  'tool.write': 'Escribir',
  'tool.edit': 'Editar',
  'tool.read': 'Leer',
  'tool.bash': 'Bash',
  'tool.glob': 'Glob',
  'tool.grep': 'Grep',
  'tool.fetch': 'Obtener',
  'tool.search': 'Buscar',
  'tool.lines': '{n} líneas',
  'tool.changeSingular': 'cambio',
  'tool.changePlural': 'cambios',
  'tool.in': 'en {path}',
  'tool.hide': 'ocultar',
  'tool.output': 'salida',
  'tool.running': 'ejecutando…',
  'tool.error': 'error',
  'tool.done': 'listo',

  'assistant.role': 'Asistente',
  'assistant.workingLabel': 'Trabajando',
  'assistant.doneLabel': 'Listo',
  'assistant.copyMarkdown': 'Copiar Markdown de la respuesta',
  'assistant.forkConversation': 'Bifurcar desde aquí',
  'assistant.forkingConversation': 'Bifurcando…',
  'assistant.feedbackPrompt': 'Comentarios',
  'assistant.feedbackPositive': 'Útil',
  'assistant.feedbackNegative': 'No útil',
  'assistant.feedbackReasonTitle': 'Tell us why',
  'assistant.feedbackReasonPositiveMatched': 'Understood my request',
  'assistant.feedbackReasonPositiveVisual': 'Looks good',
  'assistant.feedbackReasonPositiveUseful': 'Useful structure',
  'assistant.feedbackReasonPositiveEasy': 'Easy to keep editing',
  'assistant.feedbackReasonPositiveDesignSystem': 'Followed the design system',
  'assistant.feedbackReasonNegativeMissed': 'Missed my request',
  'assistant.feedbackReasonNegativeVisual': 'Visual quality needs work',
  'assistant.feedbackReasonNegativeIncomplete': 'Incomplete output',
  'assistant.feedbackReasonNegativeHard': 'Hard to use',
  'assistant.feedbackReasonNegativeDesignSystem': 'Did not follow the design system',
  'assistant.feedbackReasonOther': 'Other',
  'assistant.feedbackReasonPlaceholder': 'Add a short note...',
  'assistant.feedbackReasonSubmit': 'Submit',
  'assistant.emptyResponseLabel': 'No output',
  'assistant.emptyResponseMessage': 'The provider ended the request without returning text or an artifact. Try another model or provider, check quota, or retry.',
  'assistant.unfinishedLabel': 'Detenido con tareas pendientes',
  'assistant.unfinishedSummary': 'quedan {n} tarea(s)',
  'assistant.unfinishedMore': '+{n} más',
  'assistant.continueRemaining': 'Continuar tareas pendientes',
  'assistant.outTokens': '{n} salida',
  'assistant.producedFiles': 'Archivos de este turno',
  'assistant.openFile': 'Abrir',
  'assistant.downloadFile': 'Descargar',
  'nextStep.title': 'Siguiente paso',
  'nextStep.share': 'Compartir',
  'nextStep.chipJoiner': ', ',
  'nextStep.chipPolishVisual': 'Hacerlo más premium',
  'nextStep.chipBrand': 'Reforzar el estilo de marca',
  'nextStep.chipConcise': 'Condensar el texto',
  'nextStep.chipSecondVersion': 'Generar una segunda versión',
  'assistant.thinking': 'Pensando',
  'assistant.thought': 'Pensó',
  'assistant.thoughtFor': 'Pensó durante {s}s',
  'assistant.systemReminder': 'Recordatorio del sistema',
  'assistant.possiblePromptInjection': 'Posible inyección de prompt',
  'assistant.waitingFirstOutput': 'Esperando la primera salida',
  'assistant.statusBootingAgent': 'Iniciando agente',
  'assistant.statusPreparing': 'Preparing...',
  'assistant.statusStarting': 'Iniciando',
  'assistant.statusRequesting': 'Enviando solicitud',
  'assistant.statusThinking': 'Pensando',
  'assistant.statusStreaming': 'Transmitiendo',
  'assistant.slowHint':
    'Está tardando más de lo normal. El formulario suele aparecer en 5-10 s. Puedes pulsar Detener y reformular.',
  'assistant.verbEditing': 'Editando',
  'assistant.verbWriting': 'Escribiendo',
  'assistant.verbReading': 'Leyendo',
  'assistant.verbSearching': 'Buscando',
  'assistant.verbRunning': 'Ejecutando',
  'assistant.verbTodos': 'Tareas',
  'assistant.verbFetching': 'Obteniendo',
  'assistant.verbCalling': 'Llamando',

  'qf.answered': 'respondido',
  'qf.choose': 'Elige…',
  'qf.required': 'obligatorio',
  'qf.lockedSubmitted':
    'Respuestas enviadas: el agente las usará durante el resto de la sesión.',
  'qf.lockedPrev': 'Este formulario es de un turno anterior.',
  'qf.hint':
    'Elige lo que encaje. Omite los campos opcionales que no te importen: el agente usará valores predeterminados sensatos.',
  'qf.submitDefault': 'Enviar respuestas',
  'qf.submitDisabledTitle': 'Rellena primero los campos obligatorios',
  'qf.submitTitle': 'Enviar respuestas',
  'qf.cardSelected': 'seleccionado',
  'qf.cardRefs': 'Refs:',
  'qf.cardSampleText': 'El veloz murciélago hindú · 0123',
  'questions.tabLabel': 'Questions',
  'questions.banner': 'Mind if I ask a couple of quick questions?',
  'questions.continue': 'Continue',
  'questions.generating': 'Generating questions…',
  'questions.skipAll': 'Skip all',
  'questions.autoSkipHint': 'Auto-continues when the timer ends',

  'sketch.toolSelect': 'Seleccionar (sin acción)',
  'sketch.toolPen': 'Lápiz',
  'sketch.toolText': 'Texto',
  'sketch.toolRect': 'Rectángulo',
  'sketch.toolArrow': 'Flecha',
  'sketch.toolEraser': 'Borrador',
  'sketch.color': 'Color',
  'sketch.strokeSize': 'Grosor del trazo',
  'sketch.undo': 'Deshacer',
  'sketch.clear': 'Limpiar',
  'sketch.close': 'Cerrar',
  'sketch.closeConfirm': '¿Cerrar el boceto y descartar los cambios sin guardar?',
  'sketch.textPrompt': 'Texto:',
  'sketch.textModalTitle': 'Añadir texto',

  'pet.title': 'Mascotas',
  'pet.tabBuiltIn': 'Integradas',
  'pet.tabBuiltInHint': 'Compañeros incluidos con Open Design — elige uno y adóptalo.',
  'pet.builtInEmpty': 'Las mascotas integradas no están disponibles ahora. Actualiza la pestaña Comunidad cuando el daemon vuelva a estar en línea.',
  'pet.tabCustom': 'Personalizada',
  'pet.tabCustomHint': 'Pon nombre, glifo, color o sube un sprite.',
  'pet.tabCommunity': 'Comunidad',
  'pet.tabCommunityHint': 'Mascotas eclosionadas de Codex — adopta o genera una con IA.',
  'pet.tabsAria': 'Fuente de la mascota',
  'pet.subtitle': 'Adopta una mascotita que flota sobre tu workspace.',
  'pet.navTitle': 'Mascotas',
  'pet.navHint': 'Adopta o personaliza',
  'pet.adopt': 'Adoptar',
  'pet.adoptedBadge': 'Adoptada',
  'pet.adoptCallout': 'Adopta una mascota',
  'pet.changePet': 'Cambiar mascota',
  'pet.wake': 'Despertar',
  'pet.tuck': 'Esconder',
  'pet.wakeTitle': 'Despertar la mascota — mostrar el overlay.',
  'pet.tuckTitle': 'Esconder la mascota — ocultar el overlay.',
  'pet.settingsTitle': 'Abrir ajustes de mascota',
  'pet.useCustom': 'Usar mi mascota',
  'pet.customTitle': 'Crea la tuya',
  'pet.customHint': 'Elige nombre, símbolo y color — el overlay se actualiza en vivo.',
  'pet.customGreetingPlaceholder': 'Saluda con tu mascota…',
  'pet.fieldName': 'Nombre',
  'pet.fieldGlyph': 'Símbolo',
  'pet.fieldGlyphHint': 'Un solo emoji va mejor (p. ej. 🐝, 🦄, 🐢).',
  'pet.fieldGreeting': 'Saludo',
  'pet.fieldAccent': 'Color de acento',
  'pet.fieldAccentCustom': 'Color personalizado',
  'pet.fieldAccentDefault': 'Color de acento predeterminado',
  'pet.overlayAria': 'Compañero',
  'pet.spriteAria': '{name} — arrastra para mover, haz clic para conversar',
  'pet.spriteTitle': '¡Hola de {name}! Haz clic para conversar.',
  'pet.composerTitle': 'Mascotas — despertar, esconder o elegir',
  'pet.composerMenuTitle': 'Mascotas',
  'pet.composerMenuHint': 'tip: escribe /pet para alternar',
  'pet.composerOpenSettings': 'Administrar mascotas',
  'pet.welcomeTeaserTitle': 'Adopta una mascota',
  'pet.welcomeTeaserBody': 'Un compañerito que flota sobre tu workspace.',
  'pet.welcomeTeaserCta': 'Elegir',
  'pet.imageUpload': 'Subir sprite',
  'pet.imageReplace': 'Reemplazar sprite',
  'pet.imageRemove': 'Usar emoji',
  'pet.imageHintIdle': 'PNG, JPG, WebP, GIF o SVG. ¿Spritesheet? Sube una tira horizontal y ajusta el número de frames.',
  'pet.imageHintActive': 'Mostrando tu sprite. Pon frames > 1 para animar un spritesheet horizontal.',
  'pet.fieldFrames': 'Frames',
  'pet.fieldFramesHint': '1 = estático. > 1 = spritesheet horizontal.',
  'pet.fieldFps': 'Velocidad (fps)',
  'pet.fieldFpsHint': 'Velocidad de cambio de frames.',
  'pet.atlasImport': 'Importar sprite de Codex',
  'pet.atlasImportTitle': 'Importa un atlas hatch-pet 8x9 / 192x208 (PNG o WebP).',
  'pet.atlasPickerTitle': 'Elige una fila de animación',
  'pet.atlasPickerHint': 'Las mascotas Codex traen 9 filas de animación. Por defecto mantenemos todo el atlas para que la mascota cambie de fila al pasar el ratón, según la dirección del arrastre o tras estar inactiva. También puedes fijar un solo bucle.',
  'pet.atlasCancel': 'Descartar atlas',
  'pet.atlasAdopt': 'Fijar a esta fila',
  'pet.atlasAdoptFull': 'Usar atlas completo (animado)',
  'pet.atlasAdoptFullTitle': 'Conserva todas las filas para que la mascota reaccione al hover, a la dirección del arrastre y a la inactividad larga.',
  'pet.atlasAdoptRowTitle': 'Recorta solo la fila resaltada en una tira con bucle único.',
  'pet.atlasActiveHint': 'Atlas animado activo — la mascota elige una fila según tu interacción (hover, arrastre, inactividad).',
  'pet.atlasRow.idle': 'Idle',
  'pet.atlasRow.running-right': 'Corre a la derecha',
  'pet.atlasRow.running-left': 'Corre a la izquierda',
  'pet.atlasRow.waving': 'Saludo',
  'pet.atlasRow.jumping': 'Salto',
  'pet.atlasRow.failed': 'Falló',
  'pet.atlasRow.waiting': 'Espera',
  'pet.atlasRow.running': 'Corre',
  'pet.atlasRow.review': 'Revisión',
  'pet.hatchTitle': 'Eclosiona una mascota nueva con IA',
  'pet.hatchHint': 'Usa la skill hatch-pet incluida desde el chat para generar un spritesheet estilo Codex y luego impórtalo aquí.',
  'pet.hatchConcept': 'Concepto de mascota (opcional)',
  'pet.hatchConceptPlaceholder': 'p. ej. un shiba pixel-art con un suéter cómodo',
  'pet.hatchCopy': 'Copiar prompt',
  'pet.hatchCopied': '¡Copiado!',
  'pet.hatchFoot': 'Cuando la skill guarde tu mascota, vuelve y pulsa "Importar sprite de Codex".',
  'pet.slashPopoverAria': 'Comandos slash',
  'pet.slashPopoverTitle': 'Comandos',
  'pet.slashPopoverHint': '↑↓ navegar · enter elegir · esc cerrar',
  'pet.slashPet': 'Alternar, adoptar o ir a ajustes de mascota.',
  'pet.slashPetWake': 'Despertar la mascota flotante.',
  'pet.slashPetTuck': 'Guardar la mascota por ahora.',
  'pet.slashHatch': 'Genera una mascota Codex con la skill hatch-pet.',
  'pet.slashHatchArg': '<concepto>',
  'pet.slashSearch': 'Busca en la web con el comando OD research.',
  'pet.slashSearchArg': '<consulta>',
  'pet.codexTitle': 'Recién eclosionadas',
  'pet.codexSubtitle': 'Las mascotas empaquetadas por la skill hatch-pet aparecen aquí para adopción en un clic.',
  'pet.codexSubtitleWithDir': 'Escaneando {dir} en busca de paquetes de hatch-pet.',
  'pet.codexEmpty': 'Aún no hay mascotas eclosionadas. Escribe /hatch en el chat para generar una.',
  'pet.codexLoading': 'Buscando mascotas eclosionadas…',
  'pet.codexRefresh': 'Refrescar',
  'pet.codexAdopt': 'Adoptar',
  'pet.codexAdopting': 'Adoptando…',
  'pet.communitySync': 'Descargar mascotas de la comunidad',
  'pet.communitySyncing': 'Descargando…',
  'pet.communitySyncTitle': 'Sincronizar las últimas mascotas de Codex Pet Share + j20 Hatchery en ~/.codex/pets/.',
  'pet.communitySyncDone': '{wrote} mascotas nuevas sincronizadas ({total} en total).',
  'pet.communitySyncFailed': 'Error al sincronizar: {error}',
  'pet.codexBundled': 'Incluida',
  'pet.codexBundledTitle': 'Viene con Open Design — sin descarga.',

  'settings.notifications': 'Notificaciones',
  'settings.notificationsHint': 'Sonido y notificación al completar la tarea',
  'settings.notifyCompletionSound': 'Sonido al completar',
  'settings.notifyCompletionSoundHint': 'Se reproduce al terminar un turno. Desactivado por defecto.',
  'settings.notifySuccessSound': 'Sonido de éxito',
  'settings.notifyFailureSound': 'Sonido de error',
  'settings.notifyDesktop': 'Notificación de escritorio',
  'settings.notifyDesktopHint': 'Se envía cuando la ventana no está en primer plano.',
  'settings.notifyDesktopBlocked': 'Bloqueadas por el navegador. Habilítalas en la configuración del sitio.',
  'settings.notifyDesktopUnsupported': 'Las notificaciones de escritorio no están disponibles en este entorno.',
  'settings.notifyTest': 'Enviar prueba',
  'settings.notifyTestSent': 'Notificación de prueba enviada. Si no aparece el aviso, revisa las notificaciones del navegador y del sistema.',
  'settings.notifyTestFailed': 'Falló la llamada de notificación. Revisa las notificaciones del navegador y del sistema.',
  'settings.notifySoundDing': 'Tilín',
  'settings.notifySoundChime': 'Carillón',
  'settings.notifySoundTwoToneUp': 'Dos tonos ascendente',
  'settings.notifySoundPluck': 'Pulsación',
  'settings.notifySoundBuzz': 'Zumbido',
  'settings.notifySoundTwoToneDown': 'Dos tonos descendente',
  'settings.notifySoundThud': 'Golpe',
  'settings.skills': 'Habilidades',
  'settings.skillsHint': 'Habilidades funcionales que el agente puede invocar durante la tarea',
  'settings.skillsNew': 'Nueva habilidad',
  'settings.skillsEmpty': 'Selecciona una habilidad a la izquierda o crea una nueva.',
  'settings.skillsEdit': 'Editar',
  'settings.skillsDelete': 'Eliminar',
  'settings.skillsDeleteConfirm': 'Confirmar eliminación',
  'settings.skillsName': 'Nombre',
  'settings.skillsTriggers': 'Disparadores (separados por comas o saltos de línea)',
  'settings.skillsDescription': 'Descripción',
  'settings.skillsBody': 'Cuerpo de SKILL.md',
  'settings.skillsCreate': 'Crear',
  'settings.skillsSave': 'Guardar',
  'settings.skillsSaving': 'Guardando…',
  'settings.skillsFiles': 'Archivos',
    'settings.skillsNoFiles': 'No hay archivos en esta carpeta de habilidad.',
  'settings.skillsNameRequired': 'El nombre de la habilidad es obligatorio.',
  'settings.skillsBodyRequired': 'El contenido de la habilidad es obligatorio.',
  'settings.designSystems': 'Sistemas de diseño',
  'settings.designSystemsHint': 'Explora y activa los sistemas de diseño disponibles',
  'settings.designSystemsInstalled': 'Instalados',
  'settings.designSystemsAdd': 'Añadir sistema de diseño',
  'settings.designSystemsHiddenCount': '{count} ocultos en la galería de inicio',
  'settings.designSystemsShowAll': 'Mostrar todo',
  'settings.designSystemsShowHidden': 'Mostrar ocultos',
  'settings.designSystemsSource': 'Origen',
  'settings.designSystemsSourceLocal': 'Local',
  'settings.designSystemsSourceGithub': 'GitHub',
  'settings.designSystemsSourceShadcn': 'shadcn',
  'settings.designSystemsShadcnReference': 'Referencia del registro shadcn',
  'settings.designSystemsImportShadcn': 'Importar desde shadcn',
  'settings.designSystemsStructure': 'Estructura',
  'settings.designSystemsModeHybrid': 'Híbrido',
  'settings.designSystemsModeNormalized': 'Normalizado',
  'settings.designSystemsModeVerbatim': 'Literal',
  'settings.designSystemsCraft': 'Craft',
  'settings.designSystemsCraftColor': 'Color',
  'settings.designSystemsCraftAccessibility': 'Accesibilidad',
  'settings.designSystemsGithubUrl': 'URL de GitHub',
  'settings.designSystemsProjectPath': 'Ruta del proyecto',
  'settings.designSystemsImportGithub': 'Importar desde GitHub',
  'settings.designSystemsImportProject': 'Importar desde proyecto',
  'settings.designSystemsImportedStatus': '{title} importado',
  'settings.designSystemsViewImported': 'Ver sistema de diseño importado',
  'settings.designSystemsCategory': 'Categoría',
  'settings.designSystemsAllCategories': 'Todas las categorías',
  'settings.designSystemsShowInHomeGallery': 'Mostrar en la galería de inicio',
  'settings.projectLocations': 'Ubicaciones de proyectos',
  'settings.projectLocationsHint': 'Raíces de almacenamiento del espacio de trabajo',
  'settings.projectLocationsDescription': 'Añade bases de trabajo que pueden contener varias carpetas de proyectos de Open Design. Los proyectos nuevos se guardan como una carpeta dentro de la base seleccionada.',
  'settings.projectLocationsSaveError': 'No se pudieron guardar las ubicaciones de proyectos. Comprueba que cada ruta sea una carpeta accesible.',
  'settings.projectLocationsSaved': 'Ubicaciones de proyectos guardadas.',
  'settings.projectLocationsScanError': 'No se pudieron escanear las ubicaciones de proyectos.',
  'settings.projectLocationsScanComplete': 'Escaneo completado: {imported} importados, {existing} ya registrados.',
  'settings.projectLocationsNoFolderSelected': 'No se seleccionó ninguna carpeta.',
  'settings.projectLocationsDuplicate': 'Esa base de trabajo ya está añadida.',
  'settings.projectLocationsWorkBaseMeta': 'Base de trabajo · los proyectos se crean aquí como subcarpetas',
  'settings.projectLocationsAddFolder': 'Añadir carpeta…',
  'settings.projectLocationsDefaultBadge': 'Ubicación predeterminada',
  'settings.projectLocationsMakeDefault': 'Hacer predeterminada',
  'settings.projectLocationsDefaultSaved': 'Ubicación de proyecto predeterminada actualizada.',
  'settings.librarySkills': 'Habilidades',
  'settings.libraryDesignSystems': 'Sistemas de diseño',
  'settings.librarySearch': 'Buscar...',
  'settings.libraryAll': 'Todo',
  'settings.libraryPreview': 'Vista previa',
  'settings.libraryPreviewClose': 'Cerrar',
  'settings.libraryLoading': 'Cargando...',
  'settings.libraryNoResults': 'Ningún elemento coincide con tu búsqueda.',
  'settings.libraryEnabled': 'Activado',
  'settings.libraryDisabled': 'Desactivado',
  'settings.connectorsNavHint': 'Conexiones a sistemas externos',
  'settings.connectorsHint': 'Gestiona la configuración de conectores y proveedores de herramientas para este dispositivo.',
  'settings.connectorsComposioApiKey': 'Clave API de Composio',
  'settings.connectorsSavedTitle': 'Guardada en el daemon local',
  'settings.connectorsSavedWithTail': 'Guardada · ••••{tail}',
  'settings.connectorsSaved': 'Guardada',
  'settings.connectorsGetApiKey': 'Obtener clave API',
  'settings.connectorsReplaceKeyPlaceholder': 'Pega una clave nueva para sustituir la guardada',
  'settings.connectorsApiKeyPlaceholder': 'Pega la clave API de Composio',
  'settings.connectorsClear': 'Borrar',
  'settings.connectorsClearConfirmTitle': '¿Borrar la clave de API de Composio guardada?',
  'settings.connectorsClearConfirmBody': 'Eliminar la clave desconecta todos los conectores de Composio vinculados a este espacio. Se quitarán las cuentas conectadas, los permisos OAuth y el acceso a las herramientas.',
  'settings.connectorsClearConfirmContinue': 'Continuar',
  'settings.connectorsClearFinalTitle': 'Esto desconectará todos los conectores',
  'settings.connectorsClearFinalBody': 'No hay vuelta atrás. Tendrás que volver a conectar cada integración desde cero después de pegar una clave nueva.',
  'settings.connectorsClearFinalConfirm': 'Borrar clave y desconectar',
  'settings.connectorsClearArming': 'Un momento\u2026',
  'settings.connectorsClearCancel': 'Cancelar',
  'settings.connectorsSaveKey': "Guardar clave",
  'settings.connectorsSaveKeyTitle': "Enviar esta clave al daemon local",
  'settings.connectorsKeySaving': "Guardando…",
  'settings.connectorsKeySaved': "Guardado ✓",
  'settings.connectorsKeyError': "No se pudo guardar la clave. Comprueba que el daemon local está activo y vuelve a intentarlo.",
  'settings.connectorsHelpSaved': 'Tu clave desbloquea el catálogo de abajo y permanece en el daemon local. Pega una clave nueva para sustituirla o bórrala.',
  'settings.connectorsHelpUnsaved': "Cambios sin guardar — pulsa Guardar clave para almacenar esta credencial en el daemon local y desbloquear el catálogo de abajo.",
  'settings.connectorsHelpEmpty': 'Añade una clave para desbloquear el catálogo de abajo. Las claves se guardan localmente en el daemon y nunca se envían mediante variables de entorno.',
  'settings.connectorsLoadingSavedKey': 'Buscando una clave guardada en el daemon local…',
  'settings.autosaveSaving': "Guardando…",
  'settings.autosaveSaved': "Todos los cambios guardados",
  'settings.autosaveError': "No se pudieron guardar los cambios. Es posible que el daemon local esté desconectado.",
  'settings.libraryToggleLabel': 'Alternar',
  // Memory (auto-extracted personalization saved as on-disk markdown)
  'settings.memory': 'Memoria',
  'settings.memoryHint': 'Datos personales extraídos automáticamente de los chats',
  'settings.memoryDescription': 'Datos sobre tus preferencias extraídos automáticamente, guardados como Markdown e inyectados en cada chat.',
  'settings.memoryEnabled': 'Activada',
  'settings.memoryDisabled': 'Desactivada',
  'settings.memoryEnableLabel': 'Activar inyección de memoria',
  'settings.memoryDisabledBanner': 'La memoria está desactivada. Los datos existentes permanecen en disco pero no se inyectarán en nuevos chats.',
  'settings.memoryNew': 'Nueva memoria',
  'settings.memoryEdit': 'Editar',
  'settings.memoryDelete': 'Eliminar',
  'settings.memoryPreview': 'Vista previa',
  'settings.memoryEmpty': 'Aún no hay memoria.',
  'settings.memoryEmptyHintZh': '记住: 用户偏好深色主题',
  'settings.memoryEmptyHintEn': 'I prefer dark mode',
  'settings.memoryName': 'Nombre',
  'settings.memoryDesc': 'Descripción en una línea',
  'settings.memoryBody': 'Cuerpo (Markdown compatible)',
  'settings.memoryBodyHint': 'La regla primero, luego Why y How to apply.',
  'settings.memoryStartersLabel': 'Need a starting point? Click to fill the form:',
  'settings.memoryStarterUserName': 'My role',
  'settings.memoryStarterUserDesc': 'I am a frontend engineer working on a SaaS design tool',
  'settings.memoryStarterUserBody': '- Role: senior frontend engineer\n- Stack: React, TypeScript, Vite\n- Domain: design / collaboration tools\n- Timezone: GMT+8 (Asia/Shanghai)\n\nWhen to apply: any chat — frame examples around web frontend.',
  'settings.memoryStarterFeedbackName': 'UI preferences',
  'settings.memoryStarterFeedbackDesc': 'Dark mode, large body text, low information density',
  'settings.memoryStarterFeedbackBody': '- Theme: dark by default\n- Body text: ≥ 18px\n- Information density: prefer whitespace, fewer items per screen\n\nWhy: less eye strain during long sessions.\nWhen to apply: whenever you generate UI, web pages, or slides.',
  'settings.memoryStarterProjectName': 'Current project',
  'settings.memoryStarterProjectDesc': 'Open Design v0.5 — chat-driven design editor',
  'settings.memoryStarterProjectBody': '- Goal: ship the chat-driven editor this quarter\n- Priorities: streaming render, local multimodal, offline-first\n- Stack: Next.js 16, Express daemon, SQLite\n\nWhen to apply: in any conversation about this project.',
  'settings.memorySaveHint': 'Not auto-saved — click Create / Save to apply.',
  'settings.memoryIndexSaveHint': 'Edits to the index are not auto-saved — click Save index to apply.',
  'settings.memoryIndexUnsaved': 'Unsaved changes',
  'settings.memoryFlashCreated': '✓ Memory created',
  'settings.memoryFlashSaved': '✓ Memory saved',
  'settings.memoryFlashDeleted': '✓ Memory deleted',
  'settings.memoryFlashIndexSaved': '✓ Index saved',
  'settings.memoryFlashPathCopied': '✓ Ruta copiada',
  'settings.memoryNameLabel': 'Title',
  'settings.memoryTypeLabel': 'Type',
  'settings.memoryDescLabel': 'Description',
  'settings.memoryBodyLabel': 'Content',
  'settings.memoryTypeUser': 'Usuario',
  'settings.memoryTypeFeedback': 'Retroalimentación',
  'settings.memoryTypeProject': 'Proyecto',
  'settings.memoryTypeReference': 'Referencia',
  'settings.memoryIndex': 'MEMORY.md (índice)',
  'settings.memoryIndexSave': 'Guardar índice',
  'settings.memoryIndexReset': 'Restablecer',
  'settings.memoryToastChanged': 'Memoria actualizada',
  'settings.memoryToastClickHint': 'Ver',
  'settings.memoryAll': 'Todo',
  'settings.memoryExtractions': 'Extraction history',
  'settings.memoryExtractionsHint': 'Recent LLM-backed extraction attempts. Heuristic regex extraction always runs first; LLM extraction runs in the background after each turn.',
  'settings.memoryExtractionsEmpty': 'No extractions yet. The next chat turn will populate this list.',
  'settings.memoryExtractionsRefresh': 'Refresh',
  'settings.memoryExtractionsRefreshing': 'Refreshing…',
  'settings.memoryExtractionPhaseRunning': 'Running…',
  'settings.memoryExtractionPhaseSuccess': 'Success',
  'settings.memoryExtractionPhaseSkipped': 'Skipped',
  'settings.memoryExtractionPhaseFailed': 'Failed',
  'settings.memoryExtractionSkipNoProvider': 'No API key configured for LLM memory extraction.',
  'settings.memoryExtractionSkipDisabled': 'Memory is disabled.',
  'settings.memoryExtractionSkipEmpty': 'Empty user message — nothing to extract.',
  'settings.memoryExtractionSkipNoMatch': 'No regex pattern matched this turn.',
  'settings.memoryExtractionKindHeuristic': 'regex',
  'settings.memoryExtractionKindLlm': 'LLM',
  'settings.memoryExtractionProviderEnv': 'env',
  'settings.memoryExtractionProviderMediaConfig': 'media settings',
  'settings.memoryExtractionProposed': 'proposed',
  'settings.memoryExtractionWritten': 'written',
  'settings.memoryExtractionDuration': 'in',
  'settings.memoryNoProviderBannerTitle': 'LLM memory extraction is not running',
  'settings.memoryNoProviderBannerBody': 'No API key found for the memory extractor. Add an OpenAI key under Media providers, or set ANTHROPIC_API_KEY / OPENAI_API_KEY in the environment, to enable LLM-driven extraction. Heuristic regex extraction is still active.',
  'settings.memoryExtractionProviderOverride': 'memory settings',
  'settings.memoryExtractionDelete': 'Delete',
  'settings.memoryExtractionsClear': 'Clear',
  'settings.memoryExtractionsClearTitle': 'Clear all extraction history',
  'settings.libraryInstall': 'Instalar',
  'settings.libraryInstallGithub': 'GitHub',
  'settings.libraryInstallLocal': 'Ruta local',
  'settings.libraryInstallUrl': 'https://github.com/owner/repo',
  'settings.libraryInstallPath': '/path/to/skill-folder',
  'settings.libraryInstallButton': 'Instalar',
  'settings.libraryUninstall': 'Desinstalar',
  'settings.libraryBuiltIn': 'Integrado',
  'settings.libraryInstalled': 'Instalado',
  'notify.successTitle': 'Tarea completada',
  'notify.failureTitle': 'La tarea falló',
  'notify.successBody': 'Un turno ha terminado.',
  'notify.failureBody': 'La tarea terminó con un error.',
  'updater.available': 'Actualización disponible',
  'updater.availableBody': 'Open Design {version} está disponible. Se descargará antes de abrir el instalador.',
  'updater.checking': 'Buscando actualizaciones',
  'updater.download': 'Descargar actualización',
  'updater.downloading': 'Descargando actualización',
  'updater.downloadingPercent': 'Descargando actualización {percent}%',
  'updater.done': 'Listo',
  'updater.failed': 'Error de actualización',
  'updater.installerOpenBody': 'El instalador está abierto. Open Design se está cerrando para que puedas completar la actualización.',
  'updater.installerOpened': 'Instalador abierto',
  'updater.later': 'Más tarde',
  'updater.openFailedFallback': 'No se pudo abrir el instalador.',
  'updater.openInstaller': 'Instalar actualización',
  'updater.opening': 'Abriendo instalador...',
  'updater.quitButton': 'Salir de Open Design',
  'updater.quitFailedBody': 'El instalador está abierto, pero Open Design no pudo cerrarse. Cierra Open Design antes de reemplazar la app.',
  'updater.quitFailedTitle': 'No se pudo salir',
  'updater.quitting': 'Cerrando...',
  'updater.ready': 'Actualización lista',
  'updater.readyGeneric': 'Hay una nueva versión lista. Open Design se cerrará y abrirá el instalador.',
  'updater.readyVersion': 'Open Design {version} está listo. Open Design se cerrará y abrirá el instalador.',
  'updater.upToDate': 'Ya tienes la versión más reciente.',
  'settings.memoryModelInlineLabel': 'Memory model',
  'settings.memoryModelInlineSameAsChat': 'Same as chat',
  'settings.memoryModelInlineSameAsChatWithModel': 'Same as chat ({model})',
  'settings.memoryModelInlineSameAsChatWithProvider': 'Same as chat ({provider})',
  'settings.memoryModelInlineHintCli': 'Optional. The memory extractor uses an env-var or media-providers API key on this provider; pinning a model here just overrides the auto-pick.',
  'settings.memoryModelInlineHintCliConstrained': 'Optional. Memory will call {provider}; needs an env-var or media-providers API key for that provider, or pick a model below to override.',
  'settings.memoryModelInlineHintByok': 'Optional. Reuses your chat API key on the same provider — picking a different (usually cheaper) model only changes the request body.',
  'settings.memoryModelInlineFlashSaved': 'Saved',
  'settings.memoryModelInlineFlashCleared': 'Cleared',
  'settings.orbit.eyebrow': 'Automatización',
  'settings.orbit.title': 'Orbit',
  'settings.orbit.navHint': 'Resumen diario de conectores',
  'settings.orbit.lede': 'Recopila actividad de conectores según una programación y publica el resultado como un live artifact actualizable.',
  'settings.orbit.statusOnTitle': 'Las ejecuciones diarias programadas están activadas',
  'settings.orbit.statusOffTitle': 'Las ejecuciones diarias programadas están desactivadas',
  'settings.orbit.statusActive': 'Activo',
  'settings.orbit.statusOff': 'Desactivado',
  'settings.orbit.runTitle': 'Iniciar una ejecución de Orbit y abrir la conversación en vivo',
  'settings.orbit.running': 'Ejecutando…',
  'settings.orbit.runOpen': 'Ejecutar ahora',
  'settings.orbit.dailySummaryTitle': 'Resumen diario',
  'settings.orbit.dailySummarySub': 'Se ejecuta una vez al día a la hora local programada.',
  'settings.orbit.on': 'Activado',
  'settings.orbit.off': 'Desactivado',
  'settings.orbit.runTimeTitle': 'Hora de ejecución',
  'settings.orbit.runTimeSub': 'Predeterminada 08:00. Guarda para aplicar la programación del daemon.',
  'settings.orbit.runTimeAria': 'Hora de ejecución diaria de Orbit',
  'settings.orbit.nextRun': 'Próxima ejecución',
  'settings.orbit.nextRunScheduledAfterSave': 'Programada después de guardar',
  'settings.orbit.schedule': 'Programación',
  'settings.orbit.pausedManualOnly': 'Pausado — solo ejecuciones manuales',
  'settings.orbit.templateTitle': 'Plantilla de prompt',
  'settings.orbit.templateMissing': 'La plantilla {id} no está instalada.',
  'settings.orbit.templateMissingOption': '{id} (falta)',
  'settings.orbit.templateMissingInstall': 'Instala una skill de Orbit para dirigir el prompt.',
  'settings.orbit.templateMissingPickAnother': 'Elige otra plantilla en el desplegable.',
  'settings.orbit.templateResetTitle': 'Restablecer a {id}',
  'settings.orbit.templateReset': 'Restablecer',
  'settings.orbit.templateHelp': 'Dirige Orbit con una skill: el prompt de ejemplo de la plantilla seleccionada se inyecta en cada ejecución de Orbit para que los resúmenes sigan esa forma.',
  'settings.orbit.templateAria': 'Plantilla de prompt de Orbit',
  'settings.orbit.templatesLoading': 'Cargando plantillas…',
  'settings.orbit.templatesOptgroup': 'Plantillas de skills de Orbit',
  'settings.orbit.lastRun': 'Última ejecución',
  'settings.orbit.triggerManual': 'Manual',
  'settings.orbit.triggerScheduled': 'Programada',
  'settings.orbit.meterAria': '{succeeded} correctos, {skipped} omitidos, {failed} fallidos de {checked} comprobados',
  'settings.orbit.countChecked': 'Comprobados',
  'settings.orbit.countSucceeded': 'Correctos',
  'settings.orbit.countSkipped': 'Omitidos',
  'settings.orbit.countFailed': 'Fallidos',
  'settings.orbit.runError': 'No se pudo ejecutar Orbit. Asegúrate de que el daemon local esté en ejecución y los conectores estén configurados.',
  'settings.orbit.gateAriaLabel': "Se necesitan conectores para usar Orbit",
  'settings.orbit.gateEyebrow': "Configuración requerida",
  'settings.orbit.gateTitle': "Conecta una herramienta para impulsar Orbit",
  'settings.orbit.gateBody': "Orbit resume la actividad de tus conectores. Aún no has conectado ninguno — añade al menos una integración para que Orbit tenga algo que informar.",
  'settings.orbit.gateBodyNoKey': "Orbit resume la actividad de tus conectores, y los conectores funcionan a través de Composio. Añade una clave de API de Composio en Conectores para desbloquear el catálogo y elegir tu primera integración.",
  'settings.orbit.gateAction': "Abrir Conectores",
  'settings.orbit.gateActionNoKey': "Configurar Composio",
  'settings.orbit.gateLoading': "Comprobando tus conectores…",
  'settings.orbit.controlsLockedBadge': "Bloqueado",
  'settings.orbit.controlsLockedHint': "Conecta una herramienta para desbloquear la programación y la plantilla de Orbit.",
  'settings.orbit.artifactKickerLive': 'live artifact',
  'settings.orbit.artifactKickerLegacy': 'Resumen heredado',
  'settings.orbit.artifactTitle': 'Resumen diario de actividad de Orbit',
  'settings.orbit.artifactMetaLive': 'Artefacto HTML actualizable generado a partir de actividad de conectores.',
  'settings.orbit.artifactMetaLegacy': 'Generado antes de activar la compatibilidad con live artifact; ejecuta Orbit de nuevo para publicar uno.',
  'settings.orbit.copyMarkdownTitle': 'Copiar resumen Markdown al portapapeles',
  'settings.orbit.copied': 'Copiado',
  'settings.orbit.copy': 'Copiar',
  'settings.orbit.openArtifact': 'Abrir artefacto',
  'settings.orbit.sourceMarkdown': 'Markdown fuente',
  'liveArtifact.viewer.tabPreview': 'Vista previa',
  'liveArtifact.viewer.tabCode': 'Código',
  'liveArtifact.viewer.tabData': 'Datos',
  'liveArtifact.viewer.tabRefreshHistory': 'Historial de actualizaciones',
  'liveArtifact.viewer.dataEmpty': 'No hay caché data.json disponible.',
  'liveArtifact.viewer.code.templateHeading': 'HTML de plantilla',
  'liveArtifact.viewer.code.renderedHeading': 'HTML renderizado',
  'liveArtifact.viewer.code.templateHelp': 'La plantilla editable usada con data.json para generar la vista previa.',
  'liveArtifact.viewer.code.renderedHelp': 'El index.html generado que Preview carga actualmente.',
  'liveArtifact.viewer.code.variantAria': 'Variante de código',
  'liveArtifact.viewer.code.variantTemplate': 'Plantilla',
  'liveArtifact.viewer.code.variantRendered': 'Renderizado',
  'liveArtifact.viewer.code.loading': 'Cargando código…',
  'liveArtifact.viewer.code.unavailable': 'El código aún no está disponible.',
  'liveArtifact.viewer.code.empty': 'Este archivo de código está vacío.',
  // Diagnostics export
  'diagnostics.exportTitle': 'Exportar diagnósticos',
  'diagnostics.exportButton': 'Exportar diagnósticos',
  'diagnostics.exportHint': 'Empaqueta los registros recientes y la información del equipo en un zip para enviar al soporte.',
  'diagnostics.exporting': 'Exportando…',
  'diagnostics.exportSuccess': 'Diagnósticos guardados en {path}',
  'diagnostics.exportFailed': 'No se pudieron exportar los diagnósticos: {message}',
  'generationPreview.title': 'Generando…',
  'generationPreview.failedTitle': 'Error de generación',
  'generationPreview.failedFallback': 'Algo salió mal. Inténtalo de nuevo.',
  'generationPreview.footnote': 'Suele tardar de 2 a 5 minutos',
  'generationPreview.stepUnderstand': 'Entendiendo los requisitos',
  'generationPreview.stepGenerate': 'Generando la página',
  'generationPreview.stepPrepare': 'Preparando la vista previa',
  'generationPreview.retry': 'Reintentar',
  'generationPreview.awaitingTitle': 'Esperando tu respuesta',
  'generationPreview.awaitingLead': 'Responde unas preguntas en el chat para continuar.',
  'generationPreview.stoppedTitle': 'Generación en pausa',
  'generationPreview.stoppedLead': 'Reanuda los pasos restantes desde el chat de la izquierda.',
  'generationPreview.reasonAuth': 'Sesión o autorización caducada',
  'generationPreview.reasonRateLimited': 'Demasiadas solicitudes',
  'generationPreview.reasonService': 'Servicio de generación no disponible',
  'generationPreview.reasonBalance': 'Saldo de la cuenta agotado',
};
