Files
codeg/src/i18n/messages/es.json

2052 lines
93 KiB
JSON

{
"Language": {
"followSystem": "Seguir el sistema",
"english": "Inglés",
"simplifiedChinese": "Chino simplificado",
"traditionalChinese": "Chino tradicional",
"japanese": "Japonés",
"korean": "Coreano",
"spanish": "Español",
"german": "Alemán",
"french": "Francés",
"portuguese": "Portugués",
"arabic": "Árabe"
},
"WelcomePage": {
"title": "Bienvenido a Codeg",
"openSettings": "Abrir configuración",
"searchPlaceholder": "Buscar carpetas...",
"loading": "Cargando...",
"emptyFolders": "Aún no hay carpetas",
"removeFromHistory": "Quitar del historial",
"openFolder": "Abrir carpeta",
"cloneRepository": "Clonar repositorio",
"projectBoot": "Inicio de Proyecto",
"softwareVersion": "versión {version}",
"toasts": {
"loadFolderHistoryFailed": "No se pudo cargar el historial de carpetas",
"openFolderFailed": "No se pudo abrir la carpeta",
"removeFromHistoryFailed": "No se pudo quitar la carpeta",
"openSettingsFailed": "No se pudo abrir la configuración",
"cloneFailed": "No se pudo clonar el repositorio",
"openProjectBootFailed": "Error al abrir el inicio de proyecto"
},
"errors": {
"unknown": "Error inesperado",
"invalidInput": "Entrada no válida.",
"notFound": "Recurso no encontrado.",
"alreadyExists": "El recurso ya existe.",
"dependencyMissing": "Falta una dependencia requerida.",
"databaseError": "Falló la operación de base de datos.",
"ioError": "Falló la operación de archivos.",
"externalCommandFailed": "Falló el comando externo.",
"windowOperationFailed": "Falló la operación de ventana.",
"gitNotInstalled": "Git no está instalado. Instala Git primero.",
"targetDirectoryNotEmpty": "El directorio de destino ya existe y no está vacío.",
"repositoryNotFound": "Repositorio no encontrado. Revisa la URL y los permisos de acceso.",
"networkUnavailable": "La red no está disponible. Revisa tu conexión e inténtalo de nuevo.",
"authenticationFailed": "Autenticación fallida. Revisa credenciales o clave SSH.",
"permissionDenied": "Permiso denegado. Revisa los permisos del directorio."
},
"cloneDialog": {
"title": "Clonar repositorio",
"repositoryUrl": "URL del repositorio",
"repositoryUrlPlaceholder": "https://github.com/user/repo.git",
"directory": "Directorio",
"directoryPlaceholder": "Selecciona el directorio de destino...",
"browseDirectory": "Explorar directorio",
"cancel": "Cancelar",
"clone": "Clonar",
"clonePath": "Ruta de clonación: {path}"
}
},
"GitCredentialDialog": {
"title": "Autenticación requerida",
"description": "El servidor remoto requiere credenciales. Introduce tu nombre de usuario y contraseña (o token de acceso personal).",
"username": "Nombre de usuario",
"usernamePlaceholder": "Usuario o correo electrónico",
"password": "Contraseña / Token",
"passwordPlaceholder": "Contraseña o token de acceso personal",
"passwordHint": "Introduce el nombre de usuario y contraseña del servidor.",
"cancel": "Cancelar",
"authenticate": "Autenticar",
"authenticating": "Autenticando...",
"invalidCredentials": "Credenciales inválidas. Inténtalo de nuevo.",
"saveCredentials": "Guardar credenciales para futuras operaciones",
"githubTitle": "Autenticación de GitHub",
"githubDescription": "Introduce un token de acceso personal para conectarte a GitHub. El token se validará y guardará automáticamente.",
"githubToken": "Token de acceso personal",
"githubTokenPlaceholder": "ghp_xxxxxxxxxxxx",
"githubTokenHint": "Genera un token en GitHub → Settings → Developer settings → Personal access tokens.",
"githubAuthenticate": "Validar y conectar",
"generateToken": "Generar token"
},
"SettingsShell": {
"title": "Configuración",
"preferences": "Preferencias",
"nav": {
"appearance": "Apariencia",
"agents": "Agentes",
"mcp": "MCP",
"skills": "Skills",
"shortcuts": "Atajos",
"version_control": "Control de versiones",
"system": "Sistema",
"chat_channels": "Canales de chat",
"web_service": "Servicio Web",
"model_providers": "Proveedores de Modelos",
"experts": "Expertos"
}
},
"AppearanceSettings": {
"sectionTitle": "Apariencia del tema",
"sectionDescription": "Elige claro, oscuro o seguir el sistema. La configuración se guarda automáticamente.",
"themeMode": "Modo de tema",
"placeholder": "Selecciona el modo de tema",
"system": "Seguir el sistema",
"light": "Claro",
"dark": "Oscuro",
"currentTheme": "Tema efectivo actual: {theme}",
"resolvedTheme": {
"light": "Claro",
"dark": "Oscuro",
"unknown": "--"
},
"themeColor": {
"sectionTitle": "Color del tema",
"sectionDescription": "Elige una paleta de colores para acentos, botones y resaltados.",
"current": "Color actual: {color}",
"options": {
"neutral": "Neutral",
"zinc": "Zinc",
"slate": "Slate",
"stone": "Stone",
"gray": "Gray",
"red": "Red",
"rose": "Rose",
"orange": "Orange",
"green": "Green",
"blue": "Blue",
"yellow": "Yellow",
"violet": "Violet"
}
},
"zoomLevel": {
"sectionTitle": "Zoom de ventana",
"sectionDescription": "Escala toda la interfaz. Se aplica al instante y se guarda por dispositivo.",
"placeholder": "Selecciona el nivel de zoom",
"default": "Predeterminado",
"current": "Zoom actual: {zoom}%"
},
"resetToDefaults": "Restablecer valores",
"resetHint": "Restablece el color del tema y el zoom de ventana a los valores predeterminados."
},
"SystemSettings": {
"loading": "Cargando...",
"sectionTitle": "Administración del sistema",
"sectionDescription": "Administra el proxy de red, las actualizaciones de la app y las preferencias de idioma.",
"proxyTitle": "Proxy de red",
"proxyDescription": "Cuando está activado, las solicitudes de red posteriores usarán este proxy preferentemente (incluyendo chat ACP, instalación de agentes y operaciones remotas de Git).",
"loadFailed": "Error al cargar: {message}",
"enableProxy": "Activar proxy del sistema",
"proxyAddress": "Dirección del proxy",
"proxyHint": "Compatible con http(s)/socks5, ejemplo: {example}. Solo funciona cuando el proxy del sistema está activado.",
"save": "Guardar",
"saving": "Guardando...",
"proxyRequired": "Se requiere URL del proxy cuando el proxy está activado",
"saveSuccess": "La configuración del proxy del sistema se guardó",
"saveFailed": "Error al guardar: {message}",
"languageTitle": "Idioma",
"languageDescription": "Configura el idioma de la app. Al seguir el idioma del sistema, los no compatibles vuelven a inglés.",
"appLanguage": "Idioma de la app",
"languageSaveSuccess": "La configuración de idioma se guardó",
"languageSaveFailed": "No se pudo guardar la configuración de idioma: {message}",
"updateTitle": "Actualización de la app",
"versionTitle": "Actualización de software",
"updateDescription": "Comprueba versiones más nuevas en la fuente de versiones configurada e instálalas directamente cuando estén disponibles.",
"currentVersion": "Versión actual",
"upgradableVersion": "Última versión",
"none": "Ninguna",
"lastChecked": "Última comprobación: {time}",
"updateError": "Error de actualización: {message}",
"checking": "Comprobando...",
"checkUpdate": "Buscar actualizaciones",
"updating": "Instalando...",
"downloading": "Descargando...",
"upgradeTo": "Actualizar a v{version}",
"foundUpdate": "Nueva versión v{version} encontrada",
"alreadyLatest": "Ya tienes la versión más reciente",
"checkUpdateFailed": "No se pudo buscar actualizaciones: {message}",
"installSuccess": "Actualización instalada. Reiniciando la app.",
"installFailed": "La actualización falló: {message}",
"updateErrors": {
"sourceUnavailable": "No se puede acceder al origen de actualización. Revisa tu red o proxy e inténtalo de nuevo.",
"network": "Falló la conexión de red. Revisa tu red o proxy e inténtalo de nuevo.",
"downloadFailed": "No se pudo descargar el paquete de actualización. Inténtalo más tarde.",
"installFailed": "No se pudo instalar la actualización. Cierra la app e inténtalo de nuevo.",
"unknown": "La actualización falló. Inténtalo más tarde."
}
},
"VersionControlSettings": {
"loading": "Cargando...",
"sectionTitle": "Control de versiones",
"sectionDescription": "Configura el ejecutable de Git y gestiona las cuentas de GitHub.",
"gitTitle": "Configuración de Git",
"gitDescription": "Configura el ejecutable de Git utilizado por la aplicación.",
"gitDetected": "Git detectado",
"gitNotFound": "Git no encontrado en el sistema",
"gitVersion": "Versión",
"gitPath": "Ruta",
"customGitPath": "Ruta personalizada de Git",
"customGitPathPlaceholder": "/usr/bin/git",
"customGitPathHint": "Dejar vacío para usar la ruta detectada automáticamente.",
"test": "Probar",
"testing": "Probando...",
"testSuccess": "El ejecutable de Git es válido.",
"testFailed": "Prueba de Git fallida: {message}",
"save": "Guardar",
"saving": "Guardando...",
"saveSuccess": "Configuración de Git guardada.",
"saveFailed": "Error al guardar: {message}",
"githubTitle": "Cuentas de GitHub",
"githubDescription": "Gestiona las cuentas de GitHub para autenticación. Los tokens se almacenan localmente.",
"noAccounts": "No hay cuentas de GitHub configuradas.",
"addAccount": "Añadir cuenta",
"serverUrl": "URL del servidor",
"serverUrlPlaceholder": "https://github.com",
"token": "Token de acceso personal",
"tokenPlaceholder": "ghp_xxxxxxxxxxxx",
"generateToken": "Generar token",
"tokenHint": "Genera un token en GitHub → Settings → Developer settings → Personal access tokens.",
"validateAndAdd": "Validar y añadir",
"validating": "Validando...",
"addSuccess": "Cuenta {username} añadida correctamente.",
"addFailed": "Error al añadir cuenta: {message}",
"testConnection": "Probar",
"connectionSuccess": "Conexión exitosa.",
"connectionFailed": "Conexión fallida: {message}",
"setDefault": "Establecer como predeterminada",
"defaultLabel": "Predeterminada",
"defaultSet": "Cuenta predeterminada actualizada.",
"removeAccount": "Eliminar",
"removeConfirmTitle": "Eliminar cuenta",
"removeConfirmMessage": "¿Estás seguro de que deseas eliminar la cuenta \"{username}\"?",
"removeConfirm": "Eliminar",
"removeCancel": "Cancelar",
"removeSuccess": "Cuenta eliminada.",
"scopes": "Alcances",
"loadFailed": "Error al cargar configuración: {message}",
"gitAccount": {
"sectionTitle": "Cuentas de servidor Git",
"sectionDescription": "Gestiona credenciales para servidores Git que no son GitHub (GitLab, Bitbucket, autoalojados, etc.).",
"noAccounts": "No hay cuentas de servidor Git configuradas.",
"addAccount": "Añadir cuenta",
"addTitle": "Añadir cuenta Git",
"addDescription": "Introduce la dirección del servidor, nombre de usuario y contraseña o token de acceso.",
"serverUrl": "URL del servidor",
"serverUrlPlaceholder": "https://gitlab.example.com",
"username": "Nombre de usuario",
"usernamePlaceholder": "Usuario o correo electrónico",
"password": "Contraseña / Token",
"passwordPlaceholder": "Contraseña o token de acceso",
"passwordHint": "Introduce tu contraseña o token de acceso del servidor.",
"add": "Añadir",
"serverRequired": "La URL del servidor es obligatoria.",
"usernameRequired": "El nombre de usuario es obligatorio.",
"passwordRequired": "La contraseña es obligatoria."
}
},
"ShortcutSettings": {
"sectionTitle": "Atajos",
"resetDefault": "Restablecer valores predeterminados",
"recordInstruction": "Haz clic en el botón derecho y luego pulsa una combinación de teclas. Usa Ctrl/Cmd, Alt y Shift. Pulsa Esc para cancelar la grabación.",
"recording": "Pulsa un atajo...",
"toasts": {
"conflict": "El atajo ya está en uso por \"{title}\"",
"updated": "Atajo actualizado",
"invalid": "Atajo no válido, inténtalo de nuevo",
"reset": "Se restauraron los atajos predeterminados"
},
"actions": {
"toggle_search": {
"title": "Abrir búsqueda",
"description": "Muestra u oculta el panel de búsqueda de conversaciones"
},
"toggle_sidebar": {
"title": "Alternar barra lateral izquierda",
"description": "Muestra u oculta la barra lateral de lista de conversaciones"
},
"toggle_terminal": {
"title": "Alternar terminal",
"description": "Muestra u oculta el panel de terminal inferior"
},
"new_terminal_tab": {
"title": "Nueva terminal",
"description": "Crea una nueva pestaña de terminal cuando el foco está en la terminal"
},
"close_current_terminal_tab": {
"title": "Cerrar terminal actual",
"description": "Cierra la pestaña de terminal actual cuando el foco está en la terminal"
},
"toggle_aux_panel": {
"title": "Alternar panel derecho",
"description": "Muestra u oculta el panel de información auxiliar"
},
"new_conversation": {
"title": "Nueva conversación",
"description": "Crea una nueva pestaña de conversación en la carpeta actual"
},
"open_folder": {
"title": "Abrir carpeta",
"description": "Abre el selector de carpetas y la carpeta en una nueva ventana"
},
"open_settings": {
"title": "Abrir configuración",
"description": "Abre la ventana de configuración"
},
"close_current_tab": {
"title": "Cerrar pestaña actual",
"description": "Cierra la conversación o pestaña de archivo actual"
},
"close_all_file_tabs": {
"title": "Cerrar todas las pestañas de archivos",
"description": "Cierra todas las pestañas de archivos solo en modo de archivos"
},
"send_message": {
"title": "Enviar mensaje",
"description": "Enviar el mensaje actual en el cuadro de entrada"
},
"newline_in_message": {
"title": "Nueva línea en mensaje",
"description": "Insertar una nueva línea en el cuadro de entrada"
}
}
},
"SkillsSettings": {
"title": "Skills",
"description": "Selecciona una Skill a la izquierda. A la derecha se muestra una vista previa de Markdown por defecto; cambia a edición para modificar y guardar.",
"loadingAgents": "Cargando agentes compatibles con Skills...",
"emptyNoManageableAgents": "No hay agentes disponibles para gestionar Skills.",
"managedTarget": "Objetivo gestionado",
"selectAgentPlaceholder": "Selecciona un agente",
"searchPlaceholder": "Buscar por nombre / ID / ruta...",
"skillsList": "Lista de Skills",
"loadingSkills": "Cargando Skills...",
"agentNotSupported": "El agente actual no admite gestión de Skills.",
"emptySkills": "Aún no hay Skills. Haz clic en \"Nueva Skill\" para crear una.",
"newSkillTitle": "Nueva Skill",
"skillInfo": "Información de la Skill",
"skillIdPlaceholder": "skill-id (letras/números/-/_/.)",
"skillsDirectoryWithPath": "Directorio de Skills: {path}",
"skillsDirectoryNeedId": "Directorio de Skills: introduce el ID de Skill para generar la ruta completa",
"markdownContent": "Contenido Markdown",
"editingStatus": "Editando",
"previewStatus": "Vista previa",
"contentPlaceholder": "Introduce el contenido Markdown de la Skill...",
"metadataTitle": "Metadatos de Skills",
"onlyYamlMetadata": "Esta Skill solo contiene metadatos YAML.",
"emptyContentHint": "Aún no hay contenido. Haz clic en \"Editar\" para empezar.",
"loadingSkill": "Cargando Skill...",
"emptyNoAgents": "No hay agentes disponibles.",
"noSelectionHint": "Selecciona un Skill a la izquierda o haz clic en \"Nuevo Skill\" para crear uno.",
"scope": {
"global": "Global",
"folder": "Carpeta",
"selectFolderPlaceholder": "Seleccionar una carpeta",
"noFolders": "No se encontraron carpetas",
"pickFolderHint": "Selecciona una carpeta para ver sus Skills."
},
"actions": {
"preview": "Vista previa",
"edit": "Editar",
"openInWindow": "Abrir en nueva ventana",
"delete": "Eliminar",
"deleting": "Eliminando...",
"refresh": "Actualizar",
"newSkill": "Nueva Skill",
"reset": "Restablecer",
"save": "Guardar",
"saving": "Guardando...",
"cancel": "Cancelar"
},
"deleteDialog": {
"title": "Eliminar Skill",
"confirm": "¿Eliminar la Skill actual? Esta acción no se puede deshacer.",
"confirmWithNamePrefix": "¿Eliminar la Skill",
"confirmWithNameSuffix": "? Esta acción no se puede deshacer."
},
"toasts": {
"loadFailed": "No se pudo cargar la Skill",
"openFolderFailed": "No se pudo abrir la carpeta",
"noSkillDirectory": "No se encontró un directorio de Skills disponible para el agente actual",
"nameRequired": "El nombre de la Skill no puede estar vacío",
"updated": "Skill actualizada",
"created": "Skill creada",
"saveFailed": "No se pudo guardar la Skill",
"deleted": "Skill eliminada",
"deleteFailed": "No se pudo eliminar la Skill"
},
"templates": {
"gemini": "---\nname: example-skill\ndescription: Describe when this skill should be used.\n---\n\n# Skill Name\n\nInstructions for the agent when this skill is active.\n\n## Workflow\n\n1. Add actionable step one.\n2. Add actionable step two.\n",
"openCode": "---\nname: example-skill\ndescription: Describe when this skill should be used.\n---\n\n# Purpose\n\nDescribe what this skill helps with.\n\n# Steps\n\n1. Add actionable step one.\n2. Add actionable step two.\n",
"openClaw": "---\nname: example-skill\ndescription: Describe when this skill should be used.\nuser-invocable: true\ndisable-model-invocation: false\n---\n\n# Purpose\n\nDescribe what this skill helps with.\n\n# Instructions\n\n1. Add actionable instruction one.\n2. Add actionable instruction two.\n",
"default": "# Skill: example-skill\n\n## When to use\n\n- Describe trigger conditions.\n\n## Instructions\n\n1. Add actionable instruction one.\n2. Add actionable instruction two.\n"
}
},
"McpSettings": {
"loading": "Cargando...",
"summary": {
"missingCommand": "(comando faltante)",
"missingUrl": "(URL faltante)"
},
"protocol": {
"stdio": "Stdio"
},
"errors": {
"selectInstallProtocol": "Selecciona un protocolo de instalación",
"fieldRequired": "{field} es obligatorio",
"fieldNeedsBoolean": "{field} debe ser true o false",
"fieldNeedsNumber": "{field} debe ser un número",
"fieldNeedsInteger": "{field} debe ser un entero",
"fieldInvalidJson": "{field} tiene JSON inválido: {message}",
"fieldOutOfRange": "El valor de {field} está fuera del rango permitido",
"jsonEmpty": "{name} no puede estar vacío",
"jsonInvalid": "{name} no es un JSON válido: {message}",
"jsonMustBeObject": "{name} debe ser un objeto JSON"
},
"jsonNames": {
"localConfig": "Configuración MCP",
"installConfig": "Configuración de instalación"
},
"toasts": {
"uninstalled": "MCP desinstalado",
"uninstallFailed": "Error al desinstalar: {message}",
"selectAtLeastOneApp": "Selecciona al menos una app de destino",
"saveSuccess": "Guardado",
"saveFailed": "Error al guardar: {message}",
"installed": "{name} instalado",
"installFailed": "Error al instalar: {message}"
},
"installDialog": {
"title": "Confirmar instalación de MCP",
"descriptionWithName": "Instalar {name} en la configuración local.",
"description": "Selecciona las apps de destino para la instalación.",
"protocol": "Protocolo",
"selectProtocol": "Seleccionar protocolo",
"parameters": "Parámetros de configuración",
"booleanPlaceholder": "Selecciona true/false",
"selectOneValue": "Selecciona un valor",
"targetApps": "Apps de destino"
},
"actions": {
"cancel": "Cancelar",
"confirmInstall": "Confirmar instalación",
"installing": "Instalando",
"uninstall": "Desinstalar",
"uninstalling": "Desinstalando",
"viewDetails": "Ver detalles",
"save": "Guardar",
"saving": "Guardando",
"install": "Instalar"
},
"tabs": {
"local": "MCP local",
"market": "Marketplace MCP"
},
"local": {
"filterPlaceholder": "Filtrar MCP local...",
"loadFailed": "Error de carga: {message}",
"empty": "No se detectó MCP local.",
"description": "La configuración de MCP local se puede editar y guardar directamente.",
"enabledApps": "Apps habilitadas",
"configJson": "Configuración MCP (JSON)"
},
"market": {
"selectMarketplace": "Seleccionar marketplace",
"searchPlaceholder": "Buscar MCP...",
"searchFailed": "Error de búsqueda: {message}",
"loadingList": "Cargando lista de MCP...",
"empty": "Sin resultados de MCP.",
"loadingDetail": "Cargando detalles del marketplace...",
"detailLoadFailed": "No se pudieron cargar los detalles: {message}",
"owner": "Propietario: {owner}",
"namespace": "Espacio de nombres: {namespace}",
"defaultInstallProtocol": "Protocolo de instalación predeterminado",
"currentOptionParameterCount": "Cantidad de parámetros de la opción actual: {count}",
"installConfigDescription": "Configuración de instalación (JSON, editable antes de instalar; las ediciones sobrescribirán el formulario de protocolo/parámetros)",
"selectLeftToView": "Selecciona un MCP del marketplace a la izquierda para ver detalles."
},
"badges": {
"verified": "Verificado",
"remote": "Remoto",
"hasHomepage": "Tiene página web",
"uses": "{count} usos",
"deployed": "Desplegado",
"notDeployed": "No desplegado"
},
"selectLeftMcp": "Selecciona un MCP a la izquierda."
},
"AcpAgentSettings": {
"title": "Gestión del SDK de agentes",
"description": "Gestiona en un solo lugar la conexión del SDK de agentes, estado habilitado, variables de entorno, gestión de configuración e información de preflight de versión.",
"loadingAgents": "Cargando lista de agentes...",
"agentList": "Lista de agentes",
"emptyNoAgent": "No hay agentes disponibles.",
"configManagement": "Gestión de configuración",
"envVars": "Variables de entorno",
"nativeJsonConfig": "Configuración JSON nativa",
"modelHintDefault": "Déjalo vacío para usar el modelo predeterminado del sistema.",
"generalConfigDescriptionClaude": "Admite configuración rápida de API URL, API Key y modelos de Claude, y sincroniza con la configuración JSON nativa.",
"generalConfigDescriptionDefault": "Admite entrada de configuración importante (API URL, API Key, Model) y gestión de configuración JSON nativa.",
"actions": {
"dragSort": "Arrastrar para reordenar",
"dragSortAgent": "Arrastrar para reordenar {name}",
"refreshCheck": "Actualizar comprobación",
"refreshCheckAgent": "Actualizar comprobación de {name}",
"clickEnable": "Haz clic para habilitar {name}",
"clickDisable": "Haz clic para deshabilitar {name}",
"install": "Instalar",
"upgrade": "Actualizar",
"uninstall": "Desinstalar",
"uninstalling": "Desinstalando...",
"saveEnvVars": "Guardar variables de entorno",
"saving": "Guardando...",
"saveCodexConfig": "Guardar configuración de Codex",
"saveGeminiConfig": "Guardar configuración de Gemini",
"saveOpenCodeConfig": "Guardar configuración de OpenCode",
"saveOpenClawConfig": "Guardar configuración de OpenClaw",
"saveConfigManagement": "Guardar gestión de configuración",
"saveCurrentProvider": "Guardar proveedor actual",
"showApiKey": "Mostrar API Key",
"hideApiKey": "Ocultar API Key",
"showKey": "Mostrar clave",
"hideKey": "Ocultar clave",
"showToken": "Mostrar token",
"hideToken": "Ocultar token",
"cancel": "Cancelar",
"delete": "Eliminar",
"deleting": "Eliminando...",
"confirmDelete": "Confirmar eliminación",
"confirmUninstall": "Confirmar desinstalación",
"saveClineConfig": "Guardar configuración de Cline"
},
"status": {
"enabled": "Habilitado",
"disabled": "Deshabilitado",
"unchecked": "Sin comprobar",
"agentEnabledAria": "{name} habilitado",
"agentEnabledSwitch": "Interruptor de habilitación de {name}"
},
"preflight": {
"count": "Elementos de preflight: {count}",
"notRun": "Las comprobaciones aún no se han ejecutado."
},
"codex": {
"configDescription": "Admite configuración rápida de URL de API, API Key, nombre del modelo y reasoning effort, y sincroniza con `auth.json` / `config.toml`.",
"authMode": "Modo de Autenticación",
"chatgptSubscription": "Suscripción oficial",
"chatgptSubscriptionHint": "Iniciar sesión con suscripción oficial de ChatGPT, sin necesidad de API Key",
"apiKeyHint": "Conectar usando API Key a OpenAI o servicios API compatibles",
"selectProvider": "Seleccionar proveedor",
"modelName": "Nombre del modelo",
"selectReasoningEffort": "Seleccionar Reasoning Effort",
"enableWebsocket": "Habilitar WebSocket",
"enableWebsocketAria": "Habilitar WebSocket para Codex Provider",
"enableSkills": "Habilitar Skills",
"enableSkillsAria": "Habilitar Skills para Codex",
"enableFast": "Habilitar Fast",
"enableFastAria": "Habilitar nivel de servicio Fast para Codex",
"authJsonNative": "auth.json (nativo)",
"configTomlNative": "config.toml (nativo)",
"loginButton": "Iniciar sesión con ChatGPT",
"loginRequesting": "Solicitando código de inicio de sesión...",
"loginStep1": "Abre la siguiente URL en tu navegador:",
"loginStep2": "Introduce el siguiente código:",
"loginPolling": "Esperando autorización...",
"loginCancel": "Cancelar",
"loginSuccess": "¡Inicio de sesión exitoso, configuración guardada!",
"loginFailed": "Error de inicio de sesión: {message}",
"loginRetry": "Reintentar",
"loginCodeCopied": "Código copiado",
"loggedIn": "Cuenta conectada",
"loginRelogin": "Reconectar / Cambiar cuenta",
"loginTimeout": "Tiempo de inicio de sesión agotado, inténtalo de nuevo",
"loginSaveFailed": "Inicio de sesión exitoso pero falló al guardar la configuración"
},
"gemini": {
"authConfig": "Configuración de autenticación de Gemini",
"authConfigDescription": "Alineado con la documentación de autenticación de Gemini CLI, con soporte para endpoint personalizado, inicio de sesión de Google, Gemini API Key y Vertex AI (ADC / cuenta de servicio / API Key).",
"authMode": "Modo de autenticación",
"selectAuthMode": "Seleccionar modo de autenticación",
"viewAuthDoc": "Ver documentación de autenticación",
"mode": {
"custom": "Endpoint personalizado",
"loginGoogle": "Inicio de sesión de Google (OAuth)",
"vertexServiceAccount": "Vertex AI (Cuenta de servicio)"
},
"hint": {
"custom": "Completa API URL, API Key y Modelo; se mapean a GOOGLE_GEMINI_BASE_URL / GEMINI_API_KEY / GEMINI_MODEL.",
"loginGoogle": "Ejecuta gemini en terminal y completa primero el inicio de sesión de Google; no se requiere API key.",
"geminiApiKey": "Completa GEMINI_API_KEY cuando uses la API de Gemini.",
"vertexAdc": "Usa gcloud ADC; se recomienda configurar GOOGLE_CLOUD_PROJECT y GOOGLE_CLOUD_LOCATION.",
"vertexServiceAccount": "Establece la ruta del JSON de la cuenta de servicio en GOOGLE_APPLICATION_CREDENTIALS.",
"vertexApiKey": "Completa GOOGLE_API_KEY cuando uses API key de Vertex AI."
}
},
"openCode": {
"configManagement": "Gestión de configuración de OpenCode",
"configDescription": "Alineado con el esquema `provider` de OpenCode, admite gestión de múltiples proveedores y sincronización bidireccional con archivos JSON nativos.",
"providerManagement": "Gestión de proveedores",
"providerCount": "{count} proveedores",
"addProvider": "Agregar proveedor",
"emptyProvider": "Aún no hay proveedor. Introduce un ID y haz clic en \"Agregar proveedor\".",
"providerEnabledState": "Estado habilitado de {providerId}",
"selectProviderNpm": "Seleccionar provider.npm",
"notSet": "No establecido",
"modelManagement": "Gestión de modelos",
"modelCount": "{count} modelos",
"modelDescription": "Alineado con `provider.models` de OpenCode. La gestión rápida actualmente soporta `name` / `id`; otros campos avanzados se conservan y se pueden editar en el JSON nativo de abajo.",
"addModel": "Agregar modelo",
"emptyModel": "Aún no hay modelo. Introduce model id y haz clic en \"Agregar modelo\".",
"modelId": "ID de modelo",
"modelName": "Nombre del modelo",
"deleteModel": "Eliminar modelo {modelId}",
"nativeJsonConfig": "Configuración JSON nativa de OpenCode",
"mainModel": "Modelo principal",
"smallModel": "Modelo pequeño",
"noMatchingModels": "No hay modelos coincidentes"
},
"openClaw": {
"gatewayConfig": "Configuración de Gateway",
"gatewayDescription": "Configura la conexión de OpenClaw Gateway. Admite gateway local o remoto.",
"gatewayUrlHint": "Déjalo vacío para usar gateway.remote.url desde la configuración local de openclaw.",
"gatewayTokenPlaceholder": "Token de autenticación de Gateway",
"gatewayTokenHint": "Usa token-file en lugar de token en texto plano cuando sea posible; configúralo con el CLI de openclaw.",
"sessionKeyHint": "Opcional. Especifica la session key del gateway; si se deja vacío se asigna automáticamente una sesión aislada."
},
"authModeOfficialSubscription": "Suscripción oficial",
"authModeCustomEndpoint": "Endpoint personalizado",
"authModeCustomEndpointHint": "Configurar manualmente la URL de API y la clave API para un endpoint personalizado.",
"authModeModelProvider": "Proveedor de modelo",
"modelProvider": "Proveedor de modelo",
"modelProviderHint": "Usar la URL de API y la clave API de un proveedor de modelo configurado.",
"selectModelProvider": "Seleccionar proveedor de modelo",
"noModelProviderAvailable": "No hay proveedor de modelo configurado para este agente. Vaya a la configuración de proveedores de modelo para agregar uno.",
"claude": {
"authMode": "Modo de autenticación",
"officialSubscription": "Suscripción oficial",
"officialSubscriptionHint": "Usar la suscripción oficial de Anthropic, no se requiere API Key.",
"mainModel": "Modelo principal",
"reasoningModel": "Modelo de razonamiento (thinking)",
"haikuDefaultModel": "Modelo Haiku predeterminado",
"sonnetDefaultModel": "Modelo Sonnet predeterminado",
"opusDefaultModel": "Modelo Opus predeterminado",
"effortLevel": "Nivel de razonamiento",
"effortLevelDefault": "Nivel predeterminado",
"effortLevel_low": "Bajo",
"effortLevel_medium": "Medio",
"effortLevel_high": "Alto",
"effortLevel_xhigh": "Extra Alto"
},
"dialogs": {
"confirmDeleteProvider": "¿Eliminar proveedor {providerId}?",
"confirmDeleteProviderDescription": "La configuración de OpenCode y auth JSON se actualizarán juntos. Esta acción no se puede deshacer.",
"confirmUninstall": "¿Desinstalar {name}?",
"confirmUninstallDescription": "Esto elimina la versión instalada localmente. Puedes reinstalar más tarde."
},
"errors": {
"nativeJsonMustBeObject": "La configuración JSON nativa debe ser un objeto",
"nativeJsonInvalid": "Error de formato en JSON nativo: {message}",
"openCodeAuthMustBeObject": "OpenCode auth.json debe ser un objeto JSON",
"openCodeAuthInvalid": "Error de formato en OpenCode auth.json: {message}",
"authMustBeObject": "auth.json debe ser un objeto JSON",
"authInvalid": "Error de formato en auth.json: {message}",
"providerIdPattern": "El ID de proveedor solo admite letras, números, guion bajo, punto y guion",
"providerExists": "El proveedor '{providerId}' ya existe",
"modelIdPattern": "El ID de modelo solo admite letras, números, guion bajo, punto, dos puntos y guion",
"modelExists": "El modelo '{modelId}' ya existe"
},
"warnings": {
"nativeJsonRecoveredStructured": "La configuración JSON nativa es inválida; se restableció a configuración estructurada",
"nativeJsonRecoveredOpenCode": "La configuración JSON nativa es inválida; se restableció a configuración estructurada de OpenCode",
"openCodeAuthRecovered": "OpenCode auth.json es inválido; se restableció a configuración predeterminada",
"authRecoveredStructured": "auth.json es inválido; se restableció a configuración estructurada"
},
"toasts": {
"agentActionCompleted": "{name} {action} completado",
"agentActionFailed": "{name} {action} falló",
"localVersion": "Versión local: {version}",
"installCompletedVersionLater": "Instalación completada, la versión se actualizará en la próxima comprobación",
"uninstallCompleted": "Desinstalación de {name} completada",
"uninstallFailed": "Desinstalación de {name} fallida",
"localVersionRemoved": "Versión local eliminada",
"saveAgentOrderFailed": "No se pudo guardar el orden de Agent",
"saveAgentSwitchFailed": "No se pudo guardar el switch de Agent",
"saveEnvFailed": "No se pudieron guardar las variables de entorno",
"codexSaved": "Configuración de Codex guardada",
"saveCodexNativeFailed": "No se pudo guardar la configuración nativa de Codex",
"geminiSaved": "Configuración de Gemini guardada",
"saveGeminiFailed": "No se pudo guardar la configuración de Gemini",
"providerDeleted": "Proveedor {providerId} eliminado",
"providerDeleteFailed": "No se pudo eliminar el proveedor {providerId}",
"providerSaved": "Proveedor {providerId} guardado",
"saveProviderFailed": "No se pudo guardar el proveedor {providerId}",
"openCodeConfigSynced": "La configuración de OpenCode y auth JSON se sincronizaron.",
"openCodeSaved": "Configuración de OpenCode guardada",
"saveOpenCodeFailed": "No se pudo guardar la configuración de OpenCode",
"openClawSaved": "Configuración de OpenClaw guardada",
"saveOpenClawFailed": "No se pudo guardar la configuración de OpenClaw",
"configSaved": "Configuración guardada",
"configSavedHint": "Las sesiones existentes deben reabrirse para que surta efecto",
"saveConfigManagementFailed": "No se pudo guardar la gestión de configuración",
"clineSaved": "Configuración de Cline guardada",
"saveClineFailed": "Error al guardar la configuración de Cline",
"modelProviderRequired": "Seleccione un proveedor de modelo antes de guardar."
},
"version": {
"statusLabel": "Estado de versión",
"notInstalled": "No instalado",
"remoteLocal": "Remota: {remoteVersion} · Local: {localVersion}",
"platformUnsupported": "{versionText}. La plataforma actual no soporta este agente.",
"clickInstall": "{versionText}. Haz clic en Instalar a la derecha.",
"localUnrecognized": "{versionText}. La versión local no es comparable; intenta actualizar para sobrescribir la instalación.",
"upgradeAvailable": "{versionText}. Hay actualización disponible.",
"remoteUnavailable": "{versionText}. La versión remota no está disponible por ahora.",
"latest": "{versionText}. Ya está en la última versión."
},
"cline": {
"configDescription": "Configure el proveedor de API y las credenciales de Cline. La configuración se guarda en ~/.cline/data/."
},
"opencodePlugins": {
"title": "Plugins de OpenCode",
"declared": "Plugins declarados",
"noPlugins": "No hay plugins declarados en opencode.json",
"status": {
"installed": "Instalado",
"missing": "No instalado"
},
"installAll": "Instalar todos los faltantes",
"pinVersions": "Fijar versiones @latest",
"install": "Instalar",
"uninstall": "Desinstalar",
"refresh": "Actualizar",
"success": "Todos los plugins se instalaron correctamente",
"failed": "La operación del plugin falló"
}
},
"SettingsPages": {
"agentsLoading": "Cargando configuración de agentes..."
},
"CommitPage": {
"title": "Confirmación",
"invalidFolderId": "ID de carpeta no válido",
"loadingRepo": "Cargando repositorio..."
},
"MergePage": {
"title": "Resolver conflictos",
"invalidFolderId": "ID de carpeta no válido",
"loadingRepo": "Cargando repositorio...",
"localVersion": "Local (Nuestro)",
"result": "Resultado",
"remoteVersion": "Remoto (Suyo)",
"acceptLocal": "Aceptar local",
"acceptRemote": "Aceptar remoto",
"markResolved": "Marcar como resuelto",
"abortMerge": "Abortar",
"completeMerge": "Completar fusión",
"unresolvedConflicts": "Todavía hay marcadores de conflicto sin resolver en este archivo",
"fileResolved": "Archivo resuelto correctamente",
"allResolved": "Todos los conflictos resueltos",
"conflictFiles": "Archivos en conflicto",
"loadingFile": "Cargando archivo...",
"preparingMerge": "Preparando fusión...",
"selectFile": "Seleccionar un archivo para resolver",
"noConflicts": "No hay archivos en conflicto",
"skipFile": "Omitir",
"abortSuccess": "Operación abortada",
"applyAllNonConflicting": "Aplicar todos los cambios sin conflicto",
"applyLeftNonConflicting": "Aplicar local",
"applyRightNonConflicting": "Aplicar remoto"
},
"Folder": {
"common": {
"all": "Todo",
"cancel": "Cancelar",
"close": "Cerrar",
"closeOthers": "Cerrar otros",
"closeAll": "Cerrar todo",
"confirm": "Confirmar",
"save": "Guardar",
"delete": "Eliminar",
"rename": "Renombrar",
"loading": "Cargando...",
"refresh": "Actualizar",
"refreshing": "Actualizando...",
"create": "Crear",
"createAndSwitch": "Crear y cambiar",
"openFile": "Abrir archivo",
"viewDiff": "Ver Diff",
"push": "Enviar..."
},
"modes": {
"conversation": "Modo conversación",
"fusion": "Modo fusión",
"files": "Modo archivos",
"workspaceModesAria": "Modos del espacio de trabajo"
},
"statusLabels": {
"in_progress": "En progreso",
"pending_review": "Revisión",
"completed": "Completado",
"cancelled": "Cancelado"
},
"sidebar": {
"title": "Conversaciones",
"locateActiveConversation": "Ubicar conversación activa",
"expandAllGroups": "Expandir todos los grupos",
"collapseAllGroups": "Colapsar todos los grupos",
"newConversation": "Nueva conversación",
"noConversationsFound": "No se encontraron conversaciones.",
"importLocalSessions": "Importar sesiones locales",
"importing": "Importando...",
"error": "Error del sistema: {message}",
"completeAllSessions": "Completar todas las sesiones",
"completeAllReviewTitle": "¿Completar todas las sesiones en revisión?",
"completeAllReviewDescription": "Esto marcará como completadas todas las {count, plural, one {# sesión} other {# sesiones}} en Revisión.",
"completing": "Completando...",
"toasts": {
"importedSessions": "Se importaron {imported, plural, one {# sesión} other {# sesiones}}, se omitieron {skipped}",
"noNewSessionsFound": "No se encontraron sesiones nuevas (omitidas {skipped})",
"importFailed": "Error al importar: {message}",
"reviewCompleted": "Se marcaron como completadas {count, plural, one {# sesión en revisión} other {# sesiones en revisión}}",
"completeReviewFailed": "Error al completar sesiones en revisión: {message}"
}
},
"conversation": {
"reloadFailed": "No se pudo recargar la conversación: {message}",
"reloaded": "Conversación recargada",
"reload": "Recargar",
"newConversation": "Nueva conversación",
"closeConversation": "Cerrar conversación",
"forkSession": "Bifurcar sesión",
"forkSessionSuccess": "Sesión bifurcada exitosamente",
"forkSessionFailed": "Error al bifurcar la sesión: {error}",
"exportConversation": "Exportar conversación",
"exportImage": "Imagen",
"exportMarkdown": "Markdown",
"exportHtml": "HTML",
"exportSuccess": "Conversación exportada",
"exportFailed": "Error al exportar",
"exportImageTooLong": "La conversación es demasiado larga para exportar como imagen",
"exportLabels": {
"untitledConversation": "Conversación sin título",
"agent": "Agente",
"model": "Modelo",
"status": "Estado",
"started": "Inicio",
"updated": "Actualizado",
"tokens": "Estadísticas de tokens",
"duration": "Duración",
"inputTokens": "Entrada",
"outputTokens": "Salida",
"cacheRead": "Caché leída",
"cacheWrite": "Caché escrita",
"user": "Usuario",
"assistant": "Asistente",
"system": "Sistema",
"toolResult": "Resultado",
"toolError": "Error"
}
},
"conversationCard": {
"untitledConversation": "Conversación sin título",
"newConversation": "Nueva conversación",
"rename": "Renombrar",
"status": "Estado",
"delete": "Eliminar",
"importLocalSessions": "Importar sesiones locales",
"importing": "Importando...",
"renameConversation": "Renombrar conversación",
"deleteConversationTitle": "¿Eliminar conversación?",
"deleteConversationDescription": "Esto eliminará \"{title}\". Esta acción no se puede deshacer.",
"cancel": "Cancelar",
"save": "Guardar"
},
"search": {
"dialogTitle": "Buscar",
"tabConversations": "Conversaciones",
"tabFiles": "Archivos",
"placeholder": "Buscar conversaciones...",
"filePlaceholder": "Buscar archivos o directorios...",
"allAgents": "Todo",
"searching": "Buscando...",
"typeToSearch": "Escribe para buscar conversaciones",
"typeToSearchFiles": "Escribe para buscar archivos o directorios",
"noResults": "No se encontraron resultados.",
"untitledConversation": "Conversación sin título"
},
"folderTitleBar": {
"showSidebar": "Mostrar barra lateral",
"hideSidebar": "Ocultar barra lateral",
"toggleTerminal": "Alternar terminal",
"toggleAuxPanel": "Alternar panel auxiliar",
"search": "Buscar",
"openSettings": "Abrir configuración",
"withShortcut": "{label} (atajo: {shortcut})"
},
"statusBar": {
"connection": {
"connected": "Conectado",
"connecting": "Conectando...",
"prompting": "Respondiendo...",
"error": "Error de conexión",
"disconnected": "Desconectado",
"tooltip": "{agent}: {status}",
"tooltipError": "{agent}: {error}"
},
"tasks": {
"title": "Tareas"
},
"alerts": {
"title": "Alertas",
"empty": "Sin alertas"
},
"stats": {
"conversations": "{count} conversaciones",
"summary": "{conversations} conversaciones / {messages} mensajes"
},
"tokens": {
"contextWindowUsageAria": "Uso de la ventana de contexto",
"contextWindow": "Ventana de contexto",
"usedMax": "Usado / Máx",
"tokenUsage": "Uso de tokens",
"input": "Entrada",
"output": "Salida",
"cacheRead": "Lectura de caché",
"cacheWrite": "Escritura de caché",
"total": "Total de tokens"
}
},
"auxPanel": {
"tabs": {
"diff": "Diferencias",
"files": "Archivos",
"changes": "Cambios",
"commits": "Confirmaciones"
}
},
"windowControls": {
"minimizeWindow": "Minimizar ventana",
"minimize": "Minimizar",
"maximizeWindow": "Maximizar ventana",
"maximize": "Maximizar",
"restoreWindow": "Restaurar ventana",
"restore": "Restaurar",
"closeWindow": "Cerrar ventana",
"close": "Cerrar"
},
"tabs": {
"closeConversationTab": "Cerrar pestaña de conversación",
"close": "Cerrar",
"closeOthers": "Cerrar otros",
"closeAll": "Cerrar todo",
"tileDisplay": "Vista en mosaico",
"untileDisplay": "Salir de mosaico"
},
"fileWorkspace": {
"files": "Archivos",
"closeFileTab": "Cerrar pestaña de archivo",
"close": "Cerrar",
"closeOthers": "Cerrar otros",
"closeAll": "Cerrar todo",
"preview": "Vista previa",
"editSource": "Editar fuente"
},
"terminal": {
"rename": "Renombrar",
"close": "Cerrar",
"closeOthers": "Cerrar otros",
"closeAll": "Cerrar todo",
"hideTerminal": "Ocultar terminal ({shortcut})"
},
"sessionFiles": {
"currentResponse": "Respuesta actual",
"noDiffDataAvailable": "No hay datos de diff disponibles para {filePath}",
"loading": "Cargando...",
"noFileChangesInConversation": "No se encontraron cambios de archivos en esta conversación",
"openConversationToSeeChanges": "Abre una conversación para ver sus cambios de archivos",
"remove": "Quitar",
"changeCount": "{count, plural, one {# cambio} other {# cambios}}",
"fileCount": "{count, plural, one {# archivo} other {# archivos}}"
},
"folderNameDropdown": {
"fallbackFolderName": "Carpeta",
"openFolder": "Abrir carpeta",
"cloneRepository": "Clonar repositorio",
"projectBoot": "Inicializador de proyecto",
"opened": "Abierto",
"recentOpen": "Abiertos recientemente"
},
"fileWorkspacePanel": {
"viewDiff": "Ver Diff",
"openFile": "Abrir archivo",
"fileCount": "{count, plural, one {# archivo} other {# archivos}}",
"openFileOrDiff": "Abre un archivo o diff desde el panel derecho",
"disk": "Disco",
"head": "HEAD (referencia)",
"unsaved": "Sin guardar",
"workingTree": "Árbol de trabajo",
"loading": "Cargando...",
"compareWithBranch": "{path} · comparar con {branch}",
"hunkCount": "{count, plural, one {# bloque} other {# bloques}}",
"prev": "Anterior",
"next": "Siguiente",
"jumpToLine": "Ir a la línea {line}",
"noParsedDiffSections": "No hay secciones de diff analizadas",
"loadingEditor": "Cargando editor...",
"imageZoomIn": "Ampliar",
"imageZoomOut": "Reducir",
"imageZoomReset": "Restablecer zoom"
},
"branchDropdown": {
"toasts": {
"commitCodeCompleted": "Commit de código completado",
"pushCodeCompleted": "Push de código completado",
"committedFiles": "{count, plural, one {# archivo confirmado} other {# archivos confirmados}}",
"taskCompleted": "{label} completado",
"taskFailed": "{label} falló",
"mergeNoNewCommits": "{branchName} no tiene commits nuevos",
"mergedCommits": "{count, plural, one {# commit fusionado} other {# commits fusionados}}",
"allFilesUpToDate": "Todos los archivos están actualizados",
"updatedFiles": "{count, plural, one {# archivo actualizado} other {# archivos actualizados}}",
"openCommitWindowFailed": "No se pudo abrir la ventana de commit",
"openPushWindowFailed": "Error al abrir la ventana de envío",
"upstreamSet": "La rama upstream se ha configurado",
"upstreamSetAndPushed": "Rama upstream configurada y se enviaron {count, plural, one {# commit} other {# commits}}",
"noCommitsToPush": "No hay commits para enviar",
"pushedCommits": "Se enviaron {count, plural, one {# commit} other {# commits}}"
},
"tasks": {
"newBranch": "Crear rama {name}",
"newWorktree": "Crear worktree {name}",
"checkoutTo": "Cambiar a {branchName}",
"mergeBranch": "Fusionar {branchName}",
"rebaseTo": "Rebase a {branchName}",
"deleteBranch": "Eliminar rama {branchName}",
"deleteRemoteBranch": "Eliminar rama remota {branchName}",
"initGitRepo": "Inicializar repositorio Git",
"pullCode": "Hacer pull del código",
"fetchInfo": "Obtener información",
"pushCode": "Enviar código",
"stashChanges": "Guardar cambios en stash",
"stashPop": "Aplicar stash"
},
"confirm": {
"mergeTitle": "Fusionar rama",
"rebaseTitle": "Rebase de rama",
"deleteTitle": "Eliminar rama",
"mergeDescription": "¿Fusionar {branchName} en la rama actual {currentBranch}?",
"rebaseDescription": "¿Hacer rebase de la rama actual {currentBranch} sobre {branchName}?",
"deleteDescription": "¿Eliminar la rama {branchName}? Esta acción no se puede deshacer.",
"forceDeleteTitle": "Forzar eliminación de rama",
"forceDeleteDescription": "La rama {branchName} no está completamente fusionada. ¿Estás seguro de que quieres forzar su eliminación? Esta acción no se puede deshacer.",
"deleteRemoteTitle": "Eliminar rama remota",
"deleteRemoteDescription": "¿Eliminar la rama remota {branchName}? Esto la eliminará del repositorio remoto y no se puede deshacer."
},
"current": "Actual",
"switchToBranch": "Cambiar a esta rama",
"mergeBranchIntoCurrent": "Fusionar {branchName} en {currentBranch}",
"rebaseCurrentToBranch": "Rebase de {currentBranch} sobre {branchName}",
"deleteBranch": "Eliminar rama",
"versionControl": "Control de versiones",
"initGitRepo": "Inicializar repositorio Git",
"pullCode": "Hacer pull del código",
"fetchRemoteBranches": "Obtener ramas remotas",
"openCommitWindow": "Commit de código...",
"pushCode": "Enviar...",
"newBranch": "Nueva rama...",
"newWorktree": "Nuevo worktree...",
"stashChanges": "Guardar cambios...",
"stashPop": "Aplicar stash...",
"manageRemotes": "Gestionar remotos...",
"localBranches": "Ramas locales ({count, plural, one {#} other {#}})",
"noLocalBranches": "Sin ramas locales",
"remoteBranches": "Ramas remotas ({count, plural, one {#} other {#}})",
"noRemoteBranches": "Sin ramas remotas",
"parentBranchHint": "La rama actual fue creada desde {parentBranch}. Haz clic para fusionar {parentBranch} en la rama actual.",
"dialogs": {
"newBranchTitle": "Nueva rama",
"newBranchDescription": "Crear una nueva rama desde la rama actual {branch}",
"branchNamePlaceholder": "Nombre de la rama",
"newWorktreeTitle": "Nuevo worktree",
"newWorktreeDescription": "Crear un nuevo worktree desde la rama actual {branch}",
"branchNameLabel": "Nombre de la rama",
"worktreePathLabel": "Ruta del worktree",
"worktreePathPlaceholder": "Ruta del worktree",
"manageRemotesTitle": "Gestionar remotos",
"manageRemotesEmpty": "No hay remotos configurados",
"remoteNamePlaceholder": "Nombre del remoto",
"remoteUrlPlaceholder": "URL del remoto",
"addRemote": "Añadir",
"savingRemotes": "Guardando..."
},
"conflict": {
"title": "Conflictos de fusión",
"description": "Los siguientes archivos tienen conflictos que necesitan ser resueltos:",
"abort": "Abortar fusión",
"openMergeTool": "Abrir herramienta de fusión",
"completeMerge": "Completar fusión",
"abortSuccess": "Fusión abortada correctamente",
"completeSuccess": "Fusión completada correctamente"
},
"stashDialog": {
"title": "Guardar cambios en stash",
"description": "Guardar los cambios actuales en el stash",
"messageLabel": "Mensaje",
"messagePlaceholder": "Mensaje del stash (opcional)",
"keepIndex": "Mantener índice (los cambios preparados permanecen preparados)",
"cancel": "Cancelar",
"stash": "Guardar",
"success": "Cambios guardados en stash",
"error": "Error al guardar en stash"
},
"unstashDialog": {
"title": "Aplicar stash",
"noStashes": "No hay stashes",
"selectFile": "Selecciona un archivo para ver diferencias",
"viewDiff": "Ver diferencias",
"original": "Original",
"modified": "Modificado",
"apply": "Aplicar",
"drop": "Eliminar",
"applySuccess": "Stash aplicado",
"dropSuccess": "Stash eliminado",
"confirmApply": "¿Aplicar stash {ref} al directorio de trabajo?",
"cancel": "Cancelar"
}
},
"commitDialog": {
"toasts": {
"commitCompleted": "Commit de código completado",
"pushFailed": "Error al enviar",
"committedFiles": "{count, plural, one {# archivo confirmado} other {# archivos confirmados}}",
"addedToVcs": "Añadido a VCS",
"addToVcsFailed": "No se pudo añadir a VCS",
"fileDeleted": "Archivo eliminado",
"deleteFailed": "Error al eliminar",
"fileRolledBack": "Archivo revertido",
"rollbackFailed": "Error al revertir",
"dirRolledBack": "Directorio revertido",
"dirDeleted": "Directorio eliminado"
},
"confirm": {
"deleteTitle": "Confirmar eliminación",
"deleteDescription": "¿Eliminar el archivo \"{file}\"? Esta acción no se puede deshacer.",
"rollbackTitle": "Confirmar reversión",
"rollbackDescription": "¿Revertir el archivo \"{file}\" a HEAD? Se perderán los cambios sin guardar.",
"rollbackDirDescription": "¿Revertir el directorio \"{dir}\" a HEAD? Los cambios no guardados se perderán.",
"deleteDirDescription": "¿Eliminar el directorio \"{dir}\"? Esta acción no se puede deshacer."
},
"actions": {
"select": "Seleccionar",
"unselect": "Deseleccionar",
"rollback": "Revertir",
"addToVcs": "Añadir a VCS"
},
"aria": {
"selectFile": "{action}: {path}",
"unselectAllFiles": "Deseleccionar todos los archivos",
"selectAllFiles": "Seleccionar todos los archivos",
"unselectTracked": "Deseleccionar cambios rastreados",
"selectTracked": "Seleccionar cambios rastreados",
"unselectUntracked": "Deseleccionar archivos no rastreados",
"selectUntracked": "Seleccionar archivos no rastreados"
},
"loading": "Cargando...",
"selectionCount": "{selected} / {total} archivos",
"emptyFiles": "No hay archivos cambiados",
"trackedChanges": "Cambios rastreados ({count})",
"untrackedFiles": "Archivos no rastreados ({count})",
"commitMessage": "Mensaje de commit",
"commitMessagePlaceholder": "Introduce el mensaje de commit...",
"commitButton": "Confirmar ({count})",
"commitAndPushButton": "Confirmar y enviar ({count})",
"head": "HEAD",
"workingTree": "Árbol de trabajo",
"clickFileToDiff": "Haz clic en un nombre de archivo para ver diff",
"loadingDiff": "Cargando diff..."
},
"pushWindow": {
"title": "Enviar código",
"noUnpushedCommits": "No hay commits sin enviar",
"noRemoteConfigured": "No hay remoto Git configurado\nAñade uno en «Gestionar remotos»",
"newBranchNoPushedCommits": "Nueva rama — enviar para crear rama de seguimiento remota",
"unpushed": "Sin enviar",
"selectFileToViewDiff": "Selecciona un archivo para ver las diferencias",
"before": "Antes",
"after": "Después",
"push": "Enviar",
"toasts": {
"pushSuccess": "Envío exitoso",
"pushFailed": "Error al enviar",
"upstreamSet": "Se ha configurado la rama remota",
"upstreamSetAndPushed": "Rama remota configurada y enviados {count} commits",
"noCommitsToPush": "No hay commits para enviar",
"pushedCommits": "Enviados {count} commits"
}
},
"gitLogTab": {
"filesTitle": "Archivos",
"expandAllFiles": "Expandir todos los archivos",
"collapseAllFiles": "Colapsar todos los archivos",
"workspace": "espacio de trabajo",
"retry": "Reintentar",
"noCommitsFound": "No se encontraron commits",
"hash": "Hash del commit",
"copyHash": "Copiar hash",
"copyMessage": "Copiar mensaje",
"author": "Autor",
"noFileChangeDetails": "No hay detalles de cambios de archivo disponibles.",
"branchesTitle": "Ramas",
"loadingBranches": "Cargando ramas...",
"noContainingBranches": "No se encontraron ramas contenedoras.",
"newBranch": "Nueva rama...",
"resetToHere": "Resetear aquí",
"resetDisabledReasonNotCurrentBranchView": "Disponible solo al ver la rama actual",
"viewCommitDiffAria": "Ver diff del commit {hash}",
"copyFullCommitHashAria": "Copiar hash completo del commit {hash}",
"pushStatus": {
"pushed": "Enviado al remoto",
"notPushed": "No enviado al remoto",
"unknown": "Estado de push desconocido (sin upstream configurado)"
},
"time": {
"monthsAgo": "{count, plural, one {hace # mes} other {hace # meses}}",
"daysAgo": "{count, plural, one {hace # día} other {hace # días}}",
"hoursAgo": "{count, plural, one {hace # hora} other {hace # horas}}",
"minsAgo": "{count, plural, one {hace # min} other {hace # mins}}",
"justNow": "justo ahora"
},
"toasts": {
"createdAndSwitchedNewBranch": "Nueva rama creada y activada",
"newBranchFromCommit": "{name} (desde {shortHash})",
"createBranchFailed": "No se pudo crear la rama",
"openPushWindowFailed": "No se pudo abrir la ventana de envío",
"resetSuccess": "Reset completado",
"resetSuccessDescription": "{branch} se reseteó a {shortHash} con {mode}",
"resetFailed": "Falló el reset"
},
"branchSelector": {
"selectBranchPlaceholder": "Seleccionar rama...",
"localBranches": "Ramas locales",
"current": "Actual",
"remoteBranches": "Ramas remotas",
"refreshCommitHistory": "Actualizar historial de commits"
},
"dialogs": {
"newBranchTitle": "Nueva rama",
"newBranchDescription": "Crea una nueva rama con el commit {shortHash} como último commit.",
"branchNamePlaceholder": "Nombre de la rama",
"reset": {
"title": "Resetear la rama actual hasta aquí",
"branchLabel": "Rama",
"targetLabel": "Commit objetivo",
"messageLabel": "Mensaje",
"modeLabel": "Modo de reset",
"confirmButton": "Resetear",
"modes": {
"soft": {
"label": "--soft",
"description": "Mueve HEAD y el puntero de la rama actual al commit objetivo.\nMantiene Index y Working Tree sin cambios.\nLos cambios de los commits retirados permanecen en estado staged."
},
"mixed": {
"label": "--mixed (predeterminado)",
"description": "Mueve HEAD al commit objetivo.\nResetea Index al commit objetivo y mantiene los cambios en Working Tree.\nLos cambios pasan de staged a unstaged."
},
"hard": {
"label": "--hard",
"description": "Mueve HEAD y resetea tanto Index como Working Tree al commit objetivo.\nSe descartan los cambios locales rastreados posteriores al commit objetivo.\nEs una operación destructiva."
},
"keep": {
"label": "--keep",
"description": "Mueve HEAD al commit objetivo e intenta conservar los cambios locales.\nSolo se conservan cambios que no entren en conflicto.\nSi hay conflictos, el reset se aborta para proteger tu trabajo."
}
}
}
}
},
"gitChangesTab": {
"workspace": "espacio de trabajo",
"noChanges": "No hay cambios locales",
"trackedChanges": "Cambios rastreados ({count})",
"untrackedFiles": "Archivos no rastreados ({count})",
"expandTracked": "Expandir cambios rastreados",
"collapseTracked": "Colapsar cambios rastreados",
"expandUntracked": "Expandir archivos no rastreados",
"collapseUntracked": "Colapsar archivos no rastreados",
"actions": {
"commitCode": "Hacer commit del código",
"rollback": "Revertir",
"addToVcs": "Añadir a VCS",
"delete": "Eliminar"
},
"toasts": {
"noAddableFilesInDir": "No hay archivos cambiados en este directorio para añadir a VCS",
"noRollbackFilesInDir": "No hay archivos cambiados en este directorio para revertir",
"addedToVcs": "Se añadió {name} a VCS",
"addToVcsFailed": "No se pudo añadir a VCS",
"openCommitWindowFailed": "No se pudo abrir la ventana de commit",
"rolledBack": "Se revirtió {name}",
"rollbackFailed": "Error al revertir",
"addedFilesToVcs": "Se añadieron {count, plural, one {# archivo} other {# archivos}} a VCS",
"rolledBackFiles": "Se revirtieron {count, plural, one {# archivo} other {# archivos}}",
"deleted": "Se eliminó {name}",
"deleteFailed": "Error al eliminar",
"deletedFiles": "Se eliminaron {count} archivos",
"noDeletableFilesInDir": "No hay archivos modificados en este directorio que se puedan eliminar"
},
"directoryDialog": {
"descriptionAdd": "Selecciona archivos bajo el directorio {path} para añadir a VCS.",
"descriptionRollback": "Selecciona archivos bajo el directorio {path} para revertir.",
"descriptionDelete": "Selecciona archivos bajo el directorio {path} para eliminar. Esta acción no se puede deshacer.",
"descriptionFallback": "Selecciona archivos para continuar.",
"selectionCount": "Seleccionados {selected} / {total} archivos",
"selectAll": "Seleccionar todo",
"unselectAll": "Deseleccionar todo",
"loadingCandidates": "Cargando cambios del directorio...",
"noOperableFiles": "No hay archivos operables"
},
"rollbackConfirm": {
"title": "Confirmar reversión",
"descriptionWithTarget": "¿Revertir cambios locales de {kind} \"{name}\"?",
"descriptionFallback": "¿Revertir cambios locales?",
"kindDirectory": "directorio",
"kindFile": "archivo"
},
"deleteConfirm": {
"title": "Confirmar eliminación",
"descriptionWithTarget": "¿Eliminar {kind} \"{name}\"? Esta acción no se puede deshacer.",
"descriptionFallback": "Esta acción no se puede deshacer.",
"kindDirectory": "directorio",
"kindFile": "archivo"
}
},
"tabContext": {
"loadingConversation": "Cargando...",
"untitledConversation": "Conversación sin título",
"newConversation": "Nueva conversación"
},
"fileTreeTab": {
"workspace": "Espacio de trabajo",
"retry": "Reintentar",
"git": "Git",
"openInFileManager": "Abrir en el gestor de archivos",
"openInFinder": "Abrir en Finder",
"openInExplorer": "Abrir en Explorer",
"attachToCurrentSession": "Agregar a la sesión",
"compareWithBranch": "Comparar con rama...",
"reloadFromDisk": "Recargar desde disco",
"new": "Nuevo",
"newFile": "Archivo",
"newDirectory": "Directorio",
"openIn": "Abrir en",
"openInTerminal": "Abrir en terminal",
"actions": {
"select": "Seleccionar",
"unselect": "Deseleccionar",
"commitCode": "Confirmar código",
"rollback": "Revertir",
"addToVcs": "Añadir a VCS"
},
"aria": {
"selectPath": "{action}: {path}"
},
"toasts": {
"openDirectoryFailed": "No se pudo abrir el directorio",
"openBuiltinTerminalFailed": "No se pudo abrir la terminal integrada",
"openCommitWindowFailed": "No se pudo abrir la ventana de commit",
"noAddableFilesInDir": "No hay archivos modificados en este directorio que se puedan añadir a VCS",
"noRollbackFilesInDir": "No hay archivos modificados en este directorio que se puedan revertir",
"addedToVcs": "Se añadió {name} a VCS",
"addToVcsFailed": "No se pudo añadir a VCS",
"loadBranchesFailed": "No se pudieron cargar las ramas",
"renameFailed": "Error al renombrar",
"deleteFailed": "Error al eliminar",
"rolledBack": "Se revirtió {name}",
"rollbackFailed": "Error al revertir",
"addedFilesToVcs": "{count, plural, one {Se añadió # archivo a VCS} other {Se añadieron # archivos a VCS}}",
"rolledBackFiles": "{count, plural, one {Se revirtió # archivo} other {Se revirtieron # archivos}}",
"savedAsCopy": "Guardado como copia",
"saveCopyFailed": "No se pudo guardar como copia",
"watchStartFailed": "No se pudo iniciar la vigilancia de archivos",
"createFailed": "Error al crear"
},
"createDialog": {
"newFile": "Nuevo archivo",
"newDirectory": "Nuevo directorio",
"description": "Ingrese un nombre para el nuevo {kind}.",
"placeholderFile": "file-name.ext",
"placeholderDirectory": "folder-name"
},
"renameDialog": {
"renameDirectory": "Renombrar directorio",
"renameFile": "Renombrar archivo",
"description": "Introduce un nuevo nombre (solo nombre, sin ruta).",
"placeholderDirectory": "nuevo-nombre-carpeta",
"placeholderFile": "nuevo-nombre-archivo.ext"
},
"directoryDialog": {
"descriptionAdd": "Selecciona archivos del directorio {path} para añadir a VCS.",
"descriptionRollback": "Selecciona archivos del directorio {path} para revertir.",
"descriptionFallback": "Selecciona archivos para continuar.",
"selectionCount": "Seleccionados {selected} / {total} archivos",
"selectAll": "Seleccionar todo",
"unselectAll": "Deseleccionar todo",
"loadingCandidates": "Cargando cambios del directorio...",
"noOperableFiles": "No hay archivos operables"
},
"compareDialog": {
"title": "Comparar con rama",
"descriptionWithTarget": "Selecciona una rama y compara con {kind} {path}",
"descriptionFallback": "Selecciona una rama para comparar.",
"kindDirectory": "directorio",
"kindFile": "archivo",
"filterPlaceholder": "Filtra ramas, p. ej. main / origin/main",
"singleClickHint": "Haz clic en una rama para comparar directamente",
"loadingBranches": "Cargando ramas...",
"recentBranches": "Ramas recientes ({count})",
"noCurrentBranch": "Sin rama actual",
"localBranches": "Ramas locales ({count})",
"remoteBranches": "Ramas remotas ({count})",
"noMatchingBranches": "No hay ramas coincidentes"
},
"externalConflictDialog": {
"title": "Se detectaron cambios externos en archivos",
"descriptionWithPath": "El archivo {path} cambió en disco y las ediciones actuales no están guardadas.",
"descriptionFallback": "El archivo actual cambió en disco y las ediciones actuales no están guardadas.",
"compare": "Comparar",
"savingCopy": "Guardando copia...",
"saveAsCopy": "Guardar como copia",
"reload": "Recargar"
},
"deleteConfirm": {
"title": "Confirmar eliminación",
"descriptionWithTarget": "¿Eliminar {kind} \"{name}\"? Esta acción no se puede deshacer.",
"descriptionFallback": "Esta acción no se puede deshacer.",
"kindDirectory": "directorio",
"kindFile": "archivo"
},
"rollbackConfirm": {
"title": "Confirmar reversión",
"descriptionWithTarget": "¿Revertir cambios locales del archivo \"{name}\"?",
"descriptionFallback": "¿Revertir cambios locales de este archivo?"
},
"terminalTitle": "Consola · {name}"
},
"commandDropdown": {
"loading": "Cargando...",
"addCommand": "Agregar comando",
"manageCommands": "Gestionar comandos...",
"runCommandTitle": "Ejecutar: {command}",
"stopCommandTitle": "Detener: {command}",
"manageDialog": {
"title": "Gestionar comandos",
"empty": "Aún no hay comandos",
"namePlaceholder": "Nombre",
"commandPlaceholder": "Comando",
"add": "Agregar",
"saving": "Guardando..."
}
},
"workspaceContext": {
"confirmCloseDirtyTab": "¿Cerrar \"{title}\" sin guardar?",
"confirmCloseOtherDirtyTabs": "¿Cerrar otras pestañas con cambios sin guardar?",
"confirmCloseAllDirtyTabs": "¿Cerrar todas las pestañas con cambios sin guardar?",
"unableLoadContent": "No se puede cargar el contenido.\n\n{message}",
"previewRequestTimedOut": "La solicitud de vista previa agotó el tiempo",
"diffRequestTimedOut": "La solicitud de Diff agotó el tiempo",
"branchCompareRequestTimedOut": "La solicitud de comparación de ramas agotó el tiempo",
"commitDiffRequestTimedOut": "La solicitud de Diff de commit agotó el tiempo",
"saveRequestTimedOut": "La solicitud de guardado agotó el tiempo",
"reloadRequestTimedOut": "La solicitud de recarga agotó el tiempo",
"noChanges": "Sin cambios.",
"noDiffOutput": "Sin salida de diff.",
"diffTitleWorkspace": "Diferencias · Espacio de trabajo",
"diffDescriptionWorkingTree": "Árbol de trabajo (HEAD)",
"diffTitleFile": "Diferencias · {name}",
"compareTitleFile": "Comparar · {name}",
"compareTitleBranch": "Comparar · {branch}",
"compareDescriptionPath": "{path} · comparar con {branch}",
"compareDescriptionBranch": "comparar con {branch}",
"diffTitleCommitFile": "Diferencias · {name} @ {hash}",
"diffTitleCommit": "Diferencias · {hash}",
"diffDescriptionCommitPath": "{path} · confirmación {commit}",
"diffDescriptionCommit": "confirmación {commit}",
"diffTitleConflictFile": "Conflicto · {name}",
"diffDescriptionConflict": "{path} · disco vs sin guardar"
},
"chat": {
"acpConnections": {
"actions": {
"openAgentsSettings": "Abrir ajustes de agentes",
"retry": "Reintentar"
},
"agentsSetupHint": "Abre Ajustes > Agentes para gestionar la instalación.",
"withSetupHint": "{message}\n{hint}",
"blocked": {
"missingConfig": "No se puede leer la configuración actual del agente.",
"disabled": "{agent} está deshabilitado en Ajustes de agentes. Actívalo antes de conectar.",
"unavailable": "{agent} no está disponible en la plataforma actual.",
"sdkMissing": "El SDK de {agent} no está instalado"
},
"backendErrors": {
"initializeTimeout": "Se agotó el tiempo del handshake de conexión de {agent} (sin respuesta tras 60 segundos). Abre Ajustes para revisar la configuración del agente y de la red.",
"processExited": "El proceso de {agent} terminó inesperadamente.",
"spawnFailed": "No se pudo iniciar {agent}: {message}",
"downloadFailed": "La descarga de {agent} falló: {message}"
},
"unableReadAgentConfig": "No se puede leer la configuración del agente: {message}",
"connectFailedTitle": "Falló la conexión de {agent}",
"toolFallbackTitle": "Herramienta",
"eventErrorTitle": "Error del agente",
"notificationTurnComplete": "{agent} ha terminado de responder",
"notificationError": "{agent} error: {message}",
"claudeApiRetry": {
"fallbackError": "authentication_failed",
"retryingWithMax": "reintentando {attempt}/{max}",
"retryingAttempt": "reintentando intento {attempt}",
"retrying": "reintentando",
"nextRetryIn": "siguiente en {seconds}s",
"line": "{error}{status} · {retry}",
"lineWithDelay": "{error}{status} · {retry}, {delay}",
"httpStatus": " (HTTP {status})"
}
},
"connectionLifecycle": {
"tasks": {
"connectingTitle": "Conectando con {agent}",
"connectingDescription": "Estableciendo conexión",
"loadingSelectorsTitle": "Cargando selectores de {agent}",
"loadingSelectorsDescription": "Obteniendo opciones de modo y configuración de sesión",
"initSessionTitle": "Initializing {agent} session",
"initSessionDescription": "Creating session and loading configuration"
},
"errors": {
"connectionFailed": "Conexión fallida"
}
},
"shared": {
"attachedResources": "Recursos adjuntos",
"toolCallFailed": "Falló la llamada de herramienta"
},
"messageThread": {
"emptyTitle": "Aún no hay mensajes",
"emptyDescription": "Inicia una conversación para ver mensajes aquí"
},
"chatInput": {
"connecting": "Conectando...",
"agentResponding": "{agent} está respondiendo...",
"sendMessage": "Enviar un mensaje..."
},
"messageInput": {
"askAnything": "Pregunta lo que sea...",
"removeAttachmentAria": "Quitar {name}",
"attachFiles": "Adjuntar archivos",
"dropFilesToAttach": "Suelta archivos para adjuntar",
"loadingSettings": "Cargando ajustes...",
"loadingMode": "Cargando modo...",
"cancel": "Cancelar",
"send": "Enviar",
"forkAndSend": "Fork y Enviar",
"slashCommands": "Comandos de barra",
"expertSkills": "Habilidades de expertos",
"expertsEmptyForAgent": "Este agente no tiene expertos habilitados. Actívalos en Configuración > Expertos."
},
"messageQueue": {
"addToQueue": "Agregar a la cola",
"saveEdit": "Guardar",
"cancelEdit": "Cancelar edición",
"editItem": "Editar",
"deleteItem": "Eliminar"
},
"welcomeInputPanel": {
"agentsSettingsPath": "Ajustes > Agentes",
"autoConnectFallback": "Haz clic para abrir {path} y gestionar la instalación.",
"autoConnectAppend": "{message}. Haz clic para abrir {path} y gestionar la instalación.",
"enableAgentFirstPlaceholder": "Habilita al menos un agente antes de iniciar una sesión...",
"askAnythingPlaceholder": "Pregunta lo que sea..."
},
"agentSelector": {
"noEnabledAgents": "No hay agentes habilitados",
"openAgentsSettings": "Abrir ajustes de agentes"
},
"agentPlanOverlay": {
"title": "Plan del agente",
"collapsePlanAria": "Contraer plan",
"collapsedSummary": "Plan de trabajo {completed}/{total}",
"status": {
"completed": "Completado",
"inProgress": "En progreso",
"pending": "Pendiente",
"unknown": "Desconocido"
},
"priority": {
"high": "Alta",
"medium": "Media",
"low": "Baja",
"unknown": "Desconocida"
}
},
"permissionDialog": {
"subtitle": "El agente solicita permiso para continuar este turno.",
"kindFallbackTool": "herramienta",
"command": "Comando",
"cwd": "Directorio de trabajo: {cwd}",
"filesSummary": "Archivos: {count}",
"moreFiles": "+{count} archivos más",
"plan": "Plan de trabajo",
"allowedActions": "Acciones permitidas",
"targetMode": "Modo objetivo: {mode}"
},
"questionDialog": {
"title": "El agente está haciendo una pregunta",
"placeholder": "Escribe tu respuesta...",
"send": "Enviar"
},
"messageBranch": {
"previousBranchAria": "Rama anterior",
"nextBranchAria": "Rama siguiente",
"pageOf": "{current} de {total}"
},
"terminal": {
"title": "Consola",
"running": "En ejecución"
},
"reasoning": {
"thinking": "Pensando…",
"thoughtForFewSeconds": "Pensamiento",
"thoughtForSeconds": "Pensamiento"
},
"linkSafety": {
"localFileTitle": "¿Abrir archivo local?",
"externalLinkTitle": "¿Abrir enlace externo?",
"localFileDescription": "Está a punto de abrir un archivo local en el panel de archivos.",
"externalLinkDescription": "Está a punto de visitar un sitio web externo.",
"cancel": "Cancelar",
"opening": "Abriendo…",
"openFile": "Abrir archivo",
"openLink": "Abrir enlace",
"errorCannotOpen": "No se puede abrir el archivo local",
"errorNoWorkspace": "No hay ninguna carpeta de espacio de trabajo activa.",
"errorOutsideWorkspace": "El archivo está fuera de la carpeta del espacio de trabajo actual.",
"errorFailedOpen": "Error al abrir el archivo local",
"errorFailedLink": "Error al abrir el enlace"
},
"messageList": {
"attachedResources": "Recursos adjuntos",
"loading": "Cargando...",
"error": "Error del chat: {message}",
"emptyConversation": "No hay mensajes en esta conversación.",
"systemMessage": "Mensaje del sistema",
"copyMessage": "Copiar",
"copied": "Copiado"
},
"liveTurnStats": {
"thinking": "Pensando...",
"streaming": "Transmitiendo",
"elapsedHours": "{value} h",
"elapsedMinutes": "{value} min",
"elapsedSeconds": "{value} s",
"toolUseCount": "{count} herramienta {count, plural, one {use} other {uses}}"
},
"tool": {
"parameters": "Parámetros",
"error": "Error de herramienta",
"result": "Resultado",
"status": {
"approvalRequested": "Esperando aprobación",
"approvalResponded": "Respondido",
"inputAvailable": "En ejecución",
"inputStreaming": "Pendiente",
"outputAvailable": "Completado",
"outputDenied": "Denegado",
"outputError": "Error de salida"
}
},
"toolCallBlock": {
"tool": "Herramienta",
"error": "Error de ejecución",
"result": "Resultado"
},
"contentParts": {
"showingTailOutput": "Mostrando la salida final durante el streaming para mejorar el rendimiento.",
"result": "Resultado",
"unknown": "desconocido",
"inputTruncated": "La entrada fue truncada — el diff puede estar incompleto.",
"replaceAll": "REEMPLAZAR TODO",
"filesCount": "Archivos: {count}",
"update": "actualizar",
"moreFiles": "+{count} archivos más",
"timeoutMs": "Tiempo de espera: {timeout}ms",
"backgroundTrue": "Segundo plano: true",
"offset": "Desplazamiento: {offset}",
"limit": "Límite: {limit}",
"pages": "Páginas: {pages}",
"mode": "Modo: {mode}",
"cell": "Celda: {cell}",
"pathLabel": "Ruta:",
"globLabel": "Patrón glob:",
"typeLabel": "Tipo:",
"outputLabel": "Salida:",
"caseInsensitive": "Sin distinguir mayúsculas/minúsculas",
"multiline": "Multilínea",
"promptLabel": "Instrucción",
"subjectLabel": "Asunto",
"taskLabel": "Tarea",
"nameLabel": "Nombre:",
"agentPromptLabel": "Instrucción",
"agentModelLabel": "Modelo",
"agentStatsBash": "Comandos",
"agentStatsRead": "Archivos leídos",
"agentStatsSearch": "Búsquedas",
"agentStatsEdit": "Ediciones",
"agentStatsOther": "Otros",
"field": {
"file": "Archivo",
"notebook": "Cuaderno",
"command": "Comando",
"old": "Anterior",
"new": "Nuevo",
"pattern": "Patrón",
"path": "Ruta",
"query": "Consulta",
"url": "URL:",
"description": "Descripción",
"content": "Contenido",
"source": "Fuente",
"prompt": "Instrucción",
"subject": "Asunto",
"taskId": "ID de tarea",
"status": "Estado",
"skill": "Skill",
"args": "Argumentos",
"offset": "Desplazamiento",
"limit": "Límite",
"glob": "Patrón glob",
"type": "Tipo",
"output": "Salida",
"replaceAll": "Reemplazar todo",
"language": "Idioma",
"timeout": "Tiempo de espera",
"background": "Segundo plano",
"agentType": "Tipo de agente",
"library": "Biblioteca",
"libraryId": "ID de biblioteca"
},
"title": {
"edit": "Editar",
"command": "Comando",
"todoWrite": "TodoWrite (actualización de tareas)",
"read": "Leer",
"write": "Escribir",
"notebookEdit": "NotebookEdit (edición de cuaderno)",
"editFiles": "Editar ({count} archivos)",
"editWithTarget": "Editar {target}",
"readWithTarget": "Leer {target}",
"writeWithTarget": "Escribir {target}",
"notebookEditWithTarget": "NotebookEdit ({target})",
"globWithPattern": "Patrón glob {pattern}",
"grepWithPattern": "Patrón grep {pattern}",
"taskCreateWithSubject": "Crear tarea: {subject}",
"taskUpdateWithStatus": "Actualizar tarea #{id} -> {status}",
"taskUpdate": "Actualizar tarea #{id}",
"webFetchWithUrl": "WebFetch ({url})",
"webSearchWithQuery": "Búsqueda web: {query}",
"todosProgress": "Tareas ({done}/{total})",
"skillWithName": "Skill: {name}",
"genericWithContext": "{tool} ({context})"
}
}
},
"diffPreview": {
"mode": {
"added": "Añadido",
"deleted": "Eliminado",
"renamed": "Renombrado",
"modified": "Modificado"
},
"hunkLabel": "Bloque {index}",
"loadingHunk": "Cargando hunk...",
"noDiffData": "Sin datos de diff"
}
},
"ProjectBoot": {
"title": "Inicio de Proyecto",
"tabs": {
"shadcn": "shadcn"
},
"config": {
"base": "Base",
"style": "Estilo",
"baseColor": "Color base",
"theme": "Tema",
"chartColor": "Color del gráfico",
"iconLibrary": "Biblioteca de iconos",
"font": "Fuente",
"fontHeading": "Fuente de título",
"menuAccent": "Acento del menú",
"menuColor": "Color del menú",
"radius": "Radio",
"template": "Plantilla",
"createProject": "Crear proyecto",
"sectionStyle": "Estilo",
"sectionColors": "Colores",
"sectionTypography": "Tipografía",
"sectionInterface": "Interfaz"
},
"preview": {
"loading": "Cargando vista previa..."
},
"createDialog": {
"title": "Crear proyecto",
"projectName": "Nombre del proyecto",
"projectNamePlaceholder": "my-app",
"frameworkTemplate": "Plantilla del framework",
"packageManager": "Gestor de paquetes",
"saveDirectory": "Directorio de guardado",
"saveDirectoryPlaceholder": "Seleccionar directorio...",
"browseDirectory": "Explorar",
"projectPath": "El proyecto se creará en: {path}",
"advancedOptions": "Opciones Avanzadas",
"base": "Biblioteca Base",
"enableRtl": "Habilitar Soporte RTL",
"enableRtlDescription": "Habilitar soporte de diseño para idiomas de derecha a izquierda (ej. árabe, hebreo)",
"pmChecking": "Verificando...",
"pmNotInstalled": "No instalado",
"cancel": "Cancelar",
"create": "Crear",
"creating": "Creando proyecto..."
},
"toasts": {
"createFailed": "Error al crear el proyecto",
"createSuccess": "Proyecto creado exitosamente"
},
"errors": {
"directoryExists": "El directorio de destino ya existe",
"commandFailed": "El comando de creación del proyecto falló."
}
},
"WebServiceSettings": {
"sectionTitle": "Servicio Web",
"sectionDescription": "Habilitar para acceder a Codeg de forma remota a través del navegador",
"port": "Puerto",
"status": "Estado",
"running": "En ejecución",
"stopped": "Detenido",
"processing": "Procesando...",
"start": "Iniciar",
"stop": "Detener",
"startFailed": "Error al iniciar",
"stopFailed": "Error al detener",
"open": "Abrir",
"hide": "Ocultar",
"show": "Mostrar",
"copy": "Copiar",
"addressLabel": "Dirección de acceso",
"tokenLabel": "Token de acceso",
"tokenHint": "Ingrese este token al acceder al cliente Web por primera vez"
},
"DirectoryBrowser": {
"title": "Explorar directorio",
"pathPlaceholder": "Ingrese la ruta del directorio...",
"goHome": "Ir al directorio principal",
"navigateUp": "Ir al directorio superior",
"select": "Seleccionar",
"cancel": "Cancelar",
"loading": "Cargando...",
"emptyDirectory": "Este directorio está vacío",
"errorLoadingDir": "Error al cargar el directorio",
"permissionDenied": "Permiso denegado"
},
"ChatChannelSettings": {
"loading": "Cargando...",
"sectionTitle": "Canales de chat",
"sectionDescription": "Configure bots de IM para recibir notificaciones de eventos y consultar actividad de codificación.",
"addChannel": "Agregar canal",
"noChannels": "Aún no se han configurado canales de chat.",
"channelName": "Nombre",
"channelNamePlaceholder": "Mi bot de Telegram",
"channelType": "Tipo de canal",
"lark": "Lark (Feishu)",
"weixin": "WeChat",
"dailyReport": "Informe diario",
"dailyReportTime": "Hora del informe",
"nameRequired": "El nombre del canal es obligatorio.",
"tokenRequired": "El token es obligatorio.",
"chatIdRequired": "El Chat ID es obligatorio.",
"loadFailed": "Error al cargar los canales.",
"saveFailed": "Error al guardar los cambios.",
"connectSuccess": "Canal conectado.",
"connectFailed": "Error al conectar",
"disconnectSuccess": "Canal desconectado.",
"disconnectFailed": "Error al desconectar.",
"testSuccess": "Prueba de conexión exitosa.",
"testFailed": "Prueba de conexión fallida",
"deleteSuccess": "Canal eliminado.",
"deleteFailed": "Error al eliminar el canal.",
"deleteConfirmTitle": "Eliminar canal",
"deleteConfirmMessage": "Se eliminará permanentemente el canal y sus registros de mensajes. ¿Está seguro?",
"cancel": "Cancelar",
"delete": "Eliminar",
"create": "Crear",
"save": "Guardar",
"channelListTitle": "Canales configurados",
"channelListDescription": "Los canales habilitados se conectarán automáticamente al iniciar el servicio.",
"editChannel": "Editar canal",
"editSuccess": "Canal actualizado.",
"tokenPlaceholderKeep": "Dejar vacío para mantener actual",
"weixinScanTitle": "Escanear código QR",
"weixinScanDescription": "Abra WeChat y escanee el código QR para conectarse.",
"weixinQrcodeExpired": "El código QR ha expirado.",
"weixinRefreshQrcode": "Actualizar",
"weixinWaitingScan": "Esperando escaneo...",
"weixinPollError": "Conexión inestable, reintentando...",
"weixinReconnectNotice": "Debido a limitaciones del protocolo iLink, después de cada reconexión debes enviar un mensaje al bot para que los activadores de eventos surtan efecto.",
"connect": "Conectar",
"disconnect": "Desconectar",
"test": "Probar conexión",
"tabs": {
"channels": "Canales",
"commands": "Comandos",
"events": "Eventos",
"other": "Otros"
},
"commands": {
"title": "Comandos integrados",
"description": "Comandos de bot disponibles en los canales de chat. En chats grupales, se requiere @Bot para procesar mensajes.",
"prefixLabel": "Prefijo de comando",
"prefixDescription": "1-3 caracteres no alfanuméricos para activar comandos del bot (por defecto /).",
"prefixSaved": "Prefijo de comando guardado.",
"prefixSaveFailed": "Error al guardar el prefijo.",
"prefixInvalid": "El prefijo debe ser de 1-3 caracteres no alfanuméricos.",
"save": "Guardar",
"folderDesc": "Seleccionar carpeta de trabajo",
"agentDesc": "Seleccionar agente de IA",
"taskDesc": "Crear sesión y ejecutar tarea",
"sessionsDesc": "Listar sesiones activas en la carpeta",
"resumeDesc": "Conversaciones recientes / reanudar una sesión",
"cancelDesc": "Cancelar tarea actual",
"approveDesc": "Aprobar solicitud de permiso del agente",
"denyDesc": "Denegar solicitud de permiso del agente",
"searchDesc": "Buscar conversaciones por palabra clave",
"todayDesc": "Resumen de actividad de hoy",
"statusDesc": "Estado de conexión del canal",
"helpDesc": "Mostrar ayuda"
},
"events": {
"title": "Notificaciones de eventos",
"description": "Al habilitar eventos, se enviarán al canal cuando se activen.",
"turnComplete": "Turno completado",
"turnCompleteDesc": "Cuando finaliza un turno del agente",
"error": "Error del agente",
"errorDesc": "Cuando un agente encuentra un error",
"saved": "Filtro de eventos actualizado.",
"saveFailed": "Error al guardar el filtro de eventos."
},
"language": {
"title": "Idioma de mensajes",
"description": "Idioma utilizado para las notificaciones de eventos, respuestas de comandos e informes diarios enviados a los canales de chat.",
"saved": "Idioma de mensajes guardado.",
"saveFailed": "Error al guardar el idioma de mensajes.",
"en": "Inglés",
"zh-cn": "Chino simplificado",
"zh-tw": "Chino tradicional",
"ja": "Japonés",
"ko": "Coreano",
"es": "Español",
"de": "Alemán",
"fr": "Francés",
"pt": "Portugués",
"ar": "Árabe"
}
},
"ModelProviderSettings": {
"sectionTitle": "Proveedores de Modelos",
"sectionDescription": "Gestionar las credenciales de proveedores API para agentes.",
"filterAll": "Todos",
"providerListTitle": "Proveedores Configurados",
"addProvider": "Agregar Proveedor",
"editProvider": "Editar Proveedor",
"noProviders": "Aún no se han configurado proveedores de modelos.",
"providerName": "Nombre",
"providerNamePlaceholder": "Ej. OpenAI, Anthropic",
"apiUrl": "URL de API",
"apiUrlPlaceholder": "https://api.openai.com/v1",
"apiKey": "Clave API",
"apiKeyPlaceholder": "sk-...",
"apiKeyKeepCurrent": "Dejar vacío para mantener actual",
"agentTypes": "Tipos de Agente",
"agentTypesRequired": "Se requiere al menos un tipo de agente.",
"nameRequired": "El nombre del proveedor es obligatorio.",
"apiUrlRequired": "La URL de API es obligatoria.",
"apiKeyRequired": "La clave API es obligatoria.",
"loadFailed": "Error al cargar proveedores.",
"saveFailed": "Error al guardar cambios.",
"createSuccess": "Proveedor creado.",
"editSuccess": "Proveedor actualizado.",
"deleteSuccess": "Proveedor eliminado.",
"deleteConfirmTitle": "Eliminar Proveedor",
"deleteConfirmMessage": "Esto eliminará permanentemente el proveedor \"{name}\". ¿Está seguro?",
"deleteBlockedByAgent": "{agents} está usando este proveedor. Desvincúlelo antes de eliminarlo.",
"cancel": "Cancelar",
"delete": "Eliminar",
"create": "Crear",
"save": "Guardar"
},
"ExpertsSettings": {
"title": "Habilidades de expertos",
"description": "Habilita flujos de trabajo de habilidades cuidadosamente seleccionadas y probadas en la práctica para tus agentes de codificación de IA. Cada experto es una habilidad independiente del proyecto superpowers — codeg gestiona la copia central y la vincula a los agentes que elijas.",
"loading": "Cargando expertos…",
"loadingContent": "Cargando contenido…",
"emptyExperts": "No hay expertos disponibles. Revisa los registros de la aplicación.",
"emptySelection": "Selecciona un experto para ver su contenido y gestionar la activación.",
"emptySearch": "Ningún experto coincide con la búsqueda actual.",
"searchPlaceholder": "Buscar expertos por nombre, ID o descripción",
"enableForAgents": "Habilitar para agentes",
"noAgents": "No se detectaron agentes ACP.",
"copyModeWarning": "Copiado (no vinculado). Vuelve a habilitarlo después de actualizar codeg para obtener la última versión.",
"previewTitle": "Vista previa de SKILL.md",
"categories": {
"discovery": "Descubrimiento y diseño",
"planning": "Planificación",
"execution": "Ejecución",
"quality": "Calidad y pruebas",
"debugging": "Depuración",
"review": "Revisión e integración",
"meta": "Meta"
},
"states": {
"not_linked": "No habilitado",
"linked_to_codeg": "Habilitado",
"linked_elsewhere": "Bloqueado — existe otro vínculo",
"blocked_by_real_directory": "Bloqueado — una habilidad personalizada ocupa este nombre",
"broken": "Vínculo roto"
},
"badges": {
"userModified": "Modificado por el usuario"
},
"actions": {
"openCentralDir": "Abrir carpeta central",
"refresh": "Actualizar"
},
"toasts": {
"loadFailed": "Error al cargar los detalles del experto",
"enabled": "Experto habilitado para este agente",
"disabled": "Experto deshabilitado para este agente",
"enableFailed": "Error al habilitar el experto",
"disableFailed": "Error al deshabilitar el experto",
"openFolderFailed": "Error al abrir la carpeta"
}
}
}