{ "app": { "brand": "nanobot", "loading": { "connecting": "Conectando con nanobot…", "boot": "Cargando nanobot…" }, "error": { "title": "No se pudo conectar con nanobot", "gatewayHint": "Asegúrate de que la gateway esté en ejecución (`nanobot gateway`) y de que esta página esté abierta en la misma máquina." }, "auth": { "title": "Autenticación requerida", "hint": "Introduce el secreto configurado como tokenIssueSecret en la configuración del gateway.", "placeholder": "Contraseña", "submit": "Conectar", "invalid": "Contraseña no válida. Inténtalo de nuevo." }, "account": { "section": "Cuenta", "logoutHint": "Desconecta este navegador del gateway.", "logout": "Cerrar sesión" }, "system": { "section": "Sistema", "restartHint": "Reinicia nanobot para aplicar los cambios de ejecución.", "restart": "Reiniciar nanobot", "restarting": "Reiniciando...", "restartEngine": "Reiniciar motor", "restartingEngine": "Reiniciando motor..." }, "restart": { "completed": "Reinicio completado en {{seconds}} s." }, "documentTitle": { "base": "nanobot", "chat": "{{title}} · nanobot" }, "meta": { "description": "Interfaz web de nanobot: conversa con tu espacio de trabajo de nanobot." } }, "sidebar": { "navigation": "Navegación de la barra lateral", "collapse": "Contraer barra lateral", "newChat": "Nuevo tema", "searchAria": "Buscar", "searchPlaceholder": "Buscar", "searchResults": "Resultados", "noSearchResults": "No hay temas coincidentes.", "recent": "Temas recientes", "settings": "Configuración", "language": { "label": "Idioma", "ariaLabel": "Cambiar idioma" }, "apps": "Apps", "automations": "Automatizaciones", "skills": { "title": "Habilidades" } }, "settings": { "backToChat": "Volver al chat", "sidebar": { "title": "Ajustes", "ariaLabel": "Secciones de ajustes" }, "nav": { "general": "General", "byok": "BYOK", "overview": "Resumen", "appearance": "Apariencia", "models": "Modelos", "providers": "Proveedores", "image": "Imagen", "voice": "Voz", "browser": "Internet", "channels": "Canales", "runtime": "Sistema", "advanced": "Seguridad", "cliApps": "Apps CLI", "mcp": "MCP", "apps": "Aplicaciones", "automations": "Automatizaciones", "skills": "Habilidades" }, "sections": { "interface": "Interfaz", "ai": "AI", "system": "Sistema", "about": "Acerca de", "status": "Estado", "localPreferences": "Preferencias locales", "presets": "Preajustes", "imageGeneration": "Generación de imágenes", "imageDefaults": "Valores predeterminados", "webSearch": "Búsqueda web", "webBehavior": "Comportamiento", "identity": "Identidad", "webuiSafety": "Seguridad de WebUI", "capabilities": "Capacidades", "cliApps": "Aplicaciones CLI", "mcp": "Servicios MCP", "apps": "Aplicaciones", "nativeHost": "Host nativo", "hostSafety": "Seguridad de la app", "voiceInput": "Entrada de voz" }, "rows": { "theme": "Tema", "language": "Idioma", "provider": "Proveedor", "model": "Modelo", "restart": "Reiniciar nanobot", "configPath": "Ruta de configuración", "activePreset": "Preajuste activo", "gateway": "Pasarela", "restartState": "Estado de reinicio", "pendingChanges": "Cambios pendientes", "selectedPreset": "Preajuste seleccionado", "presetModel": "Modelo del preajuste", "density": "Densidad", "activityMode": "Detalle de actividad", "fileEditDisplay": "Vista de edición de archivos", "codeWrap": "Ajuste de código", "maxResults": "Resultados máximos", "timeout": "Tiempo de espera", "jinaReader": "Lector Jina", "imageGeneration": "Generación de imágenes", "imageProvider": "Proveedor de imágenes", "imageProviderStatus": "Estado del proveedor", "imageProviderBase": "Base del proveedor", "imageModel": "Modelo de imagen", "defaultAspectRatio": "Proporción predeterminada", "defaultImageSize": "Tamaño predeterminado", "maxImagesPerTurn": "Máx. imágenes por turno", "imageSaveDir": "Directorio de guardado", "botName": "Nombre del bot", "botIcon": "Icono del bot", "timezone": "Zona horaria", "workspacePath": "Workspace predeterminado", "localServiceAccess": "Servicios locales", "webuiDefaultAccess": "Acceso predeterminado", "currentModel": "Configuración actual", "brandLogos": "Logos de marca", "cliAppsCatalog": "Catálogo", "cliAppsFilter": "Filtro", "engine": "Motor", "logs": "Registros", "diagnostics": "Diagnóstico", "contextWindow": "Ventana de contexto", "transcription": "Transcripcion", "transcriptionProvider": "Proveedor", "transcriptionProviderStatus": "Estado del proveedor", "transcriptionModel": "Modelo", "transcriptionLanguage": "Idioma", "voiceLimits": "Limites" }, "help": { "theme": "Cambia entre apariencia clara y oscura.", "language": "Elige el idioma usado por WebUI.", "provider": "Selecciona el proveedor para nuevas solicitudes de modelo.", "model": "Elige el modelo que usa este preajuste.", "configPath": "Archivo de configuración que usa actualmente el gateway.", "selectedPreset": "Los preajustes con nombre son de solo lectura aquí; edítalos en config.json.", "presetModel": "Cambia a Default para editar modelo y proveedor desde WebUI.", "density": "Solo se guarda en este navegador.", "activityMode": "Elige cuánto detalle de actividad del agente se muestra por defecto.", "fileEditDisplay": "Elige si la actividad de edición muestra recuentos de líneas o el diff.", "codeWrap": "Mantiene legibles las líneas largas de código en pantallas pequeñas.", "maxResults": "Resultados devueltos por cada llamada web_search.", "timeout": "Segundos antes de que una solicitud de búsqueda expire.", "jinaReader": "Usa Jina Reader para web_fetch cuando esté disponible.", "imageGeneration": "Expone generate_image en chats cuando hay un proveedor de imagen configurado.", "imageProvider": "Elige el proveedor registrado usado por generate_image.", "imageProviderStatus": "La generación de imágenes reutiliza credenciales de Proveedores.", "imageModel": "Nombre del modelo enviado al proveedor de imágenes seleccionado.", "defaultAspectRatio": "Se usa cuando el prompt no elige una proporción.", "defaultImageSize": "Pista de tamaño enviada a proveedores compatibles.", "maxImagesPerTurn": "Límite superior para una solicitud generate_image.", "botName": "Se muestra donde nanobot usa un nombre visible.", "botIcon": "Emoji o texto corto junto al nombre del bot.", "timezone": "Se usa para horarios y respuestas con conciencia temporal.", "localServiceAccess": "Permite que comandos shell con Full Access alcancen servicios localhost.", "webuiDefaultAccess": "Usado por chats web sin permiso específico de proyecto.", "securityManagedControls": "Las capturas web siempre protegen servicios locales, privados y metadata. La seguridad de canales core se gestiona en config.json.", "currentModel": "Se usa para nuevas respuestas.", "selectedModelProvider": "Definido por el modelo seleccionado.", "selectedModelValue": "Definido por el modelo seleccionado.", "brandLogos": "Muestra logos de proveedores de terceros y CLI en Ajustes.", "cliAppsCatalog": "Instala solo adaptadores CLI de apps que nanobot puede ejecutar localmente; las apps nativas no se modifican.", "cliAppsFilter": "Busca por app, categoría o capacidad.", "logs": "Abre la carpeta de registros del motor nativo.", "diagnostics": "Exporta un pequeño informe de runtime para soporte.", "localServiceAccessNative": "Permite que comandos shell con Full Access alcancen servicios en este Mac.", "webuiDefaultAccessNative": "Usado por chats nativos sin permiso específico de proyecto.", "contextWindow": "Elige el presupuesto de contexto predeterminado para esta configuración de modelo.", "transcription": "Transcribe la entrada del microfono antes de enviarla. Los mensajes de voz de los canales usan la misma configuracion.", "transcriptionProvider": "Usa las credenciales del proveedor correspondiente en Proveedores.", "transcriptionProviderStatus": "Las claves API permanecen en proveedores, no en la configuracion de transcripcion.", "transcriptionModel": "Dejalo como el valor predeterminado resuelto salvo que el proveedor necesite un id de modelo personalizado.", "transcriptionLanguage": "Pista ISO-639 opcional, como en, zh, ja o ko." }, "values": { "light": "Claro", "dark": "Oscuro", "notAvailable": "No disponible", "enabled": "Activado", "disabled": "Desactivado", "restartPending": "Reinicio pendiente", "ready": "Listo", "privateEngine": "Motor privado", "unixSocket": "Socket Unix", "defaultWorkspace": "Espacio predeterminado", "comfortable": "Cómodo", "compact": "Compacto", "auto": "Automático", "expanded": "Expandido", "default": "Predeterminado", "summary": "Resumen", "diff": "Diff", "collapsedDiff": "Diff contraído", "on": "Activado", "off": "Desactivado", "defaultPermission": "Permiso predeterminado", "fullAccess": "Acceso completo", "configured": "Configurado", "notConfigured": "Sin configurar", "pending": "Pendiente", "restartingEngine": "Reiniciando" }, "status": { "loading": "Cargando ajustes...", "loadError": "No se pudieron cargar los ajustes", "unsaved": "Cambios sin guardar.", "upToDate": "Actualizado.", "savedRestart": "Guardado. Reinicia nanobot para aplicar.", "restartAfterSaving": "Guarda los cambios y reinicia cuando puedas.", "savedRestartApply": "Guardado. Reinicia cuando puedas.", "imageProviderRestart": "Cambios del proveedor de imagen guardados. Reinicia cuando puedas.", "hostRestartAfterSaving": "Al guardar, nanobot reiniciará su motor.", "hostRestartPending": "Guardado. El motor se reiniciará cuando esté listo.", "hostApiUnavailable": "Las acciones del host solo están disponibles en la app nativa.", "logsOpened": "Carpeta de registros abierta.", "logsOpenFailed": "No se pudo abrir la carpeta de registros.", "diagnosticsExported": "Diagnóstico exportado a {{path}}.", "diagnosticsExportFailed": "No se pudo exportar el diagnóstico." }, "actions": { "save": "Guardar", "saving": "Guardando", "saveOrder": "Guardar orden", "savePreset": "Guardar preajuste", "delete": "Eliminar", "deleting": "Eliminando...", "edit": "Editar", "cancel": "Cancelar", "open": "Abrir", "export": "Exportar", "opening": "Abriendo...", "exporting": "Exportando..." }, "byok": { "description": "Usa tus propias claves de proveedor. Nanobot lee estos valores desde la configuración actual y solo los proveedores configurados pueden usarse en los preajustes de modelo.", "configured": "Configurado", "notConfigured": "Sin configurar", "configuredSection": "Configurados", "notConfiguredSection": "Sin configurar", "showMore": "Mostrar {{count}} más", "showLess": "Mostrar menos", "apiKey": "API key", "apiBase": "API base", "apiKeyPlaceholder": "Introduce la API key", "apiKeyConfiguredPlaceholder": "Deja vacío para conservar la key actual", "configuredKeyHint": "Key configurada", "apiBasePlaceholder": "Usar el valor predeterminado del proveedor", "apiKeyRequired": "Se requiere una API key para configurar este proveedor.", "showApiKey": "Mostrar API key", "hideApiKey": "Ocultar API key", "noConfiguredProviders": "No hay proveedores configurados", "configureFirst": "Configura primero un proveedor en BYOK.", "openByok": "Abrir BYOK", "tabs": { "ariaLabel": "Tipo de credencial BYOK", "llm": "LLM", "webSearch": "Búsqueda web" }, "webSearch": { "provider": "Proveedor de búsqueda", "providerHelp": "Elige el backend que usará la herramienta web search.", "selectProvider": "Seleccionar proveedor", "credentials": "Credenciales", "noCredentialRequired": "No requiere key", "noCredentialHelp": "DuckDuckGo funciona sin guardar una API key.", "apiKeyHelp": "Se guarda en config y se muestra enmascarada después de guardar.", "baseUrl": "Base URL", "baseUrlHelp": "SearXNG necesita la URL de tu propia instancia.", "baseUrlPlaceholder": "https://search.example.com", "apiKeyRequired": "Este proveedor de búsqueda requiere una API key.", "baseUrlRequired": "SearXNG requiere una Base URL.", "missingCredential": "Añade la credencial requerida antes de guardar.", "saveHint": "Los cambios se aplican a nuevas solicitudes de web search." } }, "overview": { "model": "Modelo actual", "providers": "Proveedores", "configuredCount": "{{count}} configurados", "totalProviders": "{{count}} disponibles", "webSearch": "Búsqueda web", "imageGeneration": "Generación de imágenes", "voiceInput": "Entrada de voz", "workspace": "Espacio de trabajo" }, "usage": { "title": "Actividad de tokens", "shortTitle": "Token Usage", "subtitle": "Uso reportado por el proveedor durante los últimos 12 meses.", "empty": "La actividad de tokens aparecerá después de nuevas respuestas del modelo.", "totalTokens": "Tokens totales", "peakTokens": "Pico de tokens", "thirtyDayTokens": "Tokens en 30 días", "currentStreak": "Racha actual", "longestStreak": "Racha más larga", "daysValue": "{{count}} d", "last30": "30 días", "activeDays": "Días activos", "requests": "Solicitudes", "estimated": "estimado", "includesEstimates": "incluye estimaciones", "cellTitle": "{{date}}: {{tokens}} tokens, {{requests}} solicitudes", "sources": { "user": "Chat", "api": "API", "cron": "Automatizaciones", "dream": "Memoria", "system": "Sistema" } }, "providers": { "title": "Proveedores de modelos", "searchPlaceholder": "Buscar proveedores", "noMatches": "Ningún proveedor coincide con esta búsqueda.", "addOwnProvider": "Añadir tu propio proveedor de modelos", "customProvider": "Proveedor personalizado", "customProviderName": "Nombre del proveedor", "customProviderNamePlaceholder": "Mi proveedor de modelos", "saveProvider": "Guardar proveedor", "advancedOptions": "Opciones avanzadas", "saveAdvancedBeforeSignIn": "Guarda los cambios avanzados antes de iniciar sesión.", "apiType": "Tipo de API", "proxy": "Proxy de red", "thinkingStyle": "Estilo de razonamiento", "region": "Región", "profile": "Perfil", "extraHeaders": "Cabeceras adicionales", "extraBody": "Cuerpo adicional", "extraQuery": "Parámetros de consulta adicionales" }, "image": { "selectProvider": "Seleccionar proveedor", "selectAspect": "Seleccionar proporción", "selectSize": "Seleccionar tamaño", "configureProvider": "Configurar proveedor", "missingCredential": "Configura este proveedor antes de activar la generación de imágenes." }, "models": { "selectModel": "Seleccionar modelo", "addConfiguration": "Agregar configuración", "newConfiguration": "Nueva configuración de modelo", "newConfigurationHelp": "Guarda un proveedor y modelo como opción de un clic.", "configurationName": "Nombre de configuración", "configurationNameHelp": "Renombra esta configuración de modelo guardada.", "configurationNamePlaceholder": "Escritura rápida", "callOrder": "Orden de llamada de modelos", "primary": "Principal", "fallbackNumber": "Alternativa {{number}}", "addToOrder": "Activar preajuste", "newPreset": "Nuevo preajuste de modelo", "newPresetHelp": "Guarda un modelo reutilizable y sus ajustes de generación.", "presets": "Preajustes de modelo", "editPreset": "Editar preajuste", "presetName": "Nombre del preajuste", "presetNameHelp": "Un nombre corto para usar en los ajustes de modelos.", "presetNamePlaceholder": "Escritura rápida", "advancedOptions": "Opciones avanzadas", "advancedSummary": "Contexto {{context}} · Máx. {{max}} tokens", "maxTokens": "Máx. tokens de salida", "temperature": "Temperatura", "reasoningEffort": "Esfuerzo de razonamiento", "convertTitle": "Convertir la configuración de modelos actual", "convertHelp": "Convierte los modelos principal y alternativos existentes en preajustes para administrar aquí su orden.", "converting": "Convirtiendo...", "convertAction": "Convertir en preajustes", "dragToReorder": "Arrastrar para reordenar", "moveUp": "Subir", "moveDown": "Bajar", "removeFromOrder": "Desactivar preajuste", "inCallOrder": "En el orden de llamada", "disabled": "Desactivado", "noPresets": "Aún no hay preajustes de modelo", "noPresetsHelp": "Crea un preajuste y añádelo al orden de llamada.", "removeBeforeDelete": "Quita este preajuste del orden de llamada antes de eliminarlo.", "providerSetupRequired": "El proveedor requiere configuración", "configureProviderBeforeSaving": "Configura este proveedor antes de guardar el preajuste.", "deletePresetTitle": "¿Eliminar el preajuste de modelo?", "deletePresetHelp": "Se eliminará el preajuste «{{name}}». Las credenciales del proveedor no cambiarán.", "searchModels": "Buscar o escribir ID de modelo", "useCustomModel": "Usar", "loadingModels": "Cargando modelos...", "searchCatalog": "Busca el catálogo del proveedor para elegir un modelo.", "modelsAvailable": "disponibles", "noModelResults": "No hay modelos coincidentes.", "loadFailed": "Lista de modelos no disponible.", "unsupportedModelList": "Escribe un ID de modelo manualmente.", "providerNotConfigured": "Configura este proveedor antes de cargar modelos.", "autoProviderCustomOnly": "El modo de proveedor automático usa IDs de modelo personalizados." }, "timezone": { "select": "Seleccionar zona horaria", "search": "Buscar zona horaria", "empty": "No hay zonas horarias coincidentes." }, "cliApps": { "allCategories": "Todas las categorías", "availableCount": "{{count}} aplicaciones", "installedCount": "{{count}} instaladas", "summary": "{{installed}} de {{total}} CLIs instaladas", "filterAll": "Todas", "filterInstalled": "CLIs instaladas", "filterNotInstalled": "No instaladas", "searchPlaceholder": "Buscar CLIs", "statusInstalled": "Instalada", "statusAvailable": "Disponible", "statusMissing": "Falta dependencia", "statusUnsupported": "No compatible", "statusNotInstalled": "No instalada", "unsupported": "No compatible", "loading": "Cargando apps CLI...", "empty": "Ninguna app CLI coincide con este filtro.", "readyTitle": "@{{name}} está listo", "readyStatus": "Listo", "readyPrompt": "Usa @{{name}} para ver qué puede hacer este CLI.", "readyTry": "Probar @{{name}}", "readyCopied": "Copiado", "openChat": "Abrir chat", "requires": "Requiere", "test": "Probar CLI", "update": "Actualizar CLI", "uninstall": "Desinstalar CLI", "install": "Instalar CLI", "unavailable": "No disponible", "noDescription": "Sin descripción disponible." }, "about": { "version": "Versión", "checking": "Buscando actualizaciones...", "checkForUpdates": "Buscar actualizaciones", "upToDate": "Estás al día", "updateAvailable": "Actualización disponible v{{version}}" }, "mcp": { "allCategories": "Todas las categorías", "summary": "{{installed}} de {{total}} presets habilitados", "filterAll": "Todos", "filterInstalled": "Habilitados", "filterNotInstalled": "No habilitados", "searchPlaceholder": "Buscar presets MCP", "moreOptions": "Más opciones de MCP", "moreOptionsSubtitle": "Añade un servidor personalizado o importa mcp.json.", "customTitle": "MCP personalizado", "customSubtitle": "Añade cualquier servidor MCP stdio, HTTP o SSE.", "customAction": "Personalizado", "importAction": "Importar", "serverName": "Nombre del servidor", "serverUrl": "URL", "transport": "Transporte", "command": "Comando", "args": "Args JSON", "headers": "Headers JSON", "env": "Env JSON", "timeout": "Tiempo límite de herramienta", "advancedOptions": "Opciones avanzadas", "hideAdvanced": "Ocultar avanzado", "saveCustom": "Guardar MCP", "configImport": "Importar mcp.json", "importConfig": "Importar", "restartRequired": "Reinicia nanobot para conectar las herramientas MCP actualizadas.", "toolsFound": "{{count}} herramientas", "loading": "Cargando presets MCP...", "empty": "Ningún preset MCP coincide con este filtro.", "openDocs": "Abrir docs", "test": "Probar", "remove": "Eliminar", "enable": "Habilitar", "enabled": "Habilitado", "setup": "Conectar", "configure": "Conectar", "connectTitle": "Conectar {{name}}", "connectHint": "Añade la clave desde la configuración de tu cuenta.", "saveAndEnable": "Guardar y habilitar", "updateSetup": "Actualizar configuración", "configured": "configurado", "keepExisting": "Déjalo en blanco para conservar el valor actual", "statusConfigured": "Configurado", "statusMissingCredentials": "Necesita clave", "statusMissingDependency": "Necesita dependencia", "statusComingSoon": "Próximamente", "statusNotInstalled": "No habilitado", "toolScope": "Herramientas", "allTools": "Todas", "noTools": "Ninguna", "testForTools": "Ejecuta Probar para inspeccionar y elegir herramientas individuales." }, "api": { "title": "Servidor API", "openaiCompatible": "API compatible con OpenAI", "description": "Conecta SDK y agentes mediante un endpoint /v1 local.", "start": "Iniciar servidor API", "starting": "Iniciando...", "stop": "Detener", "stopping": "Deteniendo...", "access": "Acceso", "thisDevice": "Este dispositivo", "localNetwork": "Red local", "localHelp": "Solo este dispositivo puede conectarse.", "networkHelp": "Otros dispositivos pueden conectarse; se requiere una clave API.", "port": "Puerto", "portHelp": "La API usa este puerto local.", "apiKey": "Clave API", "apiKeyHelp": "Los clientes la envían como token Bearer.", "apiKeyRequired": "Obligatoria antes de exponer la API en la red.", "apiKeyPlaceholder": "Introduce una clave API", "autoInstall": "El soporte API se instalará automáticamente al iniciarlo." }, "observability": { "title": "Observabilidad", "configured": "Las credenciales de trazas están disponibles para nanobot.", "environment": "Configura LANGFUSE_SECRET_KEY y LANGFUSE_PUBLIC_KEY y reinicia nanobot.", "enable": "Habilitar soporte de trazas" }, "legal": { "thirdPartyBrands": "Los nombres, logotipos y marcas de productos pertenecen a sus respectivos propietarios. Su uso es solo identificativo y no implica respaldo." }, "apps": { "description": "Añade herramientas a nanobot y luego úsalas con @ en el chat.", "cliLabel": "App", "mcpLabel": "Integración", "channelLabel": "Canal", "featureLabel": "Función", "filterAll": "Listo", "filterPlugins": "Complementos", "filterCli": "Apps", "filterMcp": "Integraciones", "enabledSummary": "{{count}} listos", "caption": "{{cli}} apps · {{mcp}} integraciones", "searchPlaceholder": "Buscar apps", "featured": "Herramientas", "loading": "Cargando apps...", "empty": "Ninguna herramienta coincide con esta vista.", "restartRequired": "Reinicia nanobot para aplicar apps y funciones actualizadas." }, "channels": { "description": "Conecta nanobot con apps de chat. Instalar soporte solo añade el paquete de integración; la mayoría de canales aún necesitan tokens o configuración del espacio de trabajo.", "caption": "{{enabled}} activados · {{total}} canales", "searchPlaceholder": "Buscar canales", "backToChannels": "Todos los canales", "catalog": "Canales", "loading": "Cargando canales...", "empty": "Ningún canal coincide con este filtro.", "restartRequired": "Reinicia nanobot para aplicar el soporte de canales actualizado.", "requires": "Requiere: {{requirements}}", "setUp": "Configurar", "setupGuide": "Guía de configuración", "setupSummary": "Activar solo habilita el soporte en nanobot. Añade las credenciales de la plataforma y reinicia nanobot.", "configKeys": "Claves de configuración", "enable": "Activar canal", "disable": "Desactivar canal", "needsConfig": "Necesita configuración", "connect": "Conectar", "reconnect": "Reconectar", "advanced": "Avanzado", "checkAndEnable": "Comprobar y activar", "checkConnection": "Comprobar conexión", "checkedAndEnabled": "Comprobado y activado.", "checking": "Comprobando...", "checkOnly": "Solo comprobar", "commandCopied": "Comando copiado.", "commandCopyFailed": "No se pudo copiar el comando.", "configuredInstances": "{{count}} instancias configuradas", "connectPreview": "El siguiente paso es la conexión en el navegador. Por ahora, ejecuta el comando siguiente.", "copyCommand": "Copiar comando", "filterAll": "Todos", "filterOff": "Desactivados", "filterOn": "Activados", "helperCopied": "{{name}} copiado.", "helperCopyFailed": "No se pudo copiar {{name}}.", "hideSecret": "Ocultar secreto", "instanceConfigured": "Configurada", "instanceNeedsSetup": "Requiere configuración", "runtimeFailed": "Error al iniciar", "runtimeStarting": "Iniciando", "runtimeStopped": "No está en ejecución", "managedByWebui": "Gestionado por WebUI", "officialGuide": "Guía oficial", "optional": "Opcional", "providerPreset": "Proveedor", "requiredSetup": "Configuración requerida", "savedSecret": "Guardado", "savedSecretPlaceholder": "Secreto guardado", "savedSettings": "Configuración guardada.", "saveSettings": "Guardar configuración", "selectChannel": "Ver la configuración de {{name}}", "setupSteps": "Siguientes pasos", "showSecret": "Mostrar secreto", "toggleChannel": "Canal {{name}}", "toggleInstance": "Instancia {{name}}", "tryIt": "Pruébalo", "validationFailed": "Comprueba la configuración requerida antes de activar.", "validation": { "connected": "Conectado", "configured": "Configurado manualmente", "needs_setup": "Requiere configuración", "invalid": "No válido", "unsupported": "Configuración manual" } }, "nanobotFeatures": { "enabled": "Activado", "enable": "Activar", "disable": "Desactivar", "ready": "Listo", "missingDependency": "Falta soporte", "installSupport": "Instalar soporte", "installConfirmTitle": "¿Instalar soporte para {{name}}?", "installConfirmDescription": "nanobot añadirá lo que {{name}} necesita y luego lo activará. ¿Continuar?", "installConfirmAction": "Instalar y activar", "websocketRequired": "Requerido para WebUI", "channelDisabled": "El canal está desactivado", "notEnabled": "No activado" }, "automations": { "filters": { "all": "Todas", "active": "Activas", "paused": "Pausadas", "failed": "Requieren atención", "system": "Sistema" }, "sort": { "next": "Próxima ejecución", "last": "Última ejecución", "updated": "Actualizada", "name": "Nombre" }, "search": "Buscar tarea, mensaje, chat vinculado u horario", "queue": "Cola", "loading": "Cargando automatizaciones...", "noMatches": "No hay automatizaciones que coincidan con esta vista.", "empty": "Aún no hay automatizaciones.", "emptyHint": "Créala desde donde debe ejecutarse para que nanobot conserve el contexto correcto.", "oneShot": "Una vez", "systemTask": "Automatización administrada por el sistema", "localTrigger": "Activador local", "labels": { "schedule": "Programación", "next": "Siguiente", "origin": "Chat vinculado", "created": "Creada", "updated": "Actualizada" }, "runNow": "Ejecutar ahora", "pause": "Pausar", "resume": "Reanudar", "edit": "Editar", "delete": "Eliminar", "protected": "Protegida", "editTitle": "Editar automatización", "save": "Guardar", "deleteTitle": "Eliminar automatización", "deleteDescription": "Esto elimina {{name}} del almacén cron. Los mensajes de chat anteriores permanecen en la sesión.", "cancel": "Cancelar", "status": { "system": "Sistema", "running": "Ejecutándose ahora", "paused": "Pausada", "failed": "Fallida", "completed": "Completada", "noSchedule": "Sin programación", "active": "Activa" }, "origin": { "system": "Sistema", "unknown": "Sin chat vinculado" }, "channels": { "api": "API", "cli": "CLI", "dingtalk": "DingTalk", "discord": "Discord", "email": "Email", "feishu": "Feishu", "matrix": "Matrix", "msteams": "Microsoft Teams", "qq": "QQ", "slack": "Slack", "telegram": "Telegram", "wechat": "WeChat", "wecom": "WeCom", "weixin": "WeChat", "whatsapp": "WhatsApp" }, "schedule": { "at": "A las {{time}}", "every": "Cada {{duration}}", "cron": "Cron {{expr}}", "cronWithTz": "Cron {{expr}} · {{tz}}", "withTz": "{{summary}} · {{tz}}", "dailyAt": "Diaria a las {{time}}", "weekdaysAt": "Días laborables a las {{time}}", "hourlyAt": "Cada hora en :{{minute}}", "hourlyWindow": "Cada hora {{start}}-{{end}} en :{{minute}}", "local": "Activador local", "custom": "Programación personalizada" }, "next": { "paused": "Pausada", "pending": "Ejecutándose ahora", "local": "Esperando activador", "none": "Sin próxima ejecución" }, "message": { "showMore": "Mostrar mensaje completo", "showLess": "Mostrar menos" }, "fields": { "name": "Nombre", "message": "Mensaje", "scheduleType": "Tipo de programación", "every": "Cada", "unit": "Unidad", "cronExpression": "Expresión cron", "timezone": "Zona horaria", "runAt": "Ejecutar a las" }, "scheduleTypes": { "every": "Intervalo", "cron": "Cron", "at": "Una vez" }, "everyUnits": { "second": "Segundos", "minute": "Minutos", "hour": "Horas", "day": "Días" }, "validation": { "nameRequired": "El nombre es obligatorio.", "messageRequired": "El mensaje es obligatorio.", "intervalRequired": "El intervalo debe ser un número positivo.", "cronRequired": "La expresión cron es obligatoria.", "timeRequired": "La hora de ejecución es obligatoria.", "futureRequired": "La hora de ejecución debe estar en el futuro." } }, "oauth": { "authentication": "Autenticación OAuth", "signIn": "Iniciar sesión", "signingIn": "Iniciando sesión...", "signInAgain": "Iniciar sesión de nuevo", "signOut": "Cerrar sesión", "signedInAs": "Sesión iniciada como {{account}}", "signInHelp": "Inicia sesión desde este dispositivo; no se guarda API key en config.", "remoteSignInHelp": "Selecciona Iniciar sesión para abrir xAI en tu computadora y luego pega el código de autorización que se muestra tras iniciar sesión.", "signInRequired": "Inicio de sesión requerido", "signInBeforeSaving": "Inicia sesión en este proveedor antes de guardar el preajuste.", "signedIn": "Sesión iniciada", "notSignedIn": "Sin sesión", "proxyLabel": "Proxy de red", "proxySaveBeforeSignIn": "Guarda los cambios del proxy antes de iniciar sesión.", "saveProxy": "Guardar proxy", "localCodeHelp": "Completa el inicio de sesión en el navegador. nanobot suele finalizar automáticamente; si no lo hace, pega el código de autorización abajo.", "remoteCodeHelp": "Selecciona Iniciar sesión para abrir xAI en tu computadora. Después de iniciar sesión, pega abajo el código de autorización que muestra xAI.", "authorizationCode": "Código de autorización", "finishSignIn": "Completar inicio de sesión" }, "skills": { "description": "Revisa las habilidades de instrucciones que este agente puede cargar durante una conversación.", "caption": "{{available}} disponibles · {{total}} en total", "featured": "Habilidades del agente", "empty": "No hay habilidades disponibles.", "sourceWorkspace": "Personalizada", "sourceBuiltin": "Integradas", "statusAvailable": "Disponible", "statusUnavailable": "No disponible", "unavailableReason": "Falta: {{reason}}", "openDetails": "Abrir detalles de {{name}}", "loadingDetail": "Cargando detalles de la habilidad...", "loadFailed": "No se pudieron cargar los detalles.", "descriptionTitle": "Descripción", "source": "Origen", "status": "Estado", "requirements": "Requisitos", "noRequirements": "Sin requisitos explícitos.", "commands": "Comandos", "environment": "Variables de entorno", "missingCommands": "Falta CLI", "missingEnvironment": "Falta ENV", "unavailableReasonLabel": "Motivo de indisponibilidad", "rawInstructions": "SKILL.md original", "rawInstructionsEmpty": "No hay instrucciones originales.", "detailDescription": "Detalles de {{name}}." }, "voice": { "selectProvider": "Seleccionar proveedor", "configureProvider": "Configurar proveedor", "languageAuto": "Auto" } }, "chat": { "fallbackTitle": "Tema {{id}}", "forkTitle": "Bifurcación: {{title}}", "loading": "Cargando…", "noSessions": "Todavía no hay sesiones.", "showMore": "Mostrar {{count}} más", "collapsed": "{{count}} temas ocultos", "showLess": "Mostrar menos", "actions": "Acciones del tema {{title}}", "newInProject": "Iniciar un tema nuevo en {{project}}", "activity": { "running": "Agent running", "complete": "Agent finished", "updated": "New activity" }, "pin": "Pin", "unpin": "Unpin", "rename": "Rename", "renameTitle": "Renombrar tema", "renameDescription": "Elige un nombre local de la barra lateral para este tema.", "renamePlaceholder": "Nombre del tema", "renameProjectTitle": "Rename project", "renameProjectDescription": "Choose a local sidebar name for this project.", "renameProjectPlaceholder": "Project name", "renameSave": "Save", "archive": "Archive", "unarchive": "Unarchive", "showArchived": "Show archived", "hideArchived": "Hide archived", "delete": "Eliminar", "newChat": "Nuevo tema", "groups": { "pinned": "Pinned", "all": "Temas", "projects": "Projects", "today": "Today", "yesterday": "Yesterday", "earlier": "Earlier", "archived": "Archived" } }, "deleteConfirm": { "title": "¿Eliminar este chat?", "description": "Esta acción no se puede deshacer.", "cancel": "Cancelar", "confirm": "Eliminar", "automationsDescription": "Este chat tiene automatizaciones programadas. Al eliminarlo también se eliminarán.", "moreAutomations": "+ {{count}} más", "confirmWithAutomations": "Eliminar", "schedule": { "at": "{{time}}", "every": "Cada {{duration}}", "cron": "Cron {{expr}}", "cronWithTz": "Cron {{expr}} · {{tz}}", "local": "Activador local", "unknown": "Programación personalizada" }, "next": { "label": "Siguiente: {{time}}", "disabled": "Pausada", "local": "Esperando activador", "none": "Sin próxima ejecución" } }, "connection": { "idle": "Inactivo", "connecting": "Conectando…", "open": "Conectado", "reconnecting": "Reconectando…", "closed": "Desconectado", "error": "Error de conexión" }, "thread": { "loadingConversation": "Cargando conversación…", "empty": { "greetings": { "workOn": "¿En qué trabajamos juntos?", "start": "¿Por dónde empezamos?", "build": "¿Qué construimos hoy?", "tackle": "¿Qué resolvemos juntos?" }, "quickActions": { "plan": { "title": "Crear un plan de proyecto", "prompt": "Crea un plan de proyecto conciso para lo que debería construir después." }, "analyze": { "title": "Analizar estos datos", "prompt": "Ayúdame a analizar estos datos y destaca los patrones más importantes." }, "brainstorm": { "title": "Lluvia de ideas", "prompt": "Propón algunas ideas prácticas y sus compensaciones para este problema." }, "code": { "title": "Escribir código", "prompt": "Ayúdame a escribir el código para esta tarea, empezando por el cambio útil más pequeño." }, "summarize": { "title": "Resumir este documento", "prompt": "Resume este documento y enumera las conclusiones clave." }, "more": { "title": "Más", "prompt": "Muéstrame algunas formas útiles en las que puedes ayudar en este workspace." } }, "imageQuickActions": { "icon": { "title": "Diseñar un icono de app", "prompt": "Genera un icono de app 1:1 limpio para nanobot: robot amigable, estilo vectorial simple, paleta suave azul y blanca, sin texto." }, "sticker": { "title": "Crear un sticker", "prompt": "Genera una imagen estilo sticker de un pequeño asistente robot, con fondo de apariencia transparente, expresivo y divertido." }, "poster": { "title": "Crear un póster", "prompt": "Genera un concepto de póster pulido para un asistente personal de IA, composición moderna, jerarquía visual fuerte, apto para una landing page." }, "product": { "title": "Mockup de producto", "prompt": "Genera una imagen limpia de mockup de producto para una app web de IA conversacional, interfaz mínima, iluminación premium, marco de dispositivo realista." }, "portrait": { "title": "Retrato estilizado", "prompt": "Genera un retrato estilizado de un compañero de IA amigable, luz suave, detallado pero cercano, estilo de ilustración moderna." }, "edit": { "title": "Editar una imagen", "prompt": "Ayúdame a editar una imagen. Primero pídeme que suba o indique la imagen, y luego genera el resultado editado." } } }, "header": { "toggleSidebar": "Mostrar u ocultar la barra lateral", "newChat": "Iniciar un tema nuevo", "toggleTheme": "Cambiar tema desde el encabezado", "settings": "Abrir configuración", "sessionInfo": "Detalles de la sesión" }, "sessionInfo": { "title": "Sesión", "untitled": "Tema sin título", "automations": "Automatizaciones", "count": "{{count}}", "loading": "Cargando automatizaciones...", "loadFailed": "No se pudieron cargar las automatizaciones.", "empty": "Esta sesión aún no tiene automatizaciones.", "disabled": "Desactivado", "schedule": { "at": "A las {{time}}", "every": "Cada {{duration}}", "cron": "Cron {{expr}}", "cronWithTz": "Cron {{expr}} · {{tz}}", "local": "Activador local", "unknown": "Programación personalizada" }, "next": { "label": "Siguiente {{time}}", "pending": "Se ejecutará pronto", "disabled": "En pausa", "local": "Esperando activador", "none": "Sin próxima ejecución" } }, "composer": { "placeholderThread": "Escribe tu mensaje…", "placeholderHero": "¿Qué tienes en mente?", "placeholderOpening": "Abriendo un nuevo tema…", "placeholderStreaming": "El modelo está respondiendo…", "inputAria": "Entrada de mensaje", "sendHint": "Enter para enviar · Shift+Enter para nueva línea", "runRuntimeTitle": "En ejecución · {{elapsed}}", "goalStateStrip": "Objetivo · {{label}}", "goalStateFallback": "Objetivo", "goalStateExpandAria": "Ver objetivo completo", "goalStateSheetTitle": "Objetivo", "goalStateCloseAria": "Cerrar objetivo", "send": "Enviar mensaje", "stop": "Detener respuesta", "quotedContext": "Contexto citado", "removeQuotedContext": "Quitar contexto citado", "modelNotConfigured": "Modelo no configurado", "configureModel": "Configurar modelo", "queued": { "label": "Guía en cola", "guide": "Guiar", "delete": "Eliminar guía", "edit": "Editar guía", "drag": "Arrastrar para reordenar" }, "attachImage": "Adjuntar archivos", "imageMode": { "label": "Generar imagen", "toggle": "Activar o desactivar modo de generación de imágenes", "placeholder": "Describe o edita una imagen…", "aspectAria": "Relación de aspecto de imagen", "aspectLabel": "Formato de imagen", "aspect": { "auto": "Auto", "1_1": "Cuadrado 1:1", "3_4": "Vertical 3:4", "9_16": "Historia 9:16", "4_3": "Horizontal 4:3", "16_9": "Panorámico 16:9" } }, "tools": { "search": "Buscar", "reason": "Razonar", "deepResearch": "Investigación profunda", "voice": "Entrada de voz" }, "voice": { "hint": "Haz clic para dictar o mantén", "stop": "Detener grabación", "transcribing": "Transcribiendo...", "recordingStatus": "Grabando {{time}}" }, "voiceErrors": { "unsupported": "Este navegador no admite entrada de voz.", "permission": "Permite el micrófono en la barra de direcciones y vuelve a intentarlo.", "notConfigured": "Configura primero un proveedor de transcripción.", "tooLong": "La grabación es demasiado larga.", "tooShort": "Mantén pulsado un poco más para grabar voz.", "noInput": "No se detectó entrada del micrófono.", "noDevice": "No se encontró ningún micrófono. Conéctalo y vuelve a intentarlo.", "failed": "No se pudo transcribir el audio." }, "slash": { "ariaLabel": "Comandos slash", "label": "comandos", "navigateHint": "↑↓ Navegar", "selectHint": "Enter/Tab Insertar", "closeHint": "Esc Cerrar", "commands": { "new": { "title": "Nuevo chat", "description": "Restablece este chat e inicia una conversación nueva." }, "stop": { "title": "Detener tarea actual", "description": "Cancela el turno activo del agent en este chat." }, "restart": { "title": "Reiniciar nanobot", "description": "Reinicia el proceso del bot en el mismo lugar." }, "status": { "title": "Mostrar estado", "description": "Muestra el estado del runtime, provider y channels." }, "model": { "title": "Modelo", "description": "Muestra o cambia el preset de modelo activo." }, "history": { "title": "Mostrar historial", "description": "Imprime los últimos N mensajes persistidos de la conversación." }, "dream": { "title": "Ejecutar Dream", "description": "Activa manualmente la consolidación de memoria." }, "dream_log": { "title": "Mostrar registro de Dream", "description": "Muestra qué cambió la última consolidación Dream." }, "dream_restore": { "title": "Restaurar memoria", "description": "Revierte la memoria a una instantánea Dream anterior." }, "dream_prompt": { "title": "Memoria de Dream", "description": "Indica a Dream cómo organizar la memoria de este espacio de trabajo." }, "goal": { "title": "Objetivo a largo plazo", "description": "Indica al agente que trate esto como un objetivo sostenido en varios pasos." }, "trigger": { "title": "Crear trigger local", "description": "Crea un trigger de CLI vinculado a esta sesion de chat." }, "help": { "title": "Mostrar ayuda", "description": "Lista los comandos slash disponibles." }, "pairing": { "title": "Emparejamiento", "description": "Gestiona solicitudes de emparejamiento." } }, "badges": { "current": "Actual", "recent": "Reciente" }, "details": { "goalActive": "El objetivo está en curso", "goalReady": "Iniciar un objetivo sostenido", "history": "Mostrar mensajes recientes", "stopRunning": "En ejecución" } }, "encoding": "Procesando…", "remove": "Quitar adjunto", "normalizedSizeHint": "{{orig}} → {{current}} (auto)", "textTooLarge": "El texto del mensaje es demasiado grande (máximo {{max}})", "imageRejected": { "unsupported_type": "Tipo de archivo no compatible", "empty_file": "No se pueden adjuntar archivos vacíos", "too_many_attachments": "Máximo {{max}} adjuntos por mensaje", "too_many_images": "Máximo {{max}} imágenes por mensaje", "magic_mismatch": "El archivo no parece una imagen real", "decode_failed": "No se pudo decodificar esta imagen", "too_large": "Archivo demasiado grande — prueba uno más pequeño", "total_too_large": "Los archivos adjuntos son demasiado grandes en conjunto; elimina algunos o usa archivos más pequeños", "transport_too_large": "Este archivo adjunto superaría el límite de transporte de la puerta de enlace", "io": "No se pudo leer este archivo" }, "mentions": { "ariaLabel": "Apps", "label": "Apps", "cliGroup": "Apps CLI", "mcpGroup": "Servicios MCP", "cliBadge": "CLI", "mcpBadge": "MCP", "cliDescription": "Usar @{{name}} como app CLI local", "mcpDescription": "Usar @{{name}} como servidor MCP" }, "workspace": { "accessAria": "Modo de acceso al espacio de trabajo", "projectAria": "Elegir proyecto", "projectPlaceholder": "Seleccionar proyecto", "default": "Permiso predeterminado", "defaultShort": "Predeterm.", "full": "Acceso completo", "fullShort": "Completo" } }, "scrollToBottom": "Desplazarse al final", "loadEarlier": "Cargar mensajes anteriores", "forkedFromHistory": "Bifurcado desde el historial", "promptNavigator": { "open": "Abrir navegador de prompts", "title": "Prompts", "search": "Buscar prompts", "noResults": "No hay prompts coincidentes.", "jumpTo": "Ir al prompt: {{label}}" } }, "message": { "streaming": "transmitiendo", "assistantTyping": "El asistente está escribiendo", "toolSingle": "Usando una herramienta", "toolMany": "Se usaron {{count}} herramientas", "toolSummary": "{{count}} herramienta", "toolSummaryMany": "{{count}} herramientas", "reasoningTools": "Razonamiento · {{count}} herramientas", "reasoningToolsSingular": "Razonamiento · 1 herramienta", "reasoning": "Razonamiento", "reasoningStreaming": "Pensando…", "reasoningSummary": "Razonamiento", "agentActivitySummary": "{{reasoning}} pasos · {{tools}} llamadas a herramientas", "agentActivityToolsOnly": "{{tools}} llamadas a herramientas", "agentActivityLiveSummary": "En curso… · {{reasoning}} pasos · {{tools}} llamadas a herramientas", "agentActivityLiveToolsOnly": "En curso… · {{tools}} llamadas a herramientas", "imageAttachment": "Imagen adjunta", "askAboutSelection": "Preguntar sobre esto", "forkFromHere": "Bifurcar", "copyReply": "Copiar", "copiedReply": "Copiado", "turnLatencyTitle": "Tiempo de respuesta (extremo a extremo)", "fileEditViewDiff": "Ver diff", "fileEditViewLargeDiff": "Ver diff grande", "fileEditDiffLineCount": "{{count}} líneas", "fileEditUnchangedLinesHidden": "{{count}} líneas sin cambios ocultas", "fileEditShowMoreLines": "Mostrar {{count}} líneas más", "fileEditShowFewerLines": "Mostrar menos líneas", "fileEditOpenFile": "Abrir archivo", "fileEditDiffTruncated": "Diff truncado. Abre el archivo para ver el cambio completo.", "activityThinkingFor": "Pensando durante {{duration}}", "activityThought": "Pensamiento completado", "activityThoughtFor": "Pensó durante {{duration}}", "activityWorkingFor": "Trabajando durante {{duration}}", "activityWorked": "Trabajo completado", "activityWorkedFor": "Trabajó durante {{duration}}", "cliActivityRunningOne": "Usando {{name}}", "cliActivityRanOne": "Usó {{name}}", "cliActivityFailedOne": "Falló {{name}}", "cliActivityRunningMany": "Usando {{count}} apps CLI", "cliActivityRanMany": "Usó {{count}} apps CLI", "cliActivityFailedMany": "Fallaron {{count}} apps CLI", "cliRunRunning": "Usando", "cliRunRan": "Usado", "cliRunFailed": "Falló", "automationSourceFallback": "Automatización", "automationTriggered": "Activada automáticamente" }, "lightbox": { "title": "Vista previa de imagen", "open": "Ver imagen", "prev": "Imagen anterior", "next": "Imagen siguiente", "close": "Cerrar vista previa" }, "filePreview": { "aria": "Vista previa de archivo", "close": "Cerrar vista previa de archivo", "loading": "Cargando vista previa...", "failed": "No se pudo previsualizar este archivo.", "routeMissing": "La vista previa necesita el gateway más reciente. Reinicia nanobot gateway e inténtalo de nuevo.", "resize": "Cambiar el tamaño de la vista previa", "truncated": "La vista previa está truncada porque el archivo es grande." }, "code": { "fallbackLanguage": "código", "copyAria": "Copiar código", "copy": "Copiar", "copied": "Copiado" }, "common": { "dismiss": "Cerrar" }, "errors": { "messageTooBig": { "title": "Mensaje demasiado grande", "body": "El servidor rechazó tu último mensaje por superar el tamaño permitido. Quita algunas imágenes o usa archivos más pequeños y vuelve a enviarlo." }, "workspaceScopeRejected": { "title": "El espacio de trabajo no cambió", "body": "El gateway rechazó el proyecto o modo de acceso solicitado, así que Nanobot conservó el espacio de trabajo anterior." } }, "workspace": { "dialog": { "defaultProject": "Espacio de trabajo predeterminado", "manual": "Pegar ruta", "manualPlaceholder": "/Users/name/project", "usePath": "Usar ruta", "absolutePathRequired": "Introduce una ruta absoluta de carpeta en esta máquina." } } }