{ "agent-team": { "trigger": "Equipo de agentes", "loading": "Cargando el equipo…", "unavailable": "El equipo no está disponible", "failure": "Registro de equipo guardado no válido: {message}", "empty": "Aún no hay tareas compartidas. Créalas desde la conversación.", "roster": "Miembros", "tasks": "Tareas compartidas", "model": "Modelo", "open": "Abrir la conversación del miembro", "current": "Chat actual", "owner": "Responsable", "unowned": "Sin responsable", "blockedBy": "Bloqueada por", "writeScopes": "Ámbitos de escritura", "ready": "Preparada", "blocked": "Bloqueada por dependencias", "task.expand": "Mostrar más", "task.collapse": "Mostrar menos", "memberStatus.running": "En ejecución", "memberStatus.inactive": "Inactivo", "memberStatus.provisioning": "Aprovisionando", "memberStatus.failed": "Fallido", "status.pending": "Pendiente", "status.in_progress": "En curso", "status.completed": "Completada" }, "approval": { "waiting": "Esperando la aprobación", "detail.aria": "Detalles de la aprobación", "escalation": "La herramienta {toolName} solicita una ejecución privilegiada", "reject": "Rechazar", "allowOnce": "Permitir una vez" }, "chat": { "message.stepProcess.thinking": "Analizando la solicitud", "message.stepProcess.read": "Leyendo archivos", "message.stepProcess.readImage": "Leyendo imágenes", "message.stepProcess.write": "Escribiendo archivos", "message.stepProcess.search": "Buscando en el código", "message.stepProcess.edit": "Editando archivos", "message.stepProcess.commands": "Ejecutando comandos", "message.stepProcess.code": "Ejecutando código", "message.stepProcess.webSearch": "Buscando en la web", "message.stepProcess.webFetch": "Visitando páginas web", "message.stepProcess.subagents": "Coordinando subagentes", "message.stepProcess.plan": "Actualizando el plan", "message.stepProcess.questions": "Esperando tu acción", "message.stepProcess.tools": "Llamando a herramientas", "message.stepProcess.prepare.read": "Preparando la lectura de archivos", "message.stepProcess.prepare.readImage": "Preparando la lectura de imágenes", "message.stepProcess.prepare.write": "Preparando la escritura de archivos", "message.stepProcess.prepare.search": "Preparando la búsqueda en el código", "message.stepProcess.prepare.edit": "Preparando la edición de archivos", "message.stepProcess.prepare.commands": "Preparando la ejecución de comandos", "message.stepProcess.prepare.code": "Preparando la ejecución de código", "message.stepProcess.prepare.webSearch": "Preparando la búsqueda en la web", "message.stepProcess.prepare.webFetch": "Preparando la visita a páginas web", "message.stepProcess.prepare.subagents": "Preparando la coordinación de subagentes", "message.stepProcess.prepare.plan": "Preparando la actualización del plan", "message.stepProcess.prepare.questions": "Preparando preguntas", "message.stepProcess.prepare.tools": "Preparando llamadas a herramientas", "message.stepProcess.done.thinking": "Análisis completado", "message.stepProcess.done.read": "Archivos leídos", "message.stepProcess.done.readImage": "Imágenes leídas", "message.stepProcess.done.write": "Archivos escritos", "message.stepProcess.done.search": "Búsqueda en el código realizada", "message.stepProcess.done.edit": "Archivos editados", "message.stepProcess.done.commands": "Comandos ejecutados", "message.stepProcess.done.code": "Código ejecutado", "message.stepProcess.done.webSearch": "Búsqueda en la web realizada", "message.stepProcess.done.webFetch": "Páginas web visitadas", "message.stepProcess.done.subagents": "Subagentes coordinados", "message.stepProcess.done.plan": "Plan actualizado", "message.stepProcess.done.questions": "Preguntas realizadas", "message.stepProcess.done.tools": "Herramientas llamadas", "message.stepProcess.joinTwo": "{first} y {second}", "message.stepProcess.comma": ", ", "message.stepProcess.sharedPrefix": "", "message.stepProcess.more": "{title}, etc.", "message.trigger.request": "Ejecución solicitada", "message.trigger.goal": "Continuando el objetivo", "message.trigger.agent": "Mensaje de tarea recibido", "message.trigger.team": "Mensaje del equipo recibido", "message.trigger.subagent": "Estado de la subtarea actualizado", "message.trigger.github": "Evento de GitHub recibido", "message.trigger.webhook": "Evento externo recibido", "message.trigger.schedule": "Tarea de automatización", "message.trigger.job": "Tarea en segundo plano actualizada", "message.trigger.plugin": "Estado del plugin actualizado", "message.trigger.explanation": "Esta notificación ha desencadenado esta respuesta.", "message.turnProcess.worked": "Completado", "message.turnProcess.took": "Completado en ", "message.turnProcess.failed": "Fallido", "view.chat": "Chat", "image.open": "Ver imagen completa", "image.loading": "Cargando imagen…", "image.failed": "Vista previa de la imagen no disponible", "image.dialog": "Vista previa de la imagen", "image.close": "Cerrar la vista previa de la imagen", "number.groupSeparator": ",", "duration.compactSeconds": "{seconds}s", "duration.compactMinutes": "{minutes}m{seconds}s", "duration.milliseconds": "{milliseconds}ms", "stats.counts": "{turns} turnos {steps} pasos", "stats.cacheHit": "Aciertos de caché {percent}%", "stats.dialog.title": "Estadísticas de la sesión", "stats.dialog.usageTitle": "Uso de tokens", "stats.dialog.llmTime": "Tiempo del LLM", "stats.dialog.toolTime": "Tiempo de herramientas", "stats.dialog.ttft": "Tiempo medio hasta el primer token (TTFT)", "stats.dialog.speed": "Tokens por segundo (TPS)", "chat.loadingHistory": "Cargando el historial…", "chat.loadError": "No se pudo cargar el historial: {message} ({code})", "chat.loadOlder": "Cargar anteriores", "chat.toBottom": "Volver al final", "chat.deepDiving": "Profundizando", "chat.deepDivingFor": "Profundizando desde hace {duration} ···", "chat.turnNavigation.label": "Navegación por turnos", "chat.turnNavigation.jump": "Ir al turno {turn}", "chat.turnNavigation.jumpLoad": "Cargar e ir al turno {turn}", "chat.turnNavigation.turn": "Turno {turn}", "settings.performance.title": "Rendimiento y uso", "settings.performance.description": "Elige cuánta información de rendimiento y uso mostrar", "settings.performance.compact": "Compacta", "settings.performance.detailed": "Detallada", "settings.links.title": "Abrir los enlaces del chat en", "settings.links.description": "Elige dónde abrir los enlaces web", "settings.links.sidebar": "Barra lateral de la aplicación", "settings.links.newTab": "Navegador predeterminado", "settings.transcript.title": "Detalles del trabajo", "settings.transcript.description": "Elige cuánto detalle mostrar en las llamadas a herramientas", "settings.transcript.compact": "Compacto", "settings.transcript.standard": "Estándar", "settings.transcript.detailed": "Detallado", "settings.transcript.verbose": "Verboso", "fileOpen.title": "No se pudo abrir el archivo", "fileOpen.unknown": "No se pudo abrir este archivo", "message.extraBlock": "Bloque de contenido adicional", "message.systemPrompt": "Prompt del sistema", "message.systemPromptUpdate": "Actualización del prompt del sistema", "message.toolAdded": "Herramienta añadida: {name}", "message.toolRemoved": "Herramienta eliminada: {name}", "message.toolsAdded": "Añadidas: {names}", "message.toolsAddedCount": "{count} añadidas", "message.toolsChanged": "{added} añadidas, {removed} eliminadas", "message.toolsRemoved": "Eliminadas: {names}", "message.toolsRemovedCount": "{count} eliminadas", "message.toolsUpdated": "Herramientas actualizadas", "message.contextInjection": "Inyección de contexto", "message.contextRecall": "Recuperación de la sesión", "message.referenceSummary": "Sesión referenciada · {labels}", "message.referenceSeparator": ", ", "message.context.instructions.loaded": "cargadas", "message.context.instructions.added": "añadidas", "message.context.instructions.updated": "actualizadas", "message.context.instructions.removed": "eliminadas", "message.context.catalog.replaced": "Catálogo de reemplazo", "message.context.catalog.more": "… {count} más", "message.context.snapshot.supersedes": "Reemplaza a las instantáneas anteriores", "message.context.relay.from": "De la sesión {session}", "message.context.recall.counts": "{retained} conservados · {omitted} omitidos", "message.context.recall.truncated": "truncado", "message.compaction": "Contexto compactado", "message.compaction.running": "Compactando el contexto…", "message.compaction.completed": "Se compactaron {items} elementos del historial (~{tokens} tokens)", "message.compaction.expand": "Ver el resumen de compactación", "message.compaction.unavailable": "Resumen de compactación no disponible", "message.compaction.commandTitle": "compact", "message.think": "Pensar", "message.unknownSurface": "Evento de superficie desconocido: {type}", "message.unknownBlock": "Bloque de contenido desconocido", "message.turnProcess.toolCalls.one": "{count} llamada a herramienta", "message.turnProcess.toolCalls.other": "{count} llamadas a herramientas", "message.turnProcess.messages.one": "{count} mensaje", "message.turnProcess.messages.other": "{count} mensajes", "message.turnProcess.subagents.one": "{count} subagente", "message.turnProcess.subagents.other": "{count} subagentes", "message.turnProcess.thoughtForAWhile": "Pensó un rato", "message.turnProcess.separator": " · ", "message.stopped": "Detenido", "message.branch": "Bifurcar en una conversación nueva", "message.branchUnavailable": "Disponible solo en el último mensaje de un turno completado", "message.retry.active": "Reintentando la solicitud al modelo", "message.retry.cancelled": "Reintento de la solicitud al modelo cancelado", "message.retry.started": "Solicitud al modelo reintentada", "message.retry.scheduled": "Esperando para reintentar la solicitud al modelo", "message.retry.status": "{label} ({retry}/{maximum}) · {seconds}s", "message.retry.delay": "Retardo del reintento: ", "message.retry.failure": "Motivo del fallo: ", "message.failure.auth": "La clave de API no es válida", "message.accountStopped": "Tarea detenida", "message.failure.accountSignedOut": "Detenido porque has cerrado sesión en DeepSeek.", "message.failure.accountSignInRequired": "Inicia sesión en DeepSeek y asegúrate de que el destino de la solicitud admite la autenticación de cuenta.", "message.failure.quota": "Cuota de solicitudes agotada.", "message.turnError": "Este turno ha fallado", "message.maxTokens": "Se alcanzó el límite de tokens de salida", "message.maxTokens.hint": "La respuesta se ha cortado; la salida anterior se conserva en la conversación. Envía «continue» para que el modelo continúe.", "message.tokensPerSecond": "{tps} tok/s", "message.turnUsage.title": "Uso del turno", "message.turnUsage.consumed": "Uso {total}", "message.turnUsage.model": "Proveedor / modelo", "message.turnUsage.cacheHit": "Aciertos de caché", "message.turnUsage.input": "Entrada sin caché", "message.turnUsage.cacheRead": "Entrada en caché", "message.turnUsage.cacheWrite": "Escritura en caché", "message.turnUsage.output": "Salida", "message.turnUsage.reasoning": " ({tokens} de razonamiento)", "message.turnUsage.count": "{count} tok", "duration.secondUnit": "s", "duration.minuteUnit": "m ", "duration.hourUnit": "h ", "command.running": "En ejecución…", "command.failed": "El comando ha fallado", "command.done": "Completado", "command.title": "Comando", "row.running": "En ejecución", "row.failed": "Fallido", "json.truncated": "… truncado, {total} caracteres en total", "clock.md": "{m}/{d}", "clock.ymd": "{y}-{m}-{d}" }, "command": { "section.add": "Añadir", "section.commands": "Comandos", "label.goal": "Objetivo", "label.plan": "Plan", "label.feedback": "Comentarios", "label.compact": "Compactar", "label.permission": "Permiso", "label.export": "Exportar", "description.goal": "Establece o consulta el objetivo de una tarea de larga duración", "description.plan": "Entrar o salir del modo de plan", "description.feedback": "Registrar comentarios sobre esta sesión", "description.compact": "Compactar el historial de conversación más antiguo", "description.permission": "Cambiar el preset de permisos (modo sandbox + política de aprobación)", "description.export": "Descargar el registro de esta sesión como archivo ZIP", "token.goal": "goal", "token.plan": "plan", "token.feedback": "feedback", "token.compact": "compact", "token.permission": "permission", "token.export": "export", "search.placeholder": "Buscar…", "search.aria": "Filtrar opciones", "status.loading": "Cargando opciones…", "status.applying": "Aplicando…", "status.empty": "No hay opciones", "overlay.aria": "Opciones de /{command}", "listbox.aria": "Coincidencias de /{command}", "notice.attachmentsUnsupported": "/{command} no acepta archivos adjuntos; quítalos primero" }, "common": { "ok": "OK", "cancel": "Cancelar", "close": "Cerrar", "copy": "Copiar", "copied": "Copiado", "codeBlock.title": "Bloque de código", "codeBlock.wrap": "Ajustar líneas", "codeBlock.unwrap": "No ajustar líneas", "copy.failed": "No se pudo copiar", "copy.value": "Copiar valor", "copy.json": "Copiar JSON", "copy.path": "Copiar la ruta de la propiedad", "copy.prettyJson": "Copiar JSON con formato", "copy.compactJson": "Copiar JSON compacto", "copy.optionsHint": "{action}; haz clic con el botón derecho para ver las opciones de copia", "retry": "Reintentar", "loading": "Cargando…", "load.failed": "No se pudo cargar", "submit": "Enviar", "submitting": "Enviando…", "next": "Siguiente", "previous": "Anterior", "skip": "Omitir", "delete": "Eliminar", "edit": "Editar", "save": "Guardar", "search": "Buscar", "more": "Más", "collapse": "Contraer", "expand": "Expandir", "back": "Atrás", "brand.localBuild": "Compilación local de DSH", "workspace.defaultName": "Espacio de trabajo predeterminado", "unknown": "Desconocido", "none": "Ninguno", "truncated": "Truncado", "json.label": "JSON", "markdown.footnotes": "Notas al pie", "markdown.truncatedCharacters": "… truncado en {total} caracteres", "number.thousand": "{value}K", "number.million": "{value}M" }, "conversation": { "shortcut.newline": "Nueva línea", "shortcut.complementary": "Usar la acción complementaria Encolar / Dirigir", "shortcut.slash": "Abrir el menú de comandos", "shortcut.mention": "Abrir el menú de referencias", "hint.plan": "describe tu tarea para generar el plan", "hint.goal": "describe el objetivo de una tarea de larga duración", "hint.goal.active": "objetivo activo — editar / pausar / reanudar / vaciar", "placeholder.plan": "describe tu tarea para generar el plan", "placeholder.default": "Envía un mensaje o ejecuta una tarea, / comandos, @ archivos o sesiones", "placeholder.unavailable": "Sesión no disponible", "placeholder.parentOffline": "Sesión principal sin conexión; no se puede enviar, pero aún puedes detener la ejecución", "placeholder.hero": "Describe lo que quieres crear, / comandos, @ archivos o sesiones", "placeholder.workspace": "Elige un espacio de trabajo para empezar", "placeholder.steerQueue": "Cmd/Ctrl+Intro dirige todos los mensajes en cola", "input.commands": "Añadir archivos o ejecutar comandos", "input.file": "Archivo", "input.stop": "Detener la generación", "input.send": "Enviar mensaje", "input.send.queue": "Encolar mensaje", "input.send.steer": "Dirigir mensaje", "attachment.pending": "Adjuntos pendientes", "attachment.scrollLeft": "Desplazar los adjuntos a la izquierda", "attachment.scrollRight": "Desplazar los adjuntos a la derecha", "attachment.dropTitle": "Arrastra archivos o imágenes aquí para añadirlos", "attachment.dropDesc": "Límite de imágenes: hasta {count} imágenes, {size} cada una", "attachment.dropBlocked": "No se pueden añadir archivos ni imágenes en este momento", "attachment.directoryDesktopOnly": "Las carpetas solo se pueden añadir en la aplicación de escritorio; añade archivos individuales en el navegador", "attachment.pathUnavailable": "No se pudo obtener la ruta de la carpeta; vuelve a arrastrarla", "attachment.pathUnsupported": "La ruta contiene caracteres que una referencia no puede transportar; renómbrala e inténtalo de nuevo", "image.pending": "Imágenes pendientes", "image.openOriginal": "Ver original", "image.openOriginalLabel": "{label}, haz clic para ver el original", "image.remove": "Eliminar la imagen {name}", "image.original": "Imagen original", "image.label": "Imagen", "image.loadFailed": "No se pudo cargar la imagen; haz clic para reintentar", "image.loading": "Cargando la imagen…", "image.preview": "Vista previa de la imagen original", "image.closePreview": "Cerrar la vista previa de la imagen original", "image.unsupportedType": "Solo se admiten imágenes PNG, JPG, WebP y GIF", "image.tooMany": "Un mensaje puede incluir hasta {count} imágenes", "image.fileTooLarge": "Cada imagen debe ser menor de {size}", "image.totalTooLarge": "Las imágenes superan {size} en total; elimina algunas e inténtalo de nuevo", "image.tooManyPixels": "La resolución de la imagen es demasiado alta; comprímela e inténtalo de nuevo", "image.dimensionTooLarge": "Los lados de la imagen deben ser como máximo de {size}px; redúcela e inténtalo de nuevo", "image.modelUnsupported": "El modelo actual no admite imágenes; cambia a un modelo que sí lo haga", "image.sendFailed": "No se pudieron enviar las imágenes ({reason}); vuelve a añadirlas e inténtalo de nuevo", "file.pending": "Archivos pendientes", "file.remove": "Eliminar el archivo {name}", "file.uploading": "Subiendo…", "file.uploadFailed": "No se pudo subir; haz clic para reintentar", "file.retry": "Reintentar la subida de {name}", "file.stillUploading": "Los archivos aún se están subiendo; envía cuando terminen", "file.sessionUnavailable": "Sesión no disponible; no se pueden subir archivos", "file.notStaged": "El archivo no ha terminado de subirse; vuelve a añadirlo e inténtalo de nuevo", "file.label": "Archivo", "context.aria": "{percent} de contexto usado", "context.used": "de contexto usado", "context.system": "Prompt del sistema", "context.tools": "Definiciones de herramientas", "context.messages": "Mensajes", "settings.enter.title": "Comportamiento de envío mientras está ocupado", "settings.enter.description": "Qué hacen Intro y el botón Enviar mientras el agente está en ejecución; Cmd/Ctrl+Intro usa el otro comportamiento", "settings.enter.queue": "Encolar", "settings.enter.steer": "Dirigir", "hero.headline": "Hacia lo desconocido", "hero.preview": "Vista previa", "hero.chooseWorkspace": "Elegir espacio de trabajo", "session.hierarchy": "Jerarquía de sesiones", "todo.title": "Tareas pendientes", "todo.progress.done": "{done} completadas", "todo.progress.active": "{active} en curso", "todo.progress.pending": "{pending} pendientes", "todo.status.completed": "Completada", "todo.status.inProgress": "En curso", "todo.status.pending": "Pendiente", "todo.rowTitle": "Actualizar la lista de tareas", "tool.title.createGoal": "Crear objetivo", "tool.title.getGoal": "Ver objetivo", "tool.title.updateGoal": "Actualizar objetivo", "tool.preparing.content": "Preparando contenido {kilobytes}KB", "tool.title.createSchedule": "Crear recordatorio", "tool.title.listSchedules": "Listar recordatorios", "tool.title.deleteSchedule": "Eliminar recordatorio", "tool.title.updateSchedule": "Actualizar recordatorio", "detail.state": "Estado", "detail.todo.completed": "Completada", "detail.todo.in_progress": "En curso", "detail.todo.pending": "Pendiente", "detail.todo.empty": "La lista de tareas está vacía", "todo.diff.initial": "Lista inicial", "todo.diff.compare": "Cambios desde la lista anterior", "todo.diff.unavailable": "Lista anterior no disponible", "todo.diff.noChanges": "Sin cambios en la lista", "todo.diff.added": "{count} añadidas", "todo.diff.updated": "{count} actualizadas", "todo.diff.removed": "{count} eliminadas", "todo.diff.unchanged": "{count} sin cambios", "todo.diff.addedItem": "Añadida", "todo.diff.updatedItem": "Estado cambiado", "todo.diff.movedItem": "Reordenada", "todo.diff.removedItem": "Eliminada", "detail.goal.empty": "Sin objetivo", "detail.goal.active": "Activo", "detail.goal.disarmed": "Esperando continuación", "detail.goal.paused": "Pausado", "detail.goal.blocked": "Bloqueado", "detail.goal.complete": "Completado", "detail.goal.rounds": "Rondas", "detail.goal.reason": "Bloqueo", "detail.days": "{count} d", "detail.hours": "{count} h", "detail.minutes": "{count} min", "detail.seconds": "{count} s", "detail.schedule.once": "Una vez", "detail.schedule.every": "Cada {interval}", "detail.schedule.when": "Programado para", "detail.schedule.frequency": "Repetir", "detail.schedule.scheduled": "Programado", "detail.schedule.overdue": "Vencido, esperando la reanudación de la sesión", "detail.schedule.empty": "Sin recordatorios", "detail.schedule.deleted": "Eliminado", "detail.schedule.count": "{count} recordatorios", "detail.schedule.daily": "Todos los días a las {time} ({zone})", "detail.schedule.weekly": "Semanalmente los {days} a las {time} ({zone})", "detail.schedule.cron": "Cron {expression} ({zone})", "detail.weekday.1": "lun", "detail.weekday.2": "mar", "detail.weekday.3": "mié", "detail.weekday.4": "jue", "detail.weekday.5": "vie", "detail.weekday.6": "sáb", "detail.weekday.7": "dom", "detail.weekday.join": ", ", "tool.title.inspectProviders": "Inspeccionar proveedores", "tool.title.queryRuntime": "Consultar el entorno de ejecución", "tool.title.inspectPlugins": "Inspeccionar plugins", "tool.title.workflow": "Ejecutar flujo de trabajo", "tool.title.ralph": "Ejecutar bucle ralph", "tool.title.readEvent": "Leer evento", "tool.title.searchEvents": "Buscar eventos", "tool.title.traceEvent": "Rastrear evento", "tool.title.searchSessions": "Buscar sesiones", "tool.title.traceSession": "Rastrear sesión", "tool.title.listModels": "Listar modelos", "tool.title.subagent": "Crear subagente", "tool.title.listAgents": "Listar subagentes", "tool.title.sendMessage": "Enviar mensaje", "tool.title.interruptAgent": "Interrumpir agente", "tool.title.listJobs": "Listar tareas en segundo plano", "tool.title.readJob": "Leer la salida de la tarea", "tool.title.killJob": "Cancelar tarea en segundo plano", "tool.title.openTerminal": "Abrir terminal", "tool.title.readTerminal": "Leer terminal", "tool.title.listTerminals": "Listar terminales", "tool.title.signalTerminal": "Enviar señal al terminal", "tool.title.closeTerminal": "Cerrar terminal", "tool.title.lsp": "Consultar símbolos de código", "tool.title.findDefinition": "Buscar definición", "tool.title.findReferences": "Buscar referencias", "tool.title.findImplementation": "Buscar implementación", "tool.title.hoverSymbol": "Inspeccionar símbolo", "tool.title.spawnTeammate": "Crear compañero", "tool.title.createTeamTask": "Crear tarea de equipo", "tool.title.getTeamTask": "Leer tarea de equipo", "tool.title.updateTeamTask": "Actualizar tarea de equipo", "tool.title.listTeamTasks": "Listar tareas de equipo", "tool.title.waitAgent": "Esperar al subagente", "detail.recordedResult": "Resultado registrado", "detail.empty": "Sin resultados", "detail.none": "Ninguno", "detail.yes": "Sí", "detail.no": "No", "detail.moreInInspect": "{count} elementos más disponibles en Inspect", "detail.status.running": "En ejecución", "detail.status.idle": "Inactivo", "detail.status.ready": "Listo", "detail.status.inactive": "Inactivo", "detail.status.provisioning": "Aprovisionando", "detail.status.failed": "Fallido", "detail.status.completed": "Completado", "detail.status.deleted": "Eliminado", "detail.status.killed": "Cancelado", "detail.status.accepted": "Aceptado", "detail.status.queued": "En cola", "detail.status.exited": "Finalizado", "detail.field.id": "ID", "detail.field.revision": "Revisión", "detail.field.platform": "Plataforma", "detail.field.provider": "Proveedor", "detail.field.model": "Modelo", "detail.field.role": "Rol", "detail.field.context": "Contexto", "detail.field.owner": "Propietario", "detail.field.ready": "Listo", "detail.field.dependencies": "Dependencias", "detail.field.writeScopes": "Ámbitos de escritura", "detail.field.warnings": "Advertencias", "detail.field.diagnostics": "Diagnósticos", "detail.field.methods": "Métodos", "detail.field.inputSchema": "Esquema de entrada", "detail.field.outputSchema": "Esquema de salida", "detail.field.currentPackage": "Paquete actual", "detail.field.nextPackage": "Paquete siguiente", "detail.field.latestRun": "Última ejecución", "detail.field.packages": "Paquetes", "detail.field.registrations": "Registros", "detail.field.props": "Propiedades", "detail.field.data": "Datos", "detail.field.source": "Origen", "detail.field.content": "Contenido", "detail.field.message": "Mensaje", "detail.field.messageId": "ID del mensaje", "detail.field.root": "Raíz", "detail.field.pid": "ID del proceso", "detail.field.type": "Tipo", "detail.field.time": "Hora", "detail.field.seq": "Secuencia de eventos", "detail.field.turn": "Turno", "detail.field.step": "Paso", "detail.field.callId": "ID de la llamada", "detail.field.agents": "Agentes iniciados", "detail.field.result": "Resultado", "detail.field.parent": "Principal", "detail.field.depth": "Profundidad", "detail.field.exitCode": "Código de salida", "detail.field.signal": "Señal", "detail.field.previousStatus": "Estado anterior", "detail.field.agent": "ID del agente", "detail.field.job": "ID de la tarea", "detail.field.task": "Tarea", "detail.field.processGroup": "Grupo de procesos", "detail.field.availability": "Disponibilidad", "detail.field.bestMatch": "Mejor coincidencia", "detail.field.target": "Evento de destino", "detail.field.surface": "Estado del registro", "detail.agents.count": "{count} agentes", "detail.jobs.count": "{count} tareas en segundo plano", "detail.terminals.count": "{count} terminales", "detail.tasks.count": "{count} tareas de equipo", "detail.tasks.nextPage": "Hay más tareas disponibles; el cursor siguiente es {cursor}", "detail.locations.count": "{count} ubicaciones", "detail.location": "Línea {line}, columna {column}", "detail.receipt.delivered": "Mensaje entregado", "detail.receipt.interrupt": "Interrupción solicitada", "detail.receipt.started": "Iniciado", "detail.receipt.cancel": "Cancelación solicitada", "detail.receipt.alreadyFinished": "Ya había terminado", "detail.receipt.signal": "Señal entregada", "detail.receipt.closed": "Cerrado", "detail.receipt.closing": "Cerrando", "detail.wait.noProgress": "Sin subagentes activos", "detail.wait.title": "Actividad de los subagentes", "detail.wait.timeout": "Se agotó el tiempo de espera", "detail.wait.changed": "Cambio detectado", "detail.agent.reply": "Respuesta del agente", "detail.models.title": "Modelos disponibles", "detail.output.lines": "Líneas {begin}–{end} de {total}", "detail.output.truncated": "Salida truncada", "detail.providers.count": "{count} proveedores de inspección", "detail.plugins.count": "{count} plugins dinámicos", "detail.workflow.script": "Script del flujo de trabajo", "detail.ralph.reportedComplete": "El trabajador informó de la finalización", "detail.ralph.reportedBlocker": "El trabajador informó de un bloqueo", "detail.ralph.limit": "Se alcanzó el límite de rondas", "detail.report.nextSteps": "Trabajo restante", "detail.trace.replacedBy": "Reemplazado por", "detail.trace.replacementChain": "Cadena de reemplazos", "detail.trace.replaces": "Eventos reemplazados", "detail.trace.sources": "Eventos de origen", "detail.trace.derived": "Eventos derivados", "detail.trace.ancestors": "Sesiones antecesoras", "detail.trace.descendants": "Sesiones descendientes", "detail.matches.count": "{count} coincidencias", "detail.matches.capped": "Se alcanzó el límite de resultados; acota la búsqueda para obtener más", "detail.event.neighbors": "Eventos próximos", "todo.completed": "{done}/{total} completadas", "command.attachmentsUnsupported": "/{command} no acepta adjuntos; elimínalos primero", "ask.rowTitle": "Hacer una pregunta", "ask.waiting": "esperando", "ask.pending": "continuada; la respuesta sigue disponible", "ask.pendingDetail": "Estas preguntas pendientes aún se pueden responder desde el cuadro de redacción.", "ask.reopen": "Responder", "ask.review": "Ver respuestas", "ask.closed": "cerrada", "ask.closedDetail": "Esta pregunta está cerrada; su resultado aparece en la conversación de abajo.", "ask.cancelled": "cancelada", "ask.cancelledDetail": "Este conjunto de preguntas se canceló antes de enviar las respuestas.", "ask.interrupted": "interrumpida", "ask.interruptedDetail": "Este conjunto de preguntas se interrumpió antes de enviar las respuestas.", "ask.answered": "{answered}/{total} respondidas", "ask.skipped": "Sin responder", "bash.running": "En ejecución", "bash.failed": "Fallido", "bash.stopped": "Detenido", "row.running": "En ejecución", "row.preparing": "Preparando la llamada a herramienta", "row.failed": "Fallido", "row.stopped": "Detenido", "row.input": "ENT", "row.output": "SAL", "row.inspect": "Inspeccionar", "tool.title.search": "Buscar", "tool.title.read": "Leer", "tool.title.bash": "Bash", "tool.title.write": "Escribir", "tool.title.edit": "Editar", "tool.title.code": "Código", "tool.title.generic": "Llamada a herramienta", "tool.title.inspect": "Consultar el entorno de Cordis", "tool.title.runCordis": "Ejecutar el plugin de Cordis", "tool.title.stopCordis": "Detener el plugin de Cordis", "tool.title.removeCordis": "Eliminar el plugin de Cordis", "tool.title.pwsh": "Pwsh", "tool.title.readImage": "Leer imagen", "tool.title.grep": "Grep", "tool.title.glob": "Glob", "tool.title.webSearch": "Buscar", "tool.title.webFetch": "Obtener", "tool.autoReviewRejected": "Rechazado por la revisión automática", "tool.autoReviewNotExecuted": "La herramienta no se ejecutó. Motivo: {reason}", "tool.autoReviewReasonFallback": "La revisión automática no autorizó esta acción", "diff.collapseAria": "Contraer las diferencias", "diff.expandAria": "Expandir {count} líneas de diferencias más", "diff.expandRest": "… {count} líneas más", "read.window": "Mostrando {shown} de {total} líneas", "read.collapseAria": "Contraer el contenido", "read.expandAria": "Expandir {count} líneas más", "read.expandRest": "… {count} líneas más", "search.paths": "{shown} rutas", "search.paths.truncated": "Mostrando {shown} de {total} rutas", "search.matches": "{shown} coincidencias · {files} archivos", "search.matches.truncated": "Mostrando {shown} de {total} coincidencias · {files} archivos", "search.noResults": "Sin resultados", "search.collapseAria": "Contraer los resultados", "search.expandAria": "Expandir {count} líneas de resultados más", "search.expandRest": "… {count} líneas más", "web.noResults": "No se encontraron resultados", "web.sourcesTruncated": "Lista de fuentes truncada", "web.http": "HTTP", "web.contentTruncated": "Contenido truncado", "details.running": "En ejecución…", "queue.count": "{n} mensajes en cola", "queue.sending": "Enviando…", "queue.image": "Imagen del mensaje en cola", "queue.file": "Archivo en cola {name}", "queue.edit": "Editar el mensaje en cola", "queue.edit.unsupported": "Contiene contenido que no es texto; la edición aún no es compatible", "queue.save": "Guardar el mensaje en cola", "queue.cancelEdit": "Cancelar la edición", "queue.remove": "Eliminar el mensaje en cola", "queue.steer": "Dirigir el mensaje en cola", "queue.steer.unavailable": "Dirigir solo está disponible mientras el agente está en ejecución", "error.sessionInUse": "Esta sesión ya está en uso, posiblemente por otra instancia de DSH en ejecución (como dsh web o la aplicación de escritorio). Cierra las demás instancias de DSH en ejecución e inténtalo de nuevo.", "queue.editFailed": "Error de edición: puede que este mensaje ya haya empezado a enviarse.", "queue.removeFailed": "Error al eliminar: puede que este mensaje ya haya empezado a enviarse.", "queue.steerFailed": "Error al dirigir. Inténtalo de nuevo.", "terminal.signal": "señal {signal}", "terminal.exitCode": "código de salida {code}", "terminal.noExitCode": "sin código de salida", "terminal.running": "En ejecución", "terminal.failed": "Fallido", "terminal.done": "Finalizado", "terminal.noOutput": "Sin salida", "terminal.collapseAria": "Contraer la salida", "terminal.expandAria": "Expandir las {n} líneas de salida restantes", "terminal.expandRest": "… {n} líneas más", "terminal.sendInput": "(enviar entrada)", "terminal.session": "Terminal {sessionId}" }, "cordis": { "row.defineTitle": "Registrar plugin de Cordis", "a11y.preparing": "Preparando una llamada a herramienta de Cordis", "row.runTitle": "Ejecutar plugin de Cordis", "row.updateTitle": "Actualizar plugin de Cordis", "row.stopTitle": "Detener plugin de Cordis", "row.removeTitle": "Eliminar plugin de Cordis", "purpose.missing": "(sin propósito indicado)", "status.idle": "Listo", "status.awaitingApproval": "Pendiente de aprobación", "status.failed": "La ejecución falló", "status.clientPending": "Cliente listo para activarse", "status.running": "En ejecución", "status.removed": "Eliminado", "status.superseded": "Hay una ejecución más reciente disponible", "run.removed": "Este paquete ya no existe", "run.superseded": "Hay una tarjeta de ejecución más reciente a continuación", "panel.hint": "Los controles de ejecución están en el panel de Cordis, encima de Ajustes", "panel.plugins.aria": "Plugins de Cordis", "panel.approvals.aria": "Aprobaciones de Cordis", "panel.trigger": "Plugin de Cordis", "panel.runningCount": "{count} en ejecución", "panel.title": "Plugins de Cordis", "panel.empty": "Aún no hay plugins definidos", "panel.loading": "Leyendo…", "panel.readFailed": "No se pudo leer el inventario de plugins: {message}", "panel.group.current": "Esta sesión", "panel.group.others": "Otras sesiones", "panel.version": "Versión", "panel.current": "Actual: {packageId}", "panel.next": "Siguiente: {packageId}", "action.approve": "Permitir", "action.approveOnce": "Permitir solo esta versión", "action.approvePlugin": "Permitir futuras versiones de este plugin", "action.decline": "Rechazar", "action.run": "Ejecutar", "action.stop": "Detener", "action.remove": "Eliminar", "action.retry": "Reintentar", "action.rollback": "Revertir", "action.inspect": "Inspeccionar", "render.failedAbdicated": "El renderizado falló en {slot}; se restauró la interfaz predeterminada:", "render.failedHeld": "El renderizado falló en {slot}:", "a11y.defining": "Definiendo el plugin", "a11y.failed": "La definición falló", "a11y.stopped": "Definición interrumpida", "body.source": "Código fuente del plugin", "body.hostCode": "Host", "body.clientCode": "Cliente", "body.output": "Resultado", "body.copy": "Copiar", "body.copied": "Copiado" }, "deliverables": { "presented.nativeUnavailable": "Este archivo no tiene una ruta de Host disponible. Previsualízalo en la barra lateral.", "presented.revealError": "No se pudo mostrar en el gestor de archivos. Inténtalo de nuevo.", "presented.directoryError": "No se pudo abrir la carpeta contenedora. Inténtalo de nuevo.", "presented.directoryOpening": "Abriendo la carpeta contenedora…", "presented.directoryOpened": "Apertura de la carpeta contenedora solicitada", "presented.revealed": "Visualización en el gestor de archivos solicitada", "presented.revealing": "Mostrando en el gestor de archivos…", "presented.unavailable": "Este Host no tiene un escritorio disponible para abrir archivos o carpetas en aplicaciones externas. Los archivos aún se pueden previsualizar en la barra lateral.", "presented.retry": "Reintentar", "presented.hostError": "No se pudo leer la información del escritorio del Host", "presented.preview": "Vista previa en la barra lateral", "presented.previewButton": "Abrir {name} en la barra lateral", "presented.previewCard": "Previsualizar {name} en la barra lateral", "presented.all": "Los {count} archivos", "presented.expandAria": "Mostrar los {count} archivos entregados", "presented.collapse": "Contraer", "presented.collapseAria": "Contraer los archivos entregados", "presented.opening": "Abriendo…", "presented.opened": "Apertura solicitada", "presented.error": "No se pudo abrir. Haz clic para reintentar.", "presented.file": "Archivo", "row.title": "Presentar archivos", "row.running": "Entregando", "row.preparing": "Preparando entregables", "row.ok": "Entregado", "row.error": "Error en la entrega", "row.stopped": "Interrumpido", "row.inspect": "Inspeccionar llamada", "changes.title": "{count} archivos editados", "changes.singleTitle": "{name} editado", "changes.added": "+{count}", "changes.deleted": "-{count}", "changes.binary": "binario", "changes.openReview": "Revisar los cambios de este turno en la barra lateral", "changes.all": "Los {count} archivos", "changes.expandAria": "Mostrar los {count} archivos modificados", "changes.collapse": "Contraer", "changes.collapseAria": "Contraer los archivos modificados", "changes.oversized": "demasiado grande", "changes.viewDiff": "Ver los cambios de {name}", "review.title": "Revisión · turno {turn}", "review.selectFile": "Elegir el archivo que revisar", "review.split": "Cambiar a vista dividida", "review.unified": "Cambiar a vista unificada", "review.splitAria": "Vista dividida", "review.wrap": "Activar el ajuste de línea", "review.nowrap": "Desactivar el ajuste de línea", "review.wrapAria": "Ajuste de línea", "review.openFile": "Abrir el archivo completo en la barra lateral", "review.openFileAria": "Abrir {name} en la barra lateral", "diff.loading": "Leyendo los cambios…", "diff.missing": "El contenido de los cambios de este turno ya no está disponible", "diff.error": "No se pudieron leer los cambios", "diff.binary": "Archivo binario; no se pueden mostrar los cambios", "diff.oversized": "Archivo demasiado grande; no se pueden mostrar los cambios", "diff.created": "Creado en este turno", "diff.deleted": "Eliminado en este turno", "diff.unchanged": "Ambos lados contienen las mismas líneas", "diff.coarse": "Se agotó el tiempo de comparación de líneas; se muestra como reemplazo del archivo completo", "diff.truncated": "Mostrando las primeras {count} líneas" }, "directory-browser": { "browser.title": "Seleccionar el directorio del espacio de trabajo", "browser.home": "Inicio", "browser.newFolder": "Nueva carpeta", "browser.folderName": "Nombre de la carpeta", "browser.createIn": "Nueva carpeta en \"{name}\"", "browser.untitledFolder": "Carpeta sin título", "browser.create": "Crear", "browser.cancel": "Cancelar", "browser.open": "Abrir", "browser.editPath": "Editar la ruta", "browser.loading": "Cargando…", "browser.truncated": "Demasiadas carpetas para listarlas; solo se muestra el principio.", "browser.showHidden": "Mostrar los archivos ocultos" }, "documentHtml": { "title": "HTML", "frame": "Vista previa del documento HTML", "loading": "Representando el documento...", "failed": "No se pudo previsualizar este documento HTML." }, "documentMarkdown": { "viewer.label": "Markdown", "code.copy": "Copiar", "code.copied": "Copiado", "footnotes": "Notas al pie" }, "feedback": { "action.like": "Buena respuesta", "action.likeActive": "Quitar la valoración", "action.dislike": "Mala respuesta", "action.dislikeActive": "Quitar la valoración", "dialog.title": "Enviar comentarios", "dialog.categories": "Categoría de los comentarios", "dialog.detail": "Detalles de los comentarios", "dialog.hint": "Añade detalles para ayudarnos a mejorar. El envío incluirá el registro de la conversación actual.", "category.task-result": "Resultado de la tarea", "category.instruction-following": "Comprensión y seguimiento de instrucciones", "category.product-interaction": "Funciones del producto e interacción", "category.service-stability": "Estabilidad y velocidad", "category.resource-cost": "Uso de recursos y coste", "category.security-privacy-permission": "Seguridad, privacidad y permisos", "category.other": "Otros", "toast.recorded": "Gracias por los comentarios", "error.conflict": "Estos comentarios cambiaron en otro lugar; se muestra el estado más reciente", "error.load": "No se pudieron cargar los comentarios", "error.generic": "No se pudieron guardar los comentarios", "error.noteTooLarge": "La descripción es demasiado larga; acórtala y vuelve a enviarla" }, "goal": { "phase.active": "Objetivo en curso", "phase.active.disarmed": "Objetivo inactivo", "phase.paused": "Objetivo pausado", "phase.blocked": "Objetivo bloqueado", "objective.aria": "Objetivo del objetivo", "commandInput.aria": "Entrada de comandos", "action.save": "Guardar el objetivo", "action.cancel": "Cancelar la edición", "action.pause": "Pausar el objetivo", "action.resume": "Reanudar el objetivo", "action.edit": "Editar el objetivo", "action.clear": "Vaciar el objetivo" }, "job": { "count.live.one": "{count} tarea en segundo plano en ejecución", "count.live.other": "{count} tareas en segundo plano en ejecución", "count.idle.one": "{count} tarea en segundo plano", "count.idle.other": "{count} tareas en segundo plano", "list.aria": "Tareas en segundo plano", "section.live": "En ejecución", "section.settledCount": "{count} finalizadas", "section.clear": "Vaciar", "row.expandAria": "Mostrar la salida en directo de {label}", "row.collapseAria": "Ocultar la salida en directo de {label}", "kill.stop": "Detener la tarea {label}", "kill.confirm": "Haz clic de nuevo para confirmar", "kill.confirmAction": "Confirmar detención", "kill.failed": "No se pudo detener", "status.running": "en ejecución", "status.stopping": "deteniéndose", "status.completed": "completada", "status.killed": "cancelada", "status.failed": "fallida", "duration.seconds": "{seconds}s", "duration.minutes": "{minutes}m {seconds}s", "duration.hours": "{hours}h {minutes}m", "duration.title.live": "En ejecución desde hace {duration}", "duration.title.done": "Duró {duration}", "output.gap": "… se descartó la salida anterior …", "output.error": "flujo de salida en directo interrumpido: {error}", "terminal.signal": "señal {signal}", "terminal.exitCode": "código de salida {code}", "terminal.noExitCode": "sin código de salida", "terminal.running": "en ejecución", "terminal.failed": "fallida", "terminal.done": "finalizada", "terminal.copy": "Copiar", "terminal.copied": "Copiado", "terminal.noOutput": "(sin salida)", "terminal.collapse": "Contraer", "terminal.collapseAria": "Contraer la salida", "terminal.expand": "Mostrar {n} líneas más", "terminal.expandAria": "Expandir {n} líneas de salida contraídas" }, "model": { "provider.account": "Cuenta de DeepSeek", "command.label": "Modelo", "command.description": "Seleccionar el modelo para esta conversación", "option.loadError": "No se pudo cargar el catálogo: {message}", "trigger.fallback": "Seleccionar modelo", "trigger.loading": "Cargando modelos…", "trigger.selectAria": "Seleccionar modelo", "trigger.aria": "Seleccionar modelo, actual: {model}", "trigger.ariaEffort": "Seleccionar modelo, actual: {model}, esfuerzo de razonamiento: {effort}", "menu.aria": "Modelo y esfuerzo de razonamiento", "menu.model": "Modelo", "menu.effort": "Esfuerzo", "effort.providerDefault": "Predeterminado", "status.loading": "Actualizando la lista de modelos…", "error.action": "Falló la operación con el modelo: {message}", "error.sessionInUse": "Esta sesión ya está en uso, posiblemente por otra instancia de DSH en ejecución (como dsh web o la aplicación de escritorio). Cierra las demás instancias de DSH en ejecución e inténtalo de nuevo.", "action.reload": "Recargar", "warning.groupLoad": "No se pudo cargar {name}: {message}", "search.placeholder": "Buscar modelos…", "search.clear": "Vaciar la búsqueda", "search.empty": "No hay modelos coincidentes.", "empty.models": "No hay modelos disponibles.", "empty.efforts": "Este modelo no ofrece niveles de esfuerzo de razonamiento." }, "open-in-app": { "open.title": "Abrir en {app}", "path.appDefault": "{app} (predeterminado)", "path.appsError": "No se pudieron cargar las aplicaciones", "shortcut.busy": "Abriendo el espacio de trabajo", "shortcut.unavailable": "El espacio de trabajo actual o la aplicación local no está disponible", "open.tooltip": "Abrir en local", "path.open": "Abrir", "path.more": "Más formas de abrir", "path.reveal": "Mostrar la ubicación del archivo", "path.openError": "No se pudo abrir. Inténtalo de nuevo.", "path.revealError": "No se pudo mostrar la ubicación del archivo. Inténtalo de nuevo.", "app.cursor": "Cursor", "app.vscode": "VS Code", "app.vscodeinsiders": "VS Code Insiders", "app.windsurf": "Windsurf", "app.zed": "Zed", "app.sublimetext": "Sublime Text", "app.xcode": "Xcode", "app.androidstudio": "Android Studio", "app.intellij": "IntelliJ IDEA", "app.pycharm": "PyCharm", "app.webstorm": "WebStorm", "app.phpstorm": "PhpStorm", "app.goland": "GoLand", "app.rider": "Rider", "app.rustrover": "RustRover", "app.fork": "Fork", "app.sourcetree": "Sourcetree", "app.github": "GitHub Desktop", "app.tower": "Tower", "app.gitkraken": "GitKraken", "app.smartgit": "SmartGit", "app.sublimemerge": "Sublime Merge", "app.ghostty": "Ghostty", "app.warp": "Warp", "app.iterm": "iTerm2", "app.kitty": "kitty", "app.windowsterminal": "Terminal de Windows", "app.gitbash": "Git Bash", "app.gnometerminal": "Terminal de GNOME", "app.konsole": "Konsole", "app.finder": "Finder", "app.explorer": "Explorador de archivos", "app.filemanager": "Archivos", "app.terminal": "Terminal" }, "permission.access": { "mode": "Modo de acceso, actual: {name}", "close": "Cerrar", "preset.readOnly": "Solo lectura", "preset.workspaceWrite": "Escritura en el espacio de trabajo", "preset.fullAccess": "Acceso completo", "confirm.title": "¿Habilitar el acceso completo?", "confirm.description": "El acceso completo reduce los pasos de confirmación y permite al agente realizar más acciones directamente, incluidas operaciones sensibles, cambios en archivos o comandos externos. Úsalo solo cuando confíes en la tarea actual.", "confirm.acknowledge": "Entiendo los riesgos y quiero continuar", "confirm.cancel": "Cancelar", "confirm.enable": "Habilitar el acceso completo", "auto.label": "Revisión automática", "auto.badge": "EXP", "auto.description": "Ejecutar sin sandbox tras una revisión experimental del mismo modelo de cada llamada a herramienta nativa y cada llamada interna de PTC.", "auto.confirm.title": "¿Habilitar la revisión automática (experimental)?", "auto.confirm.description": "La revisión automática se ejecuta sin sandbox. Antes de cada llamada a herramienta nativa y cada llamada interna de PTC, el mismo modelo que el agente actual revisa si debe permitirla; tú apruebas o rechazas cada llamada que deniegue. Esta función es experimental, puede permitir o denegar acciones de forma errónea y consume tokens adicionales.", "auto.confirm.acknowledge": "Entiendo estos riesgos y quiero continuar", "auto.confirm.enable": "Habilitar la revisión automática" }, "plan": { "chip.label": "Plan", "preview.title": "Plan", "preview.document": "Plan · Markdown", "preview.action": "Abrir", "preview.open": "Abrir el plan en la barra lateral", "preview.full": "Ver el plan completo", "preview.openNamed": "Abrir el plan: {title}", "preview.loading": "Cargando el plan…", "preview.failed": "No se pudo cargar el plan", "preview.invalidAddress": "Dirección del plan no válida", "preview.historyUnavailable": "El historial de la sesión no está disponible", "preview.notFound": "No se encontró este plan", "preview.unavailable": "La vista previa del plan no está disponible", "preview.expired": "Esta vista previa temporal del plan ha caducado. Vuelve a abrirla desde la tarjeta de revisión pendiente.", "chip.on.aria": "Modo plan activado, pulsa para desactivarlo", "chip.on.title": "Modo plan activado — haz clic para desactivarlo (/plan off)", "chip.exitFailed": "No se pudo salir del modo plan" }, "pluginManager": { "panel": "Plugins", "title": "Plugins", "intro": "Instalar, activar y configurar plugins", "infoLabel": "Acerca de los plugins", "infoDescription": "Configura los plugins oficiales e instala o gestiona otros plugins aquí. Consulta la lista de plugins integrados y el estado de ejecución en Ajustes → Plugins integrados.", "loading": "Leyendo plugins…", "error": "No se han podido leer todos los plugins, posiblemente por un problema de red", "unavailable": "Esta implementación se ejecuta sin un perfil gestionable, por lo que aquí no se pueden instalar ni cambiar plugins.", "retry": "Reintentar", "refresh": "Actualizar", "refreshError": "La actualización ha fallado. Inténtalo de nuevo.", "empty": "Todavía no hay plugins instalados.", "addPlugin": "Añadir plugin", "restartNotice": "El cambio surte efecto en el próximo inicio", "overriddenNotice": "{name} se ha guardado, pero una configuración de mayor prioridad lo anula, por lo que no está en vigor", "bundlesTitle": "Instalados", "officialTitle": "Oficiales", "statusProblem": "Problema", "statusBeta": "Experimental", "reasonLabel": "Motivo", "metadataError": "Error en los metadatos del paquete: {error}", "versionTag": "v{version}", "partsLabel": "Componentes", "partsEmpty": "Este paquete de plugins no contiene ningún componente.", "partsCountTotal": "{count} en total", "partsCountRunning": "{count} en ejecución", "partsCountOff": "{count} desactivados", "partOff": "Desactivado", "partsCountFailed": "{count} fallidos", "partsFilter": "Filtrar componentes", "partsFilterEmpty": "Ningún componente coincide.", "partToggle": "Activar el componente {name}", "rowPhasePending": "Esperando dependencias", "rowPhaseLoading": "Cargando", "rowPhaseActive": "En ejecución", "rowPhaseFailed": "Problema", "rowPhaseUnloading": "Descargando", "enableToggle": "Activar {name}", "openDetail": "Ver {name}", "backToList": "Volver a los plugins", "crumbRoot": "Plugins", "backToPackage": "Volver a {name}", "configureRow": "Configurar {name}", "rowStateIdle": "No está en ejecución", "uninstall": "Desinstalar", "uninstallLabel": "Desinstalar {name}", "installTitle": "Añadir plugin", "installDescription": "Introduce el nombre del paquete del plugin, la dirección del repositorio de GitHub o la ruta de un directorio local.", "installSpecLabel": "Nombre del paquete o dirección", "installSpecPlaceholder": "por ejemplo dsh-plugin-whale-pet", "installGuideToggle": "Guía de instalación y ejemplos", "installGuideHide": "Ocultar la guía", "installGuideIdTitle": "Introduce el nombre del paquete npm del plugin", "installGuideIdExample": "dsh-plugin-whale-pet", "installGuideIdHint": "El nombre del paquete del plugin es el nombre del paquete npm (como dsh-xxx o @autor/plugin): la parte que sigue a dsh plugin add o pnpm add en el comando de instalación del README de un plugin de la comunidad.", "installGuideExampleLabel": "Ejemplo: ", "installGitTemplateHint": "Sustituye esto por la dirección real del repositorio Git.", "installPathTemplateHint": "Sustituye esto por la ruta real de tu directorio local de plugins.", "installGuideFill": "Usar el ejemplo", "installGuideFillAria": "Usar el ejemplo {example}", "installGuideSafety": "Instala solo plugins en los que confíes: se ejecutan con tus permisos y pueden dañar DeepSeek Harness o filtrar tus datos.", "installUpgradeNotice": "Los plugins instalados todavía no se actualizan automáticamente. Para actualizar un plugin, desinstálalo e instala la nueva versión. Las próximas versiones seguirán mejorando la experiencia de actualización.", "registryToggle": "Registro", "registryLegend": "El registro npm desde el que se descarga el plugin", "registryDefault": "Registro predeterminado", "registryOfficial": "Registro npm oficial", "registryNpmmirror": "Espejo de China continental", "registryCustom": "Dirección personalizada", "registryCustomPlaceholder": "https://npm.example.com/", "registryCustomHint": "Introduce la dirección de un registro npm interno o privado que empiece por http:// o https://. Si requiere inicio de sesión, guarda las credenciales en ~/.npmrc de esta máquina.", "registryCustomInvalid": "Introduce una dirección que empiece por http:// o https://", "registryListSeparator": ", ", "sentenceSeparator": " ", "installRun": "Instalar", "installChecking": "Comprobando…", "installProblemInvalid": "Esto no es un nombre de paquete ni una dirección que se pueda instalar: {reason}", "installProblemInstalled": "Este plugin ya está instalado. Para actualizarlo, desinstálalo y vuelve a instalarlo", "installProblemShipped": "Este plugin viene con DSH; actualizar DSH lo actualiza", "installProblemNotFound": "No se ha encontrado ningún plugin con ese nombre", "installProblemNotPackage": "La ruta no existe o no es un paquete de plugin válido", "installProblemNotBundle": "Este paquete no declara ningún bundle, por lo que no se puede instalar como plugin: {reason}", "installProblemNetwork": "No se ha podido contactar con el registro de plugins; comprueba la red e inténtalo de nuevo", "installProblemNetworkAll": "No se ha podido contactar con ningún registro (probados: {registries}); comprueba la red o los ajustes de proxy, o cambia de registro", "installProblemUnknown": "No se ha podido buscar el plugin: {reason}", "installingTitle": "Instalando el plugin…", "installedTitle": "Instalado", "installFailedTitle": "No se ha podido instalar el plugin", "installGithubFailedTitle": "No se puede acceder a GitHub", "installGithubTimeoutTitle": "Se ha agotado el tiempo de conexión con GitHub", "installGithubFailedDescription": "Prueba con otro origen de instalación.", "installUseGithubMirror": "Usar el espejo de China continental", "installTryAnotherWay": "Probar otra vía", "installPackageLabel": "Nombre del paquete del plugin", "installEdit": "Editar", "installEditAria": "Volver a la edición", "installCancelAndEdit": "Cancelar la instalación y volver a la edición", "installApplyingCancellationError": "No se ha confirmado la cancelación. La instalación se está aplicando; espera su resultado. {reason}", "installReconcile": "Comprobar el estado de la instalación", "installUnknownTitle": "Resultado de la instalación no disponible", "installUnknownDescription": "El Host no tiene ninguna instalación activa con este id de solicitud. Comprueba la lista de plugins antes de volver a intentarlo.", "installResultUnconfirmed": "No se ha recibido el resultado de la instalación. Comprueba el estado de la instalación. {reason}", "installAwaitingAcceptance": "Esperando a que el Host acepte la instalación. La cancelación se reintentará automáticamente tras la confirmación.", "installBackgroundUnknown": "Resultado de la instalación no disponible. Comprueba la lista de plugins.", "installCancel": "Cancelar la instalación", "installCloseCancels": "Cancelar la instalación y cerrar", "installViewTask": "Ver la instalación", "installUnconfirmedTitle": "Estado de la instalación sin confirmar", "installBackgroundDone": "La instalación ha finalizado. Ver los detalles de la instalación.", "installBackgroundFailed": "La instalación ha fallado. Ver los detalles de la instalación.", "installBackgroundUnconfirmed": "El estado de la instalación no está confirmado. Consulta la instalación para ver los detalles.", "installBackgroundApplying": "La instalación se está aplicando y no se puede cancelar. Ver el progreso de la instalación.", "installStarting": "Preparando la instalación…", "installCancelling": "Deteniendo la instalación…", "installApplying": "Aplicando la configuración, espera…", "installCancelledShort": "Cancelada", "installCancelled": "Instalación cancelada; el plugin no está activado y los archivos descargados pueden permanecer", "installCancelUnconfirmed": "No se ha confirmado la detención de la instalación. Reintenta la cancelación o espera al resultado de la instalación. {reason}", "installEnableNow": "Activar ahora", "installDetailsShow": "Mostrar los detalles de la instalación", "installDetailsHide": "Ocultar los detalles de la instalación", "installVersion": "Versión {version}", "installSubjectPath": "Directorio local", "installSubjectGit": "Repositorio Git", "installSubjectTarball": "Archivo tar", "installLocation": "Se instala en {dir}", "installRetry": "Reintentar", "installChangeRegistry": "Cambiar de registro", "installAttempt": "{previous} no ha podido servir el paquete; reintentando mediante {registry} (registro {index} de {total})", "installAttemptBadge": "Intento {index} · {registry}", "installFailureNetwork": "La conexión de red ha fallado", "installFailureNetworkAll": "No se ha podido contactar con ningún registro (probados: {registries}). Comprueba la red o los ajustes de proxy, o cambia de registro y reinténtalo.", "installFailureNetworkHost": "No se ha podido contactar con {host}. Una dirección de GitHub o un enlace .tgz no se descargan a través del registro: esta máquina debe poder acceder directamente o mediante un proxy. Si el plugin también está publicado en npm, introduce su nombre de paquete en su lugar.", "installFailureNotFound": "No se ha encontrado ningún plugin con ese nombre", "installFailureNoMatchingVersion": "Ninguna versión coincide con la solicitud", "installFailureDiskFull": "El disco está lleno; la instalación se ha detenido", "installFailurePermission": "Sin permiso de escritura; el plugin no se puede instalar", "installFailureBuildBlocked": "Los scripts de instalación de una dependencia necesitan tu permiso para que la instalación pueda continuar", "installFailureBuildBlockedManual": "pnpm ha bloqueado scripts de instalación; permítelos en allowBuilds dentro de pnpm-workspace.yaml y reinténtalo", "installFailureIntegrity": "El paquete descargado no ha superado la comprobación de integridad", "installFailureTimeout": "Se ha agotado el tiempo de la instalación", "installFailurePnpmMissing": "No se ha encontrado pnpm, por lo que no se puede instalar nada", "installFailureGeneric": "Algo ha ido mal durante la instalación; los detalles indican qué", "terminalRunning": "En ejecución", "terminalFailed": "Fallida", "terminalDone": "Finalizada", "terminalCopy": "Copiar", "terminalCopied": "Copiado", "terminalNoOutput": "Sin salida", "terminalCollapseAria": "Contraer la salida", "terminalCollapse": "Contraer", "terminalExpandAria": "Expandir las {n} líneas de salida restantes", "terminalExpand": "… {n} líneas más", "terminalExitCode": "código de salida {code}", "terminalSignal": "señal {signal}", "terminalNoExitCode": "sin código de salida", "installDoneNothing": "La instalación ha finalizado sin ninguna dependencia nueva.", "installDoneRestart": "Instalado; se carga en el próximo inicio.", "installDoneApproved": "Scripts de instalación permitidos para {names}", "installApprovalTitle": "Los scripts de instalación necesitan permiso", "installApprovalDescription": "Estos paquetes tienen scripts de instalación que pnpm no ha ejecutado.", "installApprovalConsequence": "Una vez permitidos, los scripts se ejecutan aquí con tus permisos y el permiso se guarda en este perfil.", "installApprovalCaution": "Permite solo paquetes en los que confíes.", "installApproveAndRetry": "Permitir estos scripts y reintentar", "installClose": "Hecho", "close": "Cerrar", "cancel": "Cancelar", "confirmUninstallTitle": "¿Desinstalar \"{name}\"?", "confirmUninstallDescription": "Lo que proporciona desaparece una vez desinstalado.", "confirmUninstall": "Desinstalar", "failedEnable": "No se ha podido activar: {reason}", "failedDisable": "No se ha podido desactivar: {reason}", "failedUninstall": "No se ha podido desinstalar: {reason}", "failedRowEnable": "No se ha podido activar el componente: {reason}", "failedRowDisable": "No se ha podido desactivar el componente: {reason}", "reasonManagementRequired": "La gestión de plugins lo necesita; no se puede desactivar ni desinstalar.", "reasonUnaddressable": "El parche del perfil no puede dirigirse a este de forma única.", "reasonUnknownPlugin": "No existe ese plugin.", "reasonInvalidSpec": "Introduce un nombre de paquete o una dirección válidos.", "reasonAmbiguousInstall": "No se puede saber qué paquete se ha instalado a partir del cambio de dependencias.", "reasonNotBundle": "Este paquete no declara ningún bundle, por lo que no se puede gestionar como plugin.", "reasonNotRemovable": "Este paquete no pertenece al perfil, o la gestión de plugins lo necesita.", "reasonStopProfile": "Este perfil se ejecuta sin HMR; deténlo y desinstala el paquete con dsh plugin.", "reasonBundleInUse": "Otra configuración sigue usando los componentes de este bundle; desactívalos primero.", "reasonStaleApproval": "Las aprobaciones de scripts pendientes han cambiado; vuelve a instalar para actualizarlas.", "reasonIncompatibleVersion": "{plugin} es incompatible con DSH {runtime} (requiere {peers}); ejecutarlo puede provocar fallos o pérdida de datos.", "reasonIncompatibleVersionUnnamed": "Este plugin es incompatible con la versión de DSH en ejecución; ejecutarlo puede provocar fallos o pérdida de datos.", "reasonIncompatibleInstall": "Instala una versión del plugin compatible con este DSH.", "reasonIncompatibleInstalled": "Desinstálalo e instala una versión compatible con este DSH.", "reasonOperationError": "El Host ha informado de un error." }, "question": { "error.incomplete": "Completa primero esta pregunta.", "error.unanswered": "Selecciona una opción o introduce una respuesta personalizada.", "error.unavailable": "No se puede enviar ahora mismo; inténtalo de nuevo en un momento.", "error.resubmit": "La respuesta no llegó antes de que continuara el trabajo; envíala de nuevo.", "status.sent": "Respuesta enviada; no se pudo cerrar el panel.", "wait.takeTime": "Tomarse el tiempo", "wait.countdown": "Continúa en {seconds}s", "wait.paused": "En pausa · quedan {seconds}s", "wait.held": "En espera hasta que respondas", "wait.continued": "El trabajo ha continuado; aún puedes responder", "review.status": "Respondida", "review.skipped": "Esta pregunta se omitió.", "reply.label": "Responder a preguntas pendientes anteriores", "reply.open": "Abrir los detalles de la pregunta", "reply.close": "Cerrar los detalles de la pregunta", "reply.answerLabel": "Respuesta: ", "reply.skipped": "Omitida", "nav.prev": "Pregunta anterior", "nav.next": "Pregunta siguiente", "nav.minimize": "Contraer la tarjeta de la pregunta", "nav.maximize": "Expandir la tarjeta de la pregunta", "nav.cancel": "Descartar todas las preguntas", "nav.close": "Cerrar el panel; vuelve a abrirlo desde la llamada a herramienta", "option.recommended": "Recomendada", "custom.placeholder": "Escribe la respuesta", "action.skip": "Omitir", "action.next": "Siguiente", "plan.header": "Revisión del plan", "plan.approve": "Aprobar", "plan.decline": "Rechazar", "plan.discuss": "Solicitar cambios" }, "reference": { "section.files": "Archivos y carpetas", "section.subagents": "Subagentes", "section.sessions": "Sesiones", "candidate.noCwd": "(sin directorio de trabajo)", "crumb.root": "Espacio de trabajo", "time.now": "ahora", "time.minutes": "{n} min", "time.hours": "{n} h", "time.days": "{n} d", "time.months": "{n} mes", "time.years": "{n} a" }, "schedule.catalog": { "trigger.label": "Recordatorios", "list.loading": "Cargando recordatorios…", "list.error": "No se pudieron cargar los recordatorios.", "list.retry": "Reintentar", "delete.action": "Eliminar", "delete.pending": "Eliminando…", "delete.label": "Eliminar recordatorio: {title}", "list.open": "Abrir los detalles del recordatorio: {title}", "trigger.one": "{count} recordatorio", "trigger.other": "{count} recordatorios", "list.aria": "Recordatorios activos", "list.nextRun": "Próxima ejecución", "frequency.once": "Una vez", "frequency.every": "Cada {value} {unit}", "time.locale": "en", "time.utcPrefix": "UTC", "frequency.daily": "Diariamente a las {time} ({timeZone})", "frequency.dailyLocal": "Diariamente a las {time}", "frequency.weekly": "Semanalmente los {weekdays} a las {time} ({timeZone})", "frequency.weeklyLocal": "Semanalmente los {weekdays} a las {time}", "frequency.cron": "Cron {expression} ({timeZone})", "frequency.cronLocal": "Cron {expression}", "frequency.cronRule": "{rule} ({timeZone})", "cron.list.join": ", ", "cron.part.join": " ", "cron.weekday.name": "{weekday}", "cron.weekday.range": "{from}–{to}", "cron.months": " en {months}", "cron.day.every": "Todos los días{months}", "cron.day.weekdays": "{weekdays}{months}", "cron.day.monthDays": "El día {days} de cada mes{months}", "cron.day.both": "El día {days} de cada mes o {weekdays}{months}", "cron.day.bothStarred": "El día {days} de cada mes y {weekdays}{months}", "cron.hours.range": "{from}–{to}", "cron.hours.list": "{hours}", "cron.time.everyMinute": "Cada minuto", "cron.time.everyMinutes": "Cada {step} minutos", "cron.time.joinedEveryMinute": "cada minuto", "cron.time.joinedEveryMinutes": "cada {step} minutos", "cron.time.everyHour": "Cada hora", "cron.time.joinedEveryHour": "cada hora", "cron.time.everyNHours": "Cada {count} horas", "cron.time.joinedEveryNHours": "cada {count} horas", "cron.time.hourlyAt": "Cada hora en el minuto {minutes}", "cron.time.joinedHourlyAt": "cada hora en el minuto {minutes}", "cron.time.hoursEveryMinute": "cada minuto durante las horas {hours}", "cron.time.hoursEveryMinutes": "cada {step} minutos durante las horas {hours}", "cron.time.at": "a las {times}", "cron.time.hoursAt": "en el minuto {minutes} de las horas {hours}", "frequency.weekday.join": ", ", "frequency.weekday.1": "lun", "frequency.weekday.2": "mar", "frequency.weekday.3": "mié", "frequency.weekday.4": "jue", "frequency.weekday.5": "vie", "frequency.weekday.6": "sáb", "frequency.weekday.7": "dom", "unit.day.one": "día", "unit.day.other": "días", "unit.hour.one": "hora", "unit.hour.other": "horas", "unit.minute.one": "minuto", "unit.minute.other": "minutos", "unit.second.one": "segundo", "unit.second.other": "segundos", "relative.now": "Vence ahora", "relative.future": "en {value} {unit}", "relative.overdue": "{value} {unit} de retraso", "mark.aria": "{count} tareas programadas", "hover.more": "{count} más" }, "schedule.manager": { "panel": "Tareas de automatización", "title": "Tareas de automatización", "new.action": "Nueva", "list.label": "Catálogo de tareas", "list.nextPrefix": "Próxima ejecución programada: ", "list.loading": "Cargando tareas…", "list.error": "No se han podido cargar las tareas.", "list.retry": "Reintentar", "list.empty": "Todavía no hay tareas. Las tareas creadas en tus sesiones aparecen aquí.", "list.emptyInactive": "No hay tareas de automatización inactivas", "list.noMatches": "No hay tareas coincidentes", "search.label": "Buscar tareas", "search.placeholder": "Buscar tareas de automatización", "search.clear": "Vaciar la búsqueda", "empty.action": "Nueva tarea de automatización", "statusFilter.label": "Estado de la tarea", "statusFilter.all": "Todas", "status.active": "Activada", "status.inactive": "Inactiva", "detail.label": "Detalles de la tarea", "detail.close": "Cerrar los detalles", "detail.more": "Acciones de la tarea de automatización", "detail.nextRun": "Próxima ejecución", "detail.tabs": "Vistas de detalle de la tarea", "detail.rule": "Reglas", "detail.records": "Registros de entrega", "delivery.empty": "No hay ningún registro de entrega disponible", "delivery.loading": "Cargando registros de entrega…", "delivery.error": "No se han podido cargar los registros de entrega.", "delivery.notFound": "Esta tarea ya no está disponible.", "delivery.cursorError": "Los registros se han actualizado.", "delivery.retry": "Reintentar", "delivery.refresh": "Actualizar", "delivery.loadMore": "Cargar más", "delivery.expand": "Expandir", "delivery.collapse": "Contraer", "delivery.pruned": "Los registros de entrega anteriores se han vaciado", "delivery.retention": "Reglas de retención", "delivery.retentionBounds": "Cada tarea conserva hasta {records} registros de entrega de los últimos {days} días.", "delivery.retentionExplanation": "Cuando se guarda un registro nuevo, los registros anteriores fuera de estos límites se vacían automáticamente. Vaciar registros no detiene la tarea.", "detail.name": "Nombre de la tarea de automatización", "detail.instruction": "Instrucción de la tarea de automatización", "detail.status": "Estado", "detail.next": "Próxima ejecución programada", "detail.frequency": "Frecuencia", "detail.id": "ID de la tarea", "detail.session": "Sesión vinculada", "detail.openSession": "Sesión vinculada: abrir la sesión original", "detail.openSessionTitle": "Sesión vinculada {title}: abrir la sesión original", "detail.sessionLoading": "Cargando la información de la sesión original.", "detail.sessionArchived": "La sesión original está archivada.", "detail.sessionUnavailable": "La sesión original no está disponible.", "detail.missing": "Tarea no disponible. Es posible que se haya eliminado.", "delivery.label": "Registro de entrega guardado", "frequency.once": "Una vez", "frequency.every": "Cada {value} {unit}", "time.locale": "en", "time.utcPrefix": "UTC", "frequency.daily": "Cada día a las {time} ({timeZone})", "frequency.dailyLocal": "Cada día a las {time}", "frequency.weekly": "Cada semana los {weekdays} a las {time} ({timeZone})", "frequency.weeklyLocal": "Cada semana los {weekdays} a las {time}", "frequency.cron": "Cron {expression} ({timeZone})", "frequency.cronLocal": "Cron {expression}", "frequency.cronRule": "{rule} ({timeZone})", "cron.list.join": ", ", "cron.part.join": " ", "cron.weekday.name": "{weekday}", "cron.weekday.range": "{from}–{to}", "cron.months": " en {months}", "cron.day.every": "Todos los días{months}", "cron.day.weekdays": "{weekdays}{months}", "cron.day.monthDays": "El día {days} de cada mes{months}", "cron.day.both": "El día {days} de cada mes o los {weekdays}{months}", "cron.day.bothStarred": "El día {days} de cada mes y los {weekdays}{months}", "cron.hours.range": "{from}–{to}", "cron.hours.list": "{hours}", "cron.time.everyMinute": "Cada minuto", "cron.time.everyMinutes": "Cada {step} minutos", "cron.time.joinedEveryMinute": "cada minuto", "cron.time.joinedEveryMinutes": "cada {step} minutos", "cron.time.everyHour": "Cada hora", "cron.time.joinedEveryHour": "cada hora", "cron.time.everyNHours": "Cada {count} horas", "cron.time.joinedEveryNHours": "cada {count} horas", "cron.time.hourlyAt": "Cada hora en el minuto {minutes}", "cron.time.joinedHourlyAt": "cada hora en el minuto {minutes}", "cron.time.hoursEveryMinute": "cada minuto durante las horas {hours}", "cron.time.hoursEveryMinutes": "cada {step} minutos durante las horas {hours}", "cron.time.at": "a las {times}", "cron.time.hoursAt": "en el minuto {minutes} de las horas {hours}", "frequency.weekday.join": ", ", "frequency.weekday.1": "lun", "frequency.weekday.2": "mar", "frequency.weekday.3": "mié", "frequency.weekday.4": "jue", "frequency.weekday.5": "vie", "frequency.weekday.6": "sáb", "frequency.weekday.7": "dom", "unit.day.one": "día", "unit.day.other": "días", "unit.hour.one": "hora", "unit.hour.other": "horas", "unit.minute.one": "minuto", "unit.minute.other": "minutos", "unit.second.one": "segundo", "unit.second.other": "segundos", "relative.now": "Vence ahora", "relative.future": "dentro de {value} {unit}", "relative.overdue": "{value} {unit} de retraso", "timing.date": "Fecha", "timing.time": "Hora", "timing.hour": "Hora", "timing.minute": "Minuto", "timing.second": "Segundo", "timing.prevMonth": "Mes anterior", "timing.nextMonth": "Mes siguiente", "timing.zone": "Zona horaria", "timing.zoneSearch": "Buscar por desplazamiento UTC, ID de IANA o ciudad", "timing.zoneNoResults": "No hay zonas horarias coincidentes", "timing.interval": "Repetir cada", "timing.intervalIncrease": "Aumentar el intervalo", "timing.intervalDecrease": "Reducir el intervalo", "timing.unit.hour": "horas", "timing.unit.minute": "minutos", "timing.unit.second": "segundos", "timing.intervalHint.hour": "Al menos 1 hora. El intervalo cuenta desde la creación de la tarea o el último cambio de regla y es independiente de las zonas horarias.", "timing.intervalHint.minute": "Al menos 1 minuto. El intervalo cuenta desde la creación de la tarea o el último cambio de regla y es independiente de las zonas horarias.", "timing.intervalHint.second": "Al menos 60 segundos. El intervalo cuenta desde la creación de la tarea o el último cambio de regla y es independiente de las zonas horarias.", "timing.zoneNoStored": "Una tarea puntual solo guarda su momento objetivo, no una zona horaria. La fecha y la hora se interpretan en la zona horaria seleccionada.", "timing.inactive": "Las tareas inactivas son de solo lectura. Su programación no se puede editar.", "timing.conflict": "Esta tarea ha cambiado mientras la editabas. Tu borrador se conserva. Cancela y vuelve a abrirla tras actualizar para editar la última regla.", "timing.notFound": "Esta tarea ya no está disponible. Tu borrador se conserva; cancela para cerrar el editor.", "timing.invalid": "Introduce una fecha y una hora válidas, o revisa los campos de programación.", "timing.invalidZone": "Introduce una zona horaria de IANA válida, por ejemplo Asia/Shanghai.", "timing.notFuture": "Elige una fecha y una hora futuras.", "timing.invalidInterval": "Introduce un intervalo de al menos 1 minuto.", "timing.invalidInterval.hour": "Introduce un intervalo de al menos 1 hora.", "timing.invalidInterval.minute": "Introduce un intervalo de al menos 1 minuto.", "timing.invalidInterval.second": "Introduce un intervalo de al menos 60 segundos.", "timing.error": "No se ha podido confirmar la actualización de la programación. Tu borrador se conserva. Revisa la tarea antes de reintentar.", "rule.title": "Hora de ejecución", "rule.repeat": "Repetir", "rule.weekday": "Día de la semana", "rule.weekdayOption": "Día de la semana {weekday}", "rule.unsaved": "Cambios sin guardar", "rule.save": "Guardar cambios", "rule.saving": "Guardando…", "rule.cancel": "Cancelar", "rule.invalidTitle": "Introduce un nombre de tarea de 120 caracteres como máximo.", "rule.invalidPrompt": "Introduce una instrucción para la tarea.", "rule.once": "Una vez", "rule.everyMinutes": "Cada N minutos", "rule.everyHours": "Cada N horas", "rule.everySeconds": "Cada N segundos", "rule.daily": "Cada día", "rule.weekdays": "De lunes a viernes", "rule.weekly": "Cada semana", "rule.cron": "Personalizada", "rule.cronLabel": "Expresión cron", "rule.cronInvalid": "Introduce una expresión cron de cinco campos, por ejemplo 0 9 * * 1-5.", "cronForm.frequency": "Frecuencia", "cronForm.monthly": "Mensual", "cronForm.weekly": "Semanal", "cronForm.daily": "Cada día", "cronForm.dates": "En fechas", "cronForm.dateOption": "Día {day}", "cronForm.atMinute": "En el minuto", "cronForm.minuteIncrease": "Aumentar el minuto", "cronForm.minuteDecrease": "Reducir el minuto", "rule.zone.system": " (sistema)", "rule.error.conflict": "Esta tarea ha cambiado antes de guardar la actualización. La fila muestra la regla guardada; inténtalo de nuevo.", "rule.error.notFound": "Esta tarea ya no está disponible.", "rule.error.unknown": "No se ha podido confirmar la actualización de la regla. La fila muestra la regla guardada.", "delete.action": "Eliminar la tarea", "delete.title": "¿Eliminar esta tarea?", "delete.description": "Esto impide que la tarea se active y la elimina junto con sus registros de entrega guardados. La sesión original y sus mensajes permanecen; los mensajes en cola no se retiran.", "delete.confirm": "Confirmar la eliminación", "delete.cancel": "Cancelar", "delete.close": "Cerrar la confirmación de eliminación", "delete.pending": "Eliminando…", "toast.deleted": "Tarea eliminada.", "toast.deleteFailed": "No se ha podido eliminar la tarea.", "card.open": "Abrir", "card.openLabel": "Abrir los detalles de la tarea: {title}", "card.deleted": "Eliminada", "tool.invoked": "{name} invocada" }, "session-log-download": { "header.more": "Más acciones", "menu.download": "Descargar el registro de la sesión", "menu.feedback": "Comentarios", "dialog.preparingTitle": "Exportando la sesión", "dialog.preparingDescription": "Preparando un ZIP que contiene esta sesión, sus subsesiones y los archivos adjuntos.", "dialog.successTitle": "Descarga de la sesión iniciada", "dialog.successDescription": "El navegador está descargando el ZIP de la sesión.", "dialog.errorTitle": "Error al exportar la sesión", "dialog.close": "Cerrar", "dialog.commandFailed": "No se pudo iniciar la exportación de la sesión." }, "settings.account": { "modelSignInRequired": "Modelo no disponible. Inicia sesión y vuelve a intentarlo.", "sessionExpired": "Has cerrado la sesión de tu cuenta; inicia sesión de nuevo.", "onboardingArtworkLocale": "en", "onboardingWelcome": "Te damos la bienvenida a", "onboardingBrand": "DeepSeek Harness", "onboardingIntroduction": "DeepSeek Harness trabaja en una carpeta local y usa herramientas para leer y escribir archivos en tu ordenador. Puede ayudarte a investigar y organizar información, crear documentos y hojas de cálculo, escribir código, solucionar problemas y mucho más.", "onboardingStart": "Empezar", "onboardingCredit": "Añadir créditos", "onboardingCreditDescription": "DeepSeek Harness cobra créditos según los tokens que consumen los modelos y las herramientas. Añade créditos con antelación para que tus tareas sigan ejecutándose sin interrupciones. El saldo solo se usa mientras el agente trabaja en una tarea.", "onboardingTopUp": "Añadir créditos", "onboardingLater": "Siguiente", "onboardingFundedTopUp": "Añadir créditos", "onboardingPurposePrefix": "¿Con qué te gustaría que", "onboardingPurposeSuffix": "te ayudara?", "onboardingPurposeDescription": "Adaptaremos la interfaz y las herramientas a tu forma de trabajar.", "onboardingOffice": "Trabajo de oficina y creativo", "onboardingOfficeDescription": "Editar documentos, organizar datos, crear presentaciones y mucho más", "onboardingDevelopment": "Programación y desarrollo", "onboardingDevelopmentDescription": "Editar código, depurar errores, ejecutar comandos, gestionar archivos de proyecto y mucho más", "onboardingContinue": "Continuar", "onboardingProcess": "¿Cuánto detalle quieres ver?", "onboardingProcessDescription": "Esto solo cambia cómo se muestra el progreso, no lo que DeepSeek Harness puede hacer.", "onboardingCompact": "Solo resultados", "onboardingCompactDescription": "Muestra solo los resultados en una interfaz limpia y sencilla", "onboardingStandard": "Detalles clave", "onboardingStandardDescription": "Se centra en los resultados y muestra solo los pasos y las acciones más importantes", "onboardingDetailed": "Todos los detalles", "onboardingDetailedDescription": "Muestra todo el proceso para facilitar la depuración y la resolución de problemas", "onboardingEnter": "Abrir la aplicación", "onboardingBack": "Atrás", "onboardingSkip": "Omitir", "onboardingSkipTitle": "¿Omitir la configuración?", "onboardingSkipDescription": "Puedes cambiar cómo se muestran el progreso, el rendimiento y el uso, o activar las herramientas de programación, en cualquier momento en Ajustes → General.", "onboardingKeepSetting": "Continuar con la configuración", "onboardingNoCreditTitle": "¿Omitir la adición de créditos?", "onboardingNoCreditDescription": "DeepSeek Harness no puede iniciar tareas nuevas sin créditos. Puedes añadirlos más tarde en Ajustes → Cuenta.", "onboardingUnderstood": "Entendido", "onboardingGoTopUp": "Añadir créditos", "onboardingSaveFailed": "No se pudieron guardar los ajustes. Inténtalo de nuevo.", "onboardingRetry": "Reintentar", "onboardingLoading": "Cargando los ajustes…", "close": "Cerrar", "addApiKey": "Añadir clave de API", "retry": "Iniciar sesión de nuevo", "loginTitle": "Empezar", "loginDescription": "Inicia sesión en tu cuenta de DeepSeek o añade una clave de API para empezar. Tus proyectos y archivos se almacenan localmente.", "browserTitle": "Esperando el inicio de sesión", "browserPrompt": "¿No se ha abierto la página automáticamente? ", "copyLink": "Copiar enlace de inicio de sesión", "copiedLink": "Enlace copiado", "copyFailed": "No se pudo copiar", "browserDescription": ", ábrelo después en el navegador para completar el inicio de sesión.", "timeoutTitle": "Se agotó el tiempo de inicio de sesión", "timeoutDescription": "Inicia sesión de nuevo para continuar.", "failureTitle": "No se pudo iniciar sesión", "platformFailed": "No se pudo completar la operación. Inténtalo de nuevo.", "platformRetry": "Reintentar", "loading": "Cargando…", "backToHarness": "Volver a DeepSeek Harness", "settings": "Ajustes", "contactUs": "Comentarios", "menu": "Menú de la cuenta", "nav": "Cuenta", "signedIn": "Sesión iniciada en DeepSeek", "signedOut": "Sesión no iniciada", "signIn": "Iniciar sesión", "signOut": "Cerrar sesión", "signOutUnknownDescription": "No se pudieron comprobar las tareas en ejecución. Cerrar sesión puede interrumpir las tareas que usan esta cuenta. ¿Cerrar sesión ahora?", "signOutDescription": "Cerrar sesión no eliminará ningún dato. Puedes volver a iniciar sesión en esta cuenta.", "signOutRunningDescription": "Hay tareas en ejecución. Cerrar sesión las interrumpirá. ¿Cerrar sesión ahora?", "cancel": "Cancelar", "open": "Abrir navegador", "initializing": "Iniciando el inicio de sesión…", "waiting": "Continúa en el navegador", "completing": "Completando el inicio de sesión…", "expired": "El inicio de sesión ha caducado. Inténtalo de nuevo.", "failed": "No se pudo completar la operación. Inténtalo de nuevo.", "settingsSignedOutTitle": "No has iniciado sesión en DeepSeek Harness", "settingsSignedOutDescription": "Inicia sesión en DeepSeek Harness para obtener tu clave de API dedicada", "signInDescription": "Usa tu cuenta de DeepSeek para empezar.", "profileUnavailable": "Los detalles de la cuenta aún no están disponibles.", "balance": "Saldo recargado", "bonusBalance": "Saldo otorgado", "balanceUnavailable": "Ver en la plataforma", "balanceSignedOut": "Inicia sesión para verlo", "accountInfo": "Más información de la cuenta", "more": "Más", "usage": "Ver uso", "topUp": "Recargar", "quotaTitle": "No hay saldo disponible", "quotaDescription": "DeepSeek Harness no puede iniciar una tarea nueva con esta cuenta cuando no hay saldo disponible. ¿Quieres recargar? También puedes recargar más tarde en Ajustes → Cuenta.", "quotaTopUp": "Recargar", "bonusNoticeTitle": "Bonificación abonada" }, "settings.agentLoop": { "title": "Bucle del agente", "description": "Controla cómo el agente distribuye las llamadas a herramientas.", "maxParallel": "Llamadas a herramientas en paralelo", "maxParallelHint": "Límite superior de llamadas seguras en paralelo que se ejecutan a la vez dentro de un mismo paso.", "overridden": "Anulado", "reset": "Restablecer los valores predeterminados", "readOnly": "Esta implementación almacena los ajustes en modo de solo lectura.", "unavailable": "Este plugin no está cargado, por lo que no se puede configurar ahora mismo.", "save": "Guardar", "saving": "Guardando…", "saveFailed": "La implementación no aceptó estos valores; se han dejado para que los corrijas.", "invalidNumber": "Introduce un número o déjalo en blanco para usar el valor predeterminado." }, "settings.agentPreset": { "modeExplanation": "Detalles del modo", "howToUse": "Cómo usarlo", "guideSections": "Secciones de la guía", "guideExampleTask": "Tarea de ejemplo", "guideCopy": "Copiar", "guideCopied": "Copiado", "guideFootnotes": "Notas al pie", "guideStandardIntro": "Elige el modo Estándar al iniciar una tarea nueva. Describe lo que quieres conseguir, indica los archivos relevantes y explica cómo comprobar el resultado.", "guideStandardExplanation": "### Cómo funciona\n\nEl agente llama a las herramientas directamente para leer y editar archivos, buscar y ejecutar comandos de terminal. Incluye skills, planificación, objetivos, subagentes, flujos de trabajo y compactación de contexto.\n\n### Cuándo elegirlo\n\nEmpieza por aquí para programar en el día a día, trabajar con archivos e investigar. El modo Estándar también puede escribir scripts y procesar archivos por lotes. PTC cambia cómo se organizan las llamadas a herramientas; no es necesario para las tareas por lotes.", "guideStandardUsage": "### Corregir un error\n\n> Averigua por qué al enviar dos veces el formulario de búsqueda desaparecen los resultados. Corrígelo y ejecuta las pruebas correspondientes. Explica la causa y lo que ha cambiado.\n\nResultado esperado: un cambio en el código, los resultados de las pruebas correspondientes y una explicación de la causa.\n\n### Organizar las notas del proyecto\n\n> Lee las notas en Markdown de este proyecto. Resume las decisiones acordadas y las preguntas abiertas, con enlaces a los archivos de origen.\n\nResultado esperado: un resumen con referencias que puedas contrastar con las notas originales.", "guidePtcIntro": "Elige el modo PTC al iniciar una tarea nueva. Especifica los archivos de entrada, las reglas de procesamiento y el formato de salida. El agente escribe el código.", "guidePtcExplanation": "### Cómo se llaman las herramientas\n\nPTC significa Programmatic Tool Calling. En este preset integrado, el agente usa run_code para escribir un programa en TypeScript que llama a las herramientas mediante un SDK generado. El programa puede usar bucles, condiciones, gestión de errores y llamadas concurrentes cuando corresponda.\n\n### Qué llega al modelo\n\nLos resultados de las herramientas llegan primero al programa, que puede filtrarlos y combinarlos. El modelo recibe lo que el programa imprime o devuelve; los resultados de imagen se adjuntan por separado. Las llamadas a herramientas anidadas se siguen registrando y siguen sujetas a los permisos de herramientas.\n\n### En comparación con el modo Estándar\n\nAmbos modos pueden abordar tareas de programación y por lotes. El modo Estándar expone las herramientas individuales directamente; PTC organiza las llamadas a herramientas en código. El preset PTC actual deja deshabilitada la herramienta de flujo de trabajo. La velocidad y el uso de tokens dependen de la tarea y de cómo el programa gestione sus resultados.", "guidePtcUsage": "### Comprobar un conjunto de archivos de configuración\n\n> Comprueba todos los archivos JSON de configs/. Enumera los campos obligatorios que falten y los valores no válidos según schema.json. Guarda un CSV con una fila por problema. Incluye los archivos ilegibles en el informe y sigue comprobando el resto. No modifiques los archivos originales.\n\nResultado esperado: un resumen de problemas y un informe CSV. El programa puede repetir las mismas comprobaciones, gestionar fallos individuales y recopilar los resultados.\n\n### Resumir registros de errores\n\n> Analiza los archivos de registro de logs/. Agrupa los errores por servicio y tipo de error. Muestra los diez grupos más frecuentes y un ejemplo de cada uno. Guarda los recuentos completos en un CSV.\n\nResultado esperado: los principales grupos de errores y una tabla de recuentos completa. Los datos intermedios se pueden agregar en el programa antes de que el resumen llegue al modelo.", "guideMinimalIntro": "Elige el modo Mínimo para una tarea nueva. Para hacer una comparación, mantén constantes el modelo, los permisos, la entrada y el estado inicial del espacio de trabajo en todas las ejecuciones.", "guideMinimalExplanation": "### Qué incluye\n\nUna herramienta de shell persistente y un prompt de sistema fijo. El preset integrado no carga skills, planificación, compactación de contexto ni el contexto de ejecución estándar.\n\n### Cuándo elegirlo\n\nÚsalo como base para experimentos y comparaciones. Aún puede leer archivos y ejecutar scripts mediante comandos de shell, pero ofrece menos formas integradas de gestionar una tarea larga. Menos herramientas no significa necesariamente que sea más fácil para quien empieza.", "guideMinimalUsage": "### Comparar el rendimiento en la corrección de un error pequeño\n\n> Ejecuta las pruebas de este proyecto, encuentra la causa del fallo y aplica la corrección más pequeña. Vuelve a ejecutar las pruebas correspondientes e informa del resultado.\n\nEjecuta la misma tarea por separado en los modos Estándar y Mínimo desde el mismo estado inicial. Compara la finalización de la tarea, las llamadas a herramientas y los cambios resultantes. El modo Mínimo realiza el trabajo mediante comandos de terminal.", "guideCordisIntro": "Elige el modo Creador para una tarea nueva. Describe la capacidad que quieres, dónde debe aparecer y cómo la vas a verificar.", "guideCordisExplanation": "### Qué puedes crear\n\nEl modo Creador incluye las herramientas de tareas estándar, además de inspección en tiempo de ejecución, gestión persistente de plugins y orientación para crear plugins de Cordis y presets de agente. Puede crear un plugin que añada una capacidad o una interfaz, o un preset que combine herramientas y prompts para un trabajo concreto.\n\n### Plugins y modos\n\nUn plugin añade capacidades a DSH, como una herramienta, una conexión de servicio o una entrada de interfaz. Un modo es un preset de agente que selecciona herramientas y define cómo trabaja el agente en una tarea. Un plugin puede incluirse en un preset personalizado.\n\n### Cómo surte efecto el resultado\n\nPide al agente que instale y verifique el resultado, no solo que genere código fuente. Un plugin puede cargarse de inmediato o requerir un reinicio, según lo que cambie. Un preset recién creado se selecciona al iniciar una tarea nueva.", "guideCordisUsage": "### Añadir una interfaz\n\n> Crea un plugin de DSH que añada una entrada de notas del proyecto a la barra lateral. Déjame explorar los archivos Markdown de este espacio de trabajo y previsualizar una nota seleccionada. Instálalo y verifica que la página se abre.\n\nResultado esperado: un plugin instalado con una entrada funcional y una página de vista previa, además de los pasos de activación que queden pendientes.\n\n### Añadir una herramienta\n\n> Crea un plugin con una herramienta que lea el informe de pruebas de este proyecto y resuma las pruebas fallidas. Regístralo y verifícalo con un informe de ejemplo.\n\nResultado esperado: un plugin con una herramienta invocable y una llamada de ejemplo verificada.\n\n### Crear mi propio modo\n\n> Crea un modo «Revisión de código» basado en el modo Estándar. Haz que priorice posibles errores y lagunas en las pruebas, cite rutas de archivo y líneas, y pregunte antes de modificar archivos. Guárdalo como un preset seleccionable.\n\nResultado esperado: un preset personalizado para tareas nuevas. Estas instrucciones de revisión guían al agente; los ajustes de permisos determinan qué acciones puede ejecutar.", "builtInGroup": "Integrados", "customGroup": "Personalizados", "sectionIntro": "Elige las herramientas del agente y cómo funciona. Usa el modo Estándar para las tareas del día a día, o el modo Creador para añadir capacidades a DSH.", "seatHint": "Elige el preset de agente para la nueva tarea", "headerHint": "El preset de agente elegido al iniciar esta tarea", "nav": "Presets de agente", "setDefault": "Establecer como predeterminado para tareas nuevas", "view": "Ver la configuración", "presetStandardName": "Modo Estándar", "presetStandardDescription": "Trabaja con código, archivos e información. Adecuado para la mayoría de las tareas, con búsqueda, edición, comandos de terminal y otras herramientas disponibles según sea necesario.", "presetPtcName": "Modo PTC", "presetPtcDescription": "Incluye todas las capacidades del modo Estándar. Más adecuado para tareas que llaman a herramientas por lotes y luego filtran, organizan, deduplican, cuentan o resumen los resultados.", "presetMinimalName": "Modo Mínimo", "presetMinimalDescription": "El agente trabaja usando solo una herramienta de terminal. Útil para probar y comparar su rendimiento básico.", "presetCordisName": "Modo Creador", "presetCordisDescription": "Personaliza DSH mediante la conversación. Deja que el agente escriba plugins que añadan funciones o interfaz, o combina herramientas y prompts para crear tu propio modo.", "inUse": "Predeterminado para tareas nuevas", "noDescription": "Sin descripción.", "brokenBadge": "No se pudo cargar", "switchRefused": "No se pudo cambiar a {name}: {reason}", "close": "Cerrar", "creatorDraft": "Deja que el agente me ayude a crear un preset" }, "settings": { "trigger": "Ajustes", "shortcut.open": "Abrir los ajustes", "desktop.update.available": "Actualización", "desktop.update.checking": "Buscando actualizaciones…", "desktop.update.progress": "{percent}%", "desktop.update.verifying": "Verificando los archivos de actualización…", "desktop.update.installing": "Preparando el reinicio…", "desktop.update.ready": "Instalar y reiniciar", "desktop.update.retry": "Reintentar la actualización", "desktop.update.versionDetail": "{label}: {version}", "desktop.update.downloadDetail": "Descargando la actualización: {percent}%\nVersión de destino: {version}", "desktop.update.checkFailed": "No se pudieron buscar actualizaciones. Inténtalo de nuevo más tarde.", "desktop.update.downloadFailed": "No se pudo descargar la actualización. Inténtalo de nuevo.", "desktop.update.installFailed": "No se pudo instalar la actualización. Inténtalo de nuevo más tarde.", "desktop.update.checkNetworkFailed": "No se pudieron buscar actualizaciones. Comprueba la conexión e inténtalo de nuevo.", "desktop.update.downloadNetworkFailed": "No se pudo descargar la actualización. Comprueba la conexión e inténtalo de nuevo.", "desktop.update.installNetworkFailed": "No se pudo instalar la actualización. Comprueba la conexión e inténtalo de nuevo.", "desktop.update.stopFailed": "No se pudieron detener las tareas de forma segura. La actualización no se ha instalado. Inténtalo de nuevo más tarde.", "desktop.update.tasksChanged": "Han comenzado nuevas tareas. Confirma de nuevo para detener las tareas y actualizar.", "desktop.update.tasksUnavailable": "El estado de las tareas no está disponible. Vuelve a intentar la actualización cuando el espacio de trabajo esté listo.", "title": "Ajustes", "close": "Cerrar", "openDocument": "Abrir el archivo de configuración", "openDocument.error": "No se pudo abrir el archivo de configuración", "general.nav": "General", "general.currentVersion": "Versión actual: {version}", "developerTools.title": "Mostrar la vista de programación", "developerTools.error": "No se pudo guardar. Inténtalo de nuevo.", "developerTools.description": "Muestra la trayectoria, las diferencias de código y todos los presets de agente", "connection.error": "Desconectado", "connection.connecting": "Reconectando", "connection.connected": "Conectado", "connection.reconnect": "Desconectado, reconectar ahora", "connection.restart": "Reconectando, reconectar ahora" }, "settings.locale": { "language.title": "Idioma" }, "settings.models": { "nav": "Modelos", "deepSeekAccount": "Cuenta de DeepSeek", "title": "Modelos", "intro": "Introduce tus claves de API para usar modelos de los siguientes proveedores.", "edit": "Editar", "editProvider": "Editar {provider}", "remove": "Eliminar", "removeProvider": "Eliminar {provider}", "deleteTitle": "¿Eliminar {provider}?", "deleteDescription": "Eliminar {provider} quita su configuración. Cualquier credencial que utilice se gestiona en otro lugar y se conservará.", "deleteDescriptionWithCredential": "Eliminar {provider} quita su configuración y la clave de API almacenada.", "deleteConfirm": "Eliminar {provider}", "deleting": "Eliminando {provider}…", "add": "Añadir proveedor de modelos", "addMode": "Cómo añadir", "addCatalog": "Proveedor de modelos de terceros", "addCustom": "API de modelos personalizada", "addCatalogHint": "Elige OpenAI, Anthropic, Kimi u otro proveedor del catálogo integrado e introduce su clave de API.", "addCustomHint": "Conecta un relay, un servidor autoalojado o cualquier otro endpoint compatible con OpenAI o Anthropic mediante su URL base, protocolo y modelos.", "addCatalogExhausted": "Ya están configurados todos los proveedores del catálogo.", "addCustomUnavailable": "No hay ningún protocolo de API disponible para declarar.", "provider": "Proveedor", "close": "Cerrar", "cancel": "Cancelar", "apply": "Aplicar", "applying": "Aplicando…", "savedProvider": "Se ha guardado {provider}.", "credentialConfigured": "Clave de API configurada", "credentialMissing": "Falta la clave de API", "readOnly": "El documento de ajustes es de solo lectura en esta implementación.", "loadFailed": "No se pudo cargar el directorio de proveedores", "conflict": "Otra persona cambió estos ajustes mientras esta tarjeta estaba abierta. Ciérrala y vuelve a abrirla para editar los valores actuales.", "retry": "Reintentar", "keyInput": "Clave de API", "keyPlaceholder": "Introduce tu clave de API", "keyPlaceholderNative": "Introduce una clave de API o déjalo en blanco para usar la autenticación del entorno", "keyStored": "Configurada — introduce un valor nuevo para reemplazarla", "keyEnvLocked": "Proporcionada por el entorno de inicio (solo lectura)", "customized": "Ajustes personalizados", "baseUrl": "URL base", "baseUrlDefault": "Valor predeterminado del proveedor", "deepSeekBaseUrl": "https://api.deepseek.com/anthropic", "deepSeekEndpointHint": "Usa un endpoint de API compatible con Anthropic Messages.", "models": "Modelos", "modelsInherited": "Usando los valores predeterminados del adaptador", "modelsCustomized": "Catálogo de modelos personalizado", "resetModels": "Restaurar valores predeterminados", "model": "Modelo", "modelId": "ID del modelo", "modelName": "Nombre visible", "modelNamePlaceholder": "Usa el ID del modelo cuando está vacío", "contextWindow": "Ventana de contexto", "contextWindowPlaceholder": "Usa el valor predeterminado del proveedor", "maxTokens": "Tokens máximos de salida", "maxTokensPlaceholder": "Usa el valor predeterminado del proveedor", "modelAdvanced": "Opciones del modelo", "modelInputTypes": "Tipos de entrada", "modelInputText": "Texto", "modelInputImage": "Imagen", "addModel": "Añadir modelo", "removeModel": "Eliminar modelo", "modelsEmpty": "No se mostrará ningún modelo en el selector. Los ID no listados aún pueden enviarse directamente.", "keyBlank": "Introduce la clave de API o deja el campo vacío para conservar la almacenada.", "keyBlankNew": "Introduce la clave de API o deja el campo vacío si este proveedor se autentica de otra forma.", "keyIllegalCharacters": "Esta clave de API no tiene un formato válido. Compruébala.", "modelIdRequired": "El ID del modelo es obligatorio.", "modelIdDuplicate": "El ID del modelo debe ser único.", "modelNameInvalid": "El nombre visible no puede estar vacío.", "modelContextInvalid": "La ventana de contexto debe ser un número positivo, como 131072, 256K o 1M.", "modelMaxTokensInvalid": "Los tokens máximos de salida deben ser un número positivo, como 8192, 64K o 1M.", "advancedHint": "Otros campos residen en cordis.patch.yml; edita esa sección directamente.", "modelCapacityInvalid": "Una capacidad debe ser un número, con el sufijo K o M opcional.", "modelDuplicate": "Cada ID de modelo puede aparecer una sola vez.", "fetchModels": "Obtener modelos disponibles", "fetching": "Consultando al proveedor…", "fetchNeedsBaseUrl": "Introduce primero la URL base y luego obtén los modelos.", "fetchEmpty": "El proveedor no ha listado ningún modelo. Añádelos manualmente.", "fetchTitle": "Elegir modelos para añadir", "fetchDescription": "Estos son los modelos disponibles en este proveedor. Elige los que quieras añadir.", "fetchSearch": "Buscar modelos", "fetchNoMatches": "No hay modelos coincidentes.", "fetchSelectAll": "Seleccionar todo", "fetchDeselectAll": "Deseleccionar todo", "fetchAdopt": "Añadir seleccionados", "customTag": "Personalizado", "customRoute": "ID del proveedor", "customRouteHint": "Identificador en minúsculas, que empieza por una letra, y que nombra de forma única este proveedor en las solicitudes y como nombre de su credencial.", "customRouteInvalid": "Empieza por una letra minúscula; después, letras minúsculas, dígitos y guiones.", "customRouteTaken": "Ya hay un proveedor que usa este ID.", "customDisplayName": "Nombre visible", "customApi": "Protocolo de API", "customApiUnset": "Sin seleccionar", "protocolOpenAiCompletions": "OpenAI Chat Completions", "protocolOpenAiResponses": "OpenAI Responses", "protocolAnthropicMessages": "Anthropic Messages", "customNeedsBaseUrl": "Un proveedor personalizado necesita una URL base.", "customBaseUrlInvalid": "Introduce una URL HTTP o HTTPS válida.", "customNeedsModels": "Un proveedor personalizado necesita al menos un modelo.", "customBaseUrlPlaceholder": "https://gateway.example/v1", "customAnthropicBaseUrlPlaceholder": "https://gateway.example", "settingsPathUnresolvable": "ruta de ajustes no resoluble", "create": "Crear proveedor", "creating": "Creando…", "welcomeTitle": "Aviso de versión preliminar", "welcomeBody": "DeepSeek Harness 0.2 aún está en versión preliminar y muchas áreas necesitan mejoras y ajustes continuos. Agradecemos los comentarios y sugerencias de todos los desarrolladores y usuarios. La nueva aplicación de escritorio ahora se dirige a una amplia variedad de usuarios, mientras que las funciones avanzadas para desarrolladores pueden activarse en los ajustes. Está previsto que las funciones de producto y las API de plugins de DeepSeek Harness sigan iterando y evolucionando rápidamente, y que se estabilicen de forma gradual con el tiempo.\n\nEsperamos explorar los límites de la inteligencia junto a usuarios y desarrolladores de todo el mundo, sobre una infraestructura de código abierto, reutilizable y componible. Animamos a todo el mundo a dar vida a sus ideas con DeepSeek Harness y a participar en la comunidad para enriquecer el ecosistema de plugins.", "welcomeContinue": "Continuar", "welcomeError": "No se pudo guardar la confirmación. Inténtalo de nuevo.", "onboardingTitle": "Añade una clave de API para empezar", "onboardingDescription": "Configura el proveedor oficial de DeepSeek para empezar a crear.", "onboardingLater": "Configurar más tarde", "onboardingSave": "Guardar y continuar", "onboardingSaving": "Guardando…", "keyRequired": "Introduce una clave de API para continuar." }, "settings.pluginInventory": { "tab": "Lista de plugins", "loading": "Leyendo plugins…", "clientSyncing": "Sincronizando plugins en esta página…", "clientSyncFailed": "Algunos plugins no se pudieron sincronizar en esta página. La habilitación en el Host no ha cambiado.", "clientSyncRetry": "Reintentar en esta página", "error": "Los plugins no están disponibles temporalmente.", "metadataError": "Error en los metadatos del paquete: {error}", "retry": "Reintentar", "search": "Buscar plugins", "empty": "No hay plugins disponibles.", "emptySearch": "No hay plugins coincidentes.", "presetTitle": "Plugins de la sesión", "presetSubtitle": "Compuestos por sesión mediante presets de agente", "countUnit": "plugins", "switcherLabel": "Elige el preset de agente que inspeccionar", "presetOptionDefault": "{name} (predeterminado)", "presetOptionBroken": "{name} (no se pudo cargar)", "globalTitle": "Plugins globales", "globalSubtitle": "Compartidos por el sistema y todas las sesiones", "presetProvidedDetail": "Deshabilitado globalmente; los presets de agente lo proporcionan por sesión", "enabledIn": "Habilitado en", "viewInPreset": "Ver en el grupo de presets", "matchesInOtherPresets": "{count} coincidencias más en otros presets: ", "failedCountLabel": "fallidos", "enabledTag": "Habilitado", "disabledTag": "Deshabilitado", "conditionalTag": "Condicional", "presetEnabledTag": "Mediante presets", "failedTag": "Fallido", "moduleLabel": "Módulo", "fromPreset": "De", "condition": "Deshabilitado cuando", "configuration": "Configuración", "runtime": "Estado", "unobserved": "No está en ejecución", "pending": "Esperando dependencias", "loadingPhase": "Cargando", "active": "En ejecución", "failed": "No se pudo iniciar", "unloading": "Descargando" }, "settings.plugins": { "nav": "Plugins integrados", "title": "Plugins integrados", "intro": "Inspecciona los plugins que incluye esta implementación.", "tabs": "Vistas de plugins", "empty": "Esta implementación no expone ninguna vista de plugins." }, "settings.sessionLog": { "title": "Subir el registro de la sesión al usar la API oficial del modelo", "description": "Ayuda a mejorar los modelos y productos de DeepSeek.", "saved": "Preferencia guardada", "failed": "No se pudo guardar la preferencia" }, "settings.shell": { "title": "Shell", "description": "Limita cuánto tiempo puede ejecutarse cada comando y cuánto puede generar como salida.", "timeoutMs": "Tiempo de espera del comando (ms)", "timeoutMsHint": "Cuánto tiempo puede ejecutarse un comando antes de que se termine.", "maxOutputBytes": "Límite de salida por flujo (bytes)", "maxOutputBytesHint": "La salida que supere este límite se vuelca a un archivo temporal en lugar de perderse.", "overridden": "Anulado", "reset": "Restablecer los valores predeterminados", "readOnly": "Esta implementación almacena los ajustes en modo de solo lectura.", "unavailable": "Este plugin no está cargado, por lo que no se puede configurar ahora mismo.", "save": "Guardar", "saving": "Guardando…", "saveFailed": "La implementación no aceptó estos valores; se han dejado para que los corrijas.", "invalidNumber": "Introduce un número o déjalo en blanco para usar el valor predeterminado." }, "settings.subagent": { "overridden": "Modificado", "reset": "Restablecer al valor predeterminado", "readOnly": "Esta implementación almacena los ajustes en solo lectura.", "unavailable": "Este plugin no está cargado, por lo que no se puede configurar ahora mismo.", "save": "Guardar", "saving": "Guardando…", "saveFailed": "La implementación no aceptó estos valores; se han dejado para que los corrijas.", "subagentTitle": "Subagente", "subagentDescription": "Configura la profundidad de recursión, el número y los modelos de los subagentes.", "subagentLimitsTitle": "Límites", "subagentMaxDepth": "Profundidad máxima de recursión", "subagentDepthHelpLabel": "Acerca de la profundidad máxima de recursión", "subagentDepthHelp": "Limita cuántos niveles de subagentes puede crear un agente.", "subagentDepthZero": "Desactivar los subagentes", "subagentDepthOne": "Solo el agente principal puede crear subagentes", "subagentDepthOverride": "Si una herramienta define su propia profundidad máxima de recursión, ese ajuste tiene prioridad.", "subagentMaxActive": "Límite de paralelismo de subagentes", "subagentCapacityHelpLabel": "Acerca del límite de paralelismo de subagentes", "subagentCapacityHelp": "Total de subagentes activos bajo el mismo agente principal, en todos los niveles de recursión. El agente principal no se cuenta. Las nuevas solicitudes de inicio se rechazan al alcanzar el límite.", "subagentDepthInvalid": "Introduce un número entero igual o mayor que 0.", "subagentCapacityInvalid": "Introduce un número entero igual o mayor que 1.", "subagentModelSelectionTitle": "Selección de modelo", "subagentModelSelectionToggle": "Permitir que los agentes elijan modelos para los subagentes", "subagentModelSelectionChoose": "Si se activa, los agentes pueden elegir un proveedor, un modelo y un nivel de esfuerzo de razonamiento para cada subagente entre los modelos autorizados de abajo. Solo se aplica a las sesiones nuevas.", "subagentModelSelectionAllowed": "Modelos que los agentes pueden elegir", "subagentModelSelectionLoading": "Cargando modelos…", "subagentModelSelectionLoadFailed": "No se pudieron cargar los modelos.", "subagentModelSelectionRetry": "Reintentar", "subagentModelSelectionPartial": "No se pudieron cargar algunos proveedores de modelos; las opciones guardadas se pueden seguir quitando.", "subagentModelSelectionUnavailable": "No disponible actualmente", "subagentModelSelectionUnavailableGroup": "Guardado pero no disponible actualmente", "subagentModelSelectionEmpty": "Ningún proveedor de modelos anuncia modelos actualmente.", "subagentModelSelectionRequired": "Selecciona al menos un modelo antes de guardar.", "subagentModelSelectionConflict": "Los ajustes cambiaron en otro lugar. Descarta el borrador e inténtalo de nuevo.", "subagentModelSelectionOff": "Los subagentes usan los valores predeterminados configurados o heredan el modelo del agente padre. Las opciones de modelo guardadas se conservan." }, "settings.theme": { "appearance.title": "Apariencia", "appearance.light": "Claro", "appearance.dark": "Oscuro", "appearance.system": "Sistema", "fontSize.title": "Tamaño de la fuente", "fontSize.description": "Solo afecta al contenido de la conversación", "fontSize.unit": "px", "fontSize.increase": "Aumentar el tamaño de la fuente", "fontSize.decrease": "Reducir el tamaño de la fuente" }, "settings.webSearch": { "title": "Búsqueda web", "description": "Configurar el proveedor de búsqueda de DeepSeek.", "apiKey": "Clave de API", "apiKeyHint": "Se guarda fuera del archivo de ajustes. Deja el campo vacío para conservar la clave actual.", "apiKeySet": "Hay una clave configurada.", "apiKeyUnset": "No hay ninguna clave configurada; solo pueden buscar las conversaciones que usen un modelo de la Cuenta de DeepSeek, a través del endpoint predeterminado.", "baseUrl": "Endpoint", "baseUrlHint": "Deja el campo vacío para usar el valor predeterminado del proveedor.", "maxUses": "Máximo de búsquedas por solicitud", "maxUsesHint": "Cuántas veces puede buscar una solicitud antes de tener que responder.", "overridden": "Modificado", "reset": "Restablecer al valor predeterminado", "readOnly": "Esta implementación almacena los ajustes en solo lectura.", "unavailable": "Este plugin no está cargado, por lo que no se puede configurar ahora mismo.", "save": "Guardar", "saving": "Guardando…", "saveFailed": "La implementación no aceptó estos valores; se han dejado para que los corrijas.", "invalidNumber": "Introduce un número o deja el campo vacío para usar el valor predeterminado." }, "shortcuts": { "edit-label": "Editar el atajo de {command}", "record": "Pulsa un atajo", "record-help": "Suelta las teclas para guardar. Tab se mueve entre acciones; Esc cancela.", "web-help": "Combinaciones del navegador: Mod+/, Mod+Shift+,, Mod+Shift+.. Mod es Command en Mac y Ctrl en el resto de plataformas.", "unsupported-key": "Esta tecla no es compatible.", "reserved": "Esta combinación está reservada para acciones del sistema o de edición de texto.", "modifier-required": "Incluye Command, Ctrl o Alt en la combinación.", "too-many-keys": "Mantén como máximo dos teclas que no sean modificadoras. Suelta las teclas para volver a intentarlo.", "macos-web-help": "Usa Command+/, Command+,, Command+Backslash, Control+Backquote, Command+Option+tecla o Command+Shift+tecla. También se admiten combinaciones con tres o cuatro modificadores distintos. Es posible que los atajos del navegador o del sistema no lleguen a la página.", "windows-web-help": "Usa Ctrl+/, Ctrl+,, Ctrl+Alt+tecla o Ctrl+Shift+tecla. También se admiten combinaciones con tres o cuatro modificadores distintos. Es posible que los atajos del navegador o del sistema no lleguen a la página.", "unsupported-browser": "Este navegador aún no admite esta combinación.", "conflict": "Ya está en uso por «{commands}»", "saved": "Modificado", "clear": "Quitar", "retry-save": "Reintentar guardado", "reset": "Restaurar predeterminado", "reset-all": "Restaurar todos los predeterminados", "modified-count": "{count} personalizados", "reset-title": "¿Restaurar todos los atajos predeterminados?", "reset-description": "Restaura los atajos predeterminados de esta plataforma. Se restaurarán todos los atajos modificados o eliminados. Las demás plataformas no se ven afectadas.", "cancel": "Cancelar", "reset-saved": "Atajos predeterminados restaurados", "close-confirmation": "Cerrar confirmación", "reset-failed": "No se pudieron restaurar los valores predeterminados. Los atajos no han cambiado. Vuelve a intentarlo.", "review": "He revisado la configuración más reciente", "stale": "La configuración de atajos o los comandos disponibles han cambiado. Revisa las asignaciones más recientes antes de guardar.", "write-failed": "No se pudo guardar. Se conservan los atajos anteriores y el borrador actual. Vuelve a intentarlo.", "not-ready": "Los atajos aún no están listos. Vuelve a intentarlo.", "read": "No se pudo leer {location}. Comprueba los permisos de acceso y luego {reload}.", "invalid": "La configuración de atajos en {location} está dañada. Haz una copia de seguridad y repara esta configuración, y luego {reload}.", "future": "La configuración de atajos en {location} se creó con una versión más reciente. Actualiza Harness y vuelve a intentarlo.", "web-document": "la entrada localStorage dsh.keybindings.v1 de este sitio", "desktop-document": "userData/keybindings.json", "web-reload": "recarga la página", "desktop-reload": "reinicia Harness", "using-defaults": "Las asignaciones predeterminadas están activas.", "using-accepted": "Las últimas asignaciones leídas correctamente siguen activas.", "native-failed": "No se pudo proteger la grabación de teclas del escritorio. Sal de la grabación y vuelve a intentarlo.", "global-hint": "Abrir desde cualquier lugar", "clear-search": "Vaciar búsqueda", "title": "Atajos de teclado", "open": "Abrir los atajos de teclado", "settings": "Atajos de teclado", "view": "Editar atajos", "description": "Ver y editar los atajos y las acciones de entrada disponibles", "search": "Buscar atajos", "close": "Cerrar los atajos de teclado", "application": "Aplicación", "input": "Entrada de mensajes", "menus": "Menús y diálogos", "approval": "Área de aprobación", "unbound": "Sin atajo", "empty": "No hay atajos coincidentes", "move": "Mover la selección del menú", "select": "Seleccionar el elemento del menú", "dismiss": "Cerrar el menú o el diálogo superior" }, "shortcuts.layout": { "toggle": "Alternar la barra lateral izquierda" }, "sidebar": { "session.new": "Nueva sesión", "session.new.label": "Nueva sesión", "toggle.open": "Abrir la barra lateral", "toggle.collapse": "Contraer la barra lateral", "panels.label": "Paneles globales" }, "sidebarBrowser": { "type.label": "Navegador", "guide.title": "Navegador", "guide.description": "Navegar por páginas web", "shortcut.noSession": "Abre primero una sesión", "address.placeholder": "Introduce una dirección HTTP(S)", "address.changed": "La URL ha cambiado", "back": "Atrás", "forward": "Adelante", "reload": "Recargar", "go": "Ir", "external": "Abrir en el navegador del sistema", "sandbox.disable": "Desactivar las restricciones del sandbox", "sandbox.enable": "Restaurar las restricciones del sandbox", "sandbox.warning": "Las restricciones del sandbox están desactivadas; la página puede navegar por la aplicación principal y usar descargas, diálogos modales y bloqueos de entrada.", "start": "Introduce una dirección HTTP(S) para empezar a navegar", "loading": "Abriendo…", "restore.previous": "Abierto anteriormente", "restore.action": "Restaurar la página", "error.empty": "Introduce una dirección.", "error.invalid": "Esa dirección no es válida o es demasiado larga.", "error.protocol": "Solo se admiten direcciones HTTP y HTTPS; usa la vista previa de documentos para archivos locales.", "error.credentials": "Las direcciones no pueden contener un nombre de usuario ni una contraseña.", "error.application-origin": "El navegador integrado no puede abrir la propia aplicación DSH.", "load.failed": "No se pudo cargar la página; recárgala o ábrela en el navegador del sistema.", "load.failed.detail": "Falló la carga de la página ({code}): {description}", "address.unknown": "La página ha navegado; este contenedor no puede leer su nueva URL." }, "sidebarCodePreview": { "title": "Código", "copy": "Copiar", "copied": "Copiado" }, "sidebarDocumentPreview": { "loading": "Procesando el documento...", "loadMore": "Cargar más", "changed": "El archivo ha cambiado; se muestra el contenido anterior.", "reloadNow": "Recargar", "reload": "Volver a leer el archivo", "autoRefresh": "Actualización automática", "autoRefresh.enable": "Activar la actualización automática", "autoRefresh.disable": "Desactivar la actualización automática", "wrap.enable": "Activar el ajuste de línea", "wrap.disable": "Desactivar el ajuste de línea", "wrap.aria": "Ajuste de línea", "openWith": "Abrir con", "viewer.text": "Texto sin formato", "resourceUnavailable": "El servicio de recursos de archivos no está disponible.", "rendererUnavailable": "La vista previa de {name} no está disponible.", "unsupportedFile": "La vista previa aún no está disponible para este tipo de archivo.", "error.notFound": "No se encontró el archivo. Es posible que se haya movido o eliminado.", "error.tooLarge": "Esta página supera el límite de {limit} y no se puede leer.", "error.notText": "La vista previa aún no está disponible para este tipo de archivo.", "error.notRegularFile": "No es un archivo normal; no hay nada que mostrar.", "error.unavailable": "Falló la lectura: {message}", "retry": "Reintentar" }, "sidebarExcel": { "title": "Hoja de cálculo", "language": "es", "loading": "Representando el documento...", "invalid": "No se pudo abrir esta hoja de cálculo. Comprueba su formato, su contenido o su protección con contraseña.", "tooLarge": "Este libro supera el límite de tamaño de la vista previa.", "timeout": "Se agotó el tiempo al abrir este libro. Prueba con un archivo más pequeño.", "encoding": "No se pudo leer esta codificación de texto. Guarda el archivo como UTF-8 o UTF-16 con BOM y vuelve a intentarlo.", "formulaWarning": "Este libro contiene fórmulas. Es posible que los resultados mostrados falten o sean inexactos.", "unsupportedNotice": "Esta vista previa no admite {features} en este libro. Ábrelo en una aplicación del sistema para disfrutar de la experiencia completa.", "charts": "gráficos", "images": "imágenes", "shapes": "formas", "conditionalFormatting": "formato condicional", "featureSeparator": ", ", "retry": "Reintentar" }, "sidebarFiles": { "shortcut.noSession": "Selecciona primero una sesión", "type.label": "Archivos", "guide.title": "Archivos del espacio de trabajo", "guide.description": "Explora los archivos del espacio de trabajo de esta sesión", "loading": "Leyendo…", "empty": "Directorio vacío", "truncated": "Demasiadas entradas; solo se muestran algunas.", "noWorkspace": "Esta sesión no tiene directorio de espacio de trabajo.", "reload": "Recargar", "autoRefresh": "Actualización automática", "autoRefresh.enable": "Habilitar la actualización automática", "autoRefresh.disable": "Deshabilitar la actualización automática", "entry.other": "No es un archivo ni un directorio, por lo que no se puede abrir.", "error.notFound": "Ese directorio ya no existe. Es posible que se haya movido o eliminado.", "error.outsideWorkspace": "Ese directorio está fuera del espacio de trabajo, por lo que la barra lateral no lo leerá.", "error.notDirectory": "Eso no es un directorio.", "error.unavailable": "Error de lectura: {message}" }, "sidebarImage": { "zoomControls": "Controles de zoom", "zoomMenu": "Elegir zoom", "zoomOut": "Alejar", "zoomIn": "Acercar", "zoomFitWidth": "Ajustar al ancho", "zoomValue": "{percent}%", "title": "Imagen", "preview": "Vista previa de la imagen: {name}", "loading": "Representando el documento...", "failed": "No se pudo mostrar esta imagen.", "unsupported": "La vista previa de la imagen requiere el contenido completo del archivo." }, "sidebarOffice": { "title": "Documento de Office", "loading": "Representando el documento...", "retry": "Reintentar", "viewMissingFonts": "Fuentes ausentes: {count}. Haz clic para verlas.", "missingFontsTitle": "Fuentes ausentes", "missingFontsDescription": "Estas fuentes no están disponibles para esta vista previa. El texto y el diseño pueden diferir del documento original.", "missingFontsCount": "Fuentes: {count}", "closeDetails": "Cerrar los detalles de las fuentes", "unavailable": "Las vistas previas de Office no están disponibles. Habilita el servicio de vista previa de documentos en el equipo que ejecuta DeepSeek Harness.", "invalid": "Este archivo de Office no se puede previsualizar. Puede estar dañado, protegido con contraseña o tener una extensión incorrecta.", "tooLarge": "El archivo de Office o el PDF convertido supera el límite de tamaño de la vista previa. Reduce el tamaño del archivo o ajusta la configuración de la vista previa.", "failed": "La conversión de Office no generó un PDF utilizable. Comprueba el archivo e inténtalo de nuevo.", "timeout": "Se agotó el tiempo de la conversión de Office. Inténtalo de nuevo.", "busy": "La vista previa de Office está ocupada. Inténtalo de nuevo en breve.", "changed": "El archivo cambió mientras se leía. Vuelve a abrir la vista previa." }, "sidebarPdf": { "zoomControls": "Controles de zoom", "zoomMenu": "Elegir zoom", "zoomOut": "Alejar", "zoomIn": "Acercar", "zoomFitWidth": "Ajustar al ancho", "zoomValue": "{percent}%", "title": "PDF", "pageImage": "Página {page} del PDF", "loading": "Representando el documento...", "rendering": "Representando la página…", "failed": "No se puede mostrar el PDF: {message}", "password": "Este PDF requiere una contraseña; las vistas previas protegidas con contraseña no son compatibles.", "workerFailed": "El proceso de representación del PDF no pudo continuar. Vuelve a intentarlo.", "unsupported": "La vista previa del PDF requiere el contenido completo del archivo.", "retry": "Reintentar" }, "sidebarRight": { "command.close": "Cerrar la página o ventana actual", "command.refresh": "Actualizar la página actual", "command.noRefresh": "Esta página no se puede actualizar", "command.toggle": "Mostrar u ocultar la barra lateral derecha", "command.fullscreen": "Alternar la pantalla completa del panel", "command.noSession": "Selecciona primero una sesión", "command.noFocus": "Enfoca primero un panel de la barra lateral derecha", "command.stale": "La página ha cambiado; vuelve a enfocarla", "command.collapsed": "Expande primero la barra lateral derecha", "command.float": "Esta acción no está disponible en un panel flotante", "command.empty": "Abre primero una página", "command.budget": "El límite es de dos paneles", "command.width": "No hay ancho suficiente para dividir; amplía la barra lateral", "chrome.expand": "Abrir la barra lateral", "chrome.expandAria": "Abrir la barra lateral derecha", "chrome.collapse": "Contraer la barra lateral", "chrome.collapseAria": "Contraer la barra lateral derecha", "chrome.toFullscreen": "Pantalla completa", "chrome.exitFullscreen": "Salir de pantalla completa", "dock.emptyPane": "Panel vacío", "dock.splitPane": "Dividir", "dock.splitPaneDisabled": "El límite es de dos paneles", "dock.splitPaneNarrow": "No hay ancho suficiente para dividir; amplía la barra lateral", "dock.closeTab": "Cerrar", "dock.addTab": "Nueva pestaña", "dock.dockFloat": "Devolver a la barra lateral", "dock.closeFloat": "Cerrar", "dock.drop.center": "Mover aquí", "dock.drop.left": "Añadir división a la izquierda", "dock.drop.right": "Añadir división a la derecha", "dock.drop.top": "Añadir división arriba", "dock.drop.bottom": "Añadir división abajo", "tab.guide.title": "Inicio", "tab.unavailable": "Todavía no hay nada aquí que pueda mostrar este tipo de contenido." }, "sidebarTerminal": { "shortcut.noSession": "Selecciona primero una sesión", "recoveryFailed": "Falló la recuperación del terminal: {message}", "retryRecovery": "Reintentar la recuperación del terminal", "shell": "Elegir shell", "shellLoading": "Cargando shells…", "shellEmpty": "No hay shells disponibles", "description": "Ejecutar comandos en el espacio de trabajo de la sesión", "title": "Terminal", "new": "Nuevo terminal", "loading": "Leyendo el entorno del terminal…", "creating": "Iniciando…", "connecting": "Conectando…", "disconnected": "Desconectado.", "reconnect": "Volver a conectar", "readonly": "Esta vista es de solo lectura.", "control": "Tomar el control", "closed": "Terminal cerrado.", "exited": "El proceso finalizó ({code})", "failed": "Error del terminal: {message}", "rename": "Nombre del terminal", "unavailable": "No disponible", "retry": "Reintentar", "cleanupFailed": "No se pudo cerrar el terminal «{title}»: {message}", "missingTerminal": "Este terminal ya no existe. Abre un terminal nuevo.", "inputFull": "El búfer de entrada está lleno. Vuelve a conectar e inténtalo de nuevo.", "attachmentEnded": "La conexión del terminal ha finalizado. Vuelve a conectar para continuar.", "invalidOutput": "No se pudo recibir la pantalla del terminal. Vuelve a conectar para recuperarla.", "terminalLimit": "Se ha alcanzado el límite de terminales. Cierra los terminales que no uses e inténtalo de nuevo. Los terminales finalizados también cuentan para el límite." }, "skill": { "row.title": "Skill", "row.running": "Cargando la skill", "row.preparing": "Preparando la carga de una skill", "row.failed": "Error al cargar la skill", "row.stopped": "Carga de la skill detenida", "row.instructions": "Instrucciones", "row.inspect": "Inspeccionar", "menu.userOnly": "solo para el usuario" }, "slash.menu": { "command": "Comandos", "skill": "Skills", "subagent": "Subagentes", "loading": "Cargando…", "drill.aria": "Explorar la carpeta", "drill.hint": "Explorar la carpeta", "drill.key": "Tab", "crumbs.aria": "Navegación por carpetas", "suggestions.aria": "Sugerencias de activación" }, "subagent": { "duration.seconds": "{seconds}s", "duration.minutes": "{minutes}m {seconds}s", "duration.hours": "{hours}h {minutes}m {seconds}s", "duration.days": "{days}d", "duration.daysHours": "{days}d {hours}h", "duration.months": "~{months} mes", "duration.monthsDays": "~{months} mes {days}d", "duration.years": "~{years} año", "duration.yearsMonths": "~{years} año {months} mes", "duration.exactDays": "{days}d {hours}h {minutes}m {seconds}s", "duration.exactTitle": "Duración activa total: {duration}", "tokens.thousand": "{value}K", "tokens.million": "{value}M", "tokens.total": "{value} tok", "loading.label": "Cargando subagentes…", "load.error": "No se pudieron cargar los subagentes", "retry": "Reintentar", "mode.oneShot": "de un solo uso", "mode.continuable": "continuable", "mode.unknown": "modo desconocido", "readonly.unknown.body": "Lee la sesión hija para determinar si se puede continuar.", "activity.running": "en ejecución", "activity.completed": "completado", "activity.inactive": "inactivo", "branch.collapse": "Contraer los descendientes de {label}", "branch.expand": "Expandir los descendientes de {label}", "count.total.one": "{count} subagente", "count.total.other": "{count} subagentes", "count.running.one": "{count} subagente en ejecución", "count.running.other": "{count} subagentes en ejecución", "switcher.aria": "Cambiar de subagente: {title}", "tree.aria": "Sesiones de subagentes", "open.sidebar": "Abrir en la barra lateral", "open.sidebar.aria": "Abrir {label} en la barra lateral", "sidebar.chat": "Chat", "readonly.oneShot.title": "Registro de subagente de un solo uso", "readonly.title": "Este subagente es de solo lectura por ahora", "readonly.oneShot.body": "Las tareas de un solo uso no aceptan mensajes de seguimiento; revisa aquí el registro completo de la ejecución.", "readonly.body": "La sesión padre está desconectada; vuelve a abrirla para seguir enviando mensajes." }, "trajectory": { "view.trajectory": "Trayectoria", "toolbar.aria": "Barra de herramientas de la trayectoria", "toolbar.duration": "Duración", "toolbar.useActualDuration": "Usar la duración real", "toolbar.useEqualWidth": "Usar operaciones de ancho uniforme", "toolbar.actualTime": "Tiempo real", "toolbar.turns": "Turnos", "toolbar.expandTurns": "Expandir turnos", "toolbar.collapseTurns": "Contraer turnos", "toolbar.calls": "Llamadas", "toolbar.expandCalls": "Expandir llamadas", "toolbar.collapseCalls": "Contraer llamadas", "toolbar.search": "Buscar en la trayectoria", "toolbar.searchPlaceholder": "Buscar", "kind.system": "SISTEMA", "kind.user": "USUARIO", "kind.context": "CONTEXTO", "kind.compacted": "COMPACTADO", "kind.message": "Mensaje", "kind.assistant": "ASISTENTE", "kind.tool": "HERRAMIENTA", "kind.subtool": "SUBHERRAMIENTA", "kind.sub": "Sub", "column.input": "Entrada", "column.output": "Salida", "column.think": "Pensamiento", "column.time": "Tiempo", "column.model": "Modelo", "column.tools": "Herramientas", "turn.label": "Turno {turn}", "section.betweenTurns": "Entre turnos", "group.message": "Mensaje", "group.step": "Paso {step}", "group.compaction": "Compactación {seq}", "status.failed": "Fallido", "status.pending": "Pendiente", "status.completed": "Completado", "timing.notAvailable": "No disponible", "timing.notRecorded": "No registrado", "timing.stepStartUnavailable": "Inicio del paso no disponible", "timing.firstTokenUnavailable": "Primer token no disponible", "timing.usageUnavailable": "Uso no disponible", "timing.outputTokensUnavailable": "Tokens de salida no disponibles", "timing.durationTooShort": "Duración demasiado breve", "timing.showLocalTime": "Mostrar hora local", "timing.showUnixTimestamp": "Mostrar marca de tiempo Unix", "timing.started": "Iniciado", "timing.totalDuration": "Duración total", "timing.ttft": "TTFT", "timing.generation": "Generación", "timing.throughput": "Rendimiento", "timing.duration": "Duración", "timing.source": "Origen del tiempo", "timing.sessionTimestamps": "Marcas de tiempo de la sesión", "timing.sessionTimestampsRunning": "Marcas de tiempo de la sesión (en ejecución)", "timing.request": "Tiempos de la solicitud", "unit.milliseconds": "{value} ms", "unit.seconds": "{value} s", "unit.tokens": "{value} tok", "unit.tokensPerSecond": "{value} tok/s", "usage.tokens": "Tokens", "usage.reasoning": "Razonamiento", "usage.content": "Contenido", "usage.notReported": "Uso no notificado", "usage.input": "Entrada", "usage.cached": "En caché", "usage.cacheCreated": "Caché creada", "usage.other": "Otros", "usage.output": "Salida", "usage.thisRequest": "Esta solicitud", "usage.sessionCumulative": "Acumulado de la sesión", "options.notRecorded": "Opciones no registradas", "options.json": "JSON de opciones de la solicitud", "source.unknown": "Desconocido", "source.user": "Usuario", "source.plugin": "Plugin", "source.pluginNamed": "Plugin · {plugin}", "source.goal": "Objetivo", "source.goalRound": "Objetivo · Ronda {round}", "source.notRecorded": "Origen no registrado", "source.messageJson": "JSON de origen del mensaje", "tab.summary": "Resumen", "tab.rawOutput": "Salida sin procesar", "tab.preview": "Vista previa", "tab.raw": "Sin procesar", "tab.source": "Origen", "tab.payload": "Payload", "tab.result": "Resultado", "tab.schema": "Esquema", "tab.timing": "Tiempos", "tab.diff": "Diferencias", "tab.systemPrompt": "Indicaciones del sistema", "tab.tools": "Herramientas", "tab.options": "Opciones", "tab.usage": "Uso", "record.toolCallOnly": "(solo llamada a herramienta)", "record.noContent": "Sin contenido", "record.noPayload": "No se capturó payload", "record.noResult": "No se capturó ningún resultado", "record.noOutput": "Sin salida", "record.schemaUnavailable": "Esquema no disponible", "record.parameters": "Parámetros", "record.resultJson": "JSON del resultado", "record.json": "JSON", "record.parametersJson": "JSON de parámetros", "record.namedParametersJson": "JSON de parámetros de {name}", "record.payloadJson": "JSON del payload", "record.outputJson": "JSON del resultado", "record.thinking": "Pensamiento", "record.wrapLines": "Ajustar líneas", "code.source": "Código", "code.output": "Salida", "code.copySource": "Copiar código", "code.copyOutput": "Copiar salida", "code.originalJson": "JSON original", "code.running": "En ejecución…", "record.systemPromptMissing": "No hay indicaciones del sistema en esta solicitud", "record.toolsMissing": "No hay herramientas en esta solicitud", "record.systemPrompt": "Indicaciones del sistema", "record.tools": "Herramientas", "block.openSummary": "Abrir el resumen de llamadas a herramientas del bloque n.º {index}", "block.openSummaryTitle": "Abrir el resumen de llamadas a herramientas", "block.label": "Bloque n.º {index} {type}", "history.loadingTrajectory": "Cargando la trayectoria…", "history.loadingEarlier": "Cargando el historial anterior…", "history.loadingEarlierAria": "Cargando el historial anterior…", "history.loadEarlier": "Cargar el historial anterior", "history.clickToLoadEarlier": "Hacer clic para cargar el historial anterior", "request.label": "Solicitud n.º {request}", "request.labelCompaction": "Solicitud n.º {request} · Compactación", "request.compaction": "Compactación · {section}", "request.compactionPurpose": "Compactación", "request.retryProgress": "{retry} de {maximum}", "request.collapsedSummary": "Resumen de {kind} contraído, {summary}", "request.collapsedTurn": "turno", "request.collapsedAssistant": "asistente", "request.rowAria": "{request}{kind}, {content}", "request.rowPrefix": "Solicitud {request}, ", "request.rowAriaCompaction": "Solicitud {request}, compactación", "request.noContent": "sin contenido", "summary.toolCalls.one": "{count} llamada a herramienta", "summary.toolCalls.other": "{count} llamadas a herramientas", "summary.steps.one": "{count} paso", "summary.steps.other": "{count} pasos", "details.event": "Detalles del evento", "details.resize": "Redimensionar los detalles del evento", "details.resizeTitle": "Arrastrar para redimensionar. Hacer doble clic para restablecer.", "details.close": "Cerrar los detalles", "details.status": "Estado", "details.purpose": "Propósito", "details.provider": "Proveedor", "details.model": "Modelo", "details.toolCalls": "Llamadas a herramientas", "details.subtoolCalls": "Llamadas a subherramientas", "details.error": "Error", "details.failure.auth": "La clave de la API no es válida", "details.retry": "Reintentar", "details.scheduled": "Programado", "details.retryDelay": "Retardo de reintento", "details.result": "Resultado", "details.compacted": "Compactado", "details.assistantMessage": "Mensaje del asistente", "details.source": "Origen", "details.hierarchy": "Jerarquía", "details.toolCall": "Llamada a herramienta", "timeline.aria": "Cronología de la trayectoria", "timeline.overviewAria": "Vista general de la cronología; arrastrar horizontalmente para centrar los eventos", "timeline.noTimingData": "Sin datos de tiempos", "timeline.total": "Total {duration}", "timeline.started": "Iniciado {time}", "timeline.ttftDecoding": "TTFT {ttft} · Decodificación {decoding}", "layout.compacting": "Compactando el contexto…", "layout.compactionFailed": "La compactación falló", "layout.compacted": "Contexto compactado", "layout.toolCallOnly": "Solo llamada a herramienta", "attachment.list": "Adjuntos", "attachment.imageName": "Imagen {index}", "layout.imageCount": "Imágenes ×{count}", "layout.fileAttachments": "Archivos ×{count}", "layout.initialSystemPrompt": "Indicaciones del sistema iniciales", "layout.systemPromptUpdated": "Indicaciones del sistema actualizadas", "layout.toolsUpdated": "Herramientas actualizadas", "layout.toolAdded": "Herramienta añadida: {name}", "layout.toolRemoved": "Herramienta eliminada: {name}", "layout.toolUpdateNotice": "Herramientas actualizadas", "layout.toolsAdded": "Añadidas: {names}", "layout.toolsAddedCount": "{count} añadidas", "layout.toolsChanged": "{added} añadidas, {removed} eliminadas", "layout.toolsRemoved": "Eliminadas: {names}", "layout.toolsRemovedCount": "{count} eliminadas", "layout.systemPromptAndToolsUpdated": "Indicaciones del sistema y herramientas actualizadas", "layout.compactionInterrupted": "La compactación se interrumpió antes de finalizar." }, "voice-input": { "dictate": "Dictar", "setupPrompt.title": "Configura la entrada de voz antes de grabar", "setupPrompt.body": "La entrada de voz está habilitada. El primer uso requiere descargar y preparar los modelos de reconocimiento locales. Abre los detalles del plugin para revisar las estimaciones de espacio en disco, memoria y tiempo antes de iniciar la configuración.", "setupPrompt.later": "Más tarde", "setupPrompt.open": "Ir a la configuración", "setupPrompt.trigger": "Abrir la configuración de la entrada de voz", "setupPrompt.details": "Abrir los ajustes del plugin de voz", "setupPrompt.unavailableTitle": "El reconocimiento de voz no está listo", "setupPrompt.unavailableBody": "Abre los detalles del plugin de voz para consultar el estado del reconocimiento, el progreso de la preparación o los errores.", "setup.local": "Los modelos locales se descargarán en la máquina que ejecuta DSH. No se requiere Python ni ningún compilador.", "setup.disk": "Espacio en disco", "setup.diskValue": "Reserva unos {gb} GB para los modelos, el entorno de ejecución y las cachés de descarga", "setup.memory": "Memoria", "setup.memoryValue": "Unos {gb} GB con el modelo cargado; el reconocimiento puede usar más", "setup.time": "Primera configuración", "setup.timeValue": "Reserva aproximadamente entre {min} y {max} minutos, según la red y la máquina", "setup.estimateNote": "Son estimaciones; las redes lentas pueden tardar más. Las descargas se reutilizan; los modelos inactivos liberan memoria de forma predeterminada.", "step.check": "Comprobar los recursos locales", "step.model": "Preparar el modelo de reconocimiento", "step.vad": "Preparar el modelo de detección de voz", "step.verify": "Verificar los archivos del modelo", "step.load": "Cargar {name}", "stepStatus.pending": "Sin iniciar", "stepStatus.running": "En curso", "stepStatus.complete": "Completado", "stepStatus.failed": "Fallido", "stepStatus.cancelled": "Cancelado", "short.downloading": "Descargando", "short.failed": "Configuración fallida", "retryRecording": "Grabar de nuevo", "preparationSteps": "Pasos de preparación", "prepare": "Descargar y preparar", "retryPrepare": "Reintentar la preparación", "cancelPrepare": "Cancelar la preparación", "downloadProgress": "Progreso de descarga", "downloadBytes": "Descarga: {completed} / {total} MB, {percent} %", "downloadUnknown": "Descargados {completed} MB", "elapsed": "Esperando {seconds} segundos", "preparationFailed": "La preparación falló: {message}", "download.network": "No se puede descargar {resource}: falló la conexión con el servicio de descarga.", "download.dns": "No se puede descargar {resource}: no se pudo resolver la dirección de descarga.", "download.timeout": "Se agotó el tiempo de descarga de {resource}.", "download.certificate": "No se puede descargar {resource}: falló la verificación del certificado.", "download.http": "No se puede descargar {resource}: el servicio de descarga devolvió HTTP {status}.", "download.integrity": "La descarga de {resource} está incompleta o no superó la verificación.", "download.storage": "No se puede guardar {resource}: espacio en disco insuficiente o sin permiso de escritura.", "download.unknown": "No se pudo preparar {resource}.", "downloadAdvice.network": "Comprueba que la máquina que ejecuta DSH pueda acceder a la fuente de descarga y a sus servicios de descarga de modelos. Si es necesario, configura un proxy en esa máquina y vuelve a intentarlo.", "downloadAdvice.dns": "Comprueba la configuración de DNS y del proxy en la máquina que ejecuta DSH. Confirma que puede resolver el dominio de la fuente de descarga y vuelve a intentarlo.", "downloadAdvice.timeout": "Comprueba la conexión de red o del proxy en la máquina que ejecuta DSH y vuelve a intentarlo más tarde. Los archivos descargados y verificados se conservan.", "downloadAdvice.certificate": "Comprueba el reloj del sistema, los certificados de confianza y la configuración del proxy en la máquina que ejecuta DSH y vuelve a intentarlo.", "downloadAdvice.http": "Confirma que la dirección de descarga esté disponible y que el proxy pueda acceder al servicio de descarga, o vuelve a intentarlo más tarde.", "downloadAdvice.integrity": "Reintenta la descarga. Los demás archivos completados y verificados se conservan.", "downloadAdvice.storage": "Comprueba el espacio en disco disponible y el permiso de escritura del directorio de modelos en la máquina que ejecuta DSH y vuelve a intentarlo.", "downloadAdvice.unknown": "Comprueba la red, el espacio en disco y los permisos del directorio de modelos en la máquina que ejecuta DSH y vuelve a intentarlo.", "downloadSource": "Fuente de descarga: {source}", "sourceChoice": "Fuente de descarga del modelo", "sourceAuto": "Automática (recomendado)", "sourceHuggingFace": "Hugging Face", "sourceMirror": "HF-Mirror (réplica de China)", "sourceAutoHelp": "Da prioridad a la primera fuente que responda y prueba otra si falla una descarga.", "sourceManualHelp": "Descarga solo desde la fuente seleccionada. Los archivos descargados y verificados se reutilizan.", "downloadCode": "Código de error: {code}", "reconnecting": "Conectando con el reconocimiento de voz…", "preparation.unprepared": "El primer uso descarga los modelos de reconocimiento locales.", "preparation.checking": "Comprobando los recursos locales…", "preparation.loading": "Cargando {name}…", "preparation.waking": "Activando el reconocimiento de voz local…", "preparation.ready": "El reconocimiento de voz local está listo.", "preparation.standby": "Los recursos locales están preparados. Al grabar se activa el reconocedor.", "preparation.cancelled": "Preparación cancelada. Las descargas completadas se conservan.", "preparation.cancelling": "Cancelando la preparación…", "cloudReady": "El reconocimiento de voz en la nube está listo.", "discard": "Descartar transcripción", "transcribingShort": "Transcribiendo…", "wakingShort": "Activando…", "provider": "Servicio de reconocimiento", "language": "Idioma de reconocimiento", "auto": "Detectar automáticamente", "zh": "Chino", "en": "Inglés", "yue": "Cantonés", "ja": "Japonés", "ko": "Coreano", "start": "Iniciar grabación", "stop": "Detener y transcribir", "cancel": "Cancelar", "insert": "Insertar texto", "loading": "Cargando los servicios de reconocimiento…", "requesting": "Permite el acceso al micrófono para continuar…", "recording": "Grabando…", "interrupted": "La grabación se interrumpió. Vuelve a intentarlo.", "local": "El audio se reconoce en la máquina que ejecuta DSH. Si hay que descargar modelos, esa máquina debe poder acceder a la fuente seleccionada y a sus servicios de archivos. Si es necesario, configura un proxy en esa máquina.", "cloud": "El audio se enviará al servicio en la nube seleccionado.", "empty": "No se ha reconocido voz", "cancelled": "Entrada de voz cancelada.", "conflict": "Tu borrador ha cambiado. La transcripción se conserva y se puede insertar en la posición actual del cursor.", "failed": "El reconocimiento de voz falló: {message}", "unavailable": "Este navegador no puede grabar audio. Usa un navegador compatible con micrófono.", "permission": "El acceso al micrófono está deshabilitado. Permítelo en los ajustes del navegador y del sistema.", "tooLarge": "La grabación supera el límite del servicio. Prueba con una grabación más corta." }, "workflowRun": { "run.title": "{name}", "run.members.one": "{count} miembro", "run.members.other": "{count} miembros", "run.empty": "No se inició ningún miembro", "phase.unassigned": "Sin fase", "phase.empty": "Nombre de fase vacío", "statusCount.running": "{count} en ejecución", "statusCount.completed": "{count} completados", "statusCount.failed": "{count} fallidos", "statusCount.cancelled": "{count} cancelados", "statusCount.interrupted": "{count} interrumpidos", "member.empty": "Nombre de miembro vacío", "member.open": "Abrir {name}", "status.running": "En ejecución", "status.completed": "Completado", "status.failed": "Fallido", "status.cancelled": "Cancelado", "status.interrupted": "Interrumpido" }, "workspace": { "defaultWorkspace.failed": "No se pudo crear el espacio de trabajo predeterminado. Usa “Elegir espacio de trabajo” para seleccionar una carpeta.", "group.ungrouped": "Sin agrupar", "session.new": "Nueva sesión", "session.untitled": "Sin título", "shortcut.noSession": "Selecciona primero una sesión", "shortcut.noPicker": "Selector de directorios no disponible", "shortcut.directoryBusy": "Seleccionando o añadiendo un espacio de trabajo", "shortcut.noCompletedTurn": "Esta sesión no tiene ningún turno completado", "shortcut.forkFailed": "No se pudo bifurcar la sesión. Inténtalo de nuevo.", "section.workspaces": "Espacios de trabajo", "section.sessions": "Sesiones", "viewOptions.label": "Opciones de vista", "groupBy.label": "Agrupar por", "groupBy.workspace": "Espacio de trabajo", "groupBy.workspaceTree": "Árbol de espacios de trabajo", "groupBy.flat": "En una sola lista", "orderBy.label": "Ordenar por", "orderBy.manual": "Manual", "orderBy.updated": "Última actualización", "filterBy.label": "Filtrar sesiones", "viewOptions.hideArchived": "Ocultar archivadas", "viewOptions.showArchived": "Todas las conversaciones (mostrar archivadas)", "viewOptions.onlyArchived": "Solo archivadas", "sessions.expand": "Mostrar {n} sesiones más", "sessions.collapse": "Mostrar menos", "empty.none": "Todavía no hay sesiones", "empty.noneArchived": "Todavía no hay sesiones archivadas", "empty.viewOthers": "Ver otras sesiones", "empty.noMatches": "Sin coincidencias", "workspace.add": "Añadir espacio de trabajo", "search.sessions.aria": "Buscar sesiones", "search.placeholder": "Buscar nombres de sesión", "search.clear": "Vaciar búsqueda", "search.results.aria": "Resultados de búsqueda", "search.pending": "Buscando en el historial de sesiones…", "search.noMatches": "No hay sesiones coincidentes", "search.hasMore": "Se muestran los primeros {n} resultados. Acota la búsqueda.", "menu.addWorkspace": "Añadir espacio de trabajo…", "picker.loading": "Cargando espacios de trabajo…", "conflict.named": "Ya existe un espacio de trabajo llamado “{name}”.", "folderError.title": "No se pudo abrir la carpeta", "folderError.retry": "Elegir otra vez", "rename": "Renombrar", "rename.workspace.title": "Renombrar espacio de trabajo", "rename.session.title": "Renombrar sesión", "field.workspaceName": "Nombre del espacio de trabajo", "field.sessionName": "Nombre de la sesión", "delete.workspace": "Eliminar espacio de trabajo", "delete.desc": "Esto quita “{name}” de la lista de espacios de trabajo. La carpeta y los registros de sesión se conservarán. Sus sesiones aparecerán en Sin agrupar.", "delete.pending": "Eliminando espacio de trabajo…", "menu.fork": "Bifurcar sesión", "menu.archiveSession": "Archivar sesión", "menu.unarchiveSession": "Desarchivar sesión", "menu.pinSession": "Fijar sesión", "menu.unpinSession": "Desfijar sesión", "row.archived": "Archivada", "row.pinned": "Fijada", "toast.archivedNotOpenable": "Las sesiones archivadas no se pueden abrir. Desarchívala para verla.", "toast.archived": "Sesión archivada. Puedes ", "toast.stoppedAndArchived": "Sesión detenida y archivada. Puedes ", "archive.confirm.title": "¿Detener y archivar esta sesión?", "archive.confirm.desc": "“{title}” todavía tiene trabajo en curso. Archivar la detiene primero; puedes restaurar la sesión más tarde desde el filtro “Todas las conversaciones (mostrar archivadas)” de la barra lateral, y el trabajo detenido no se reanudará por sí solo.", "archive.confirm.activity": "Trabajo que se detendrá", "archive.confirm.turn": "El turno en curso", "archive.confirm.subagents.one": "{n} subagente en ejecución: {names}", "archive.confirm.subagents.other": "{n} subagentes en ejecución: {names}", "archive.confirm.jobs.one": "{n} tarea en segundo plano: {names}", "archive.confirm.jobs.other": "{n} tareas en segundo plano: {names}", "archive.confirm.schedules.one": "{n} recordatorio programado: {names}", "archive.confirm.schedules.other": "{n} recordatorios programados: {names}", "archive.confirm.other.one": "{n} elemento de trabajo más ({kind})", "archive.confirm.other.other": "{n} elementos de trabajo más ({kind})", "archive.confirm.listSeparator": ", ", "archive.confirm.action": "Detener y archivar", "archive.confirm.pending": "Deteniendo y archivando…", "toast.archivedUndo": "deshacer", "toast.archivedOr": " o ", "toast.archivedFilter": "filtrar las sesiones archivadas", "toast.pinFailed": "No se pudo fijar. Inténtalo de nuevo más tarde.", "toast.unpinFailed": "No se pudo desfijar. Inténtalo de nuevo más tarde.", "toast.createFailed": "No se pudo crear la nueva sesión: {message}", "sessions.count.one": "{n} sesión", "sessions.count.other": "{n} sesiones", "actions.workspace.aria": "Acciones del espacio de trabajo {name}", "actions.session.aria": "Acciones de la sesión {name}", "actions.archive": "Archivar", "actions.unarchive": "Desarchivar", "actions.pin": "Fijar", "actions.unpin": "Desfijar", "actions.newSession": "Nueva sesión", "actions.newSession.aria": "Nueva sesión en {name}", "status.running": "En ejecución", "status.subagentsRunning.one": "{n} subagente en ejecución", "status.subagentsRunning.other": "{n} subagentes en ejecución", "status.idle": "Inactivo", "status.waitingApproval": "Esperando aprobación", "status.planReview": "Plan pendiente de revisión", "status.waitingAnswer": "Esperando respuesta", "status.compact.approval": "Aprobación", "status.compact.planReview": "Revisión del plan", "status.compact.answer": "Respuesta", "status.completed": "Completado", "hover.created": "Creado {time}", "hover.copied": "Copiado", "date.ymd": "{y}-{m}-{d}", "time.now": "ahora", "time.minutes": "{n}min", "time.hours": "{n}h", "time.days": "{n}d", "time.months": "{n}mes", "time.years": "{n}a", "time.ago": "hace {t}" } }