The terminal ran on the ghostty-web npm package plus a hand-written patch, and every rendering bug (recycled rows, duplicated reflow fragments, prompt artifacts) had to be worked around from outside. The emulator now is the official libghostty-vt C ABI compiled to WebAssembly, driven by a browser adapter ported from T3 Code (MIT, notice in LICENSE-T3CODE) and owned in packages/ui/src/lib/ghostty. The artifact is reproducible with scripts/build-libghostty-wasm.sh, including a workaround for Zig 0.15.2 on macOS 27 SDKs. On top of the port: one WASM instance per page with every tab kept mounted and hidden tabs paused; history replayed at the PTY size it was drawn for; shells spawned only after the first fitted grid so zsh never prints the PROMPT_SP marker; box drawing, block elements and Powerline arrows drawn procedurally to the exact cell so TUI borders and block logos have no gaps between rows; a software-rasterized canvas so Gecko renders every tab's text with the same smoothing; the symbols-only Nerd Font bundled instead of a CDN fetch; touch selection and scrolling driven through the surface API; a copy button in the tab strip for touch hosts; localized aria labels. Testing: bun tests run the real WASM (reflow, palette, replay isolation, recycled rows, box glyph geometry); viewport and view tests use a surface double; verified in Chromium and Zen (windowed and headless) for crisp text, new tabs, panel reopen, resize and box glyph rendering; package type-check, oxlint/eslint on new files, web build.
3329 lines
236 KiB
TypeScript
3329 lines
236 KiB
TypeScript
import type { I18nKey } from './en';
|
|
import { settingsDict } from './es.settings';
|
|
import { linearIssuePickerI18n } from './linear-issue-picker.i18n';
|
|
import { linearPanelI18n } from './linear-panel.i18n';
|
|
|
|
export const dict: Record<I18nKey, string> = {
|
|
'sessions.sidebar.projectAction.active': 'Acción del proyecto en curso',
|
|
...settingsDict,
|
|
...linearIssuePickerI18n.es,
|
|
...linearPanelI18n.es,
|
|
'terminalView.actions.attachSelection': 'Adjuntar salida seleccionada',
|
|
'terminalView.actions.copySelection': 'Copiar salida seleccionada',
|
|
'terminalView.toast.selectionCopied': 'Salida copiada',
|
|
'terminalView.toast.copyFailed': 'Error al copiar',
|
|
'terminalView.actions.restart': 'Reiniciar terminal',
|
|
'chat.message.terminalContext': '{terminal}, líneas {start}-{end}',
|
|
'chat.message.context.codeComment': 'Comentario en {file}, líneas {start}-{end}',
|
|
'chat.message.context.codeCommentLine': 'Comentario en {file}, línea {line}',
|
|
'chat.message.context.chatQuote': 'Cita de un mensaje anterior',
|
|
'chat.message.context.fileQuote': 'Selección de {file}',
|
|
'chat.chatInput.chatQuoteContext': 'Citas del chat',
|
|
'chat.chatInput.chatQuoteContextRemove': 'Quitar citas del chat',
|
|
'chat.chatInput.contextPreview.selectedLabel': 'Texto seleccionado',
|
|
'chat.chatInput.contextPreview.commentLabel': 'Comentario del usuario',
|
|
'chat.chatInput.contextPreview.edit': 'Editar comentario',
|
|
'chat.chatInput.contextPreview.remove': 'Quitar',
|
|
'chat.message.context.browserAnnotation': 'Anotación del navegador ({page})',
|
|
'chat.message.context.prComment': 'Comentario de PR de GitHub ({label})',
|
|
'chat.message.context.prCheck': 'Verificación de PR de GitHub fallida ({label})',
|
|
'chat.chatInput.terminalContext': '{terminal}, líneas {start}-{end}',
|
|
'chat.chatInput.terminalContextRemove': 'Eliminar contexto del terminal',
|
|
'chat.chatInput.prCommentContext': 'Comentarios del PR',
|
|
'chat.chatInput.prCommentContextRemove': 'Quitar el contexto de comentarios del PR',
|
|
'chat.chatInput.prCheckContext': 'Comprobaciones del PR fallidas',
|
|
'chat.chatInput.prCheckContextRemove': 'Quitar el contexto de comprobaciones del PR',
|
|
"common.loading": "Cargando...",
|
|
"common.unavailable": "No disponible",
|
|
"common.language.english": "Inglés",
|
|
"common.language.german": "Alemán",
|
|
"common.language.french": "Francés",
|
|
"common.language.simplifiedChinese": "Chino (simplificado)",
|
|
"common.language.traditionalChinese": "Chino (tradicional)",
|
|
"common.language.ukrainian": "Ucraniano",
|
|
"common.language.spanish": "Español",
|
|
"common.language.brazilianPortuguese": "Portugués brasileño",
|
|
"common.language.korean": "Coreano",
|
|
"common.language.polish": "Polaco",
|
|
"common.language.japanese": "Japonés",
|
|
"common.language.turkish": "Turco",
|
|
"common.revealPath.finder": "Mostrar en Finder",
|
|
"common.revealPath.fileExplorer": "Abrir en File Explorer",
|
|
"common.revealPath.fileManager": "Abrir en gestor de archivos",
|
|
"pwa.installPrompt.description": "Instala OpenChamber para acceder más rápido",
|
|
"pwa.installPrompt.action": "Instalar",
|
|
"pwa.installPrompt.dismiss": "Descartar",
|
|
"pwa.installPrompt.started": "Instalación iniciada",
|
|
"pwa.installPrompt.installed": "OpenChamber se instaló",
|
|
"layout.mainTab.chat": "Chat",
|
|
"layout.mainTab.plan": "Plan",
|
|
"layout.mainTab.diff": "Diff",
|
|
"layout.mainTab.diagram": "Diagrama",
|
|
"layout.mainTab.files": "Archivos",
|
|
"layout.mainTab.terminal": "Terminal",
|
|
"layout.mainTab.context": "Contexto",
|
|
"mobile.nav.aria": "Navegación móvil",
|
|
"mobile.connect.welcome.title": "Conéctate a OpenChamber",
|
|
"mobile.connect.welcome.description": "Agrega una URL de servidor o escanea un código QR de emparejamiento para empezar a usar la app móvil.",
|
|
"mobile.connect.url.label": "URL del servidor",
|
|
"mobile.connect.url.placeholder": "http://192.168.1.74:2606",
|
|
"mobile.connect.token.label": "Token de cliente",
|
|
"mobile.connect.token.placeholder": "Pega el token de acceso",
|
|
"mobile.connect.token.hint": "Solo es necesario si tu servidor requiere un token en lugar de una contraseña.",
|
|
"mobile.connect.password.label": "Contraseña",
|
|
"mobile.connect.password.placeholder": "Contraseña de OpenChamber",
|
|
"mobile.connect.connectButton": "Conectar",
|
|
"mobile.connect.unlockButton": "Desbloquear y conectar",
|
|
"mobile.connect.cancelPassword": "Usar otro servidor",
|
|
"mobile.connect.connecting": "Conectando...",
|
|
"mobile.connect.notice.unreachable": "No se pudo conectar con {label}. Comprueba que el servidor esté en marcha.",
|
|
"mobile.connect.notice.authExpired": "El acceso a {label} caducó o fue revocado. Inicia sesión de nuevo.",
|
|
"mobile.connect.recovery.description": "No se pudo conectar con el servidor guardado. Comprueba que esté en marcha o elige otra instancia.",
|
|
"mobile.connect.scanQr": "Escanear código QR",
|
|
"mobile.connect.welcome.scanHint": "En tu ordenador, abre «Añadir un dispositivo» para mostrar un código QR y escanéalo aquí.",
|
|
"mobile.connect.advanced": "Avanzado",
|
|
"mobile.connect.manual.toggle": "Conectar por dirección",
|
|
"mobile.connect.scan.permissionDenied": "El acceso a la cámara está desactivado. Actívalo en Ajustes para escanear un código QR.",
|
|
"mobile.connect.scan.failed": "No se pudo escanear ese código QR. Inténtalo de nuevo o introduce la URL manualmente.",
|
|
"mobile.connect.scan.invalid": "Ese código QR no es un código de conexión de OpenChamber.",
|
|
"mobile.connect.scan.unsupported": "El escaneo de QR solo está disponible en la app móvil instalada.",
|
|
"mobile.connect.saved.title": "Conexiones guardadas",
|
|
"mobile.connect.saved.empty": "Aún no hay conexiones guardadas.",
|
|
"mobile.connect.relay.badge": "a través de OpenChamber Relay",
|
|
"mobile.connect.error.urlRequired": "Introduce una URL de servidor.",
|
|
"mobile.connect.splash.connectingTo": "Conectando al dispositivo:",
|
|
"mobile.connect.error.invalidUrl": "Esa URL de servidor no es válida.",
|
|
"mobile.connect.error.unreachable": "No se pudo conectar con ese servidor de OpenChamber.",
|
|
"mobile.connect.error.authRequired": "Este servidor requiere una contraseña o un token de cliente.",
|
|
"mobile.connect.error.passwordFailed": "No se pudo desbloquear ese servidor. Revisa la contraseña.",
|
|
"mobile.instances.addTitle": "Agregar instancia",
|
|
"mobile.instances.addManual": "Añadir por dirección",
|
|
"mobile.instances.editTitle": "Editar instancia",
|
|
"mobile.instances.edit": "Editar",
|
|
"mobile.instances.delete": "Eliminar",
|
|
"mobile.instances.deleteAria": "Eliminar {label}",
|
|
"mobile.instances.confirmDeleteAria": "Confirmar la eliminación de {label}",
|
|
"mobile.instances.cancelDeleteAria": "Conservar {label}",
|
|
"mobile.instances.cancelEdit": "Cancelar",
|
|
"mobile.instances.label.label": "Nombre",
|
|
"mobile.instances.label.placeholder": "Nombre para mostrar (opcional)",
|
|
"mobile.instances.saveNew": "Guardar instancia",
|
|
"mobile.connectionDebug.title": "Registro de conexión",
|
|
"mobile.connectionDebug.copy": "Copiar",
|
|
"mobile.connectionDebug.copied": "Copiado",
|
|
"mobile.connectionDebug.close": "Cerrar",
|
|
"mobile.connectionDebug.empty": "Aún no hay eventos de conexión.",
|
|
"mobile.instances.status.connectedDirect": "Conectado · Red local",
|
|
"mobile.instances.status.connectedRelay": "Conectado · Relay privado",
|
|
"mobile.instances.saveEdit": "Guardar cambios",
|
|
"mobile.nav.changes": "Cambios",
|
|
"mobile.nav.settings": "Ajustes",
|
|
"mobile.surface.closeAria": "Cerrar",
|
|
"mobile.header.openWorkspaceAria": "Abrir panel de trabajo",
|
|
"mobile.header.openMetadataAria": "Abrir metadatos de la sesión",
|
|
"mobile.header.metadata.context": "Contexto",
|
|
"mobile.header.metadata.usage": "Uso",
|
|
"mobile.menu.titleAria": "Herramientas del espacio de trabajo",
|
|
"mobile.menu.files": "Archivos",
|
|
"mobile.menu.changes": "Cambios",
|
|
"mobile.menu.terminal": "Terminal",
|
|
"mobile.menu.mcp": "MCP",
|
|
"mobile.menu.instances": "Instancias",
|
|
"mobile.menu.update": "Actualizar",
|
|
"mobile.menu.settings": "Ajustes",
|
|
"mobile.sessions.newChatCta": "Nuevo chat en {project}",
|
|
"mobile.sessions.dateGroup.today": "Hoy",
|
|
"mobile.sessions.dateGroup.yesterday": "Ayer",
|
|
"mobile.sessions.dateGroup.thisWeek": "Antes esta semana",
|
|
"mobile.sessions.dateGroup.older": "Más antiguos",
|
|
"mobile.sessions.section.worktrees": "Worktrees",
|
|
"mobile.sessions.section.otherProjects": "Cambiar de proyecto",
|
|
"mobile.sessions.section.projects": "Proyectos",
|
|
"mobile.sessions.section.chats": "Chats",
|
|
"mobile.sessions.empty.noProjectsTitle": "Sin proyectos",
|
|
"mobile.sessions.empty.noProjectsDescription": "Agrega un proyecto para empezar a chatear con tu código.",
|
|
"mobile.sessions.empty.noSessionsTitle": "Sin sesiones",
|
|
"mobile.sessions.empty.noSessionsDescription": "Inicia tu primer chat para verlo aquí.",
|
|
"mobile.sessions.empty.searchTitle": "Sin resultados",
|
|
"mobile.sessions.empty.searchDescription": "Prueba con otro término de búsqueda.",
|
|
"mobile.sessions.showArchived": "Mostrar archivadas ({count})",
|
|
"mobile.sessions.hideArchived": "Ocultar archivadas",
|
|
"mobile.sessions.activeWorktreeAria": "Worktree activo",
|
|
"mobile.sessions.activeProjectAria": "Proyecto activo",
|
|
"mobile.sessions.startNewChat": "Iniciar nuevo chat",
|
|
"mobile.sessions.newChat": "Nuevo chat",
|
|
"mobile.sessions.editOrder": "Reordenar proyectos",
|
|
"mobile.sessions.doneEditing": "Listo",
|
|
"mobile.sessions.editOrderHint": "Arrastra el asa para reordenar los proyectos. Toca un proyecto para mostrar sus worktrees y arrástralos también. Toca la marca para terminar.",
|
|
"mobile.sessions.dragHandleAria": "Arrastra {label} para reordenar",
|
|
"mobile.sessions.moveUpAria": "Mover {label} arriba",
|
|
"mobile.sessions.moveDownAria": "Mover {label} abajo",
|
|
"mobile.sessions.removeProjectAria": "Eliminar {label}",
|
|
"mobile.sessions.confirmRemoveProjectAria": "Confirmar eliminación de {label}",
|
|
"mobile.sessions.toast.projectRemoved": "Se eliminó {label}",
|
|
"mobile.sessions.archiveSessionAria": "Archivar {title}",
|
|
"mobile.sessions.cancelArchiveAria": "Cancelar archivar {title}",
|
|
"mobile.sessions.renameSessionAria": "Renombrar {title}",
|
|
"mobile.sessions.renameError": "No se pudo renombrar la sesión",
|
|
"mobile.sessions.deleteSessionAria": "Eliminar {title}",
|
|
"mobile.sessions.confirmDeleteSessionAria": "Confirmar eliminación de {title}",
|
|
"mobile.sessions.editProjectAria": "Editar {label}",
|
|
"mobile.projectEdit.worktreesTitle": "Worktrees",
|
|
"mobile.projectEdit.worktreesEmpty": "Este proyecto aún no tiene worktrees.",
|
|
"mobile.projectEdit.reorderHint": "Arrastra para reordenar los worktrees.",
|
|
"mobile.projectEdit.dragWorktreeAria": "Arrastra {label} para reordenar",
|
|
"mobile.projectEdit.deleteWorktreeAria": "Eliminar worktree {label}",
|
|
"mobile.projectEdit.deleteWorktreeTitle": "Eliminar worktree",
|
|
"mobile.projectEdit.deleteWorktreeConfirmButton": "Eliminar",
|
|
"mobile.projectEdit.deleteWorktreeConfirm": "¿Eliminar el worktree «{name}»? No se puede deshacer.",
|
|
"mobile.projectEdit.deleteWorktreeDirty": "Este worktree tiene cambios sin confirmar que se perderán.",
|
|
"mobile.projectEdit.deleteWorktreeArchiveNote": "Se archivarán {count} sesión(es) adjunta(s).",
|
|
"mobile.projectEdit.deleteLocalBranch": "Eliminar también la rama local",
|
|
"mobile.projectEdit.deleteRemoteBranch": "Eliminar también la rama remota",
|
|
"mobile.sessions.showMore": "Mostrar {count} más",
|
|
"mobile.sessions.search.section.sessions": "Sesiones",
|
|
"mobile.sessions.search.section.archived": "Archivadas",
|
|
"mobile.sessions.search.section.projects": "Proyectos",
|
|
"mobile.sessions.clearSearchAria": "Limpiar búsqueda",
|
|
"mobile.header.noProject": "Selecciona un proyecto",
|
|
"mobile.header.activeSession": "Sesión activa",
|
|
"mobile.header.noSession": "No hay sesión activa",
|
|
"mobile.sessions.openSheetAria": "Abrir sesiones y proyectos",
|
|
"mobile.sessions.closeSheetAria": "Cerrar sesiones y proyectos",
|
|
"mobile.sessions.sheet.title": "Sesiones",
|
|
"mobile.sessions.sheet.description": "Cambia proyectos, abre sesiones o inicia un nuevo chat.",
|
|
"mobile.sessions.search.placeholder": "Buscar sesiones",
|
|
"mobile.sessions.empty": "No se encontraron sesiones.",
|
|
"mobile.sessions.unassignedProject": "Otras sesiones",
|
|
"mobile.sessions.newSessionAria": "Iniciar una nueva sesión en este proyecto",
|
|
"mobile.sessions.untitled": "Sesión sin título",
|
|
"mobile.sessions.project.sessionsSingle": "1 sesión",
|
|
"mobile.sessions.project.sessionsPlural": "{count} sesiones",
|
|
"mobile.files.refreshAria": "Actualizar archivos",
|
|
"mobile.files.backToParentAria": "Volver a {name}",
|
|
"mobile.files.rootDirectory": "Archivos del proyecto",
|
|
"mobile.files.search.placeholder": "Buscar archivos",
|
|
"mobile.files.search.empty": "No se encontraron archivos.",
|
|
"mobile.files.parentDirectory": "Directorio superior",
|
|
"mobile.files.empty.noDirectory": "Selecciona un proyecto para explorar archivos.",
|
|
"mobile.files.empty.directory": "Este directorio está vacío.",
|
|
"mobile.files.error.listFailed": "No se pudieron cargar los archivos",
|
|
"mobile.files.error.readUnavailable": "La vista previa del archivo no está disponible en este entorno.",
|
|
"mobile.files.file.truncated": "Vista previa del archivo truncada para móvil.",
|
|
"mobile.files.copyPathAria": "Copiar ruta del archivo",
|
|
"mobile.files.copyContent": "Copiar contenido",
|
|
"mobile.files.copyContentAria": "Copiar contenido del archivo",
|
|
"mobile.files.editAria": "Editar archivo",
|
|
"mobile.files.doneEditingAria": "Terminar edición",
|
|
"mobile.files.toast.pathCopied": "Ruta copiada",
|
|
"mobile.files.toast.contentCopied": "Contenido copiado",
|
|
"mobile.files.toast.copyFailed": "No se pudo copiar",
|
|
"mobile.changes.placeholder.title": "Cambios",
|
|
"mobile.changes.placeholder.description": "Aquí vivirán la revisión del árbol de trabajo, sync y commits.",
|
|
"mobile.changes.branchLabel": "Rama: {branch}",
|
|
"mobile.changes.noRemote": "No hay remoto disponible",
|
|
"mobile.changes.cleanDescription": "No hay archivos modificados en este workspace.",
|
|
"mobile.changes.diffDetail.subtitle": "Diff de solo lectura",
|
|
"mobile.changes.diffDetail.loadFailed": "No se pudo cargar el diff",
|
|
"mobile.changes.diffDetail.missingTitle": "El archivo ya no tiene cambios",
|
|
"mobile.changes.diffDetail.missingDescription": "Vuelve a Cambios y actualiza la lista.",
|
|
"mobile.changes.diffDetail.imageUnavailable": "Los diffs de imagen aún no están disponibles en Cambios móvil.",
|
|
"mobile.settings.placeholder.title": "Ajustes",
|
|
"mobile.settings.placeholder.description": "Aquí vivirán los ajustes móviles de conexión y app.",
|
|
"layout.rightSidebar.git": "Git",
|
|
"layout.rightSidebar.files": "Archivos",
|
|
"layout.rightSidebar.context": "Contexto",
|
|
"layout.services.instance": "Instancia",
|
|
"layout.services.usage": "Uso",
|
|
"sessions.sidebar.header.actions.closeSessions": "Cerrar sesiones",
|
|
"sessions.sidebar.header.actions.addProject": "Añadir proyecto",
|
|
"sessions.sidebar.header.actions.newSession": "Nueva sesión",
|
|
"sessions.sidebar.header.actions.newMultiRun": "Nuevo multi-run",
|
|
"sessions.sidebar.header.actions.scheduledTasks": "Tareas programadas",
|
|
"sessions.scheduledTasks.dialog.title": "Tareas programadas",
|
|
"sessions.scheduledTasks.dialog.description": "Tareas del lado del servidor que crean una nueva sesión y envían un prompt configurado.",
|
|
"sessions.scheduledTasks.dialog.project.label": "Proyecto",
|
|
"sessions.scheduledTasks.dialog.project.placeholder": "Seleccionar proyecto",
|
|
"sessions.scheduledTasks.dialog.project.empty": "No hay proyectos",
|
|
"sessions.scheduledTasks.dialog.actions.newTask": "Nueva tarea",
|
|
"sessions.scheduledTasks.dialog.actions.runNow": "Ejecutar ahora",
|
|
"sessions.scheduledTasks.dialog.actions.edit": "Editar",
|
|
"sessions.scheduledTasks.dialog.actions.editAria": "Editar {taskName}",
|
|
"sessions.scheduledTasks.dialog.actions.deleteAria": "Eliminar {taskName}",
|
|
"sessions.scheduledTasks.dialog.loading": "Cargando tareas...",
|
|
"sessions.scheduledTasks.dialog.empty.noTasks": "No hay tareas programadas aún.",
|
|
"sessions.scheduledTasks.dialog.empty.selectProject": "Selecciona un proyecto para gestionar tareas programadas.",
|
|
"sessions.scheduledTasks.dialog.error.chooseProjectFirst": "Elige un proyecto primero",
|
|
"sessions.scheduledTasks.dialog.toast.loadFailed": "No se pudo cargar tareas programadas",
|
|
"sessions.scheduledTasks.dialog.toast.saved": "Tarea programada guardada",
|
|
"sessions.scheduledTasks.dialog.toast.updateFailed": "No se pudo actualizar la tarea",
|
|
"sessions.scheduledTasks.dialog.toast.deleted": "Tarea programada eliminada",
|
|
"sessions.scheduledTasks.dialog.toast.deleteFailed": "No se pudo eliminar la tarea",
|
|
"sessions.scheduledTasks.dialog.toast.started": "Tarea iniciada",
|
|
"sessions.scheduledTasks.dialog.toast.startedPersistWarning": "La tarea se inició, pero no se pudo guardar su estado. Puede seguir apareciendo como en ejecución hasta el siguiente inicio correcto.",
|
|
"sessions.scheduledTasks.dialog.toast.runFailed": "No se pudo ejecutar la tarea",
|
|
"sessions.scheduledTasks.dialog.confirm.deleteTask": "Eliminar tarea programada \"{taskName}\"?",
|
|
'sessions.scheduledTasks.dialog.confirm.deleteLoopFile': '¿Eliminar la tarea de bucle «{taskName}» y su archivo Markdown?',
|
|
"sessions.scheduledTasks.dialog.schedule.daily": "Cada día {time}",
|
|
"sessions.scheduledTasks.dialog.schedule.dailyWithTimezone": "Cada día {time} ({timezone})",
|
|
"sessions.scheduledTasks.dialog.schedule.weekly": "Cada semana {days} {time}",
|
|
"sessions.scheduledTasks.dialog.schedule.weeklyWithTimezone": "Cada semana {days} {time} ({timezone})",
|
|
"sessions.scheduledTasks.dialog.schedule.once": "Una vez {date} {time}",
|
|
"sessions.scheduledTasks.dialog.schedule.onceWithTimezone": "Una vez {date} {time} ({timezone})",
|
|
"sessions.scheduledTasks.dialog.schedule.cron": "Cron: {cron}",
|
|
"sessions.scheduledTasks.dialog.schedule.cronWithTimezone": "Cron: {cron} ({timezone})",
|
|
"sessions.scheduledTasks.dialog.schedule.unknownDate": "Fecha desconocida",
|
|
"sessions.scheduledTasks.dialog.schedule.weekdayShort.sun": "Dom",
|
|
"sessions.scheduledTasks.dialog.schedule.weekdayShort.mon": "Lun",
|
|
"sessions.scheduledTasks.dialog.schedule.weekdayShort.tue": "Mar",
|
|
"sessions.scheduledTasks.dialog.schedule.weekdayShort.wed": "Mié",
|
|
"sessions.scheduledTasks.dialog.schedule.weekdayShort.thu": "Jue",
|
|
"sessions.scheduledTasks.dialog.schedule.weekdayShort.fri": "Vie",
|
|
"sessions.scheduledTasks.dialog.schedule.weekdayShort.sat": "Sáb",
|
|
"sessions.scheduledTasks.dialog.schedule.weekdayShort.unknown": "?",
|
|
"sessions.scheduledTasks.dialog.relativeTime.inLessThanOneMinute": "en <1m",
|
|
"sessions.scheduledTasks.dialog.relativeTime.justNow": "ahora mismo",
|
|
"sessions.scheduledTasks.dialog.relativeTime.inMinutes": "en {count}m",
|
|
"sessions.scheduledTasks.dialog.relativeTime.minutesAgo": "hace {count}m",
|
|
"sessions.scheduledTasks.dialog.relativeTime.inDuration": "en {duration}",
|
|
"sessions.scheduledTasks.dialog.relativeTime.durationAgo": "hace {duration}",
|
|
"sessions.scheduledTasks.dialog.status.success": "Éxito",
|
|
"sessions.scheduledTasks.dialog.status.error": "Error",
|
|
"sessions.scheduledTasks.dialog.status.running": "Ejecutándose",
|
|
"sessions.scheduledTasks.dialog.status.idle": "Inactivo",
|
|
"sessions.scheduledTasks.dialog.nextRun.label": "Próximo",
|
|
"sessions.scheduledTasks.dialog.lastRun.label": "Última ejecución",
|
|
"sessions.scheduledTasks.dialog.lastRun.runningNow": "ejecutándose ahora",
|
|
"sessions.scheduledTasks.dialog.lastRun.never": "nunca",
|
|
"sessions.scheduledTasks.dialog.taskToggle.enableAria": "Habilitar {taskName}",
|
|
"sessions.scheduledTasks.dialog.taskToggle.pauseAria": "Pausar {taskName}",
|
|
"sessions.scheduledTasks.dialog.taskToggle.enabled": "Habilitado",
|
|
"sessions.scheduledTasks.dialog.taskToggle.paused": "Pausado",
|
|
'sessions.scheduledTasks.dialog.loopFile.note': 'Gestionada por el archivo de bucle {file}',
|
|
'sessions.scheduledTasks.dialog.loopFile.toggleDisabled': 'La activación la controla el archivo de bucle; establece enabled en el frontmatter de Markdown',
|
|
'sessions.scheduledTasks.dialog.loopFile.actionsDisabled': 'Las tareas de bucle se configuran en su archivo Markdown .agents/loops',
|
|
"sessions.scheduledTasks.editor.title.edit": "Editar tarea programada",
|
|
"sessions.scheduledTasks.editor.title.new": "Nueva tarea programada",
|
|
"sessions.scheduledTasks.editor.description": "Configura una tarea del lado del servidor que crea una nueva sesión y envía un prompt.",
|
|
"sessions.scheduledTasks.editor.taskName.label": "Nombre de la tarea",
|
|
"sessions.scheduledTasks.editor.taskName.placeholder": "Sincronización diaria",
|
|
"sessions.scheduledTasks.editor.scheduleType.label": "Tipo de programación",
|
|
"sessions.scheduledTasks.editor.scheduleType.daily": "Diario",
|
|
"sessions.scheduledTasks.editor.scheduleType.weekly": "Semanal",
|
|
"sessions.scheduledTasks.editor.scheduleType.once": "Una vez",
|
|
"sessions.scheduledTasks.editor.scheduleType.cron": "Cron",
|
|
"sessions.scheduledTasks.editor.date.label": "Fecha",
|
|
"sessions.scheduledTasks.editor.date.placeholder": "Seleccionar fecha",
|
|
"sessions.scheduledTasks.editor.date.previousMonth": "Mes anterior",
|
|
"sessions.scheduledTasks.editor.date.nextMonth": "Próximo mes",
|
|
"sessions.scheduledTasks.editor.date.jumpToToday": "Ir a hoy",
|
|
"sessions.scheduledTasks.editor.date.today": "Hoy",
|
|
"sessions.scheduledTasks.editor.time.label": "Hora",
|
|
"sessions.scheduledTasks.editor.time.hourAria": "Horas",
|
|
"sessions.scheduledTasks.editor.time.minuteAria": "Minutos",
|
|
"sessions.scheduledTasks.editor.time.periodAria": "Período",
|
|
"sessions.scheduledTasks.editor.time.period.am": "AM",
|
|
"sessions.scheduledTasks.editor.time.period.pm": "PM",
|
|
"sessions.scheduledTasks.editor.times.label": "Horas",
|
|
"sessions.scheduledTasks.editor.times.add": "Añadir hora",
|
|
"sessions.scheduledTasks.editor.times.removeAria": "Eliminar hora",
|
|
"sessions.scheduledTasks.editor.timezone.label": "Zona horaria",
|
|
"sessions.scheduledTasks.editor.weekdays.label": "Días de la semana",
|
|
"sessions.scheduledTasks.editor.model.label": "Modelo",
|
|
"sessions.scheduledTasks.editor.thinkingLevel.label": "Nivel de pensamiento",
|
|
"sessions.scheduledTasks.editor.thinkingLevel.default": "Predeterminado",
|
|
"sessions.scheduledTasks.editor.agent.label": "Agente",
|
|
"sessions.scheduledTasks.editor.prompt.label": "Prompt",
|
|
"sessions.scheduledTasks.editor.prompt.placeholder": "Resumir tareas abiertas y proponer próximas acciones",
|
|
"sessions.scheduledTasks.editor.enabled.aria": "Habilitar tarea",
|
|
"sessions.scheduledTasks.editor.enabled.label": "Habilitado",
|
|
"sessions.scheduledTasks.editor.goal.label": "Ejecutar como objetivo",
|
|
"sessions.scheduledTasks.editor.goal.aria": "Ejecutar esta tarea como un objetivo que el agente persigue hasta completarlo",
|
|
"sessions.scheduledTasks.editor.goal.budgetLabel": "Presupuesto de tokens",
|
|
"sessions.scheduledTasks.editor.goal.budgetAria": "Limitar el objetivo a un presupuesto de tokens",
|
|
"sessions.scheduledTasks.editor.permissionAutoAccept.label": "Aceptar permisos automáticamente",
|
|
"sessions.scheduledTasks.editor.permissionAutoAccept.aria": "Iniciar la sesión de la tarea con la aceptación automática de permisos activada",
|
|
"sessions.scheduledTasks.editor.actions.closeAria": "Cerrar",
|
|
"sessions.scheduledTasks.editor.actions.cancel": "Cancelar",
|
|
"sessions.scheduledTasks.editor.actions.save": "Guardar",
|
|
"sessions.scheduledTasks.editor.actions.saving": "Guardando...",
|
|
"sessions.scheduledTasks.editor.toast.saveFailed": "No se pudo guardar la tarea",
|
|
"sessions.scheduledTasks.editor.validation.taskNameRequired": "Se requiere nombre de tarea",
|
|
"sessions.scheduledTasks.editor.validation.promptRequired": "Se requiere prompt",
|
|
"sessions.scheduledTasks.editor.validation.modelRequired": "Se requiere modelo",
|
|
"sessions.scheduledTasks.editor.validation.dateFormat": "La fecha debe usar YYYY-MM-DD",
|
|
"sessions.scheduledTasks.editor.validation.timeFormat": "La hora debe usar HH:mm",
|
|
"sessions.scheduledTasks.editor.validation.atLeastOneTime": "Añadir al menos una hora válida",
|
|
"sessions.scheduledTasks.editor.validation.atLeastOneWeekday": "Seleccionar al menos un día de la semana",
|
|
"sessions.scheduledTasks.editor.validation.timezoneRequired": "Se requiere zona horaria",
|
|
"sessions.scheduledTasks.editor.validation.cronRequired": "Se requiere una expresión cron",
|
|
"sessions.scheduledTasks.editor.validation.cronInvalid": "Expresión cron no válida",
|
|
"sessions.scheduledTasks.editor.cronExpression.label": "Expresión cron",
|
|
"sessions.scheduledTasks.editor.cronExpression.placeholder": "*/5 * * * *",
|
|
"sessions.scheduledTasks.editor.cronExpression.nextRuns": "Próximas ejecuciones",
|
|
"sessions.scheduledTasks.editor.cronExpression.examples": "Ejemplos",
|
|
"sessions.scheduledTasks.editor.cronExpression.examples.every5min": "Cada 5 minutos",
|
|
"sessions.scheduledTasks.editor.cronExpression.examples.everyHour": "Cada hora",
|
|
"sessions.scheduledTasks.editor.cronExpression.examples.monday9am": "Cada lunes a las 9 a. m.",
|
|
"sessions.scheduledTasks.editor.cronExpression.examples.9am5pm": "9 a. m. y 5 p. m. todos los días",
|
|
"sessions.scheduledTasks.editor.cronExpression.examples.firstOfMonth": "Primero de cada mes",
|
|
"multirun.launcher.title": "Nuevo Multi-Run",
|
|
"multirun.launcher.actions.closeEsc": "Cerrar (Esc)",
|
|
"multirun.launcher.actions.cancel": "Cancelar",
|
|
"multirun.launcher.actions.creating": "Creando...",
|
|
"multirun.launcher.actions.startWithModelCount": "Iniciar ({count} modelos)",
|
|
"multirun.launcher.project.label": "Proyecto",
|
|
"multirun.launcher.project.placeholder": "Seleccionar proyecto",
|
|
"multirun.launcher.project.empty": "Añade un proyecto primero.",
|
|
"multirun.launcher.project.gitRequired": "Sin aislamiento worktree: las ejecuciones usan el mismo directorio.",
|
|
"multirun.launcher.groupName.label": "Nombre del grupo",
|
|
"multirun.launcher.groupName.info": "Usado para el directorio de worktree y nombres de rama",
|
|
"multirun.launcher.groupName.placeholder": "feature-auth, bugfix-login",
|
|
"multirun.launcher.baseBranch.label": "Rama base",
|
|
"multirun.launcher.baseBranch.info": "Nueva rama creada desde esta base por modelo",
|
|
"multirun.launcher.isolateRuns.label": "Aislar ejecuciones",
|
|
"multirun.launcher.agent.label": "Agente",
|
|
"multirun.launcher.agent.info": "Agente usado para todas las ejecuciones. Por defecto es el agente configurado.",
|
|
"multirun.launcher.setupCommands.label": "Comandos de configuración",
|
|
"multirun.launcher.setupCommands.loading": "Cargando...",
|
|
"multirun.launcher.setupCommands.commandPlaceholder": "bun install",
|
|
"multirun.launcher.setupCommands.removeCommandAria": "Eliminar comando",
|
|
"multirun.launcher.setupCommands.addCommand": "Añadir comando",
|
|
"multirun.launcher.prompt.label": "Prompt",
|
|
"multirun.launcher.prompt.placeholder": "Escribe el prompt que se enviará a todos los modelos...",
|
|
"multirun.launcher.attachments.attach": "Adjuntar",
|
|
"multirun.launcher.attachments.tooltip": "Archivos idénticos enviados a todas las ejecuciones",
|
|
"multirun.launcher.models.label": "Modelos",
|
|
"multirun.launcher.models.info": "Selecciona 2 o más modelos. El mismo modelo puede añadirse varias veces.",
|
|
"multirun.launcher.toast.fileTooLarge": "El archivo \"{fileName}\" es demasiado grande (máximo 10MB)",
|
|
"multirun.launcher.toast.attachFailed": "No se pudo adjuntar \"{fileName}\"",
|
|
"multirun.launcher.toast.attachedSingle": "Archivo adjuntado ({count})",
|
|
"multirun.launcher.toast.attachedPlural": "Archivos adjuntados ({count})",
|
|
"multirun.modelMultiSelect.actions.addModel": "Añadir modelo",
|
|
"multirun.modelMultiSelect.search.placeholder": "Buscar modelos",
|
|
"multirun.modelMultiSelect.search.noResults": "No se encontraron modelos",
|
|
"multirun.modelMultiSelect.sections.favorites": "Favoritos",
|
|
"multirun.modelMultiSelect.sections.recent": "Recientes",
|
|
"multirun.modelMultiSelect.variant.placeholder": "Pensando",
|
|
"multirun.modelMultiSelect.variant.default": "Predeterminado",
|
|
"multirun.modelMultiSelect.keyboard.hint": "↑↓ navegar • Enter seleccionar • Esc cerrar",
|
|
"multirun.modelMultiSelect.validation.minOnly": "Selecciona al menos {min} modelos.",
|
|
"multirun.modelMultiSelect.validation.minToMax": "Selecciona entre {min} y {max} modelos.",
|
|
"multirun.agentSelector.placeholder": "Selecciona un agente",
|
|
"multirun.fusion.title": "Ejecutar fusion",
|
|
"multirun.fusion.description": "Combina los resultados seleccionados del multi-run en una respuesta más sólida.",
|
|
"multirun.fusion.provider.placeholder": "Proveedor",
|
|
"multirun.fusion.model.placeholder": "Modelo",
|
|
"multirun.fusion.sources.label": "Fuentes ({count})",
|
|
"multirun.fusion.actions.cancel": "Cancelar",
|
|
"multirun.fusion.actions.start": "Iniciar fusion",
|
|
"multirun.fusion.actions.starting": "Iniciando...",
|
|
"multirun.fusion.toast.noOutputs": "No se encontraron respuestas del asistente para fusionar.",
|
|
"multirun.fusion.toast.failed": "No se pudo iniciar fusion.",
|
|
"multirun.launcher.attachments.label": "Archivos",
|
|
"multirun.launcher.actions.startWithRunCount": "Iniciar ({count} ejecuciones)",
|
|
"multirun.launcher.groups.addGroup": "Añadir grupo de ejecución",
|
|
"multirun.launcher.groups.removeGroup": "Eliminar grupo",
|
|
"multirun.launcher.groups.groupLabel": "Grupo de ejecución {index}",
|
|
"multirun.launcher.groups.template.label": "Plantilla",
|
|
"multirun.launcher.groups.template.placeholder": "Selecciona una plantilla...",
|
|
"multirun.launcher.groups.template.custom": "Prompt personalizado",
|
|
"multirun.launcher.groups.prompt.label": "Prompt",
|
|
"multirun.launcher.groups.prompt.placeholder": "Introduce el prompt para este grupo...",
|
|
"sessions.sidebar.header.actions.searchSessions": "Buscar sesiones",
|
|
"sessions.sidebar.header.actions.exitSelection": "Salir de selección",
|
|
"sessions.sidebar.header.actions.selectSessions": "Seleccionar sesiones",
|
|
"sessions.sidebar.header.actions.sortProjects": "Ordenar proyectos",
|
|
"sessions.sidebar.header.actions.sessionDisplayMode": "Modo de visualización de sesión",
|
|
"sessions.sidebar.header.displayMode.label": "Modo de visualización",
|
|
"sessions.sidebar.header.displayMode.default": "Predeterminado",
|
|
"sessions.sidebar.header.displayMode.minimal": "Mínimo",
|
|
"sessions.sidebar.header.displayMode.showRecent": "Mostrar recientes",
|
|
"sessions.sidebar.header.displayMode.showArchived": "Mostrar sesiones archivadas",
|
|
"sessions.sidebar.header.displayMode.collapseAll": "Colapsar todo",
|
|
"sessions.sidebar.header.displayMode.expandAll": "Expandir todo",
|
|
"sessions.sidebar.header.projectSort.manual": "Manual",
|
|
"sessions.sidebar.header.projectSort.aToZ": "A → Z",
|
|
"sessions.sidebar.header.projectSort.zToA": "Z → A",
|
|
"sessions.sidebar.header.projectSort.dateAdded": "Más recientes",
|
|
"sessions.sidebar.header.projectSort.recent": "Recientes",
|
|
"sessions.sidebar.header.search.matchCountSingle": "{count} coincidencia",
|
|
"sessions.sidebar.header.search.matchCountPlural": "{count} coincidencias",
|
|
"sessions.sidebar.header.search.escapeHint": "Esc para limpiar",
|
|
"sessions.sidebar.header.search.placeholder": "Buscar sesiones...",
|
|
"sessions.sidebar.header.search.clear": "Limpiar búsqueda",
|
|
"sessions.sidebar.footer.actions.settings": "Configuración",
|
|
"sessions.sidebar.footer.actions.shortcuts": "Atajos",
|
|
"sessions.sidebar.footer.actions.aboutOpenChamber": "Acerca de OpenChamber",
|
|
"sessions.sidebar.footer.actions.update": "Actualizar",
|
|
"sessions.sidebar.empty.noSessions.title": "No hay sesiones aún",
|
|
"sessions.sidebar.empty.noSessions.description": "Crea tu primera sesión para comenzar a programar.",
|
|
"sessions.sidebar.empty.noMatches.title": "No hay sesiones coincidentes",
|
|
"sessions.sidebar.empty.noMatches.description": "Inténtalo con un título, rama, carpeta o ruta diferente.",
|
|
"sessions.sidebar.activity.recentTitle": "reciente",
|
|
"sessions.sidebar.activity.chatsTitle": "chats",
|
|
"sessions.sidebar.activity.chatsEmpty": "Aún no hay chats.",
|
|
"chat.chatInput.chooseProject": "Elegir proyecto",
|
|
"sessions.archivePage.allDirectories": "Todos los directorios",
|
|
"sessions.sidebar.header.displayMode.stickyHeaders": "Encabezados de proyecto fijos",
|
|
"sessions.sidebar.header.grouping.label": "Agrupar sesiones",
|
|
"sessions.sidebar.header.projectDisplay.label": "Mostrar proyectos",
|
|
"sessions.sidebar.header.projectDisplay.all": "Todos los proyectos",
|
|
"sessions.sidebar.header.projectDisplay.single": "Un proyecto",
|
|
"sessions.sidebar.project.selectAria": "Seleccionar proyecto, actualmente {project}",
|
|
"sessions.sidebar.header.grouping.byWorktree": "Por worktree",
|
|
"sessions.sidebar.header.grouping.flat": "Lista plana",
|
|
"sessions.sidebar.project.actions.manageWorktrees": "Gestionar worktrees",
|
|
"sessions.worktreesPage.title": "Worktrees en {project}",
|
|
"sessions.worktreesPage.description": "Crea, inspecciona y elimina los worktrees de git de este proyecto.",
|
|
"sessions.worktreesPage.closeAria": "Cerrar worktrees",
|
|
"sessions.scheduledTasks.page.closeAria": "Cerrar tareas programadas",
|
|
"sessions.sidebar.nav.archive": "Archivo",
|
|
"sessions.archivePage.title": "Archivo",
|
|
"sessions.archivePage.countSingle": "{count} sesión archivada",
|
|
"sessions.archivePage.countPlural": "{count} sesiones archivadas",
|
|
"sessions.archivePage.closeAria": "Cerrar archivo",
|
|
"sessions.archivePage.searchPlaceholder": "Buscar sesiones archivadas",
|
|
"sessions.archivePage.empty.noArchived": "No hay sesiones archivadas",
|
|
"sessions.archivePage.empty.noMatches": "No hay sesiones archivadas coincidentes",
|
|
"sessions.archivePage.otherProjects": "otros proyectos",
|
|
"sessions.archivePage.deleteProject": "Eliminar todas las sesiones archivadas de este proyecto",
|
|
"sessions.archivePage.deleteProjectAria": "Eliminar todas las sesiones archivadas de {label}",
|
|
"sessions.archivePage.deleteSessionAria": "Eliminar {title}",
|
|
"sessions.archivePage.restoreSessionAria": "Restaurar {title}",
|
|
"sessions.switcher.openAria": "Abrir selector de sesiones",
|
|
"header.sessionTabs.stripAria": "Sesiones abiertas",
|
|
"header.sessionTabs.tabMenuAria": "Acciones de la pestaña de sesión",
|
|
"header.sessionTabs.closeTab": "Cerrar pestaña",
|
|
"header.sessionTabs.closeOtherTabs": "Cerrar las demás pestañas",
|
|
"sessions.switcher.empty": "No hay sesiones recientes",
|
|
"sessions.switcher.draftTitle": "Nueva sesión",
|
|
"sessions.sidebar.updateCheck.errorTitle": "No se pudo comprobar actualizaciones",
|
|
"sessions.sidebar.updateCheck.latestVersion": "Estás en la última versión",
|
|
"sessions.sidebar.directory.errorAddProjectTitle": "No se pudo añadir el proyecto",
|
|
"sessions.sidebar.directory.errorAddProjectDescription": "Selecciona una carpeta válida.",
|
|
"sessions.sidebar.directory.errorSelectDirectoryTitle": "No se pudo seleccionar carpeta",
|
|
"sessions.sidebar.folder.newFolderName": "Nueva carpeta",
|
|
"sessions.sidebar.bulkActions.delete": "Eliminar",
|
|
"sessions.sidebar.bulkActions.archive": "Archivar",
|
|
"sessions.sidebar.bulkActions.selectedCount": "{count} seleccionados",
|
|
"sessions.sidebar.bulkActions.moveToFolder": "Mover a carpeta",
|
|
"sessions.sidebar.bulkActions.deletedSingle": "Se eliminó {count} sesión",
|
|
"sessions.sidebar.bulkActions.deletedPlural": "Se eliminaron {count} sesiones",
|
|
"sessions.sidebar.bulkActions.failedDeleteSingle": "No se pudo eliminar {count} sesión",
|
|
"sessions.sidebar.bulkActions.failedDeletePlural": "No se pudo eliminar {count} sesiones",
|
|
"sessions.sidebar.bulkActions.archivedSingle": "Se archivó {count} sesión",
|
|
"sessions.sidebar.bulkActions.archivedPlural": "Se archivaron {count} sesiones",
|
|
"sessions.sidebar.bulkActions.failedArchiveSingle": "No se pudo archivar {count} sesión",
|
|
"sessions.sidebar.bulkActions.failedArchivePlural": "No se pudo archivar {count} sesiones",
|
|
"sessions.sidebar.bulkActions.restore": "Restaurar",
|
|
"sessions.sidebar.bulkActions.restoredSingle": "Se restauró {count} sesión",
|
|
"sessions.sidebar.bulkActions.restoredPlural": "Se restauraron {count} sesiones",
|
|
"sessions.sidebar.bulkActions.failedRestoreSingle": "No se pudo restaurar {count} sesión",
|
|
"sessions.sidebar.bulkActions.failedRestorePlural": "No se pudo restaurar {count} sesiones",
|
|
"sessions.sidebar.folders.none": "No hay carpetas aún",
|
|
"sessions.sidebar.folders.newFolderEllipsis": "Nueva carpeta...",
|
|
"sessions.sidebar.folders.removeFromFolder": "Quitar de carpeta",
|
|
"sessions.sidebar.folders.moveToFolder": "Mover a carpeta",
|
|
"sessions.sidebar.project.actions.newWorktree": "Nuevo worktree",
|
|
"sessions.sidebar.project.actions.newWorktreeEllipsis": "Nuevo worktree...",
|
|
"sessions.sidebar.project.actions.projectMenu": "Menú del proyecto",
|
|
"sessions.sidebar.project.actions.newSession": "Nueva sesión",
|
|
"sessions.sidebar.project.actions.closeProject": "Cerrar proyecto",
|
|
"sessions.sidebar.project.actions.edit": "Editar",
|
|
"sessions.sidebar.project.actions.newDraftSession": "Nueva sesión de borrador",
|
|
"sessions.sidebar.session.menu.rename": "Cambiar nombre",
|
|
"sessions.sidebar.session.menu.copyId": "Copiar ID de sesión",
|
|
"sessions.sidebar.session.copyId.success": "ID de sesión copiado",
|
|
"sessions.sidebar.session.copyId.error": "No se pudo copiar el ID de sesión",
|
|
"header.sessionActions.openAria": "Abrir acciones de sesión",
|
|
"sessions.sidebar.session.rename.save": "Guardar nombre de sesión",
|
|
"sessions.sidebar.session.rename.cancel": "Cancelar cambio de nombre de sesión",
|
|
"sessions.sidebar.session.menu.unpin": "Desanclar sesión",
|
|
"sessions.sidebar.session.menu.pin": "Anclar sesión",
|
|
"sessions.sidebar.session.menu.share": "Compartir",
|
|
"sessions.sidebar.session.menu.copied": "Copiado",
|
|
"sessions.sidebar.session.menu.copyLink": "Copiar enlace",
|
|
"sessions.sidebar.session.menu.unshare": "Dejar de compartir",
|
|
"sessions.sidebar.session.menu.exportMarkdown": "Exportar Markdown",
|
|
"sessions.sidebar.session.menu.moveToWorktree": "Mover a un worktree nuevo",
|
|
"sessions.sidebar.session.menu.moveToWorktreeTargets": "Mover a worktree",
|
|
"sessions.sidebar.session.menu.newWorktree": "Nuevo worktree...",
|
|
"sessions.sidebar.session.moveToWorktree.success": "Sesión movida a un worktree nuevo",
|
|
"sessions.sidebar.session.moveToWorktree.failed": "No se pudo mover la sesión a un worktree nuevo",
|
|
"sessions.sidebar.session.moveToWorktree.main": "Worktree principal",
|
|
"sessions.sidebar.session.moveToWorktree.refreshing": "Actualizando worktrees...",
|
|
"sessions.sidebar.session.moveToWorktree.loadFailed": "No se pudieron cargar los worktrees",
|
|
"sessions.sidebar.session.moveToWorktree.current": "Worktree actual",
|
|
"sessions.sidebar.session.moveToWorktree.existingSuccess": "Sesión movida al worktree",
|
|
"sessions.sidebar.session.moveToWorktree.existingFailed": "No se pudo mover la sesión al worktree",
|
|
"sessions.sidebar.session.moveToWorktree.tooltipTargets": "Muestra los worktrees existentes y la opción de crear uno nuevo para esta sesión.",
|
|
"sessions.sidebar.session.moveToWorktree.tooltip": "Crea un worktree nuevo desde la rama actual y mueve allí esta sesión y sus subsesiones. Si la fuente tiene cambios sin confirmar, decides si se transfieren.",
|
|
"sessions.sidebar.session.moveToWorktree.tooltipBusy": "Disponible cuando la sesión está inactiva. Detén la actividad actual o espera a que termine.",
|
|
"sessions.sidebar.session.moveToWorktree.tooltipMoving": "Esta sesión ya se está moviendo a un worktree nuevo.",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.title": "La fuente tiene cambios sin confirmar",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.changedFiles": "Archivos modificados en este worktree: {count}.",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.ownership": "OpenCode rastrea estos cambios por directorio, no por sesión.",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.sessionOnlyHelp": "Mueve esta sesión y sus subsesiones dejando intacto cada archivo de la fuente.",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.allChangesHelp": "Transfiere los cambios del directorio de la sesión. Los archivos sin confirmar y sin rastrear salen de la fuente tras el éxito.",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.stagedWarning": "Los cambios en el índice permanecen en la fuente y se copian al destino.",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.baseWarning": "La transferencia puede fallar si el destino usa una base de Git distinta.",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.sessionOnly": "Mover solo la sesión",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.allChanges": "Mover todos los cambios de la fuente",
|
|
"sessions.sidebar.session.moveToWorktree.confirm.cancel": "Cancelar",
|
|
"sessions.sidebar.session.moveToWorktree.sourceVerificationFailed": "No se pudieron verificar los cambios de la fuente. No se modificó ningún worktree ni sesión.",
|
|
"sessions.sidebar.session.moveToWorktree.applyChangesFailed": "El destino no pudo aceptar los cambios de la fuente. No se movieron la sesión ni los cambios. Reintenta y elige Mover solo la sesión.",
|
|
"sessions.sidebar.session.moveToWorktree.changesMayBeInDestination": "La conexión se cortó antes de que el destino confirmara el movimiento. Puede que la sesión no se haya movido y que tus cambios sin confirmar ya estén en el worktree de destino. Compruébalo antes de volver a intentarlo.",
|
|
"sessions.sidebar.session.menu.runFusion": "Ejecutar fusion",
|
|
"sessions.sidebar.session.menu.openInSidePanel": "Abrir en panel lateral",
|
|
"sessions.sidebar.session.actions.openInEditor": "Abrir en el editor",
|
|
"sessions.sidebar.session.menu.betaBadge": "beta",
|
|
"sessions.sidebar.session.menu.label": "Menú de sesión",
|
|
"sessions.sidebar.session.untitled": "Sesión sin título",
|
|
"sessions.sidebar.session.export.nothingToExport": "No hay nada para exportar",
|
|
"sessions.sidebar.session.export.failedLoadHistory": "No se pudo cargar el historial completo de la sesión",
|
|
"sessions.sidebar.session.export.success": "Sesión exportada",
|
|
"sessions.sidebar.session.export.failedRevealPath": "No se pudo mostrar la ruta",
|
|
"sessions.sidebar.session.export.untitledSubagent": "Subagente sin título",
|
|
"sessions.sidebar.session.export.skippedSubtaskSingle": "La sesión se exportó, pero se omitió {count} tarea de subagente que no se pudo cargar.",
|
|
"sessions.sidebar.session.export.skippedSubtaskMany": "La sesión se exportó, pero se omitieron {count} tareas de subagente que no se pudieron cargar.",
|
|
"sessions.sidebar.session.export.dialog.title": "Exportar Markdown",
|
|
"sessions.sidebar.session.export.dialog.descriptionSingle": "Esta sesión tiene {count} tarea de subagente. ¿Incluirla en la exportación?",
|
|
"sessions.sidebar.session.export.dialog.descriptionMany": "Esta sesión tiene {count} tareas de subagente. ¿Incluirlas en la exportación?",
|
|
"sessions.sidebar.session.export.dialog.includeSubtasks": "Incluir tareas de subagente",
|
|
"sessions.sidebar.session.export.dialog.confirm": "Exportar",
|
|
"sessions.sidebar.session.status.active": "Sesión activa",
|
|
"sessions.sidebar.session.status.unread": "Actualizaciones no leídas",
|
|
"sessions.sidebar.session.status.pinned": "Sesión anclada",
|
|
"sessions.sidebar.session.status.movingToWorktree": "Moviendo la sesión a un worktree nuevo",
|
|
"sessions.sidebar.session.status.permissionRequired": "Permiso requerido",
|
|
"sessions.sidebar.session.status.questionPendingSingle": "1 pregunta pendiente",
|
|
"sessions.sidebar.session.status.questionPendingMany": "{count} preguntas pendientes",
|
|
"sessions.sidebar.session.status.activeFor": "Activa desde hace {duration}",
|
|
"sessions.sidebar.session.status.lastTurnDuration": "El último turno duró {duration}",
|
|
"sessions.sidebar.session.subsessions.collapse": "Colapsar subsesiones",
|
|
"sessions.sidebar.session.subsessions.expand": "Expandir subsesiones",
|
|
"sessions.sidebar.dialogs.deleteSession.title": "¿Eliminar sesión?",
|
|
"sessions.sidebar.dialogs.archiveSession.title": "¿Archivar sesión?",
|
|
"sessions.sidebar.dialogs.deleteSession.withOneSubtask": "\"{sessionTitle}\" y su {count} subtarea se eliminarán permanentemente.",
|
|
"sessions.sidebar.dialogs.deleteSession.withManySubtasks": "\"{sessionTitle}\" y sus {count} subtareas se eliminarán permanentemente.",
|
|
"sessions.sidebar.dialogs.archiveSession.withOneSubtask": "\"{sessionTitle}\" y su {count} subtarea se archivarán.",
|
|
"sessions.sidebar.dialogs.archiveSession.withManySubtasks": "\"{sessionTitle}\" y sus {count} subtareas se archivarán.",
|
|
"sessions.sidebar.dialogs.deleteSession.single": "\"{sessionTitle}\" se eliminará permanentemente.",
|
|
"sessions.sidebar.dialogs.archiveSession.single": "\"{sessionTitle}\" se archivará.",
|
|
"sessions.sidebar.dialogs.neverAsk": "Nunca preguntar",
|
|
"sessions.sidebar.dialogs.cancel": "Cancelar",
|
|
"sessions.sidebar.dialogs.deleteSession.titleAction": "Eliminar sesión",
|
|
"sessions.sidebar.dialogs.deleteSessions.titleAction": "Eliminar sesiones",
|
|
"sessions.sidebar.dialogs.deleteSessions.title": "¿Eliminar sesiones?",
|
|
"sessions.sidebar.dialogs.archiveSessions.title": "¿Archivar sesiones?",
|
|
"sessions.sidebar.dialogs.deleteSessions.singleDescription": "Se eliminará {count} sesión permanentemente.",
|
|
"sessions.sidebar.dialogs.deleteSessions.pluralDescription": "{count} sesiones se eliminarán permanentemente.",
|
|
"sessions.sidebar.dialogs.archiveSessions.singleDescription": "{count} sesión se archivará.",
|
|
"sessions.sidebar.dialogs.archiveSessions.pluralDescription": "{count} sesiones se archivarán.",
|
|
"sessions.sidebar.dialogs.deleteFolder.title": "¿Eliminar carpeta?",
|
|
"sessions.sidebar.dialogs.deleteFolder.withOneSubfolder": "\"{folderName}\" se eliminará junto con {count} subcarpeta. Las sesiones dentro no se eliminarán.",
|
|
"sessions.sidebar.dialogs.deleteFolder.withManySubfolders": "\"{folderName}\" se eliminará junto con {count} subcarpetas. Las sesiones dentro no se eliminarán.",
|
|
"sessions.sidebar.dialogs.deleteFolder.withContentsNoSubfolders": "\"{folderName}\" se eliminará. Las sesiones dentro no se eliminarán.",
|
|
"sessions.sidebar.dialogs.deleteFolder.single": "\"{folderName}\" se eliminará permanentemente.",
|
|
"sessions.sidebar.dialogs.deleteResult.singleFailedToDelete": "{count} sesión no se pudo eliminar.",
|
|
"sessions.sidebar.dialogs.deleteResult.manyFailedToDelete": "{count} sesiones no se pudieron eliminar.",
|
|
"sessions.sidebar.dialogs.deleteResult.singleFailedToArchive": "{count} sesión no se pudo archivar.",
|
|
"sessions.sidebar.dialogs.deleteResult.manyFailedToArchive": "{count} sesiones no se pudieron archivar.",
|
|
"sessions.sidebar.dialogs.deleteResult.removedFromDate": "Se eliminaron todas las sesiones de {dateLabel}.",
|
|
"sessions.sidebar.dialogs.deleteResult.tryAgain": "Vuelve a intentarlo en un momento.",
|
|
"sessions.sidebar.dialogs.worktreeDelete.descriptionNoLinked": "Esta acción elimina el worktree seleccionado.",
|
|
"sessions.sidebar.dialogs.worktreeDelete.descriptionOneLinked": "Esta acción elimina el worktree seleccionado y archiva {count} sesión vinculada.",
|
|
"sessions.sidebar.dialogs.worktreeDelete.descriptionManyLinked": "Esta acción elimina el worktree seleccionado y archiva {count} sesiones vinculadas.",
|
|
"sessions.sidebar.dialogs.sessionDelete.descriptionOne": "Esta acción elimina permanentemente 1 sesión.",
|
|
"sessions.sidebar.dialogs.sessionDelete.descriptionOneWithDate": "Esta acción elimina permanentemente 1 sesión de {dateLabel}.",
|
|
"sessions.sidebar.dialogs.sessionDelete.descriptionMany": "Esta acción elimina permanentemente {count} sesiones.",
|
|
"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate": "Esta acción elimina permanentemente {count} sesiones de {dateLabel}.",
|
|
"sessions.sidebar.dialogs.sessionList.more": "+{count} más",
|
|
"sessions.sidebar.session.share.successTitle": "Sesión compartida",
|
|
"sessions.sidebar.session.share.successDescription": "El enlace para compartir se copió al portapapeles.",
|
|
"sessions.sidebar.session.share.error": "No se puede compartir la sesión",
|
|
"sessions.sidebar.session.share.copyUrlError": "No se pudo copiar la URL",
|
|
"sessions.sidebar.session.unshare.success": "Sesión dejó de compartirse",
|
|
"sessions.sidebar.session.unshare.error": "No se puede dejar de compartir la sesión",
|
|
"sessions.sidebar.session.delete.success": "Sesión eliminada",
|
|
"sessions.sidebar.session.delete.error": "No se pudo eliminar la sesión",
|
|
"sessions.sidebar.session.archive.success": "Sesión archivada",
|
|
"sessions.sidebar.session.archive.error": "No se pudo archivar la sesión",
|
|
"sessions.sidebar.session.restore.success": "Sesión restaurada",
|
|
"sessions.sidebar.session.restore.error": "No se pudo restaurar la sesión",
|
|
"sessions.sidebar.group.pr.checksPassed": "{success}/{total} comprobaciones aprobadas",
|
|
"sessions.sidebar.group.pr.failingCount": "{count} con fallos",
|
|
"sessions.sidebar.group.pr.pendingCount": "{count} pendientes",
|
|
"sessions.sidebar.group.pr.conflictsOrBlocked": "Conflictos o bloqueados",
|
|
"sessions.sidebar.group.pr.mergeable": "Se puede hacer merge",
|
|
"sessions.sidebar.group.pr.mergeState": "Estado de merge: {state}",
|
|
"sessions.sidebar.group.pr.status.merged": "Fusionada",
|
|
"sessions.sidebar.group.pr.status.readyToMerge": "Lista para fusionar",
|
|
"sessions.sidebar.group.pr.status.open": "PR abierto",
|
|
"sessions.sidebar.group.pr.status.mergeConflicts": "Conflictos de merge",
|
|
"sessions.sidebar.group.pr.status.mergeBlocked": "Fusión bloqueada",
|
|
"sessions.sidebar.group.pr.status.draft": "PR en borrador",
|
|
"sessions.sidebar.group.pr.status.closed": "Cerrado",
|
|
"sessions.sidebar.group.empty.noArchivedSessions": "No hay sesiones archivadas aún.",
|
|
"sessions.sidebar.group.empty.noSessionsInWorkspace": "Aún no hay sesiones en este espacio de trabajo.",
|
|
"sessions.sidebar.group.showMore": "Mostrar más sesiones",
|
|
"sessions.sidebar.group.showMoreSingle": "Mostrar {count} más sesión",
|
|
"sessions.sidebar.group.showMorePlural": "Mostrar {count} más sesiones",
|
|
"sessions.sidebar.group.showFewer": "Mostrar menos sesiones",
|
|
"sessions.sidebar.group.expandAria": "Expandir {label}",
|
|
"sessions.sidebar.group.collapseAria": "Colapsar {label}",
|
|
"sessions.sidebar.group.actions.deleteArchivedInGroupAria": "Eliminar sesiones archivadas en {label}",
|
|
"sessions.sidebar.group.actions.deleteArchivedSessions": "Eliminar sesiones archivadas",
|
|
"sessions.sidebar.group.actions.deleteGroupAria": "Eliminar {label}",
|
|
"sessions.sidebar.group.actions.deleteWorktree": "Eliminar worktree",
|
|
"sessions.sidebar.group.actions.newDraftInGroupAria": "Nueva sesión de borrador en {label}",
|
|
"sessions.sidebar.grouping.projectRoot": "raíz del proyecto",
|
|
"sessions.sidebar.grouping.projectRootWithBranch": "raíz del proyecto: {branch}",
|
|
"sessions.sidebar.grouping.archived": "archivado",
|
|
"sessions.sidebar.grouping.archivedDescription": "Sesiones archivadas y no asignadas",
|
|
"sessions.sidebar.folderItem.expandAria": "Expandir carpeta {folderName}",
|
|
"sessions.sidebar.folderItem.collapseAria": "Colapsar carpeta {folderName}",
|
|
"sessions.sidebar.folderItem.namePlaceholder": "Nombre de carpeta",
|
|
"sessions.sidebar.folderItem.newSessionAria": "Nueva sesión en {folderName}",
|
|
"sessions.sidebar.folderItem.newSubfolderAria": "Nueva subcarpeta en {folderName}",
|
|
"sessions.sidebar.folderItem.newSubfolder": "Nueva subcarpeta",
|
|
"sessions.sidebar.folderItem.renameAria": "Cambiar nombre carpeta {folderName}",
|
|
"sessions.sidebar.folderItem.deleteArchivedInFolderAria": "Eliminar sesiones archivadas en carpeta {folderName}",
|
|
"sessions.sidebar.folderItem.deleteFolderAria": "Eliminar carpeta {folderName}",
|
|
"sessions.sidebar.folderItem.emptyFolder": "Vaciar carpeta",
|
|
"sessions.sidebar.sessionDialogs.ok": "Aceptar",
|
|
"sessions.sidebar.sessionDialogs.linkedSessionSingle": "Sesión vinculada",
|
|
"sessions.sidebar.sessionDialogs.linkedSessionPlural": "Sesiones vinculadas",
|
|
"sessions.sidebar.sessionDialogs.delete.note": "Los directorios de worktree permanecen intactos. Las subsesiones vinculadas a las sesiones seleccionadas también serán eliminadas.",
|
|
"sessions.sidebar.sessionDialogs.directory.errorSelectTitle": "No se pudo seleccionar directorio",
|
|
"sessions.sidebar.sessionDialogs.directory.errorOpenTitle": "No se pudo abrir directorio",
|
|
"sessions.sidebar.sessionDialogs.directory.errorOpenDescription": "Desktop no pudo otorgar acceso a archivos.",
|
|
"sessions.sidebar.sessionDialogs.directory.errorAddProjectTitle": "No se pudo añadir proyecto",
|
|
"sessions.sidebar.sessionDialogs.directory.errorAddProjectDescription": "Selecciona una ruta de directorio válida.",
|
|
"sessions.sidebar.sessionDialogs.worktree.errorRemoveTitle": "No se pudo eliminar el worktree «{name}»",
|
|
"sessions.sidebar.sessionDialogs.worktree.removingTitle": "Eliminando el worktree «{name}»…",
|
|
"sessions.sidebar.sessionDialogs.worktree.removedTitle": "Worktree «{name}» eliminado",
|
|
"sessions.sidebar.sessionDialogs.worktree.removed": "Worktree eliminado.",
|
|
"sessions.sidebar.sessionDialogs.worktree.removedWithRemote": "Worktree y rama remota eliminados.",
|
|
"sessions.sidebar.sessionDialogs.worktree.attachedArchived": "Worktree adjunto archivado.",
|
|
"sessions.sidebar.sessionDialogs.worktree.attachedArchivedPlural": "Worktrees adjuntos archivados.",
|
|
"sessions.sidebar.sessionDialogs.worktree.archivedAndRemoteRemoved": "Worktrees archivados y ramas remotas eliminadas.",
|
|
"sessions.sidebar.group.worktreeMissing": "Falta la carpeta del worktree",
|
|
"sessions.sidebar.sessionDialogs.worktree.label": "Worktree",
|
|
"sessions.sidebar.sessionDialogs.worktree.pathUnavailable": "Ruta de worktree no disponible.",
|
|
"sessions.sidebar.sessionDialogs.worktree.uncommittedWarning": "Los cambios sin commit se perderán.",
|
|
"sessions.sidebar.sessionDialogs.actions.deleteRemoteBranch": "Eliminar rama remota",
|
|
"sessions.sidebar.sessionDialogs.actions.remoteBranchInfoUnavailable": "Información de rama remota no disponible",
|
|
"sessions.sidebar.sessionDialogs.actions.deleteLocalBranch": "Eliminar rama local",
|
|
"sessions.sidebar.sessionDialogs.actions.deleting": "Eliminando…",
|
|
"sessions.sidebar.sessionDialogs.actions.deleteWorktree": "Eliminar worktree",
|
|
"gitView.branch.branchToMergeInto": "Rama de destino del merge",
|
|
"gitView.branch.branchToRebaseOnto": "rama de destino del rebase",
|
|
"gitView.branch.create": "Crear nueva rama...",
|
|
"gitView.branch.currentBadge": "Actual",
|
|
"gitView.branch.currentBranchFallback": "rama actual",
|
|
"gitView.branch.currentBranchTooltip": "Rama actual",
|
|
"gitView.branch.detachedHead": "HEAD desvinculado",
|
|
"gitView.branch.dialogDescriptionPrefix": "Elige cómo traer otra rama a",
|
|
"gitView.branch.empty": "No se encontraron ramas.",
|
|
"gitView.branch.localBranches": "Ramas locales",
|
|
"gitView.branch.mergeDescription": "Crea un commit de merge y conserva el historial.",
|
|
"gitView.branch.mergeRebase": "Merge/Rebase",
|
|
"gitView.branch.mergeRebaseTooltip": "Actualiza esta rama desde otra rama.",
|
|
"gitView.branch.mergingInProgress": "Merge en curso",
|
|
"gitView.branch.namePlaceholder": "Nombre de la rama",
|
|
"gitView.branch.newBranchPlaceholder": "Nombre de la nueva rama",
|
|
"gitView.branch.noLocalBranches": "No hay ramas locales",
|
|
"gitView.branch.noRemoteBranches": "No hay ramas remotas",
|
|
"gitView.branch.operation": "Operación",
|
|
"gitView.branch.operationCompleted": "Operación completada",
|
|
"gitView.branch.operationFailed": "No se pudo completar la operación",
|
|
"gitView.branch.pushToPrefix": "Enviar",
|
|
"gitView.branch.pushToSuffix": "a:",
|
|
"gitView.branch.rebaseDescription": "Reaplica tus commits encima de la rama seleccionada.",
|
|
"gitView.branch.rebasingInProgress": "Rebase en progreso",
|
|
"gitView.branch.remoteBranches": "Ramas remotas",
|
|
"gitView.branch.renameTitle": "Cambiar nombre de rama",
|
|
"gitView.branch.renameSave": "Guardar nombre de rama",
|
|
"gitView.branch.renameSaving": "Guardando nombre de rama",
|
|
"gitView.branch.renameCancel": "Cancelar cambio de nombre de rama",
|
|
"gitView.branch.searchPlaceholder": "Buscar ramas...",
|
|
"gitView.branch.selectBranch": "Seleccionar rama",
|
|
"gitView.branch.summaryMergeInfix": "en",
|
|
"gitView.branch.summaryMergePrefix": "Se hará merge de",
|
|
"gitView.branch.summaryRebaseInfix": "sobre",
|
|
"gitView.branch.summaryRebasePrefix": "Se hará rebase de",
|
|
"gitView.branch.updateDescriptionPrefix": "Trae los últimos cambios a",
|
|
"gitView.branch.updateTitle": "Actualizar rama",
|
|
"gitView.changes.changedFilesAria": "Archivos modificados",
|
|
"gitView.changes.clearSelectionAria": "Limpiar selección de archivos",
|
|
"gitView.changes.collapseDirectoryAria": "Contraer directorio",
|
|
"gitView.changes.expandDirectoryAria": "Expandir directorio",
|
|
"gitView.changes.revertAll": "Revertir todo",
|
|
"gitView.changes.revertAllDescriptionPlural": "Se descartarán los cambios locales de todos los archivos de la lista.",
|
|
"gitView.changes.revertAllDescriptionSingle": "Se descartarán los cambios locales del archivo seleccionado.",
|
|
"gitView.changes.revertAllDialogTitle": "¿Revertir todos los cambios?",
|
|
"gitView.changes.revertDirectoryAria": "Revertir cambios en {path}",
|
|
"gitView.changes.revertDirectory": "Revertir carpeta",
|
|
"gitView.changes.revertDirectoryDescriptionPlural": "Se descartarán los cambios locales de {count} archivos en {path}.",
|
|
"gitView.changes.revertDirectoryDescriptionSingle": "Se descartarán los cambios locales de {count} archivo en {path}.",
|
|
"gitView.changes.revertDirectoryDialogTitle": "¿Revertir cambios de la carpeta?",
|
|
"gitView.changes.revertDirectoryTooltip": "Revertir cambios de la carpeta",
|
|
"gitView.changes.revertFileAria": "Revertir archivo",
|
|
"gitView.changes.revertFileTooltip": "Revertir cambios",
|
|
"gitView.changes.reverting": "Revertiendo...",
|
|
"gitView.changes.selectAllAria": "Seleccionar todos los archivos",
|
|
"gitView.changes.selectFileAria": "Seleccionar archivo",
|
|
"gitView.changes.stagedTitle": "Preparados",
|
|
"gitView.changes.resizeSplitAria": "Ajustar tamaño de cambios preparados y sin preparar",
|
|
"gitView.changes.stageAllAria": "Preparar todos los cambios",
|
|
"gitView.changes.stageDirectoryAria": "Preparar todos los cambios en {path}",
|
|
"gitView.changes.stageFileAria": "Preparar {path}",
|
|
"gitView.changes.title": "Cambios",
|
|
"gitView.changes.toggleDirectorySelectionAria": "Alternar selección de directorio",
|
|
"gitView.changes.unstageAllAria": "Quitar todos los cambios del área preparada",
|
|
"gitView.changes.unstageDirectoryAria": "Quitar del área preparada todos los cambios en {path}",
|
|
"gitView.changes.unstageFileAria": "Quitar {path} del área preparada",
|
|
"gitView.commit.addGitmoji": "Añadir gitmoji",
|
|
"gitView.commit.aiHighlights.insertAria": "Insertar",
|
|
"gitView.commit.aiHighlights.insertTooltip": "Insertar",
|
|
"gitView.commit.aiHighlights.title": "Puntos destacados",
|
|
"gitView.commit.commit": "Commit",
|
|
"gitView.commit.commitAria": "Commit",
|
|
"gitView.commit.committing": "Creando commit...",
|
|
"gitView.commit.generate": "Generar",
|
|
"gitView.commit.generateAria": "Generar mensaje de commit",
|
|
"gitView.commit.messagePlaceholder": "Mensaje de commit",
|
|
"gitView.commit.push": "Commit & sync",
|
|
"gitView.commit.pushAria": "Commit and sync",
|
|
"gitView.commit.pushing": "Sincronizando...",
|
|
"gitView.commit.selectFilesHint": "Selecciona archivos en Cambios para habilitar el commit.",
|
|
"gitView.commit.stageFilesHint": "Prepara archivos para habilitar el commit.",
|
|
"gitView.commit.title": "Commit",
|
|
"gitView.common.cancel": "Cancelar",
|
|
'gitView.branch.switchBlockedNotice': 'Cambios sin confirmar: antes de cambiar de rama se ofrece confirmar o revertir.',
|
|
'gitView.branch.unpushedSingle': '1 commit sin push',
|
|
'gitView.branch.unpushedPlural': '{count} commits sin push',
|
|
'gitView.branch.recentBranches': 'Ramas recientes',
|
|
'gitView.dirtySwitch.title': 'Cambios sin confirmar',
|
|
'gitView.dirtySwitch.descriptionSingle': 'El cambio a {branch} está en pausa para no perder tu archivo modificado. Confírmalo o reviértelo primero.',
|
|
'gitView.dirtySwitch.descriptionPlural': 'El cambio a {branch} está en pausa para no perder tus {count} archivos modificados. Confírmalos o reviértelos primero.',
|
|
'gitView.dirtySwitch.commitAndSwitch': 'Confirmar y cambiar',
|
|
'gitView.dirtySwitch.committedNotPushed': 'Confirmado en {branch}. El commit es solo local: no se ha hecho push.',
|
|
'gitView.dirtySwitch.pushAfterCommit': 'Hacer push después del commit',
|
|
'gitView.dirtySwitch.pushFailed': 'Se confirmó, pero el push falló: no se cambió de rama.',
|
|
'gitView.dirtySwitch.actionFailed': 'La acción falló; no se cambió de rama.',
|
|
'gitView.dirtySwitch.revertAndSwitch': 'Revertir y cambiar',
|
|
'gitView.dirtySwitch.revertIncomplete': 'Algunos cambios no se pudieron revertir, así que no se cambió de rama.',
|
|
"gitView.common.close": "Cerrar",
|
|
"gitView.common.done": "Hecho",
|
|
"gitView.common.processing": "Procesando...",
|
|
"gitView.common.reset": "Restablecer",
|
|
"gitView.conflict.abortOperation": "Abortar operación",
|
|
"gitView.conflict.conflictedFiles": "Archivos en conflicto:",
|
|
"gitView.conflict.continueLater": "Continuar más tarde",
|
|
"gitView.conflict.detectedDescription": "Se detectaron conflictos que debes resolver.",
|
|
"gitView.conflict.detectedTitle": "Conflictos detectados",
|
|
"gitView.conflict.errorLoadingDetails": "No se pudo cargar detalles",
|
|
"gitView.conflict.headInfo": "Información de HEAD:",
|
|
"gitView.conflict.loadFailed": "No se pudo cargar",
|
|
"gitView.conflict.loading": "Cargando detalles del conflicto...",
|
|
"gitView.conflict.noActiveSession": "Sin sesión activa",
|
|
"gitView.conflict.noActiveSessionDescription": "Abre o crea una sesión para resolver los conflictos.",
|
|
"gitView.conflict.resolveCurrentSession": "Resolver en sesión actual",
|
|
"gitView.conflict.resolveNewSession": "Resolver en nueva sesión",
|
|
"gitView.empty.cleanDescription": "No hay cambios pendientes.",
|
|
"gitView.empty.cleanTitle": "Worktree limpio",
|
|
"gitView.empty.pullBehindPlural": "Pull de {count} commits",
|
|
"gitView.empty.pullBehindSingle": "Pull de {count} commit",
|
|
"gitView.header.identityTooltip": "Identidad de Git",
|
|
"gitView.header.noIdentity": "Sin identidad",
|
|
"gitView.header.noProfiles": "No hay perfiles disponibles para aplicar.",
|
|
"gitView.header.repositoryViews": "Vistas del repositorio",
|
|
"gitView.header.updateBranch": "Actualizar rama",
|
|
"gitView.header.openPullRequest": "Abrir pull request",
|
|
"gitView.header.removeRemoteAria": "Eliminar remoto",
|
|
"gitView.header.removeRemoteTitle": "Eliminar remoto",
|
|
"gitView.header.upstreamSynced": "sincronizado",
|
|
"gitView.header.upstreamTooltip": "Comparado con {target}.",
|
|
"gitView.header.upstreamTooltipTracking": "Comparado con {target}. Los indicadores principales de sincronización aún reflejan {tracking}.",
|
|
"gitView.history.actions.cancelButton": "Cancelar",
|
|
"gitView.history.actions.checkoutConfirm": "¿Cambiar a este commit como HEAD separado?",
|
|
"gitView.history.actions.cherryPickConfirm": "¿Aplicar cherry-pick de este commit sobre la rama actual?",
|
|
"gitView.history.actions.conflictToastDescription": "Conflictos en: {files}. Resuélvelos manualmente y haz commit, o aborta con git cherry-pick/revert --abort.",
|
|
"gitView.history.actions.conflictToastTitle": "Conflicto",
|
|
"gitView.history.actions.confirmButton": "Confirmar",
|
|
"gitView.history.actions.mergeConfirm": "¿Fusionar este commit en la rama actual?",
|
|
"gitView.history.actions.rebaseConfirm": "¿Rebasear la rama actual sobre este commit?",
|
|
"gitView.history.actions.resetHardConfirm": "Reset hard — HEAD se mueve y todos los cambios sin commit se descartan permanentemente.",
|
|
"gitView.history.actions.resetMixedConfirm": "Reset mixed — HEAD se mueve y los cambios quedan sin preparar.",
|
|
"gitView.history.actions.resetSoftConfirm": "Reset soft — HEAD se mueve y los cambios preparados se conservan.",
|
|
"gitView.history.actions.revertConfirm": "¿Preparar una reversión de este commit?",
|
|
"gitView.history.actions.checkout": "Cambiar a commit",
|
|
"gitView.history.actions.cherryPick": "Cherry-pick",
|
|
"gitView.history.actions.createBranch": "Crear rama aquí",
|
|
"gitView.history.actions.createBranchConfirm": "Crear",
|
|
"gitView.history.actions.createBranchPlaceholder": "Nombre de rama",
|
|
"gitView.history.actions.detachedHead": "Checkout realizado (HEAD separado)",
|
|
"gitView.history.actions.merge": "Fusionar en la actual",
|
|
"gitView.history.actions.rebase": "Rebasear sobre este",
|
|
"gitView.history.actions.reset": "Reset...",
|
|
"gitView.history.actions.resetHard": "Hard — descartar todos los cambios",
|
|
"gitView.history.actions.resetHardConfirmButton": "Descartar cambios",
|
|
"gitView.history.actions.resetMixed": "Mixed — quitar del stage",
|
|
"gitView.history.actions.resetSoft": "Soft — conservar staged",
|
|
"gitView.history.actions.revert": "Revertir",
|
|
|
|
"gitView.history.binary": "Binario",
|
|
"gitView.history.binaryNoDiff": "Archivo binario — no hay diff disponible",
|
|
"gitView.history.commitsPlaceholder": "Buscar commits...",
|
|
"gitView.history.copySha": "Copiar SHA",
|
|
"gitView.history.diffError": "Error al cargar el diff. Haz clic para reintentar.",
|
|
"gitView.history.largeDiffDescription": "El renderizado puede ser lento. Puedes ver el diff igualmente haciendo clic abajo.",
|
|
"gitView.history.largeDiffTitle": "Diff grande ({count} líneas cambiadas)",
|
|
"gitView.history.loadingDiff": "Cargando diff...",
|
|
"gitView.history.loadingFiles": "Cargando archivos...",
|
|
"gitView.history.loadMore": "Cargar más",
|
|
"gitView.history.loadingMore": "Cargando...",
|
|
"gitView.history.logSize100": "100 commits",
|
|
"gitView.history.logSize25": "25 commits",
|
|
"gitView.history.logSize50": "50 commits",
|
|
"gitView.history.noCommits": "No se encontraron commits",
|
|
"gitView.history.noFiles": "No hay archivos",
|
|
"gitView.history.renamedNoDiff": "Archivo renombrado — diff no soportado",
|
|
"gitView.history.renderDiffAnyway": "Renderizar igualmente",
|
|
"gitView.history.title": "Historial",
|
|
"gitView.history.refresh": "Actualizar",
|
|
"gitView.graph.title": "Grafo",
|
|
"gitView.integrate.checking": "Verificando…",
|
|
"gitView.integrate.cherryPickAbortedToast": "Cherry-pick abortado",
|
|
"gitView.integrate.cherryPickConflictDescription": "Resuelve los conflictos de cherry-pick para continuar.",
|
|
"gitView.integrate.cherryPickConflictToast": "Conflictos de cherry-pick detectados",
|
|
"gitView.integrate.cherryPickContinueFailedToast": "No se pudo continuar el cherry-pick",
|
|
"gitView.integrate.cherryPickFinishedToast": "Cherry-pick completado",
|
|
"gitView.integrate.commitsMovedDescriptionPlural": "Commits movidos",
|
|
"gitView.integrate.commitsMovedDescriptionSingle": "Commit movido",
|
|
"gitView.integrate.commitsMovedToast": "Commits movidos",
|
|
"gitView.integrate.commitsToMove": "Commits por mover",
|
|
"gitView.integrate.conflictsInFiles": "Conflictos en archivos",
|
|
"gitView.integrate.currentCommit": "Commit actual",
|
|
"gitView.integrate.currentSession": "Sesión actual",
|
|
"gitView.integrate.failedToMoveToast": "No se pudieron mover los commits",
|
|
"gitView.integrate.moreFiles": "Más archivos",
|
|
"gitView.integrate.move": "Mover",
|
|
"gitView.integrate.moveCommits": "Mover commits",
|
|
"gitView.integrate.moving": "Moviendo…",
|
|
"gitView.integrate.newSession": "Nueva sesión",
|
|
"gitView.integrate.noActiveSession": "Sin sesión activa",
|
|
"gitView.integrate.noActiveSessionDescription": "Abre o crea una sesión para resolver los conflictos.",
|
|
"gitView.integrate.noCommitsToMove": "No hay commits para mover.",
|
|
"gitView.integrate.noCommitsToMoveToast": "No hay commits para mover",
|
|
"gitView.integrate.previewUnavailable": "Vista previa no disponible",
|
|
"gitView.integrate.showAll": "Mostrar todo",
|
|
"gitView.integrate.showLess": "Mostrar menos",
|
|
"gitView.integrate.showingFirstCommits": "Mostrando los primeros commits",
|
|
"gitView.integrate.target": "Destino",
|
|
"gitView.integrate.title": "Reintegrar commits",
|
|
"gitView.integrate.toMoveCount": "Commits por mover",
|
|
"gitView.operation.abort": "Abortar",
|
|
"gitView.operation.continue": "Continuar",
|
|
"gitView.operation.inProgressTitle": "{operation} en progreso",
|
|
"gitView.operation.inProgressTitleManyConflicts": "{operation} en curso: {count} conflictos",
|
|
"gitView.operation.inProgressTitleOneConflict": "{operation} en curso: {count} conflicto",
|
|
"gitView.operation.merge": "Merge",
|
|
"gitView.operation.mergeInProgressWithHead": "Haciendo merge de {head}",
|
|
"gitView.operation.mergingMessage": "Haciendo merge: {message}",
|
|
"gitView.operation.rebase": "Rebase",
|
|
"gitView.operation.rebaseInProgress": "Rebase en progreso",
|
|
"gitView.operation.rebasingOnto": "Haciendo rebase de {headName} sobre {onto}",
|
|
"gitView.operation.readyToContinueHint": "Todos los conflictos están resueltos. Continúa para finalizar la operación.",
|
|
"gitView.operation.resolveConflictsHint": "Resuelve los conflictos y luego continúa la operación.",
|
|
"gitView.operation.resolveWithAi": "Resolver con IA",
|
|
"gitView.stash.confirmButton": "Guardar cambios y continuar",
|
|
"gitView.stash.description": "Tienes cambios sin commit que podrían sobrescribirse. Guárdalos temporalmente antes de continuar.",
|
|
"gitView.stash.mergeWith": "Merge con",
|
|
"gitView.stash.rebaseOnto": "Rebase sobre",
|
|
"gitView.stash.restoreAfterOperation": "Restaurar después de la operación",
|
|
"gitView.stash.restoreAria": "Restaurar stash",
|
|
"gitView.stash.stepRestore": "Restaura tus cambios guardados",
|
|
"gitView.stash.stepStash": "Guarda tus cambios sin commit",
|
|
"gitView.stash.thisWill": "Esto hará:",
|
|
"gitView.stash.title": "Cambios sin commit",
|
|
"gitView.stashes.actions.apply": "Apply",
|
|
"gitView.stashes.actions.drop": "Drop",
|
|
"gitView.stashes.actions.pop": "Pop",
|
|
"gitView.stashes.actions.stashCurrent": "Stash current changes",
|
|
"gitView.stashes.actions.stashCurrentWithCount": "Stash {count} files",
|
|
"gitView.stashes.confirm.drop": "Drop {ref}?",
|
|
"gitView.stashes.description": "Save, restore, and clean up Git stashes for this repository.",
|
|
"gitView.stashes.empty.list": "No stashes yet.",
|
|
"gitView.stashes.empty.search": "No matching stashes.",
|
|
"gitView.stashes.includeUntrackedHint": "Untracked files are included automatically.",
|
|
"gitView.stashes.fileCount": "{count} files",
|
|
"gitView.stashes.fileCountLoading": "counting files...",
|
|
"gitView.stashes.itemNumber": "#{number}",
|
|
"gitView.stashes.latestLabel": "Latest",
|
|
"gitView.stashes.messagePlaceholder": "Stash name",
|
|
"gitView.stashes.searchPlaceholder": "Search stashes",
|
|
"gitView.stashes.title": "Stashes",
|
|
"gitView.stashes.toast.applyFailed": "Failed to apply stash",
|
|
"gitView.stashes.toast.applySuccess": "Stash applied",
|
|
"gitView.stashes.toast.createFailed": "Failed to stash changes",
|
|
"gitView.stashes.toast.created": "Changes stashed",
|
|
"gitView.stashes.toast.dropFailed": "Failed to drop stash",
|
|
"gitView.stashes.toast.dropSuccess": "Stash dropped",
|
|
"gitView.stashes.toast.loadFailed": "Failed to load stashes",
|
|
"gitView.stashes.toast.noChanges": "No local changes to stash",
|
|
"gitView.stashes.toast.popFailed": "Failed to pop stash",
|
|
"gitView.stashes.toast.popSuccess": "Stash popped",
|
|
"gitView.stashes.untitled": "Untitled stash",
|
|
"gitView.sync.fetch": "Fetch",
|
|
"gitView.sync.fetchFromRemote": "Fetch de {name}",
|
|
"gitView.sync.fetchTooltip": "Fetch del remoto",
|
|
"gitView.sync.commitOrStashTooltip": "Haz commit o stash de tus cambios antes de sincronizar",
|
|
"gitView.sync.moreActionsAria": "Más acciones de sincronización",
|
|
"gitView.sync.noRemoteTooltip": "No hay remotos configurados",
|
|
"gitView.sync.pull": "Pull",
|
|
"gitView.sync.pullTooltip": "Hacer pull",
|
|
"gitView.sync.pullTooltipBehind": "Hacer pull ({count} detrás)",
|
|
"gitView.sync.push": "Push",
|
|
"gitView.sync.pushTooltip": "Hacer push",
|
|
"gitView.sync.pushTooltipAhead": "Hacer push ({count} por delante)",
|
|
"gitView.sync.sync": "sync",
|
|
"gitView.sync.syncChanges": "Sync Changes",
|
|
"gitView.sync.syncChangesTooltip": "Sync Changes ({behind} abajo, {ahead} arriba)",
|
|
"gitView.sync.syncChangesWithCounts": "Sync Changes {behind}↓ {ahead}↑",
|
|
"gitView.sync.syncCounts": "{behind}↓ {ahead}↑",
|
|
"gitView.branch.actionsUnavailable": "Acciones de rama no disponibles en este estado del repositorio",
|
|
"gitView.conflict.noDetailsAvailable": "No hay detalles de conflicto disponibles",
|
|
"gitView.empty.notGitRepository": "Este directorio no es un repositorio Git",
|
|
"gitView.empty.notGitRepositoryDescription": "Inicializa Git en este directorio o abre un repositorio.",
|
|
"gitView.empty.selectSessionOrDirectory": "Selecciona una sesión o directorio para ver el estado de Git",
|
|
"gitView.empty.worktreeFeaturesUnavailable": "Las características de worktree no están disponibles en este modo de espacio de trabajo.",
|
|
"gitView.empty.worktreeSetupDescription": "Finalizando la configuración de worktree y preparando el estado del repositorio.",
|
|
"gitView.empty.worktreeSetupInProgress": "Configuración de worktree en progreso",
|
|
"gitView.empty.discoveringRepositories": "Buscando repositorios de Git...",
|
|
"gitView.empty.discoverFailed": "No se pudo escanear en busca de repositorios de Git",
|
|
"gitView.empty.retryDiscovery": "Reintentar",
|
|
"gitView.empty.selectRepositoryPlaceholder": "Selecciona un repositorio...",
|
|
"worktree.bootstrap.toast.failed": "Error al configurar el worktree",
|
|
"worktree.bootstrap.toast.failedDescription": "El worktree se creó, pero la configuración en segundo plano no terminó.",
|
|
"worktree.bootstrap.toast.timeoutDescription": "El worktree se creó, pero la configuración en segundo plano agotó el tiempo de espera.",
|
|
"gitView.gitmoji.empty": "No se encontraron gitmojis",
|
|
"gitView.gitmoji.searchPlaceholder": "Buscar gitmojis...",
|
|
"gitView.gitmoji.title": "Insertar gitmoji",
|
|
"gitView.history.dialogDescription": "Navega por commits recientes e inspecciona los archivos modificados.",
|
|
"gitView.loading.checkingRepository": "Verificando repositorio...",
|
|
"gitView.loading.loading": "Cargando...",
|
|
"gitView.pr.actions.add": "Añadir",
|
|
"gitView.pr.actions.cancelEditing": "Cancelar edición",
|
|
"gitView.pr.actions.cancelEditingAria": "Cancelar edición de PR",
|
|
"gitView.pr.actions.createPr": "Crear PR",
|
|
"gitView.pr.actions.edit": "Editar",
|
|
"gitView.pr.actions.editPr": "Editar PR",
|
|
"gitView.pr.actions.editPrAria": "Editar PR",
|
|
"gitView.pr.actions.hide": "Ocultar",
|
|
"gitView.pr.actions.markReady": "Marcar como listo",
|
|
"gitView.pr.actions.markReadyAria": "Marcar la PR como lista para revisión",
|
|
"gitView.pr.actions.mergePr": "Hacer merge de la PR",
|
|
"gitView.pr.actions.mergePrAria": "Hacer merge de la PR",
|
|
"gitView.pr.actions.openChecks": "Abrir checks",
|
|
"gitView.pr.actions.openChecksAria": "Abrir checks fallidos",
|
|
"gitView.pr.actions.openComments": "Abrir comentarios",
|
|
"gitView.pr.actions.openCommentsAria": "Abrir comentarios de la PR",
|
|
"gitView.pr.actions.openOnGitHub": "Abrir en GitHub",
|
|
"gitView.pr.actions.openOnGitHubAria": "Abrir PR en GitHub",
|
|
"gitView.pr.actions.openSettings": "Abrir configuración",
|
|
"gitView.pr.actions.repo": "Repositorio",
|
|
"gitView.pr.actions.resolveFailedChecks": "Adjuntar comprobaciones fallidas",
|
|
"gitView.pr.actions.resolveFailedChecksAria": "Adjuntar comprobaciones fallidas al contexto del chat",
|
|
"gitView.pr.actions.savePr": "Guardar PR",
|
|
"gitView.pr.actions.savePrAria": "Guardar cambios de la PR",
|
|
"gitView.pr.actions.sendCommentToAgent": "Adjuntar comentario al contexto del chat",
|
|
"gitView.pr.actions.sendCommentToAgentAria": "Adjuntar este comentario al contexto del chat",
|
|
"gitView.pr.actions.sendToAgent": "Adjuntar al chat",
|
|
"gitView.pr.actions.shareComments": "Adjuntar comentarios",
|
|
"gitView.pr.actions.shareCommentsAria": "Adjuntar los comentarios del pull request al contexto del chat",
|
|
"gitView.pr.actions.toggleDraftAria": "Alternar estado de borrador",
|
|
"gitView.pr.actions.refresh": "Actualizar estado de la PR",
|
|
"gitView.pr.actions.refreshAria": "Actualizar estado del pull request",
|
|
"gitView.pr.additionalContext.added": "Añadido",
|
|
"gitView.pr.additionalContext.hint": "Añade contexto adicional para una revisión más efectiva.",
|
|
"gitView.pr.additionalContext.optional": "Opcional",
|
|
"gitView.pr.additionalContext.title": "Contexto adicional",
|
|
"gitView.pr.checkDetails.empty": "No hay detalles del check disponibles",
|
|
"gitView.pr.checkDetails.title": "Detalles del check fallido",
|
|
"gitView.pr.checkingStatus": "Comprobando estado de la PR...",
|
|
"gitView.pr.checks.label": "checks",
|
|
"gitView.pr.checks.completedLabel": "Completado",
|
|
"gitView.pr.checks.conclusionLabel": "Conclusión",
|
|
"gitView.pr.checks.startedLabel": "Iniciado",
|
|
"gitView.pr.checks.statusLabel": "Estado",
|
|
"gitView.pr.checks.stepLabel": "Paso",
|
|
"gitView.pr.checks.steps": "Pasos",
|
|
"gitView.pr.comments.empty": "No se encontraron comentarios",
|
|
"gitView.pr.comments.generalContext": "Comentario general",
|
|
"gitView.pr.comments.reviewContext": "Comentario de revisión",
|
|
"gitView.pr.comments.title": "Comentarios",
|
|
"gitView.pr.comments.unknownAuthor": "Autor desconocido",
|
|
"gitView.pr.createTitle": "Crear PR",
|
|
"gitView.pr.draftMustBeReady": "La PR en borrador debe marcarse como lista antes de hacer merge.",
|
|
"gitView.pr.field.baseBranch": "Rama base",
|
|
"gitView.pr.field.description": "Descripción",
|
|
"gitView.pr.field.draft": "Borrador",
|
|
"gitView.pr.field.title": "Título",
|
|
"gitView.pr.githubNotConnected": "GitHub no está conectado",
|
|
"gitView.pr.history.merged": "La PR #{number} se fusionó en {base}.",
|
|
"gitView.pr.history.closed": "La PR #{number} se cerró.",
|
|
"gitView.pr.loadingDescription": "Cargando descripción...",
|
|
"gitView.pr.mergeMethod.merge": "Crear un merge commit",
|
|
"gitView.pr.mergeMethod.rebase": "Rebase y merge",
|
|
"gitView.pr.mergeMethod.squash": "Squash y merge",
|
|
"gitView.pr.noDescription": "Sin descripción",
|
|
"gitView.pr.noMergePermission": "No tienes permiso para hacer merge de esta PR.",
|
|
"gitView.pr.notMergeable": "No se puede hacer merge",
|
|
"gitView.pr.numberLabel": "PR # {number}",
|
|
"gitView.pr.segment.overview": "Resumen",
|
|
"gitView.pr.segment.checks": "Comprobaciones",
|
|
"gitView.pr.segment.comments": "Comentarios",
|
|
"gitView.pr.comments.addAll": "Adjuntar todo al chat",
|
|
"gitView.pr.placeholder.additionalContext": "Cualquier restricción, nota de lanzamiento o contexto para revisor...",
|
|
"gitView.pr.placeholder.description": "Describe el cambio...",
|
|
"gitView.pr.placeholder.main": "Resume tu PR",
|
|
"gitView.pr.placeholder.selectBaseBranch": "Seleccionar rama base",
|
|
"gitView.pr.placeholder.title": "Título de la PR",
|
|
"gitView.pr.placeholder.whatChanged": "¿Qué cambió y por qué?",
|
|
"gitView.pr.statusUnavailable": "Estado de la PR no disponible",
|
|
"gitView.pr.toast.baseBranchRequired": "Selecciona una rama base",
|
|
"gitView.pr.toast.baseMustDifferFromHead": "La rama base debe diferir de la rama actual",
|
|
"gitView.pr.toast.createPrFailed": "No se pudo crear la PR",
|
|
"gitView.pr.toast.generateDescriptionFailed": "No se pudo generar la descripción de la PR",
|
|
"gitView.pr.toast.githubApiUnavailable": "La API de GitHub no está disponible",
|
|
"gitView.pr.toast.loadCheckDetailsFailed": "No se pudieron cargar los detalles del check",
|
|
"gitView.pr.toast.loadChecksFailed": "No se pudieron cargar los checks de la PR",
|
|
"gitView.pr.toast.loadCommentsFailed": "No se pudieron cargar los comentarios",
|
|
"gitView.pr.toast.loadPrCommentsFailed": "No se pudieron cargar los comentarios de la PR",
|
|
"gitView.pr.toast.markReadyFailed": "No se pudo marcar la PR como lista",
|
|
"gitView.pr.toast.markedReady": "La PR se marcó como lista para revisión",
|
|
"gitView.pr.toast.mergeFailed": "No se pudo hacer merge de la PR",
|
|
"gitView.pr.toast.noActiveSession": "No hay sesión de chat activa",
|
|
"gitView.pr.toast.noActiveSessionDescription": "Abre o crea una sesión de chat para enviar contexto a un agente.",
|
|
"gitView.pr.toast.noFailedChecks": "No se encontraron checks fallidos",
|
|
"gitView.pr.toast.noModelSelected": "Selecciona un modelo primero",
|
|
"gitView.pr.toast.noPrComments": "No se encontraron comentarios de la PR",
|
|
"gitView.pr.toast.prCreated": "PR creada",
|
|
"gitView.pr.toast.prMerged": "Merge de PR completado",
|
|
"gitView.pr.toast.prNotMerged": "No se hizo merge de la PR",
|
|
"gitView.pr.toast.prUpdated": "PR actualizada",
|
|
"gitView.pr.toast.sendMessageFailed": "No se pudo enviar el mensaje al agente",
|
|
"gitView.pr.toast.titleRequired": "El título es obligatorio",
|
|
"gitView.pr.toast.updatePrFailed": "No se pudo actualizar la PR",
|
|
"gitView.pullRequest.createHint": "Crea y gestiona PR desde esta rama.",
|
|
"gitView.pullRequest.availableOnFeatureBranches": "Disponible cuando la rama actual puede abrir un PR.",
|
|
"gitView.pullRequest.title": "PR",
|
|
"gitView.tabs.worktree": "Árbol de trabajo",
|
|
"gitView.toast.abortOperationFailed": "No se pudo abortar la operación",
|
|
"gitView.toast.appliedIdentity": "Identidad aplicada: {name}",
|
|
"gitView.toast.applyIdentityFailed": "No se pudo aplicar la identidad",
|
|
"gitView.toast.branchCreatedLocally": "Rama creada localmente, pero no se pudo configurar el upstream.",
|
|
"gitView.toast.cannotCheckout": "No se puede cambiar a la rama: {reason}",
|
|
"gitView.toast.cannotCreateBranch": "No se puede crear la rama: {reason}",
|
|
"gitView.toast.cannotRemoveOriginRemote": "No se puede eliminar el remoto origin",
|
|
"gitView.toast.cannotRenameBranch": "No se puede cambiar el nombre de la rama: {reason}",
|
|
"gitView.toast.checkedOut": "Cambiado a {name}",
|
|
"gitView.toast.checkoutFailed": "No se pudo cambiar a {name}",
|
|
"gitView.toast.commitCreated": "Commit creado",
|
|
"gitView.toast.commitHashCopied": "Hash del commit copiado",
|
|
"gitView.toast.continueOperationFailed": "No se pudo continuar la operación",
|
|
"gitView.toast.copyFailed": "No se pudo copiar",
|
|
"gitView.toast.createBranchFailed": "No se pudo crear la rama",
|
|
"gitView.toast.createCommitFailed": "No se pudo crear el commit",
|
|
"gitView.toast.createdBranch": "Rama {name} creada",
|
|
"gitView.toast.enterCommitMessage": "Escribe un mensaje de commit",
|
|
"gitView.toast.fetchedFromRemote": "Recuperado de {name}",
|
|
"gitView.toast.generateCommitMessageFailed": "No se pudo generar el mensaje de commit",
|
|
"gitView.toast.mergeAborted": "Merge abortado",
|
|
"gitView.toast.mergeCompleted": "Merge completado",
|
|
"gitView.toast.mergeConflictsDetected": "Se detectaron conflictos al hacer merge",
|
|
"gitView.toast.mergedIntoBranch": "Merge de {branch} en {currentBranch}",
|
|
"gitView.toast.pulledFilesPlural": "Se trajeron {count} archivos de {name}",
|
|
"gitView.toast.pulledFilesSingle": "Se trajo {count} archivo de {name}",
|
|
"gitView.toast.pushedToUpstream": "Enviado a {name}",
|
|
"gitView.toast.commitOrStashBeforeSync": "Haz commit o stash de tus cambios antes de sincronizar",
|
|
"gitView.toast.alreadyUpToDate": "Ya está actualizado",
|
|
"gitView.toast.syncedPulledPluralAndPushed": "Se trajeron {count} archivos de {name} y se envió al upstream",
|
|
"gitView.toast.syncedPulledSingleAndPushed": "Se trajo {count} archivo de {name} y se envió al upstream",
|
|
"gitView.toast.syncedChanges": "Cambios sincronizados",
|
|
"gitView.toast.rebaseAborted": "Rebase abortado",
|
|
"gitView.toast.rebaseConflictsDetected": "Se detectaron conflictos al hacer rebase",
|
|
"gitView.toast.rebaseStepCompleted": "Paso de rebase completado",
|
|
"gitView.toast.rebasedOntoBranch": "Rebase de {currentBranch} sobre {branch}",
|
|
"gitView.toast.refreshRepositoryFailed": "No se pudo actualizar el repositorio",
|
|
"gitView.toast.remoteNameRequired": "Se requiere nombre del remoto",
|
|
"gitView.toast.removedRemote": "Remoto {name} eliminado",
|
|
"gitView.toast.renameBranchFailed": "No se pudo cambiar el nombre de {oldName} a {newName}",
|
|
"gitView.toast.renamedBranch": "{oldName} renombrado a {newName}",
|
|
"gitView.toast.restoreStashFailed": "No se pudo restaurar el stash",
|
|
"gitView.toast.restoreStashManually": "Debes restaurar el stash manualmente",
|
|
"gitView.toast.revertFailed": "No se pudieron revertir los cambios",
|
|
"gitView.toast.revertedFile": "{path} revertido",
|
|
"gitView.toast.revertedFilesPlural": "{count} archivos revertidos",
|
|
"gitView.toast.revertedFilesSingle": "{count} archivo revertido",
|
|
"gitView.toast.revertedSomePlural": "{success} archivos revertidos, {failed} fallidos",
|
|
"gitView.toast.revertedSomeSingle": "{success} archivo revertido, {failed} fallido",
|
|
"gitView.toast.stageFileFailed": "No se pudieron preparar los cambios",
|
|
"gitView.toast.stageFileToCommit": "Prepara al menos un archivo para el commit",
|
|
"gitView.toast.stageFileToDescribe": "Prepara al menos un archivo para describir",
|
|
"gitView.toast.selectFileToCommit": "Selecciona al menos un archivo para el commit",
|
|
"gitView.toast.selectFileToDescribe": "Selecciona al menos un archivo para describir",
|
|
"gitView.toast.stashedRestored": "Cambios del stash restaurados",
|
|
"gitView.toast.syncActionFailed": "{action} falló",
|
|
"gitView.toast.unstageFileFailed": "No se pudieron quitar los cambios del área preparada",
|
|
"gitView.toast.upstreamSet": "Upstream de {branch} configurado como {remote}",
|
|
"gitView.worktree.availableInWorktreeMode": "Disponible solo en modo worktree",
|
|
"contextPanel.mode.chat": "Chat",
|
|
"contextPanel.mode.files": "Archivos",
|
|
"contextPanel.mode.diff": "Cambios",
|
|
"contextPanel.mode.stagedDiff": "Staged Diff",
|
|
"contextPanel.mode.workingDiff": "Working Diff",
|
|
"contextPanel.mode.plan": "Plan",
|
|
"contextPanel.mode.pr": "Pull Request",
|
|
"contextPanel.mode.context": "Contexto",
|
|
"contextPanel.mode.preview": "Vista previa",
|
|
"contextPanel.mode.browser": "Navegador",
|
|
"contextRail.configure.open": "Configurar paneles",
|
|
"contextRail.configure.dialogTitle": "Paneles de la barra",
|
|
"contextRail.configure.dialogDescription": "Elige qué paneles muestra la barra. Los paneles ocultos conservan sus datos y siguen accesibles desde la paleta de comandos.",
|
|
"contextRail.configure.showAll": "Mostrar todos",
|
|
"contextRail.configure.noneWarning": "Todos los paneles están ocultos.",
|
|
"contextRail.aria.rail": "Superficies del panel",
|
|
"contextPanel.editorEmpty.title": "Ningún archivo abierto",
|
|
"contextPanel.editorEmpty.description": "Elige un archivo del árbol para empezar a editar.",
|
|
"contextRail.surface.editor.description": "Editar archivos del proyecto",
|
|
"contextRail.surface.git.description": "Commits, ramas y pull requests",
|
|
"contextRail.surface.git.changesCountAriaSingle": "{label}, {count} archivo modificado",
|
|
"contextRail.surface.git.changesCountAriaPlural": "{label}, {count} archivos modificados",
|
|
"contextRail.surface.git.changesCountTooltipSingle": "{count} archivo modificado",
|
|
"contextRail.surface.git.changesCountTooltipPlural": "{count} archivos modificados",
|
|
"contextRail.surface.terminal.description": "Terminal integrada",
|
|
"contextRail.surface.diff.description": "Revisar cambios en curso",
|
|
"contextPanel.mode.walkthrough": "Recorrido",
|
|
"contextRail.surface.walkthrough.description": "Un recorrido por tus cambios guiado por IA",
|
|
"walkthrough.scope.all": "Todo sin confirmar",
|
|
"walkthrough.scope.group.workingTree": "Árbol de trabajo",
|
|
"walkthrough.scope.group.committed": "Confirmado",
|
|
"walkthrough.scope.staged": "Preparados",
|
|
"walkthrough.scope.working": "Sin preparar",
|
|
"walkthrough.scope.branch": "Esta rama",
|
|
"walkthrough.scope.selectorAria": "Elegir qué revisar",
|
|
"walkthrough.language.menuLabel": "Idioma del recorrido",
|
|
"walkthrough.missing.language": "Aún no hay un recorrido en {requested}: se muestra el de {shown}.",
|
|
"walkthrough.missing.model": "Aún no hay un recorrido de {model}: se muestra el último generado aquí.",
|
|
"walkthrough.missing.languageAndModel": "Aún no hay un recorrido en este idioma con este modelo: se muestra el último generado aquí.",
|
|
"walkthrough.language.selectorAria": "Elegir el idioma del recorrido",
|
|
"walkthrough.scope.pullRequest": "PR n.º {number}",
|
|
"walkthrough.action.generate": "Generar recorrido",
|
|
"walkthrough.action.regenerate": "Regenerar",
|
|
"walkthrough.action.cancel": "Cancelar",
|
|
"walkthrough.action.next": "Paso siguiente",
|
|
"walkthrough.action.previous": "Paso anterior",
|
|
"walkthrough.action.refresh": "Actualizar",
|
|
"walkthrough.action.open": "Recorrido con IA",
|
|
"walkthrough.stage.collecting": "Reuniendo los cambios",
|
|
"walkthrough.stage.asking": "Esperando al modelo",
|
|
"walkthrough.stage.assembling": "Montando el recorrido",
|
|
"walkthrough.empty.title": "Todavía no hay recorrido",
|
|
"walkthrough.empty.description": "Crea una ruta de lectura guiada por estos cambios. Esto llama al modelo pequeño y consume tokens, así que solo se ejecuta cuando lo pides.",
|
|
"walkthrough.stale.banner": "El código cambió después de esta revisión. Pasos desactualizados: {count}",
|
|
"walkthrough.stop.staleAll": "Todo el código que describía este paso ha cambiado.",
|
|
"walkthrough.stop.stalePartial": "Parte del código que describía este paso ha cambiado. Fragmentos perdidos: {count}",
|
|
"walkthrough.stop.staleShort": "Desactualizado",
|
|
"walkthrough.stop.noCode": "El código de este paso no está en el diff actual.",
|
|
"walkthrough.uncovered.title": "Cambios que la revisión omitió: {count}",
|
|
"walkthrough.uncovered.description": "La revisión los consideró rutinarios. Despliega para revisarlos tú mismo.",
|
|
"walkthrough.toc.moreFiles": "Más archivos: {count}",
|
|
"walkthrough.toc.uncovered": "Sin cubrir: {count}",
|
|
"walkthrough.toc.resize": "Cambiar el ancho de la columna de contenidos",
|
|
"walkthrough.importance.critical": "Cambio clave",
|
|
"walkthrough.importance.criticalHint": "Este paso impulsa el resto del cambio, así que léelo con atención. No es un problema detectado en tu código.",
|
|
"walkthrough.importance.context": "Contexto",
|
|
"walkthrough.importance.contextHint": "Un cambio de apoyo, incluido para que el resto tenga sentido.",
|
|
"walkthrough.help.guide": "Cómo funcionan los walkthroughs",
|
|
"walkthrough.blocked.noModel.title": "No hay ningún modelo pequeño disponible",
|
|
"walkthrough.blocked.noModel.description": "Inicia sesión en un proveedor de modelos para generar una revisión.",
|
|
"walkthrough.blocked.emptyDiff.title": "Nada que revisar",
|
|
"walkthrough.blocked.emptyDiff.description": "Todavía no hay cambios en este ámbito.",
|
|
"walkthrough.blocked.contextTooSmall.title": "Este diff es demasiado grande para el modelo actual",
|
|
"walkthrough.blocked.contextTooSmall.description": "{model} admite unos {available} mil caracteres y este diff necesita unos {required} mil. No se recorta nada: elige un modelo con más contexto.",
|
|
"walkthrough.blocked.structuredOutput.title": "Este modelo no puede generar salida estructurada",
|
|
"walkthrough.blocked.structuredOutput.description": "{model} no admite las respuestas estructuradas que necesita un recorrido.",
|
|
"walkthrough.blocked.chooseModel": "Elige el modelo pequeño",
|
|
"walkthrough.blocked.outputExhausted.title": "El modelo se quedó sin presupuesto de respuesta",
|
|
"walkthrough.blocked.outputExhausted.description": "{model} gastó todo su margen de salida razonando y no devolvió nada. Los modelos de razonamiento suelen hacerlo con diffs grandes: prueba con un modelo que razone menos o revisa un ámbito más reducido.",
|
|
"walkthrough.blocked.outputExhausted.descriptionUnknownModel": "El modelo pequeño gastó todo su margen de salida razonando y no devolvió nada. Los modelos de razonamiento suelen hacerlo con diffs grandes: prueba con un modelo que razone menos o revisa un ámbito más reducido.",
|
|
"walkthrough.blocked.onlyGenerated.title": "Solo cambiaron archivos generados",
|
|
"walkthrough.blocked.onlyGenerated.description": "Todos los cambios son archivos de bloqueo u otra salida generada por herramientas, que la revisión omite a propósito.",
|
|
"walkthrough.blocked.serverUnsupported.title": "Este servidor no admite walkthroughs",
|
|
"walkthrough.blocked.serverUnsupported.description": "El servidor de OpenChamber al que está conectada esta app no respondió a la API de walkthrough, así que es más antiguo que la app. Actualiza el servidor a 1.18 o posterior y vuelve a intentarlo.",
|
|
"walkthrough.blocked.contextTooSmall.descriptionUnknownModel": "El modelo pequeño admite unos {available} mil caracteres y este diff necesita unos {required} mil. No se recorta nada: elige un modelo con más contexto.",
|
|
"walkthrough.blocked.structuredOutput.descriptionUnknownModel": "El modelo pequeño no admite las respuestas estructuradas que necesita un recorrido.",
|
|
"contextRail.surface.plan.description": "Ver el plan actual",
|
|
"contextRail.surface.pr.description": "Crea, revisa y fusiona el pull request de la rama actual",
|
|
"contextRail.surface.notes.description": "Notas, tareas, planes y memoria del agente del proyecto",
|
|
"contextRail.surface.context.description": "Contexto de la sesión y uso de tokens",
|
|
"contextRail.surface.browser.description": "Navegador web integrado",
|
|
"contextRail.surface.preview.description": "Vista previa del servidor de desarrollo",
|
|
"contextRail.surface.chat.description": "Sesión abierta en paralelo",
|
|
"contextRail.surface.notes": "Conocimiento del proyecto",
|
|
"contextRail.editorTree.toggle": "Alternar árbol de archivos",
|
|
"contextPanel.browser.open": "Abrir panel del navegador",
|
|
"contextPanel.browser.addressAria": "Dirección del navegador",
|
|
"contextPanel.browser.history.label": "Direcciones recientes",
|
|
"contextPanel.browser.history.forget": "Quitar del historial",
|
|
"contextPanel.browser.newTab": "Nueva pestaña del navegador",
|
|
"contextPanel.browser.empty": "Navegador web",
|
|
"contextPanel.browser.emptyHint": "Ingrese una dirección arriba para comenzar a navegar",
|
|
"contextPanel.browser.inspectUnavailable": "Esta página no se puede inspeccionar desde el panel del navegador.",
|
|
"contextPanel.browser.back": "Atrás",
|
|
"contextPanel.browser.forward": "Adelante",
|
|
"contextPanel.browser.reload": "Recargar",
|
|
"contextPanel.browser.hardReload": "Recargar ignorando la caché",
|
|
"contextPanel.browser.zoomIn": "Acercar",
|
|
"contextPanel.browser.zoomOut": "Alejar",
|
|
"contextPanel.browser.zoomReset": "Restablecer zoom",
|
|
"contextPanel.browser.clearCookies": "Borrar cookies",
|
|
"contextPanel.browser.clearCache": "Borrar caché",
|
|
"contextPanel.browser.clearedCookies": "Cookies borradas",
|
|
"contextPanel.browser.clearedCache": "Caché borrada",
|
|
"contextPanel.browser.clearFailed": "No se pudieron borrar los datos de navegación",
|
|
"contextPanel.browser.stop": "Detener",
|
|
"contextPanel.browser.openExternal": "Abrir en el navegador del sistema",
|
|
"contextPanel.browser.devTools": "Abrir DevTools",
|
|
"contextPanel.browser.deviceToolbar": "Barra de dispositivos",
|
|
"contextPanel.browser.device.preset": "Preajuste de dispositivo",
|
|
"contextPanel.browser.device.responsive": "Adaptable",
|
|
"contextPanel.browser.device.width": "Ancho del viewport",
|
|
"contextPanel.browser.device.height": "Alto del viewport",
|
|
"contextPanel.browser.device.rotate": "Rotar",
|
|
"contextPanel.browser.device.schemeSystem": "Auto",
|
|
"contextPanel.browser.device.schemeLight": "Claro",
|
|
"contextPanel.browser.device.schemeDark": "Oscuro",
|
|
"contextPanel.browser.device.schemeFailed": "No se pudo cambiar la apariencia de la página",
|
|
"contextPanel.browser.frameTitle": "Navegador",
|
|
"contextPanel.browser.loadFailed": "No se pudo cargar esta página",
|
|
"contextPanel.browser.waitingForServer": "Esperando al servidor de desarrollo",
|
|
"contextPanel.browser.waitingForServerHint": "Todavía no acepta conexiones. La página se cargará en cuanto lo haga.",
|
|
"contextPanel.browser.tunnelFailed": "No se pudo alcanzar este servidor de desarrollo",
|
|
"contextPanel.browser.tunnelFailedHint": "{url} se ejecuta en la máquina donde está OpenChamber y no se pudo abrir la conexión con ella. Aquí no se muestra nada de tu propia máquina.",
|
|
"contextPanel.browser.loadFailedUnknown": "No se pudo acceder a la página.",
|
|
"contextPanel.browser.crashed": "Esta página dejó de responder",
|
|
"contextPanel.browser.crashedHint": "La página falló varias veces seguidas. Recarga para volver a intentarlo.",
|
|
"contextPanel.browser.devServers.title": "Servidores de desarrollo activos",
|
|
"projectActions.toast.multipleServers": "Se iniciaron varios servidores: elige uno en el panel del navegador",
|
|
"contextPanel.browser.devServers.justStarted": "Recién iniciados",
|
|
"contextPanel.browser.devServers.unavailable": "No se pudieron comprobar los servidores de desarrollo activos.",
|
|
"contextPanel.browser.devServers.remoteOnly": "Se ejecutan en la máquina que aloja OpenChamber. Abrirlos requiere la aplicación de escritorio.",
|
|
"contextPanel.browser.annotate.toggle": "Anotar página",
|
|
"contextPanel.browser.annotate.intro": "Esta es una selección anotada del navegador integrado.",
|
|
"contextPanel.browser.annotate.attached": "Anotación adjuntada al chat",
|
|
"contextPanel.browser.annotate.noSession": "Abre una sesión de chat antes de adjuntar una anotación",
|
|
"contextPanel.browser.annotate.noPage": "Carga una página antes de anotar",
|
|
"contextPanel.browser.annotate.failed": "No se pudo anotar esta página",
|
|
"contextPanel.browser.annotate.tool.element": "Elemento",
|
|
"contextPanel.browser.annotate.tool.region": "Región",
|
|
"contextPanel.browser.annotate.tool.draw": "Dibujar",
|
|
"contextPanel.browser.annotate.commentPlaceholder": "Describe el cambio...",
|
|
"contextPanel.browser.annotate.submit": "Adjuntar",
|
|
"contextPanel.browser.trustNotice": "Las páginas que abras aquí se ejecutan con acceso completo a OpenChamber: necesario para la inspección y las capturas. Abre solo sitios de confianza: una página maliciosa podría leer tus datos o actuar en tu nombre.",
|
|
"contextPanel.tab.closeTabAria": "Cerrar pestaña {label}",
|
|
"contextPanel.tab.menu.close": "Cerrar",
|
|
"contextPanel.tab.menu.closeOthers": "Cerrar otras",
|
|
"contextPanel.tab.menu.closeToLeft": "Cerrar pestañas a la izquierda",
|
|
"contextPanel.tab.menu.closeToRight": "Cerrar pestañas a la derecha",
|
|
"contextPanel.tab.menu.closeAll": "Cerrar todas las pestañas",
|
|
"contextPanel.actions.collapsePanel": "Colapsar panel",
|
|
"contextPanel.actions.expandPanel": "Expandir panel",
|
|
"contextPanel.actions.closePanel": "Cerrar panel",
|
|
"contextPanel.actions.resizePanelAria": "Ajustar tamaño del panel de contexto",
|
|
"contextPanel.iframe.sessionChatTitle": "Chat de sesión {sessionID}",
|
|
"contextPanel.preview.actions.reload": "Recargar vista previa",
|
|
"contextPanel.preview.actions.openExternal": "Abrir en el navegador",
|
|
"contextPanel.preview.actions.retry": "Reintentar",
|
|
"contextPanel.preview.iframeTitle": "Vista previa",
|
|
"contextPanel.preview.invalidUrl": "La vista previa necesita una URL http(s) válida.",
|
|
"contextPanel.preview.empty": "Sin URL de vista previa",
|
|
"contextPanel.preview.loading": "Conectando proxy de vista previa...",
|
|
"contextPanel.preview.proxyError": "No se pudo iniciar el proxy de vista previa.",
|
|
"contextPanel.preview.upstreamUnreachable": "El servidor de desarrollo no responde.",
|
|
"contextPanel.preview.upstreamUnreachableHint": "Verifica que tu servidor de desarrollo siga en ejecución y vuelve a intentarlo.",
|
|
|
|
"terminalView.preview.open": "Vista previa",
|
|
"terminalView.preview.openTitle": "Abrir panel de vista previa",
|
|
"sidebarFilesTree.menu.rename": "Cambiar nombre",
|
|
"sidebarFilesTree.menu.copyPath": "Copiar ruta",
|
|
"sidebarFilesTree.menu.save": "Guardar",
|
|
"sidebarFilesTree.menu.download": "Descargar",
|
|
"sidebarFilesTree.menu.newFile": "Nuevo archivo",
|
|
"sidebarFilesTree.menu.newFolder": "Nueva carpeta",
|
|
"sidebarFilesTree.menu.delete": "Eliminar",
|
|
"sidebarFilesTree.toast.pathCopied": "Ruta copiada",
|
|
"sidebarFilesTree.toast.copyFailed": "No se pudo copiar",
|
|
"sidebarFilesTree.toast.revealFailed": "No se pudo revelar la ruta",
|
|
"sidebarFilesTree.toast.filenameRequired": "El nombre de archivo es obligatorio",
|
|
"sidebarFilesTree.toast.writeNotSupported": "La escritura no es compatible",
|
|
"sidebarFilesTree.toast.fileCreated": "Archivo creado",
|
|
"sidebarFilesTree.toast.operationFailed": "No se pudo completar la operación",
|
|
"sidebarFilesTree.toast.uploaded": "Archivos subidos",
|
|
"sidebarFilesTree.toast.uploadedWithoutConflicts": "Se subieron los archivos sin conflictos",
|
|
"sidebarFilesTree.toast.uploadFailed": "No se pudieron subir algunos archivos",
|
|
"sidebarFilesTree.drop.target": "Subir a {path}",
|
|
"sidebarFilesTree.drop.uploading": "Subiendo archivos a {path}",
|
|
"sidebarFilesTree.dialog.uploadConflicts.title": "¿Reemplazar los archivos existentes?",
|
|
"sidebarFilesTree.dialog.uploadConflicts.description": "Ya existen archivos con estos nombres en {path}. El reemplazo no se puede deshacer.",
|
|
"sidebarFilesTree.dialog.uploadConflicts.replace": "Reemplazar",
|
|
"sidebarFilesTree.toast.folderNameRequired": "El nombre de carpeta es obligatorio",
|
|
"sidebarFilesTree.toast.folderCreated": "Carpeta creada",
|
|
"sidebarFilesTree.toast.nameRequired": "El nombre es obligatorio",
|
|
"sidebarFilesTree.toast.renameNotSupported": "El cambio de nombre no es compatible",
|
|
"sidebarFilesTree.toast.renamedSuccessfully": "Nombre cambiado",
|
|
"sidebarFilesTree.toast.deleteNotSupported": "La eliminación no es compatible",
|
|
"sidebarFilesTree.toast.deletedSuccessfully": "Eliminado",
|
|
"sidebarFilesTree.search.placeholder": "Buscar archivos...",
|
|
"sidebarFilesTree.search.clearAria": "Limpiar búsqueda",
|
|
"sidebarFilesTree.actions.newFileTitle": "Nuevo archivo",
|
|
"sidebarFilesTree.actions.newFolderTitle": "Nueva carpeta",
|
|
"sidebarFilesTree.actions.refreshTitle": "Actualizar",
|
|
"sidebarFilesTree.actions.collapseAllTitle": "Contraer todas las carpetas",
|
|
"sidebarFilesTree.actions.fileMenuTitle": "Menú de archivo",
|
|
"sidebarFilesTree.state.searching": "Buscando...",
|
|
"sidebarFilesTree.state.loading": "Cargando...",
|
|
"sidebarFilesTree.dialog.createFile.title": "Crear archivo",
|
|
"sidebarFilesTree.dialog.createFolder.title": "Crear carpeta",
|
|
"sidebarFilesTree.dialog.rename.title": "Cambiar nombre",
|
|
"sidebarFilesTree.dialog.delete.title": "Eliminar",
|
|
"sidebarFilesTree.dialog.createFile.description": "Crea un archivo nuevo en {path}",
|
|
"sidebarFilesTree.dialog.createFolder.description": "Crea una carpeta nueva en {path}",
|
|
"sidebarFilesTree.dialog.rename.description": "Cambiar el nombre de {name}",
|
|
"sidebarFilesTree.dialog.delete.description": "¿Estás seguro de que quieres eliminar {name}? Esta acción no se puede deshacer.",
|
|
"sidebarFilesTree.dialog.rootFallback": "raíz",
|
|
"sidebarFilesTree.dialog.rename.placeholder": "Nuevo nombre",
|
|
"sidebarFilesTree.dialog.namePlaceholder": "Nombre",
|
|
"sidebarFilesTree.dialog.cancel": "Cancelar",
|
|
"sidebarFilesTree.dialog.confirm": "Confirmar",
|
|
"sidebarFilesTree.dialog.delete.confirm": "Eliminar",
|
|
"filesView.dialog.createFile.title": "Crear archivo",
|
|
"filesView.dialog.createFolder.title": "Crear carpeta",
|
|
"filesView.dialog.rename.title": "Cambiar nombre",
|
|
"filesView.dialog.delete.title": "Eliminar",
|
|
"filesView.dialog.createFile.description": "Crea un archivo nuevo en {path}",
|
|
"filesView.dialog.createFolder.description": "Crea una carpeta nueva en {path}",
|
|
"filesView.dialog.rename.description": "Cambiar el nombre de {name}",
|
|
"filesView.dialog.delete.description": "¿Estás seguro de que quieres eliminar {name}? Esta acción no se puede deshacer.",
|
|
"filesView.dialog.rootFallback": "raíz",
|
|
"filesView.dialog.rename.placeholder": "Nuevo nombre",
|
|
"filesView.dialog.namePlaceholder": "Nombre",
|
|
"filesView.dialog.cancel": "Cancelar",
|
|
"filesView.dialog.confirm": "Confirmar",
|
|
"filesView.dialog.delete.confirm": "Eliminar",
|
|
"filesView.editor.saving": "Guardando...",
|
|
"filesView.editor.saved": "Guardado",
|
|
"filesView.editor.autoSaveOn": "Guardado automático activado",
|
|
"filesView.editor.manualSave": "Guardado manual",
|
|
"filesView.editor.saveNowTitle": "Guardar ahora ({shortcut}) - se guarda automáticamente después de 1.5 segundos",
|
|
"filesView.editor.saveNowManualTitle": "Guardar ahora ({shortcut})",
|
|
"filesView.editor.saveAria": "Guardar ({shortcut})",
|
|
"filesView.editor.openInDesktopApp": "Abrir en la aplicación de escritorio",
|
|
"filesView.editor.refreshApps": "Actualizar aplicaciones",
|
|
"filesView.editor.disableLineWrap": "Desactivar ajuste de línea",
|
|
"filesView.editor.enableLineWrap": "Activar ajuste de línea",
|
|
"filesView.editor.findInFile": "Buscar en el archivo",
|
|
"filesView.preview.find.placeholder": "Buscar en la vista previa",
|
|
"filesView.preview.find.nextAria": "Siguiente coincidencia",
|
|
"filesView.preview.find.previousAria": "Coincidencia anterior",
|
|
"filesView.preview.find.closeAria": "Cerrar búsqueda",
|
|
"filesView.preview.find.noMatches": "Sin coincidencias",
|
|
"filesView.preview.find.countAria": "{current} de {total}",
|
|
"filesView.editor.goToLine": "Ir a línea",
|
|
"filesView.editor.switchToEditMode": "Cambiar al modo de edición",
|
|
"filesView.editor.switchToPreviewMode": "Cambiar al modo de vista previa",
|
|
"filesView.editor.switchToTextView": "Cambiar a vista de texto",
|
|
"filesView.editor.switchToTreeView": "Cambiar a vista de árbol",
|
|
"filesView.toast.copyFailed": "No se pudo copiar",
|
|
"filesView.toast.openInAppFailed": "No se pudo abrir en {app}",
|
|
"filesView.toast.savingNotSupported": "El guardado no es compatible",
|
|
"filesView.toast.writeFileFailed": "No se pudo escribir el archivo",
|
|
"filesView.toast.saveFailed": "No se pudo guardar",
|
|
"filesView.editor.copyFileContents": "Copiar contenido del archivo",
|
|
"filesView.editor.copyFilePathTitle": "Copiar ruta del archivo ({path})",
|
|
"filesView.editor.saveFile": "Guardar archivo",
|
|
"filesView.editor.exitFullscreen": "Salir de pantalla completa",
|
|
"filesView.editor.fullscreen": "Pantalla completa",
|
|
"filesView.unsaved.title": "Cambios no guardados",
|
|
"filesView.unsaved.description": "¿Quieres guardar tus cambios antes de continuar?",
|
|
"filesView.unsaved.saveChanges": "Guardar cambios",
|
|
"filesView.unsaved.discard": "Descartar",
|
|
"filesView.editor.back": "Atrás",
|
|
"filesView.editor.openFilesAria": "Abrir archivos",
|
|
"filesView.editor.closeFileAria": "Cerrar {name}",
|
|
"filesView.editor.selectFile": "Seleccionar un archivo",
|
|
"filesView.editor.showControlsAria": "Mostrar controles del editor",
|
|
"filesView.editor.controlsTitle": "Controles del editor",
|
|
"filesView.editor.pickFileFromTree": "Selecciona un archivo del árbol.",
|
|
"filesView.editor.cannotPreviewBinary": "No se puede previsualizar el archivo binario",
|
|
"filesView.editor.binaryFileDescription": "Este archivo es binario y no se puede editar en OpenChamber. Descárgalo para abrirlo con otra aplicación.",
|
|
"filesView.state.loading": "Cargando...",
|
|
"filesView.state.openingFileAtChange": "Abriendo archivo en cambio...",
|
|
"filesView.tree.search.placeholder": "Buscar archivos...",
|
|
"filesView.tree.search.clearAria": "Limpiar búsqueda",
|
|
"filesView.tree.search.searching": "Buscando...",
|
|
"filesView.tree.actions.newFileTitle": "Nuevo archivo",
|
|
"filesView.tree.actions.newFolderTitle": "Nueva carpeta",
|
|
"filesView.tree.actions.refreshTitle": "Actualizar",
|
|
"filesView.editor.imageAltFallback": "Imagen",
|
|
"filesView.error.jsonViewerUnavailable": "Visualizador JSON no disponible",
|
|
"filesView.error.switchToTextMode": "Cambia al modo de texto para ver contenido bruto.",
|
|
"filesView.warning.largeFilePreviewLimited": "Este archivo es grande ({sizeKb}KB). La vista previa puede estar limitada.",
|
|
"filesView.error.previewUnavailable": "Vista previa no disponible",
|
|
"filesView.error.switchToEditMode": "Cambia al modo de edición para resolver el problema.",
|
|
"filesView.error.readFileFailed": "No se pudo leer el archivo",
|
|
"filesView.editor.htmlPreviewTitle": "Vista previa HTML",
|
|
"filesView.diagram.closeDiagramView": "Cerrar vista de diagrama",
|
|
"filesView.diagram.saveDiagram": "Guardar diagrama",
|
|
"contextUsage.aria.label": "Uso del contexto",
|
|
"contextUsage.mobile.title": "Uso del contexto",
|
|
"contextUsage.mobile.usedTokens": "Tokens usados",
|
|
"contextUsage.mobile.contextLimit": "Límite de contexto",
|
|
"contextUsage.mobile.outputLimit": "Límite de salida",
|
|
"contextUsage.mobile.cost": "Costo",
|
|
"contextUsage.mobile.usage": "Uso",
|
|
"contextUsage.tooltip.usedTokens": "Tokens usados: {tokens}",
|
|
"contextUsage.tooltip.contextLimit": "Límite de contexto: {tokens}",
|
|
"contextUsage.tooltip.outputLimit": "Límite de salida: {tokens}",
|
|
"contextUsage.tooltip.cost": "Costo: {cost}",
|
|
"contextSidebar.session.untitled": "Sesión sin título",
|
|
"contextSidebar.empty.openSession": "Abrir una sesión para inspeccionar el contexto.",
|
|
"contextSidebar.section.context": "Contexto",
|
|
"contextSidebar.section.lastAssistantMessage": "Último mensaje del asistente",
|
|
"contextSidebar.section.rawMessages": "Mensajes brutos",
|
|
"contextSidebar.context.percentUsed": "{percent}% usado",
|
|
"contextSidebar.breakdown.user": "Usuario",
|
|
"contextSidebar.breakdown.assistant": "Asistente",
|
|
"contextSidebar.breakdown.toolCalls": "Llamadas a herramientas",
|
|
"contextSidebar.breakdown.other": "Otro",
|
|
"contextSidebar.stats.messages": "Mensajes",
|
|
"contextSidebar.stats.user": "Usuario",
|
|
"contextSidebar.stats.assistant": "Asistente",
|
|
"contextSidebar.stats.cost": "Costo",
|
|
"contextSidebar.tokens.input": "Entrada",
|
|
"contextSidebar.tokens.output": "Salida",
|
|
"contextSidebar.tokens.reasoning": "Razonamiento",
|
|
"contextSidebar.tokens.cacheRead": "Lectura de caché",
|
|
"contextSidebar.tokens.cacheWrite": "Escritura de caché",
|
|
"contextSidebar.tokens.cacheHit": "Acierto de caché",
|
|
"contextSidebar.actions.copyJson": "Copiar JSON",
|
|
"contextSidebar.actions.copy": "Copiar",
|
|
"contextSidebar.actions.copied": "Copiado",
|
|
"planView.file.defaultName": "plan",
|
|
"planView.title.default": "Plan",
|
|
"planView.error.saveFailed": "No se pudo guardar",
|
|
"planView.error.loadFailed": "No se pudo cargar este plan",
|
|
"planView.error.previewUnavailable": "Vista previa no disponible",
|
|
"planView.error.switchToEditMode": "Cambia al modo de edición para resolver el problema.",
|
|
"planView.error.writeFailed": "No se pudo escribir",
|
|
"planView.error.writePlanFileFailed": "No se pudo escribir el archivo de plan ({status})",
|
|
"planView.actions.improvePlanAria": "Mejorar plan",
|
|
"planView.actions.improve": "Mejorar",
|
|
"planView.actions.implementPlanAria": "Implementar plan",
|
|
"planView.actions.implement": "Implementar",
|
|
"planView.actions.sendToNewSession": "Enviar a nueva sesión",
|
|
"planView.actions.sendToNewWorktreeSession": "Enviar a nueva sesión de worktree",
|
|
"planView.actions.copyPlanContents": "Copiar contenido del plan",
|
|
"planView.state.loading": "Cargando...",
|
|
"diffView.binary.unavailable": "El contenido de este archivo no puede visualizarse.",
|
|
"diffView.change.untracked": "Archivo no rastreado",
|
|
"diffView.change.new": "Archivo nuevo",
|
|
"diffView.change.deleted": "Archivo eliminado",
|
|
"diffView.change.renamed": "Archivo renombrado",
|
|
"diffView.change.copied": "Archivo copiado",
|
|
"diffView.change.modified": "Archivo modificado",
|
|
"diffView.selector.selectFile": "Seleccionar archivo",
|
|
"diffView.image.original": "Original",
|
|
"diffView.image.modified": "Modificado",
|
|
"diffView.image.new": "Nuevo",
|
|
"diffView.image.originalAlt": "Original: {path}",
|
|
"diffView.image.modifiedAlt": "Modificado: {path}",
|
|
"diffView.section.files": "Archivos",
|
|
"diffView.state.selectSessionDirectory": "Selecciona un directorio de sesión para ver diferencias",
|
|
"diffView.state.loadingRepositoryStatus": "Cargando estado del repositorio...",
|
|
"diffView.state.notGitRepository": "No es un repositorio Git. Usa la pestaña Git para inicializar o cambiar de directorio.",
|
|
"diffView.state.cleanWorkingTree": "Worktree limpio, no hay cambios para mostrar",
|
|
"diffView.state.noLastTurnChanges": "No hay cambios del último turno para mostrar",
|
|
"diffView.state.failedToLoadDiff": "No se pudo cargar la diferencia",
|
|
"diffView.state.loadingDiff": "Cargando diff...",
|
|
"diffView.state.loadingChanges": "Cargando cambios...",
|
|
"diffView.state.largeDiff": "Diff grande ({count} líneas modificadas)",
|
|
"diffView.state.largeDiffDescription": "El renderizado puede ser lento. Aun así puedes ver el diff con el botón de abajo.",
|
|
"diffView.summary.changedFilesSingle": "{count} archivo modificado",
|
|
"diffView.summary.changedFilesPlural": "{count} archivos modificados",
|
|
"diffView.scope.changed": "Cambiados",
|
|
"diffView.scope.staged": "Staged",
|
|
"diffView.scope.lastTurn": "Último turno",
|
|
"diffView.scope.branch": "Rama",
|
|
"diffView.branch.resolvingBase": "Detectando rama base...",
|
|
"diffView.branch.noBaseTitle": "Sin rama base",
|
|
"diffView.branch.noBaseDescription": "Git no tiene registro de dónde surgió esta rama. Elige una rama base para comparar.",
|
|
"diffView.branch.loadError": "No se pudieron cargar los cambios de la rama",
|
|
"diffView.branch.loadingFiles": "Cargando cambios de la rama...",
|
|
"diffView.branch.empty": "No hay cambios en esta rama respecto a {base}",
|
|
"diffView.scope.selectorAria": "Seleccionar modo de cambios",
|
|
"diffView.actions.retry": "Volver a intentar",
|
|
"diffView.actions.renderAnyway": "Renderizar de todos modos",
|
|
"diffView.actions.expandAll": "Expandir todo",
|
|
"diffView.actions.collapseAll": "Contraer todo",
|
|
"diffView.actions.loadFullFiles": "Cargar archivos completos",
|
|
"diffView.actions.disableFullFiles": "No cargar archivos completos",
|
|
"diffView.actions.disableLineWrap": "Desactivar ajuste de línea",
|
|
"diffView.actions.enableLineWrap": "Activar ajuste de línea",
|
|
"diffView.actions.openFileInEditorAtChange": "Abrir este archivo en el editor en el cambio",
|
|
"diffView.actions.openFileAtFirstChangedLine": "Abrir este archivo en la primera línea modificada",
|
|
'diffView.actions.review': 'Revisar',
|
|
'diffView.actions.reviewAria': 'Revisar cambios',
|
|
'diffView.reviewDialog.title': 'Revisar cambios',
|
|
'diffView.reviewDialog.description': 'Inicia una sesión de revisión separada para los cambios actuales.',
|
|
'diffView.reviewDialog.generateHandoff': 'Generar handoff',
|
|
'diffView.reviewDialog.autoReview': 'Ejecutar ciclo de revisión automática',
|
|
'diffView.reviewDialog.info': 'Este flujo funciona mejor si se inicia desde la sesión donde se implementaron los cambios.',
|
|
'diffView.reviewDialog.actions.cancel': 'Cancelar',
|
|
'diffView.reviewDialog.actions.start': 'Revisar',
|
|
'diffView.reviewDialog.actions.starting': 'Iniciando...',
|
|
'diffView.reviewDialog.toast.noSessionDirectory': 'El directorio de la sesión no está disponible',
|
|
'diffView.reviewDialog.toast.startFailed': 'No se pudo iniciar el flujo de revisión',
|
|
'chat.dictation.start': 'Iniciar dictado',
|
|
'chat.dictation.overlayAria': 'Dictado',
|
|
'chat.dictation.downloadingModel': 'Descargando el modelo de voz...',
|
|
'chat.dictation.downloadingModelProgress': 'Descargando el modelo de voz... {percent}%',
|
|
'chat.dictation.listening': 'Escuchando...',
|
|
'chat.dictation.processing': 'Transcribiendo...',
|
|
'chat.dictation.failed': 'La transcripción falló',
|
|
'chat.dictation.cancel': 'Descartar dictado',
|
|
'chat.dictation.insert': 'Insertar transcripción',
|
|
'chat.dictation.insertAndSend': 'Insertar y enviar',
|
|
'chat.dictation.retry': 'Reintentar transcripción',
|
|
'chat.dictation.discard': 'Descartar grabación',
|
|
'chat.history.loadOlder': 'Cargar mensajes anteriores',
|
|
"chat.appLink.confirm.title": "¿Abrir este enlace en otra aplicación?",
|
|
"chat.appLink.confirm.description": "Este enlace del chat usa el protocolo {scheme} y se abrirá en otra aplicación.",
|
|
"chat.appLink.confirm.descriptionPlain": "Este enlace del chat se abrirá en otra aplicación.",
|
|
"chat.appLink.confirm.cancel": "Cancelar",
|
|
"chat.appLink.confirm.open": "Abrir una vez",
|
|
"chat.appLink.confirm.trustAndOpen": "Confiar y abrir",
|
|
'chat.autoReview.title': 'El ciclo de revisión de código está en curso',
|
|
'chat.autoReview.status.waitingForReviewer': 'Esperando al revisor',
|
|
'chat.autoReview.status.waitingForImplementer': 'Esperando al implementador',
|
|
'chat.autoReview.reviewSessionLabel': 'Sesión de revisión',
|
|
'chat.autoReview.actions.open': 'Abrir',
|
|
'chat.autoReview.actions.stop': 'Detener',
|
|
'chat.draftDirtyNotice.tooltip': 'Tienes cambios sin confirmar en esta rama.\nUna nueva sesión podría entrar en conflicto con ellos. Quizás quieras confirmarlos primero o usar otro worktree.',
|
|
'chat.draftDirtyNotice.indicatorAria': 'Cambios sin confirmar en este directorio',
|
|
"diffView.hunk.label": "Fragmentos",
|
|
"diffView.hunk.stage": "Preparar",
|
|
"diffView.hunk.unstage": "Quitar",
|
|
"diffView.hunk.discard": "Descartar",
|
|
"diffView.hunk.stageTitle": "Preparar fragmento {index}",
|
|
"diffView.hunk.unstageTitle": "Quitar fragmento {index} de la preparación",
|
|
"diffView.hunk.discardTitle": "Descartar fragmento {index}",
|
|
"diffView.hunk.unavailable": "Este fragmento ya no está disponible. Actualice el diff e inténtelo de nuevo.",
|
|
"diffView.hunk.unsupported": "Preparar fragmentos individuales no es compatible en este entorno.",
|
|
"rightSidebar.contextNotesTodo.plan.defaultTitle": "Plan",
|
|
"rightSidebar.contextNotesTodo.empty.selectProject": "Selecciona un proyecto para añadir notas y tareas pendientes.",
|
|
"rightSidebar.contextNotesTodo.notes.placeholder": "Captura contexto, recordatorios o enlaces",
|
|
"rightSidebar.contextNotesTodo.notes.addAria": "Añadir nota",
|
|
"rightSidebar.contextNotesTodo.notes.empty": "Aún no hay notas. Guarda contexto, recordatorios o enlaces.",
|
|
"rightSidebar.contextNotesTodo.notes.actions.expand": "Expandir nota",
|
|
"rightSidebar.contextNotesTodo.notes.actions.collapse": "Contraer nota",
|
|
"rightSidebar.contextNotesTodo.notes.actions.delete": "Eliminar nota",
|
|
"rightSidebar.contextNotesTodo.notes.actions.pin": "Fijar al contexto del agente",
|
|
"rightSidebar.contextNotesTodo.notes.actions.unpin": "Quitar del contexto del agente",
|
|
"rightSidebar.contextNotesTodo.notes.source.selection": "Del chat",
|
|
"rightSidebar.contextNotesTodo.notes.source.agent": "Del agente",
|
|
"rightSidebar.contextNotesTodo.search.placeholder": "Buscar",
|
|
"rightSidebar.contextNotesTodo.search.clear": "Borrar búsqueda",
|
|
"rightSidebar.contextNotesTodo.search.noResults": "Nada coincide con \"{query}\".",
|
|
"rightSidebar.contextNotesTodo.toast.deleteNoteFailed": "No se pudo eliminar la nota",
|
|
"rightSidebar.contextNotesTodo.toast.createNoteFailed": "No se pudo crear la nota",
|
|
"rightSidebar.contextNotesTodo.tabs.notes": "Notas",
|
|
"rightSidebar.contextNotesTodo.tabs.todos": "Tareas",
|
|
"rightSidebar.contextNotesTodo.tabs.plans": "Planes",
|
|
"rightSidebar.contextNotesTodo.plans.actions.back": "Volver a los planes",
|
|
"rightSidebar.contextNotesTodo.tabs.memory": "Memoria",
|
|
"rightSidebar.contextNotesTodo.sections.label": "Secciones del contexto del proyecto",
|
|
"rightSidebar.contextNotesTodo.sections.resize": "Redimensionar la barra de secciones",
|
|
"rightSidebar.contextNotesTodo.memory.scope.project": "Proyecto",
|
|
"rightSidebar.contextNotesTodo.memory.scope.label": "Ámbito de la memoria",
|
|
"rightSidebar.contextNotesTodo.memory.scope.global": "Sobre ti",
|
|
"rightSidebar.contextNotesTodo.memory.type.fact": "hecho",
|
|
"rightSidebar.contextNotesTodo.memory.badge.new": "nuevo",
|
|
"rightSidebar.contextNotesTodo.memory.flagged": "Retenido del agente: parece una instrucción",
|
|
"rightSidebar.contextNotesTodo.memory.badge.changed": "cambiado",
|
|
"rightSidebar.contextNotesTodo.memory.type.preference": "preferencia",
|
|
"rightSidebar.contextNotesTodo.memory.type.reference": "referencia",
|
|
"rightSidebar.contextNotesTodo.memory.actions.delete": "Olvidar esta memoria",
|
|
"rightSidebar.contextNotesTodo.memory.actions.editTitle": "Título de la memoria",
|
|
"rightSidebar.contextNotesTodo.memory.actions.editBody": "Texto de la memoria",
|
|
"rightSidebar.contextNotesTodo.memory.toast.saveFailed": "No se pudo guardar la memoria",
|
|
"rightSidebar.contextNotesTodo.memory.toast.deleteFailed": "No se pudo olvidar la memoria",
|
|
"rightSidebar.contextNotesTodo.memory.empty.nothing": "El agente aún no ha guardado nada aquí.",
|
|
"rightSidebar.contextNotesTodo.memory.empty.noMatches": "Ninguna memoria guardada coincide con tu búsqueda.",
|
|
"rightSidebar.contextNotesTodo.memory.empty.noProject": "Abre un proyecto para ver qué recuerda el agente sobre él.",
|
|
"rightSidebar.contextNotesTodo.memory.empty.unavailable": "No se pudo cargar la memoria guardada. No se ha perdido nada: inténtalo de nuevo.",
|
|
"rightSidebar.contextNotesTodo.todo.clearCompleted": "Limpiar completadas",
|
|
"rightSidebar.contextNotesTodo.todo.inputPlaceholder": "Añade una tarea pendiente",
|
|
"rightSidebar.contextNotesTodo.todo.addAria": "Añadir tarea pendiente",
|
|
"rightSidebar.contextNotesTodo.todo.empty": "No hay tareas pendientes aún. Añade una pequeña lista de verificación para este proyecto.",
|
|
"rightSidebar.contextNotesTodo.todo.actions.markComplete": "Marcar \"{text}\" como completada",
|
|
"rightSidebar.contextNotesTodo.todo.actions.collapse": "Colapsar tarea pendiente \"{text}\"",
|
|
"rightSidebar.contextNotesTodo.todo.actions.expand": "Expandir tarea pendiente \"{text}\"",
|
|
"rightSidebar.contextNotesTodo.todo.actions.delete": "Eliminar \"{text}\"",
|
|
"rightSidebar.contextNotesTodo.todo.actions.send": "Enviar \"{text}\"",
|
|
"rightSidebar.contextNotesTodo.todo.actions.reorder": "Reordenar \"{text}\"",
|
|
"rightSidebar.contextNotesTodo.todo.sendMenu.currentSession": "Enviar a la sesión actual",
|
|
"rightSidebar.contextNotesTodo.todo.sendMenu.newSession": "Enviar a una nueva sesión",
|
|
"rightSidebar.contextNotesTodo.todo.sendMenu.newWorktreeSession": "Enviar a una nueva sesión de worktree",
|
|
"rightSidebar.contextNotesTodo.plans.importFromFile": "Importar plan desde archivo",
|
|
"rightSidebar.contextNotesTodo.plans.empty": "Aún no hay plans guardados.",
|
|
"rightSidebar.contextNotesTodo.plans.deletePlan": "Eliminar plan",
|
|
"rightSidebar.contextNotesTodo.plans.deletePlanWithTitle": "Eliminar plan \"{title}\"",
|
|
"rightSidebar.contextNotesTodo.sendDialog.title.newSession": "Enviar a una nueva sesión",
|
|
"rightSidebar.contextNotesTodo.sendDialog.title.newWorktree": "Enviar a una nueva sesión de worktree",
|
|
"rightSidebar.contextNotesTodo.sendDialog.variant.default": "Predeterminado",
|
|
"rightSidebar.contextNotesTodo.sendDialog.actions.cancel": "Cancelar",
|
|
"rightSidebar.contextNotesTodo.sendDialog.actions.send": "Enviar",
|
|
"rightSidebar.contextNotesTodo.sendDialog.actions.sending": "Enviando",
|
|
"rightSidebar.contextNotesTodo.toast.saveNotesFailed": "No se pudieron guardar las notas del proyecto",
|
|
"rightSidebar.contextNotesTodo.toast.loadNotesFailed": "No se pudieron cargar las notas del proyecto",
|
|
"rightSidebar.contextNotesTodo.toast.noActiveSession": "No hay ninguna sesión activa seleccionada",
|
|
"rightSidebar.contextNotesTodo.toast.sentToCurrentSession": "Tarea enviada a la sesión actual",
|
|
"rightSidebar.contextNotesTodo.toast.worktreeRequiresGitRepo": "Las acciones de worktree solo están disponibles para repositorios Git",
|
|
"rightSidebar.contextNotesTodo.toast.createSessionFailed": "No se pudo crear la sesión",
|
|
"rightSidebar.contextNotesTodo.toast.sentToNewSession": "Tarea enviada a una nueva sesión",
|
|
"rightSidebar.contextNotesTodo.toast.sentToNewWorktreeSession": "Tarea enviada a una nueva sesión de worktree",
|
|
"rightSidebar.contextNotesTodo.toast.sendTodoFailed": "No se pudo enviar la tarea",
|
|
"rightSidebar.contextNotesTodo.toast.updatePlanFailed": "No se pudo actualizar el plan",
|
|
"rightSidebar.contextNotesTodo.toast.deletePlanFailed": "No se pudo eliminar el plan",
|
|
"rightSidebar.contextNotesTodo.toast.planFileEmpty": "El archivo del plan está vacío",
|
|
"rightSidebar.contextNotesTodo.toast.importPlanFailed": "No se pudo importar el plan",
|
|
"rightSidebar.contextNotesTodo.toast.planImported": "Plan importado",
|
|
"rightSidebar.contextNotesTodo.toast.readPlanFileFailed": "No se pudo leer el archivo del plan",
|
|
"inlineComment.range.lines": "Líneas {start}-{end}",
|
|
"inlineComment.input.placeholder": "Añadir un comentario... ({shortcut} para guardar)",
|
|
"inlineComment.input.placeholderShort": "Añadir un comentario...",
|
|
"inlineComment.actions.cancel": "Cancelar",
|
|
"inlineComment.actions.save": "Guardar",
|
|
"inlineComment.actions.comment": "Comentar",
|
|
"inlineComment.actions.showLess": "Mostrar menos",
|
|
"inlineComment.actions.showMore": "Mostrar más",
|
|
"inlineComment.actions.editComment": "Editar comentario",
|
|
"inlineComment.actions.deleteComment": "Eliminar comentario",
|
|
"inlineComment.toast.selectSessionToSave": "Selecciona una sesión para guardar el comentario",
|
|
"header.github.connectedWithLogin": "GitHub: {login}",
|
|
"header.github.connected": "Conectado a GitHub",
|
|
"header.github.avatarWithLogin": "Avatar de {login}",
|
|
"header.github.avatar": "Avatar de GitHub",
|
|
"header.github.accountsTitle": "Cuentas de GitHub",
|
|
"header.github.accountSource.oauth": "OAuth",
|
|
"header.github.accountSource.cli": "CLI",
|
|
"header.services.openWithCurrent": "Abrir instancia, uso y MCP (actual: {current})",
|
|
"header.services.open": "Abrir servicios, uso y MCP",
|
|
"header.services.title": "Servicios",
|
|
"header.services.viewAria": "Ver servicios",
|
|
"header.services.closeAria": "Cerrar servicios",
|
|
"header.services.rateLimits": "Límites de tasa",
|
|
"header.services.refreshRateLimitsAria": "Actualizar límites de tasa",
|
|
"header.services.noRateLimits": "No hay límites de tasa disponibles.",
|
|
"header.services.noRateLimitsReported": "No se reportaron límites de tasa.",
|
|
"header.services.remoteUpdate.title": "Actualización de instancia remota",
|
|
"header.services.remoteUpdate.checking": "Buscando actualizaciones...",
|
|
"header.services.remoteUpdate.upToDate": "Esta instancia está actualizada.",
|
|
"header.services.remoteUpdate.available": "La versión {version} está disponible para esta instancia.",
|
|
"header.services.remoteUpdate.error": "No se pudieron comprobar las actualizaciones de la instancia remota",
|
|
"header.services.remoteUpdate.actions.open": "Actualizar",
|
|
"header.services.used": "Usado",
|
|
"header.services.remaining": "Restante",
|
|
"header.services.modelFamily.other": "Otro",
|
|
"header.actions.openPlanAria": "Abrir plan",
|
|
"header.actions.toggleChangesPanel": "Panel de cambios",
|
|
"header.actions.toggleChangesPanelAria": "Alternar panel de cambios",
|
|
"header.actions.planWithShortcut": "Plan ({shortcut})",
|
|
"header.actions.terminalPanelWithShortcut": "Panel de terminal ({shortcut})",
|
|
"chat.recap.aria": "Resumen de la sesión",
|
|
"chat.recap.label": "Resumen:",
|
|
"chat.sessionError.title": "OpenCode detuvo esta respuesta",
|
|
"chat.sessionError.noDetails": "OpenCode no informó detalles. Abre el informe de estado (Ctrl/Cmd+Mayús+L) para ver los errores recientes.",
|
|
"chat.sessionError.noReply": "OpenCode no comenzó una respuesta a este mensaje.",
|
|
"chat.goal.dialog.titleCreate": "Definir objetivo de sesión",
|
|
"chat.goal.dialog.titleManage": "Objetivo de sesión",
|
|
"chat.goal.dialog.objectiveLabel": "Objetivo",
|
|
"chat.goal.dialog.objectivePlaceholder": "Describe el estado final que el agente debe alcanzar y verificar…",
|
|
"chat.goal.dialog.budgetLabel": "Presupuesto de tokens",
|
|
"chat.goal.dialog.evaluationModelLabel": "Modelo de evaluación",
|
|
"chat.goal.status.active": "Activo",
|
|
"chat.goal.status.evaluating": "Evaluando…",
|
|
"chat.goal.status.paused": "En pausa",
|
|
"chat.goal.status.blocked": "Bloqueado",
|
|
"chat.goal.status.budgetLimited": "Presupuesto alcanzado",
|
|
"chat.goal.status.complete": "Completado",
|
|
"chat.goal.usage.tokens": "{used} tokens",
|
|
"chat.goal.usage.tokensWithBudget": "{used}/{budget} tokens",
|
|
"chat.goal.usage.turns": "{turns} continuaciones",
|
|
"chat.goal.action.pause": "Pausar",
|
|
"chat.goal.action.resume": "Reanudar",
|
|
"chat.goal.action.markComplete": "Marcar como completado",
|
|
"chat.goal.action.clear": "Eliminar objetivo",
|
|
"chat.goal.action.cancel": "Cancelar",
|
|
"chat.goal.action.save": "Guardar objetivo",
|
|
"chat.goal.action.start": "Iniciar objetivo",
|
|
"chat.goal.toast.actionFailed": "No se pudo actualizar el objetivo",
|
|
"chat.goal.toast.distillFallback": "El objetivo superó el límite y no se pudo destilar — el auditor usa una versión recortada",
|
|
"chat.goal.row.aria": "Objetivo de sesión — abrir detalles",
|
|
"chat.goal.button.createAria": "Definir un objetivo de sesión",
|
|
"chat.goal.button.manageAria": "Gestionar el objetivo de sesión",
|
|
"chat.goal.button.armAria": "Iniciar un objetivo con el próximo mensaje",
|
|
"chat.goal.counter.aria": "Límite de longitud del objetivo",
|
|
"chat.goal.button.disarmAria": "Objetivo armado — toca para desactivarlo",
|
|
"chat.goal.button.cancelAria": "Objetivo en curso — toca para cancelarlo",
|
|
"chat.goal.cancelDialog.title": "¿Cancelar este objetivo?",
|
|
"chat.goal.cancelDialog.description": "El agente dejará de trabajar automáticamente hacia este objetivo.",
|
|
"chat.goal.cancelDialog.keep": "Mantener objetivo",
|
|
"chat.goal.cancelDialog.confirm": "Cancelar objetivo",
|
|
"chat.suggestion.applyAria": "Usar mensaje sugerido",
|
|
"chat.suggestion.dismissAria": "Descartar sugerencia",
|
|
"header.actions.toggleTerminalPanelAria": "Mostrar u ocultar panel de terminal",
|
|
"terminalView.stream.processExitedMessage": "\r\n[Proceso terminado{exitCodeSegment}{signalSegment}]\r\n",
|
|
"terminalView.stream.processExitedWithCode": " con código {exitCode}",
|
|
"terminalView.stream.processExitedWithSignal": " (señal {signal})",
|
|
"terminalView.error.sessionEnded": "Sesión de terminal terminada",
|
|
"terminalView.error.connectionFailed": "Error de conexión: {message}",
|
|
"terminalView.error.startSessionFailed": "No se pudo iniciar la sesión de terminal",
|
|
"terminalView.error.restartFailed": "No se pudo reiniciar la terminal",
|
|
"terminalView.error.sendInputFailed": "No se pudo enviar entrada",
|
|
"terminalView.empty.noWorkingDirectory": "No hay directorio de trabajo disponible para la terminal.",
|
|
"terminalView.empty.selectSession": "Selecciona una sesión para abrir la terminal.",
|
|
"terminalView.empty.noWorkingDirectoryForSession": "No hay directorio de trabajo disponible para esta sesión.",
|
|
"terminalView.actions.retry": "Volver a intentar",
|
|
"terminalView.actions.hardRestart": "Reinicio forzado",
|
|
"terminalView.actions.hardRestartTitle": "Forzar el cierre y crear una sesión nueva",
|
|
"terminalView.quickKeys.escape": "Esc",
|
|
"terminalView.quickKeys.tabAria": "Tab",
|
|
"terminalView.quickKeys.controlLabel": "Ctrl",
|
|
"terminalView.quickKeys.controlModifierAria": "Modificador de control",
|
|
"terminalView.quickKeys.altLabel": "Alt",
|
|
"terminalView.quickKeys.altModifierAria": "Modificador Alt",
|
|
"terminalView.quickKeys.commandModifierAria": "Modificador de comando",
|
|
"terminalView.quickKeys.arrowUpAria": "Flecha arriba",
|
|
"terminalView.quickKeys.arrowLeftAria": "Flecha izquierda",
|
|
"terminalView.quickKeys.arrowDownAria": "Flecha abajo",
|
|
"terminalView.quickKeys.arrowRightAria": "Flecha derecha",
|
|
"terminalView.quickKeys.enterAria": "Enter",
|
|
"terminalView.tabs.closeTabTitle": "Cerrar pestaña",
|
|
"terminalView.tabs.newTabTitle": "Nueva pestaña",
|
|
"terminalView.viewport.inputAria": "Entrada de terminal",
|
|
"terminalView.viewport.scrollbarAria": "Historial del terminal",
|
|
"directoryExplorerDialog.title": "Añadir directorio de proyecto",
|
|
"directoryExplorerDialog.description": "Elige una carpeta para añadir como proyecto.",
|
|
"directoryExplorerDialog.toggle.showHidden": "Mostrar ocultos",
|
|
"directoryExplorerDialog.pathInput.placeholder": "Escribe la ruta o selecciona desde el árbol...",
|
|
"directoryExplorerDialog.actions.openingFinder": "Abriendo...",
|
|
"directoryExplorerDialog.actions.openInFinder": "Abrir en Finder",
|
|
"directoryExplorerDialog.actions.adding": "Añadiendo...",
|
|
"directoryExplorerDialog.actions.addProject": "Añadir proyecto",
|
|
"directoryExplorerDialog.actions.addSelected": "Añadir seleccionados",
|
|
"directoryExplorerDialog.actions.addLocalProject": "Añadir proyecto local",
|
|
"directoryExplorerDialog.actions.cloneRepository": "Clonar repositorio",
|
|
"directoryExplorerDialog.actions.cloneAndAdd": "Clonar y añadir",
|
|
"directoryExplorerDialog.actions.cloning": "Clonando...",
|
|
"directoryExplorerDialog.actions.createAndAdd": "Crear y añadir",
|
|
"directoryExplorerDialog.actions.alreadyAdded": "Ya añadido",
|
|
"directoryExplorerDialog.clone.remoteUrlPlaceholder": "URL del repositorio (HTTPS o SSH)",
|
|
"directoryExplorerDialog.browse.directories": "Directorios",
|
|
"directoryExplorerDialog.browse.loading": "Cargando directorios...",
|
|
"directoryExplorerDialog.browse.empty": "No hay directorios coincidentes.",
|
|
"directoryExplorerDialog.browse.permissionDenied": "OpenChamber necesita acceso a esta carpeta.",
|
|
"directoryExplorerDialog.browse.loadFailed": "No se pudo cargar esta carpeta.",
|
|
"directoryExplorerDialog.browse.grantAccess": "Permitir acceso",
|
|
"directoryExplorerDialog.browse.retry": "Reintentar",
|
|
"directoryExplorerDialog.browse.parentDirectory": "Directorio padre",
|
|
"directoryExplorerDialog.browse.addedBadge": "Añadido",
|
|
"directoryExplorerDialog.browse.quickAdd": "Añadir",
|
|
"directoryExplorerDialog.browse.selectForAdd": "Seleccionar para añadir",
|
|
"directoryExplorerDialog.footer.navigate": "Navegar",
|
|
"directoryExplorerDialog.footer.select": "Seleccionar",
|
|
"directoryExplorerDialog.footer.add": "Añadir",
|
|
"directoryExplorerDialog.shortcut.enter": "Enter",
|
|
"directoryExplorerDialog.toast.unableToAccessDirectory": "No se puede acceder al directorio",
|
|
"directoryExplorerDialog.toast.desktopDeniedAccess": "El escritorio denegó el acceso al directorio.",
|
|
"directoryExplorerDialog.toast.failedToOpenDirectory": "No se pudo abrir el directorio",
|
|
"directoryExplorerDialog.toast.desktopCouldNotGrantAccess": "El escritorio no pudo otorgar acceso al archivo.",
|
|
"directoryExplorerDialog.toast.addedProjects": "Se añadieron {count} proyecto(s)",
|
|
"directoryExplorerDialog.toast.failedToAddProject": "No se pudo añadir el proyecto",
|
|
"directoryExplorerDialog.toast.cloneUrlRequired": "Introduce una URL de repositorio antes de clonar.",
|
|
"directoryExplorerDialog.toast.selectValidDirectoryPath": "Por favor selecciona una ruta de directorio válida.",
|
|
"directoryExplorerDialog.toast.failedToSelectDirectory": "No se pudo seleccionar el directorio",
|
|
"directoryExplorerDialog.toast.unknownError": "Ocurrió un error desconocido.",
|
|
"directoryTree.actions.createNewDirectory": "Crear nueva carpeta",
|
|
"directoryTree.actions.pinDirectory": "Fijar carpeta",
|
|
"directoryTree.actions.unpinDirectory": "Desfijar carpeta",
|
|
"directoryTree.actions.createDirectory": "Crear carpeta",
|
|
"directoryTree.actions.cancel": "Cancelar",
|
|
"directoryTree.actions.selectWorkingDirectoryAria": "Seleccionar carpeta de trabajo",
|
|
"directoryTree.state.locatingHomeDirectory": "Buscando la carpeta de inicio...",
|
|
"directoryTree.state.loading": "Cargando...",
|
|
"directoryTree.state.noDirectoriesFound": "No se encontraron directorios",
|
|
"directoryTree.section.pinned": "Fijados",
|
|
"directoryTree.section.browse": "Explorar",
|
|
"aboutDialog.versionLabel": "Versión {version}",
|
|
"aboutDialog.openChamberVersionLabel": "Versión de OpenChamber {version}",
|
|
"aboutDialog.openCodeVersionLabel": "Versión de OpenCode {version}",
|
|
"aboutDialog.actions.copyDiagnostics": "Copiar diagnósticos",
|
|
"aboutDialog.actions.preparingDiagnostics": "Preparando diagnósticos...",
|
|
"aboutDialog.actions.diagnosticsCopied": "Diagnósticos copiados",
|
|
"aboutDialog.diagnosticsDescription": "Incluye el estado de OpenChamber, el estado de OpenCode, directorios y proyectos.",
|
|
"aboutDialog.footerNote": "Hecho con amor para la comunidad",
|
|
"aboutDialog.toast.copyFailed": "No se pudo copiar",
|
|
"aboutDialog.toast.diagnosticsNotReady": "Los diagnósticos aún no están listos. Espera un segundo y vuelve a intentarlo.",
|
|
"aboutDialog.toast.diagnosticsCopied": "Diagnósticos copiados",
|
|
"helpDialog.title": "Atajos de teclado",
|
|
"helpDialog.description": "Usa estos atajos de teclado para navegar por OpenChamber de manera eficiente",
|
|
"helpDialog.section.navigationCommands": "Navegación y comandos",
|
|
"helpDialog.section.sessionManagement": "Gestión de sesiones",
|
|
"helpDialog.section.panels": "Paneles",
|
|
"helpDialog.section.interface": "Interfaz",
|
|
"helpDialog.item.openCommandPalette": "Abrir paleta de comandos",
|
|
"helpDialog.item.showKeyboardShortcuts": "Mostrar atajos de teclado (este diálogo)",
|
|
"helpDialog.item.toggleSessionSidebar": "Mostrar u ocultar barra lateral de sesión",
|
|
"helpDialog.item.addSelectionToChat": "Agregar selección al chat",
|
|
"helpDialog.item.cycleAgent": "Cambiar agente (entrada de chat)",
|
|
"helpDialog.item.openModelSelector": "Abrir selector de modelos",
|
|
"helpDialog.item.navigateModels": "Navegar modelos (en selector)",
|
|
"helpDialog.item.adjustThinkingMode": "Ajustar modo de pensamiento (en selector, cuando esté disponible)",
|
|
"helpDialog.item.cycleThinkingVariant": "Cambiar variante de pensamiento (atajo global)",
|
|
"helpDialog.item.newWindow": "Nueva ventana (solo escritorio)",
|
|
"helpDialog.item.createNewSession": "Crear nueva sesión",
|
|
"helpDialog.item.createNewWorktreeDraft": "Crear nuevo borrador de worktree",
|
|
"helpDialog.item.focusChatInput": "Enfocar entrada de chat",
|
|
"helpDialog.item.togglePromptNavigator": "Mostrar u ocultar navegador de prompts",
|
|
"helpDialog.item.abortActiveRun": "Detener ejecución activa (doble presionar)",
|
|
"helpDialog.item.toggleTerminalDock": "Mostrar u ocultar dock de terminal",
|
|
"helpDialog.item.toggleTerminalExpanded": "Expandir o contraer terminal",
|
|
"helpDialog.item.cycleTheme": "Cambiar tema (Claro → Oscuro → Sistema)",
|
|
"helpDialog.item.switchSessionTab": "Cambiar pestaña de sesión",
|
|
"helpDialog.item.switchContextSurface": "Cambiar superficie del panel de contexto (tecla numérica)",
|
|
"helpDialog.item.toggleServicesMenu": "Mostrar u ocultar menú de servicios",
|
|
"helpDialog.item.openSettings": "Abrir configuración",
|
|
"helpDialog.keyCombiner.or": "o",
|
|
"helpDialog.proTips.title": "Consejos:",
|
|
"helpDialog.proTips.commandPalette": "Usa la paleta de comandos ({shortcut}) para acceder rápidamente a todas las acciones",
|
|
"helpDialog.proTips.recentSessions": "Las cinco sesiones más recientes aparecen en la paleta de comandos",
|
|
"helpDialog.proTips.leaderSequences": "Atajos en dos pasos: pulsa la combinación y luego la segunda tecla; Esc cancela",
|
|
"header.actions.rightSidebarWithShortcut": "Barra lateral derecha ({shortcut})",
|
|
"header.actions.toggleRightSidebarAria": "Mostrar u ocultar barra lateral derecha",
|
|
"header.actions.openAppMenu": "Menú de OpenChamber",
|
|
"header.actions.openAppMenuAria": "Abrir menú de OpenChamber",
|
|
"header.actions.openSessionsWithShortcut": "Abrir sesiones ({shortcut})",
|
|
"header.actions.openSessionsAria": "Abrir sesiones",
|
|
"header.actions.closeSessionsAria": "Cerrar sesiones",
|
|
"header.actions.newSessionAria": "Nueva sesión",
|
|
"header.actions.newSessionWithShortcut": "Nueva sesión ({shortcut})",
|
|
"header.actions.backAria": "Atrás",
|
|
"header.navigation.mainAria": "Navegación principal",
|
|
"header.sessions.title": "Sesiones",
|
|
"header.changes.availableAria": "Cambios disponibles",
|
|
"session.githubIssuePicker.error.noActiveProject": "No hay ningún proyecto activo",
|
|
"session.githubIssuePicker.error.runtimeUnavailable": "API de runtime de GitHub no disponible",
|
|
"session.githubIssuePicker.error.notConnected": "GitHub no está conectado",
|
|
"session.githubIssuePicker.error.repoNotResolvable": "No se pudo resolver el repositorio",
|
|
"session.githubIssuePicker.error.repoMustBeGithub": "El remoto origin debe ser una URL de GitHub",
|
|
"session.githubIssuePicker.error.issueNotFound": "No se encontró el issue",
|
|
"session.githubIssuePicker.error.noModelSelected": "No hay ningún modelo seleccionado",
|
|
"session.githubIssuePicker.toast.loadMoreFailed": "No se pudo cargar más issues",
|
|
"session.githubIssuePicker.toast.loadIssueDetailsFailed": "No se pudieron cargar los detalles del issue",
|
|
"session.githubIssuePicker.toast.sendContextFailed": "No se pudo enviar el contexto del issue",
|
|
"session.githubIssuePicker.toast.sessionCreated": "Sesión creada desde el issue",
|
|
"session.githubIssuePicker.toast.startSessionFailed": "No se pudo iniciar la sesión",
|
|
"session.githubIssuePicker.title.select": "Vincular issue de GitHub",
|
|
"session.githubIssuePicker.title.createSession": "Nueva sesión desde issue de GitHub",
|
|
"session.githubIssuePicker.description.select": "Selecciona un issue para vincularlo a esta sesión.",
|
|
"session.githubIssuePicker.description.createSession": "Inicia una nueva sesión con contexto oculto del issue (título/cuerpo/etiquetas/comentarios).",
|
|
"session.githubIssuePicker.searchPlaceholder": "Buscar usando la sintaxis de búsqueda de código de GitHub",
|
|
"session.githubIssuePicker.empty.noActiveProject": "No hay ningún proyecto activo seleccionado.",
|
|
"session.githubIssuePicker.empty.runtimeUnavailable": "API de runtime de GitHub no disponible.",
|
|
"session.githubIssuePicker.empty.notConnected": "GitHub no está conectado. Conecta tu cuenta de GitHub en configuración.",
|
|
"session.githubIssuePicker.empty.noIssuesFound": "No se encontraron issues",
|
|
"session.githubIssuePicker.empty.noOpenIssuesFound": "No se encontraron issues abiertos",
|
|
"session.githubIssuePicker.loading.issues": "Cargando issues...",
|
|
"session.githubIssuePicker.loading.more": "Cargando...",
|
|
"session.githubIssuePicker.actions.openSettings": "Abrir configuración",
|
|
"session.githubIssuePicker.actions.useIssue": "Usar issue #{number}",
|
|
"session.githubIssuePicker.actions.openInGitHubAria": "Abrir en GitHub",
|
|
"session.githubIssuePicker.actions.loadMore": "Cargar más",
|
|
"session.githubIssuePicker.actions.sectionTitle": "Acciones",
|
|
"session.githubIssuePicker.actions.toggleWorktreeAria": "Activar worktree",
|
|
"session.githubIssuePicker.actions.createInWorktree": "Crear en worktree",
|
|
"session.githubIssuePicker.actions.openRepo": "Abrir repositorio",
|
|
"session.githubIssuePicker.actions.refresh": "Actualizar",
|
|
"session.githubPrPicker.error.noActiveProject": "No hay ningún proyecto activo",
|
|
"session.githubPrPicker.error.runtimeUnavailable": "API de runtime de GitHub no disponible",
|
|
"session.githubPrPicker.error.notConnected": "GitHub no está conectado",
|
|
"session.githubPrPicker.error.prNotFound": "No se encontró la PR",
|
|
"session.githubPrPicker.error.repoNotResolvable": "No se pudo resolver el repositorio",
|
|
"session.githubPrPicker.error.repoMustBeGithub": "El remoto origin debe ser una URL de GitHub",
|
|
"session.githubPrPicker.toast.loadMoreFailed": "No se pudieron cargar más PR",
|
|
"session.githubPrPicker.toast.loadDetailsFailed": "No se pudieron cargar los detalles de la PR",
|
|
"session.githubPrPicker.title": "Vincular PR de GitHub",
|
|
"session.githubPrPicker.description": "Selecciona una PR para adjuntar contexto de revisión a este mensaje.",
|
|
"session.githubPrPicker.searchPlaceholder": "Buscar usando la sintaxis de búsqueda de código de GitHub",
|
|
"session.githubPrPicker.includeDiffAria": "Incluir diff de la PR en el contexto adjunto",
|
|
"session.githubPrPicker.includeDiff": "Incluir diff de la PR",
|
|
"session.githubPrPicker.empty.noActiveProject": "No hay ningún proyecto activo seleccionado.",
|
|
"session.githubPrPicker.empty.runtimeUnavailable": "API de runtime de GitHub no disponible.",
|
|
"session.githubPrPicker.empty.notConnected": "GitHub no está conectado. Conecta tu cuenta de GitHub en configuración.",
|
|
"session.githubPrPicker.empty.noPullRequestsFound": "No se encontraron PR",
|
|
"session.githubPrPicker.empty.noOpenPullRequestsFound": "No se encontraron PR abiertas",
|
|
"session.githubPrPicker.loading.pullRequests": "Cargando PR...",
|
|
"session.githubPrPicker.loading.more": "Cargando...",
|
|
"session.githubPrPicker.actions.openSettings": "Abrir configuración",
|
|
"session.githubPrPicker.actions.usePullRequest": "Usar PR #{number}",
|
|
"session.githubPrPicker.actions.openInGitHubAria": "Abrir en GitHub",
|
|
"session.githubPrPicker.actions.loadMore": "Cargar más",
|
|
"session.newWorktree.title": "Nuevo worktree",
|
|
"session.newWorktree.mode.newBranch": "Nueva rama",
|
|
"session.newWorktree.mode.existingBranch": "Rama existente",
|
|
"session.newWorktree.selectBranch": "Seleccionar rama",
|
|
"session.newWorktree.chooseBranch": "Elige una rama...",
|
|
"session.newWorktree.fetchBranches": "Obtener ramas",
|
|
"session.newWorktree.searchBranches": "Buscar ramas...",
|
|
"session.newWorktree.loadingBranches": "Cargando ramas...",
|
|
"session.newWorktree.noBranchesFound": "No se encontraron ramas",
|
|
"session.newWorktree.matchingBranches": "Ramas coincidentes",
|
|
"session.newWorktree.noMatchingBranches": "No hay ramas coincidentes",
|
|
"session.newWorktree.localBranches": "Ramas locales",
|
|
"session.newWorktree.remoteBranches": "Ramas remotas",
|
|
"session.newWorktree.branchName": "Nombre de la rama",
|
|
"session.newWorktree.branchNamePlaceholder": "feature/my-awesome-feature",
|
|
"session.newWorktree.actions.change": "Cambiar",
|
|
"session.newWorktree.actions.startFromGitHubIssuePr": "Iniciar desde Issue/PR de GitHub",
|
|
"session.newWorktree.usingPrBranch": "Usando rama de la PR: {branch}",
|
|
"session.newWorktree.fromIssue": "De issue #{number}: {title}",
|
|
"session.newWorktree.worktreeDirectory": "Directorio del worktree",
|
|
"session.newWorktree.worktreeDirectoryPlaceholder": "my-worktree-directory",
|
|
"session.newWorktree.resetToMatchBranchName": "Restablecer para coincidir con el nombre de la rama",
|
|
"session.newWorktree.sourceBranch": "Rama de origen",
|
|
"session.newWorktree.selectSourceBranch": "Seleccionar rama de origen",
|
|
"session.newWorktree.selectSourceBranchPlaceholder": "Seleccionar rama de origen...",
|
|
"session.newWorktree.newBranchFromSource": "Se creará una nueva rama desde {source}",
|
|
"session.newWorktree.issueNumber": "Issue #{number}",
|
|
"session.newWorktree.prNumber": "PR #{number}",
|
|
"session.newWorktree.includeDiffBadge": "+diff",
|
|
"session.newWorktree.newSessionTitle": "Nueva sesión",
|
|
"session.newWorktree.fromSource": "desde {source}",
|
|
"session.newWorktree.actions.cancel": "Cancelar",
|
|
"session.newWorktree.actions.creating": "Creando...",
|
|
"session.newWorktree.actions.createWorktree": "Crear worktree",
|
|
"session.newWorktree.actions.reset": "Restablecer",
|
|
"session.newWorktree.error.noModelSelected": "No hay ningún modelo seleccionado",
|
|
"session.newWorktree.error.noActiveProject": "No hay ningún proyecto activo",
|
|
"session.newWorktree.error.branchNameRequired": "Se requiere el nombre de la rama",
|
|
"session.newWorktree.error.worktreeDirectoryRequired": "Se requiere el directorio del worktree",
|
|
"session.newWorktree.error.sendGitHubContextFailed": "No se pudo enviar el contexto de GitHub",
|
|
"session.newWorktree.error.createWorktreeFailed": "No se pudo crear el worktree",
|
|
"session.newWorktree.toast.sessionFromIssue": "Sesión creada desde issue",
|
|
"session.newWorktree.toast.sessionFromPr": "Sesión creada desde PR",
|
|
"session.newWorktree.toast.worktreeCreated": "Worktree creado",
|
|
"session.newWorktree.toast.worktreeCreatedDescription": "{target} - configurando en segundo plano",
|
|
"session.newWorktree.toast.fetchSourceFailed": "No se pudo obtener del remoto; se creó a partir del estado local",
|
|
"session.githubIntegration.title": "Seleccionar desde GitHub",
|
|
"session.githubIntegration.tabs.issues": "Issues",
|
|
"session.githubIntegration.tabs.pullRequests": "PR",
|
|
"session.githubIntegration.connect.title": "Conectar a GitHub",
|
|
"session.githubIntegration.connect.description": "Vincula issues o PR para rellenar automáticamente los detalles del worktree",
|
|
"session.githubIntegration.connect.action": "Conectar a GitHub",
|
|
"session.githubIntegration.search.issuesPlaceholder": "Buscar usando la sintaxis de búsqueda de código de GitHub",
|
|
"session.githubIntegration.search.prsPlaceholder": "Buscar usando la sintaxis de búsqueda de código de GitHub",
|
|
"session.githubIntegration.empty.noIssuesFound": "No se encontraron issues",
|
|
"session.githubIntegration.empty.noPullRequestsFound": "No se encontraron PR",
|
|
"session.githubIntegration.actions.loadMore": "Cargar más",
|
|
"session.githubIntegration.actions.cancel": "Cancelar",
|
|
"session.githubIntegration.actions.select": "Seleccionar",
|
|
"session.githubIntegration.selected.issueNumber": "Issue #{number}",
|
|
"session.githubIntegration.selected.prNumber": "PR #{number}",
|
|
"session.githubIntegration.includeDiffAria": "Incluir diff del PR en el contexto de la sesión",
|
|
"session.githubIntegration.includeDiff": "Incluir diff del PR",
|
|
"session.githubIntegration.error.notConnected": "GitHub no está conectado",
|
|
"session.githubIntegration.error.loadDataFailed": "No se pudieron cargar los datos",
|
|
"session.githubIntegration.validation.branchAlreadyCheckedOut": "La rama ya está en uso en un worktree",
|
|
"session.githubIntegration.validation.branchAlreadyExists": "La rama ya existe localmente",
|
|
"session.githubIntegration.validation.failed": "No se pudo validar",
|
|
"chat.fileAttachment.toast.attachFailed": "No se pudo adjuntar el archivo",
|
|
"chat.fileAttachment.toast.someFilesSkipped": "Algunos archivos se omitieron:\n{summary}",
|
|
"chat.fileAttachment.toast.vscodePickFailed": "No se pudieron seleccionar archivos en VS Code",
|
|
"chat.fileAttachment.fileFallback": "archivo",
|
|
"chat.fileAttachment.skippedFallback": "omitido",
|
|
"chat.fileAttachment.actions.attachAria": "Adjuntar archivos",
|
|
"chat.fileAttachment.actions.attach": "Adjuntar archivos",
|
|
"chat.fileAttachment.actions.removeNamed": "Eliminar {name}",
|
|
"chat.fileAttachment.actions.removeImage": "Eliminar imagen",
|
|
"chat.fileAttachment.activeEditor.addFile": "Agregar archivo:{name} al contexto",
|
|
"chat.fileAttachment.activeEditor.pinSelection": "Anclar selección al contexto",
|
|
"chat.fileAttachment.activeEditor.remove": "Quitar del contexto",
|
|
"chat.fileAttachment.openInDiagram": "Abrir en vista de diagrama",
|
|
"chat.pendingChanges.fileCountSingle": "{count} archivo",
|
|
"chat.pendingChanges.fileCountPlural": "{count} archivos",
|
|
"chat.pendingChanges.changedInWorkspace": "modificado en el espacio de trabajo",
|
|
"chat.changedFiles.title": "Archivos modificados",
|
|
"chat.changedFiles.actions.openFileTitle": "Abrir {path}",
|
|
"chat.emptyState.opencodeUnreachable": "OpenCode no es accesible",
|
|
"chat.emptyState.startNewChat": "Iniciar una nueva conversación",
|
|
"chat.emptyState.draftTitle": "What are we working on?",
|
|
"chat.emptyState.draftTitleWithProject": "What are we working on in {project}?",
|
|
"chat.draftPresets.explore.label": "Explore the codebase",
|
|
"chat.draftPresets.catchup.label": "Catch me up",
|
|
"chat.draftPresets.weigh.label": "Weigh my options",
|
|
"chat.draftPresets.plan.label": "Start feature planning",
|
|
"chat.draftPresets.craftGoal.label": "Crear un Goal",
|
|
"chat.draftPresets.scheduleTask.label": "Programar una tarea",
|
|
"chat.draftPresets.debug.label": "Debug an issue",
|
|
"chat.draftPresets.review.label": "Review my changes",
|
|
"chat.draftStarters.add": "Add a starter",
|
|
"chat.draftStarters.searchPlaceholder": "Search commands and skills…",
|
|
"chat.draftStarters.empty": "Nothing to add",
|
|
"chat.draftStarters.sectionBuiltIn": "Built-in",
|
|
"chat.draftStarters.sectionCommands": "Commands",
|
|
"chat.draftStarters.sectionSkills": "Skills",
|
|
"chat.draftStarters.remove": "Remove",
|
|
"chat.scrollToBottom.aria": "Ir al final",
|
|
"chat.promptNavigator.aria": "Navegación de prompts",
|
|
"chat.promptNavigator.currentPrompt": "Prompt actual",
|
|
"chat.promptNavigator.loadMore": "Cargar más prompts",
|
|
"chat.timeline.relative.justNow": "ahora mismo",
|
|
"chat.timeline.relative.minutesAgo": "hace {count}m",
|
|
"chat.timeline.relative.hoursAgo": "hace {count}h",
|
|
"chat.timeline.relative.daysAgo": "hace {count}d",
|
|
"chat.timeline.title": "Línea de tiempo de la conversación",
|
|
"chat.timeline.description": "Navega hasta cualquier punto de la conversación o crea una nueva sesión",
|
|
"chat.timeline.searchPlaceholder": "Buscar mensajes...",
|
|
"chat.timeline.empty.search": "No se encontraron mensajes",
|
|
"chat.timeline.empty.session": "No hay mensajes en esta sesión aún",
|
|
"chat.timeline.noTextContent": "[No hay contenido de texto]",
|
|
"chat.timeline.actions.title": "Acciones",
|
|
"chat.timeline.actions.revertFromHere": "Revertir desde aquí",
|
|
"chat.timeline.actions.forkFromHere": "Crear una rama desde aquí",
|
|
"chat.timeline.actions.previousTurn": "Turno anterior",
|
|
"chat.timeline.actions.latest": "Último",
|
|
"chat.timeline.help.clickMessage": "Haz clic en un mensaje para desplazarse hasta él en la conversación",
|
|
"chat.timeline.help.undoToPoint": "Deshacer hasta este punto (el texto del mensaje se llenará en la entrada)",
|
|
"chat.timeline.help.createSessionFromHere": "Crear una nueva sesión desde aquí",
|
|
"chat.statusRow.todo.status.inProgress": "En progreso",
|
|
"chat.statusRow.todo.status.pending": "Pendiente",
|
|
"chat.statusRow.todo.status.completed": "Completado",
|
|
"chat.statusRow.todo.status.cancelled": "Cancelado",
|
|
"chat.statusRow.todo.priority.high": "Prioridad alta",
|
|
"chat.statusRow.todo.priority.medium": "Prioridad media",
|
|
"chat.statusRow.todo.priority.low": "Prioridad baja",
|
|
"chat.statusRow.actions.stopGeneratingAria": "Detener la generación",
|
|
"chat.statusRow.tasksTitle": "Tareas",
|
|
"chat.statusRow.modelStatus": "{model} · {status}",
|
|
"chat.statusRow.summary.activeLeft": "{active} activas · {left} restantes",
|
|
"chat.revertIndicator.redo": "Rehacer",
|
|
"chat.revertIndicator.redoAria": "Rehacer — restaurar mensajes revertidos",
|
|
"chat.revertPopover.title": "Revertidos",
|
|
"chat.revertPopover.noTextContent": "Sin contenido de texto",
|
|
"chat.revertPopover.forkFromHere": "Bifurcar desde aquí",
|
|
"chat.revertPopover.forkFromMessage": "Bifurcar desde este mensaje",
|
|
"chat.revertPopover.restoreAll": "Restaurar todo",
|
|
"chat.revertPopover.restore": "Restaurar",
|
|
"chat.revertPopover.revert": "Revertir",
|
|
"chat.revertPopover.fork": "Bifurcar",
|
|
"chat.revert.toast.undo": "Revertido a {preview}",
|
|
"chat.revert.toast.redo": "Rehecho",
|
|
"chat.revert.toast.restored": "Todos los mensajes restaurados",
|
|
"chat.toast.opencodeRestartInterrupted.title": "Conversación interrumpida",
|
|
"chat.toast.opencodeRestartInterrupted.description": "OpenCode se reinició mientras aún se estaba generando una respuesta. Envía un mensaje para continuar.",
|
|
"chat.toast.opencodeRestartInterrupted.openSession": "Abrir sesión",
|
|
"chat.errorBoundary.title": "Error en la conversación",
|
|
"chat.errorBoundary.description": "La interfaz de la conversación encontró un error. Esto podría deberse a un problema de red temporal o a datos de mensaje corruptos.",
|
|
"chat.errorBoundary.sessionLabel": "Sesión",
|
|
"chat.errorBoundary.detailsSummary": "Detalles del error",
|
|
"chat.errorBoundary.resetAction": "Restablecer la conversación",
|
|
"chat.errorBoundary.persistentHint": "Si el problema persiste, intenta actualizar la página.",
|
|
"chat.autocomplete.tabs.commands": "Comandos",
|
|
"chat.autocomplete.tabs.agents": "Agentes",
|
|
"chat.autocomplete.tabs.files": "Archivos",
|
|
"chat.autocomplete.keyboardHint": "↑↓ navegar • Enter seleccionar • Esc cerrar",
|
|
"chat.commandAutocomplete.command.initDescription": "Crear/actualizar el archivo AGENTS.md",
|
|
"chat.commandAutocomplete.command.undoDescription": "Deshacer el último mensaje",
|
|
"chat.commandAutocomplete.command.redoDescription": "Rehacer mensajes previamente deshechos",
|
|
"chat.commandAutocomplete.command.timelineDescription": "Abrir la línea de tiempo de la conversación",
|
|
"chat.commandAutocomplete.command.compactDescription": "Comprimir el historial de la sesión usando IA para reducir el tamaño del contexto",
|
|
"chat.commandAutocomplete.command.summaryDescription": "Resumen no destructivo de la sesión. Pista opcional del tema después del comando.",
|
|
"chat.commandAutocomplete.command.workspaceReviewDescription": "Revisa el diff del espacio de trabajo en intención, corrección y adecuación, con hallazgos por severidad.",
|
|
"chat.commandAutocomplete.command.handoffReviewDescription": "Crea o reutiliza una sesión de revisión separada a partir de un handoff generado.",
|
|
"chat.commandAutocomplete.command.featurePlanDescription": "Inicia una sesión de planificación guiada e interactiva para una nueva función.",
|
|
"chat.commandAutocomplete.command.craftGoalDescription": "Convierte una idea o tarea en un Goal claro y verificable.",
|
|
"chat.commandAutocomplete.command.scheduleTaskDescription": "Define una tarea programada mediante un diálogo guiado.",
|
|
"chat.chatInput.toast.craftGoalFailed": "No se pudo iniciar la creación del Goal",
|
|
"chat.chatInput.toast.scheduleTaskFailed": "No se pudo iniciar la configuración de la tarea programada",
|
|
"chat.commandAutocomplete.command.catchUpDescription": "Recupera el contexto: qué estabas haciendo y por dónde continuar.",
|
|
"chat.commandAutocomplete.command.debugDescription": "Investigación guiada de la causa raíz de un error antes de proponer una solución.",
|
|
"chat.commandAutocomplete.command.weighDescription": "Compara 2-3 enfoques con sus ventajas y desventajas y una recomendación antes de decidir.",
|
|
'chat.commandAutocomplete.command.btwDescription': 'Haz una pregunta paralela en una sesión hija temporal sin desviar este chat.',
|
|
"chat.commandAutocomplete.command.exploreDescription": "Oriéntate en este código: un recorrido general de la arquitectura y las partes principales.",
|
|
"chat.commandAutocomplete.badge.skill": "habilidad",
|
|
"chat.commandAutocomplete.badge.command": "comando",
|
|
"chat.commandAutocomplete.badge.system": "sistema",
|
|
"chat.commandAutocomplete.empty": "No se encontraron comandos",
|
|
"chat.agentMentionAutocomplete.badge.system": "sistema",
|
|
"chat.agentMentionAutocomplete.empty": "No se encontraron agentes",
|
|
"chat.fileMentionAutocomplete.searchMoreAgents": "Escribe para buscar más agentes",
|
|
"chat.fileMentionAutocomplete.empty": "No se encontraron coincidencias",
|
|
"chat.queuedMessage.attachments": "+{count} archivo(s)",
|
|
"chat.queuedMessage.empty": "(vacío)",
|
|
"chat.queuedMessage.title": "Queued messages",
|
|
"chat.queuedMessage.edit": "edit",
|
|
"chat.queuedMessage.send": "send",
|
|
"chat.queuedMessage.removeAria": "Eliminar de la cola",
|
|
"chat.queuedMessage.reorderAria": "Arrastra para reordenar",
|
|
"chat.queuedMessage.toast.queueFailed": "No se pudo poner el mensaje en cola. Vuelve a estar en el editor.",
|
|
"chat.queuedMessage.toast.takeFailed": "No se pudo cargar el mensaje en cola. Inténtalo de nuevo.",
|
|
"chat.container.returnToParent.aria": "Volver a la sesión principal",
|
|
"chat.container.returnToParent.titleNamed": "Volver a: {title}",
|
|
"chat.container.returnToParent.title": "Volver a la sesión principal",
|
|
"chat.container.returnToParent.label": "Principal",
|
|
'chat.btw.destroyAria': 'Destruir esta sesión btw',
|
|
'chat.btw.titleFallback': 'sesión btw',
|
|
'chat.btw.mainComposerPlaceholder': 'Pregunta en esta sesión btw…',
|
|
'chat.btw.loading': 'Iniciando sesión btw…',
|
|
'chat.btw.toast.emptyArgument': 'Escribe una pregunta después de /btw',
|
|
'chat.btw.toast.createFailed': 'No se pudo iniciar la sesión btw',
|
|
'chat.btw.toast.destroyFailed': 'No se pudo destruir la sesión btw. Permanecerá en la barra lateral.',
|
|
'chat.btw.working': 'Trabajando…',
|
|
'chat.btw.collapseAria': 'Contraer el panel btw',
|
|
'chat.btw.expandAria': 'Expandir el panel btw',
|
|
'chat.btw.promoteAria': 'Conservar como sesión aparte',
|
|
'chat.btw.toast.promoteFailed': 'No se pudo conservar la sesión btw',
|
|
"chat.container.readOnlySubagentPromptBanner": "Las sesiones de subagentes no pueden recibir prompts.",
|
|
"chat.container.sessionLoadError.title": "No se pudo cargar la sesión",
|
|
"chat.container.sessionLoadError.description": "No se pudo obtener la conversación: puede que el servidor esté apagado o inaccesible. No se perdió nada; reintenta cuando vuelva.",
|
|
"chat.container.sessionLoadError.authDescription": "Tu sesión expiró, por lo que el servidor rechazó la solicitud. Inicia sesión y la conversación se cargará.",
|
|
"chat.container.sessionLoadError.retry": "Reintentar",
|
|
"sessions.sidebar.group.empty.loadingSessions": "Cargando sesiones…",
|
|
"sessions.sidebar.group.empty.loadFailed": "No se pudieron actualizar las sesiones.",
|
|
"sessions.sidebar.group.empty.retry": "Reintentar",
|
|
"sessions.sidebar.group.empty.permissionDenied": "Se requiere acceso a la carpeta.",
|
|
"sessions.sidebar.group.empty.grantAccess": "Permitir acceso",
|
|
"chat.unifiedControls.title": "Controles",
|
|
"chat.unifiedControls.model.title": "Modelo",
|
|
"chat.unifiedControls.model.noRecent": "No hay modelos recientes",
|
|
"chat.unifiedControls.model.moreAria": "Más modelos",
|
|
"chat.unifiedControls.effort.title": "Esfuerzo",
|
|
"chat.unifiedControls.effort.moreAria": "Más opciones de esfuerzo",
|
|
"chat.questionCard.summaryTab": "Resumen",
|
|
"chat.questionCard.noAnswer": "(no hay respuesta)",
|
|
"chat.questionCard.inputNeeded": "Entrada necesaria",
|
|
"chat.questionCard.fromSubagent": "De un subagente",
|
|
"chat.questionCard.questionFallback": "Pregunta {index}",
|
|
"chat.questionCard.selectMultiple": "Seleccionar múltiples",
|
|
"chat.questionCard.recommended": "recomendado",
|
|
"chat.questionCard.other": "Otro…",
|
|
"chat.questionCard.yourAnswer": "Tu respuesta",
|
|
"chat.questionCard.submit": "Enviar",
|
|
"chat.questionCard.next": "Siguiente",
|
|
"chat.questionCard.dismiss": "Descartar",
|
|
"chat.questionCard.copyMarkdown": "Copiar como Markdown",
|
|
"chat.questionCard.copyJson": "Copiar como JSON",
|
|
"chat.questionCard.copiedMarkdown": "Pregunta copiada como Markdown",
|
|
"chat.questionCard.copiedJson": "Pregunta copiada como JSON",
|
|
"chat.questionCard.copyFailed": "No se pudo copiar la pregunta",
|
|
"chat.questionCard.submitFailed": "No se pudo enviar la respuesta",
|
|
"chat.questionCard.dismissFailed": "No se pudo descartar la pregunta",
|
|
"chat.questionCard.noLongerPending": "Esta pregunta ya no espera una respuesta.",
|
|
"chat.questionCard.tryAgain": "Inténtalo de nuevo en un momento.",
|
|
"chat.textSelection.toast.noProject": "No se encontró proyecto para esta sesión",
|
|
"chat.textSelection.toast.addToNotesFailed": "No se pudo añadir a las notas",
|
|
"chat.textSelection.toast.addToNotesSuccess": "Texto seleccionado añadido a notas",
|
|
"chat.textSelection.toast.addToNotesSummaryFailed": "No se pudo resumir la selección; se añadió el texto seleccionado a las notas",
|
|
"chat.textSelection.actions.addToInput": "Añadir a la entrada",
|
|
"chat.textSelection.actions.comment": "Comentar",
|
|
"chat.textSelection.title.commentOnSelection": "Comentar la selección",
|
|
"chat.textSelection.comment.placeholder": "Añade un comentario opcional...",
|
|
"chat.textSelection.comment.attach": "Adjuntar",
|
|
"chat.textSelection.actions.addToNotes": "Añadir a las notas",
|
|
"chat.textSelection.title.addToCurrentChat": "Añadir al chat actual",
|
|
"chat.textSelection.title.saveInsightToNotes": "Guardar texto seleccionado en notas",
|
|
"chat.messageBody.actions.revertAria": "Volver a este mensaje",
|
|
"chat.messageBody.actions.revert": "Volver desde aquí",
|
|
"chat.messageBody.actions.forkAria": "Bifurcar desde este mensaje",
|
|
"chat.messageBody.actions.fork": "Bifurcar desde aquí",
|
|
"chat.messageBody.actions.copyMessageAria": "Copiar texto del mensaje",
|
|
"chat.messageBody.actions.copyMessage": "Copiar mensaje",
|
|
"chat.messageBody.actions.pinContext": "Fijar en el contexto (se conserva tras la compactación)",
|
|
"chat.messageBody.actions.unpinContext": "Quitar del contexto (no se conservará tras la compactación)",
|
|
"chat.messageBody.actions.contextPinFailed": "No se pudo actualizar el mensaje fijado en el contexto",
|
|
"chat.messageBody.actions.openPreviewAria": "Abrir vista previa",
|
|
"chat.messageBody.actions.openPreview": "Abrir vista previa",
|
|
"chat.messageBody.actions.copyAnswer": "Copiar respuesta",
|
|
"chat.messageBody.actions.savingImage": "Guardando imagen...",
|
|
"chat.messageBody.actions.saveAsImage": "Guardar como imagen",
|
|
"chat.messageBody.actions.saveAsPlan": "Guardar como plan",
|
|
"chat.messageBody.actions.startNewSession": "Iniciar nueva sesión desde esta respuesta",
|
|
"chat.messageBody.actions.startNewMultiRun": "Iniciar nuevo multi-run desde esta respuesta",
|
|
"chat.messageBody.forkDialog.instructions.label": "Instrucciones",
|
|
"chat.messageBody.forkDialog.instructions.placeholder": "Añade instrucciones para la nueva sesión…",
|
|
"chat.messageBody.forkDialog.createWorktree": "Crear worktree",
|
|
"chat.generatedResult.actions.copy": "Copiar",
|
|
"chat.generatedResult.actions.copied": "Copiado",
|
|
"chat.generatedResult.commit.title": "Mensaje de commit generado",
|
|
"chat.generatedResult.commit.highlights": "Puntos clave",
|
|
"chat.generatedResult.pullRequest.title": "Pull request generado",
|
|
"chat.generatedResult.pullRequest.titleLabel": "Título",
|
|
"chat.generatedResult.pullRequest.bodyLabel": "Descripción",
|
|
"chat.messageBody.tts.stopSpeaking": "Dejar de hablar",
|
|
"chat.messageBody.tts.readAloud": "Leer en voz alta",
|
|
"chat.messageBody.tts.readAloudWithProvider": "Leer en voz alta ({provider} voz)",
|
|
"planView.tts.readAloud": "Leer plan en voz alta",
|
|
"planView.tts.stopSpeaking": "Detener lectura",
|
|
"filesView.tts.readAloud": "Leer archivo en voz alta",
|
|
"filesView.tts.stopSpeaking": "Detener lectura",
|
|
"chat.messageBody.toast.noProject": "No se encontró proyecto para esta sesión",
|
|
"chat.messageBody.toast.savePlanFailed": "No se pudo guardar el plan",
|
|
"chat.messageBody.toast.planSaved": "Plan guardado",
|
|
"chat.messageBody.toast.imageSaved": "Imagen guardada",
|
|
"chat.messageBody.toast.generateImageFailed": "No se pudo generar la imagen",
|
|
"chat.chatInput.actions.commands": "Comandos",
|
|
"chat.chatInput.actions.attachFiles": "Adjuntar archivos",
|
|
"chat.chatInput.actions.addAttachment": "Añadir adjunto",
|
|
"chat.chatInput.actions.linkGithubIssue": "Vincular issue de GitHub",
|
|
"chat.chatInput.actions.linkGithubPr": "Vincular PR de GitHub",
|
|
"chat.chatInput.actions.modelAgentSettings": "Configuración del modelo y agente",
|
|
"chat.chatInput.actions.sendMessageAria": "Enviar mensaje",
|
|
"chat.chatInput.actions.queueMessageAria": "Poner mensaje en cola",
|
|
"chat.chatInput.actions.stopGeneratingAria": "Detener generación",
|
|
"chat.chatInput.focusMode.toggleAria": "Activar o desactivar modo de enfoque",
|
|
"chat.chatInput.focusMode.label": "Modo de enfoque",
|
|
"chat.chatInput.permissionAutoAccept.disable": "Desactivar aceptación automática de permisos",
|
|
"chat.chatInput.permissionAutoAccept.enable": "Activar aceptación automática de permisos",
|
|
"chat.chatInput.permissionAutoAccept.on": "Aceptación automática de permisos: activada",
|
|
"chat.chatInput.permissionAutoAccept.off": "Aceptación automática de permisos: desactivada",
|
|
"chat.chatInput.linked.byAuthor": "por {author}",
|
|
"chat.chatInput.linked.issue.openInBrowserAria": "Abrir issue en el navegador",
|
|
"chat.chatInput.linked.issue.removeAria": "Eliminar issue vinculado",
|
|
"chat.chatInput.linked.pr.number": "PR #{number}",
|
|
"chat.chatInput.linked.pr.openInBrowserAria": "Abrir PR en el navegador",
|
|
"chat.chatInput.linked.pr.removeAria": "Eliminar PR vinculada",
|
|
"chat.chatInput.placeholder.shell": "Escribe un comando de shell...",
|
|
"chat.chatInput.placeholder.chat": "@ para archivos/agentes; / para comandos y habilidades; ! para shell; # para snippets",
|
|
"chat.chatInput.placeholder.chatCompact": "Usa @ / ! # para ayudas",
|
|
"chat.chatInput.placeholder.selectSession": "Selecciona o crea una sesión para comenzar a chatear",
|
|
"chat.snippetAutocomplete.action.addNew": "+ Agregar nuevo snippet",
|
|
"chat.snippetAutocomplete.empty": "No se encontraron snippets",
|
|
"chat.snippetAutocomplete.footer": "↑↓ navegar • Enter seleccionar • Esc cerrar",
|
|
"snippets.source.global": "global",
|
|
"snippets.source.project": "proyecto",
|
|
"chat.chatInput.toast.compactFailed": "No se pudo comprimir la sesión",
|
|
"chat.chatInput.toast.summaryFailed": "No se pudo generar el resumen",
|
|
"chat.messageBody.actions.sendReviewFeedback": "Enviar feedback de revisión al agente que implementa los cambios",
|
|
"chat.messageBody.actions.sendImplementationResponse": "Enviar respuesta de implementación al agente revisor",
|
|
"chat.chatInput.toast.reviewFailed": "No se pudieron revisar los cambios",
|
|
"chat.chatInput.toast.planFeatureFailed": "No se pudo iniciar la planificación de la función",
|
|
"chat.chatInput.toast.catchUpFailed": "No se pudo recuperar el contexto",
|
|
"chat.chatInput.toast.debugFailed": "No se pudo iniciar la depuración",
|
|
"chat.chatInput.toast.weighFailed": "No se pudieron comparar las opciones",
|
|
"chat.chatInput.toast.exploreFailed": "No se pudo iniciar el recorrido",
|
|
"chat.chatInput.toast.attachmentsTooLarge": "Los adjuntos son demasiado grandes para enviar. Intenta reducir la cantidad o el tamaño de las imágenes.",
|
|
"chat.chatInput.toast.sendAttachmentsFailed": "No se pudieron enviar los adjuntos. Intenta con menos archivos o imágenes más pequeñas.",
|
|
"chat.chatInput.toast.messageSendFailed": "El mensaje no se pudo enviar. Los adjuntos se restauraron.",
|
|
"chat.chatInput.toast.noModelSelected": "Selecciona un proveedor y un modelo antes de enviar.",
|
|
"chat.chatInput.toast.clipboardAttachFailed": "No se pudo adjuntar la imagen desde el portapapeles",
|
|
"chat.chatInput.toast.clipboardTextAttachFailed": "No se pudo adjuntar el texto pegado como archivo",
|
|
"chat.chatInput.toast.largeTextPaste.title": "Texto grande detectado",
|
|
"chat.chatInput.toast.largeTextPaste.attach": "Adjuntar como archivo",
|
|
"chat.chatInput.toast.largeTextPaste.inline": "Pegar en línea",
|
|
"chat.chatInput.toast.addedFileMentions": "Se añadieron {count} mención(es) de archivo",
|
|
"chat.chatInput.toast.attachFileFailed": "No se pudo adjuntar el archivo",
|
|
"chat.chatInput.toast.attachNamedFailed": "No se pudo adjuntar {name}",
|
|
"chat.chatInput.toast.unsupportedAttachmentModalities": "{model} no admite la entrada de {modalities} necesaria para {files}. Aún puedes enviar el mensaje, pero estos adjuntos podrían ignorarse.",
|
|
"chat.chatInput.toast.someFilesSkipped": "Algunos archivos se omitieron:\n{summary}",
|
|
"chat.chatInput.toast.vscodePickFailed": "No se pudieron seleccionar archivos en VS Code",
|
|
"chat.chatInput.toast.openSessionFirst": "Abre una sesión primero",
|
|
"chat.chatInput.toast.togglePermissionAutoAcceptFailed": "No se pudo cambiar la aceptación automática de permisos",
|
|
"chat.chatInput.reviewComments": "Comentarios de revisión:",
|
|
"chat.chatInput.reviewCommentsRemove": "Quitar comentarios de revisión",
|
|
"chat.chatInput.previewAnnotations": "Anotaciones de vista previa:",
|
|
"chat.chatInput.previewContext": "Contexto de vista previa:",
|
|
"chat.chatInput.previewContextRemove": "Quitar contexto de vista previa",
|
|
"chat.chatInput.projectRoot": "Raíz del proyecto",
|
|
"chat.chatInput.branch": "Rama",
|
|
"chat.chatInput.draftPicker.projectTitle": "Proyecto",
|
|
"chat.chatInput.draftPicker.searchProjects": "Buscar proyectos...",
|
|
"chat.chatInput.draftPicker.searchBranches": "Buscar ramas...",
|
|
"chat.chatInput.worktrees": "Worktrees",
|
|
"chat.chatInput.worktreeNew": "+ Nuevo",
|
|
"chat.chatInput.drop.insertMention": "Suelta para insertar como mención",
|
|
"chat.chatInput.drop.attachFiles": "Suelta archivos aquí para adjuntar",
|
|
"chat.chatInput.fileFallback": "archivo",
|
|
"chat.toolOutputDialog.image.previousAria": "Imagen anterior",
|
|
"chat.toolOutputDialog.image.nextAria": "Imagen siguiente",
|
|
"chat.toolOutputDialog.image.closeAria": "Cerrar vista previa de imagen",
|
|
"chat.toolOutputDialog.mermaid.missingSource": "Falta la URL de origen de Mermaid.",
|
|
"chat.toolOutputDialog.mermaid.loadFailed": "No se pudo cargar el diagrama de Mermaid.",
|
|
"chat.toolOutputDialog.mermaid.dataUrlMalformed": "La URL de datos de Mermaid no tiene un formato válido.",
|
|
"chat.toolOutputDialog.mermaid.invalidLocalPath": "La ruta del archivo local de Mermaid no es válida.",
|
|
"chat.toolOutputDialog.mermaid.readFileFailedWithStatus": "No se pudo leer el archivo de Mermaid. Estado: {status}.",
|
|
"chat.toolOutputDialog.mermaid.unsupportedUrlProtocol": "El protocolo de la URL de Mermaid no es compatible.",
|
|
"chat.toolOutputDialog.mermaid.loadFailedWithStatus": "No se pudo cargar el diagrama de Mermaid. Estado: {status}.",
|
|
"chat.toolOutputDialog.mermaid.closeAria": "Cerrar vista previa del diagrama",
|
|
"chat.toolOutputDialog.mermaid.loading": "Cargando diagrama...",
|
|
"chat.toolOutputDialog.mermaid.renderFailed": "No se pudo renderizar el diagrama de Mermaid.",
|
|
"chat.toolOutputDialog.mermaid.retry": "Volver a intentar",
|
|
"chat.toolOutputDialog.commandCompleted": "Comando completado con éxito",
|
|
"chat.toolOutputDialog.noOutputProduced": "No se produjo ninguna salida",
|
|
"chat.toolPart.lspErrors": "Errores LSP",
|
|
"chat.toolPart.moreErrors": "+{count} errores más",
|
|
"chat.toolPart.error": "Error:",
|
|
"chat.toolPart.awaitingResponse": "Esperando respuesta...",
|
|
"chat.toolPart.noOutputProduced": "No se produjo ninguna salida",
|
|
"chat.toolPart.output": "Salida",
|
|
"chat.toolPart.showRawJson": "Mostrar JSON sin formato",
|
|
"chat.toolPart.showFormattedJson": "Mostrar JSON formateado",
|
|
"chat.toolPart.showNavigableJson": "Mostrar JSON navegable",
|
|
"chat.toolPart.openFile": "Abrir archivo",
|
|
"chat.toolPart.openFileAtFirstChange": "Abrir archivo en el primer cambio",
|
|
"chat.toolPart.openFileDiff": "Abrir diferencias del archivo",
|
|
"chat.toolPart.copyOutput": "Copiar salida",
|
|
"chat.toolPart.copiedOutput": "Salida copiada",
|
|
"chat.toolPart.copyOutputFailed": "No se pudo copiar la salida",
|
|
"chat.toolPart.openSubtask": "Abrir subtarea {type}",
|
|
"chat.todo.total": "Total",
|
|
"chat.todo.inProgress": "En progreso",
|
|
"chat.todo.pending": "Pendiente",
|
|
"chat.todo.completed": "Completado",
|
|
"chat.todo.cancelled": "Cancelado",
|
|
"chat.permissionCard.workingDirectory": "Directorio de trabajo:",
|
|
"chat.permissionCard.timeout": "Tiempo de espera:",
|
|
"chat.permissionCard.request": "Solicitud:",
|
|
"chat.permissionCard.headers": "Encabezados:",
|
|
"chat.permissionCard.body": "Cuerpo:",
|
|
"chat.permissionCard.action": "Acción:",
|
|
"chat.permissionCard.details": "Detalles:",
|
|
"chat.permissionCard.patterns": "Patrones:",
|
|
"chat.permissionToast.sessionFallback": "Sesión",
|
|
"chat.permissionToast.permissionFallback": "Detalles de permiso no disponibles",
|
|
"chat.permissionToast.labels.session": "Sesión:",
|
|
"chat.permissionToast.labels.permission": "Permiso:",
|
|
"chat.permissionToast.actions.once": "Una vez",
|
|
"chat.permissionToast.actions.always": "Siempre",
|
|
"chat.permissionToast.actions.deny": "Denegar",
|
|
"chat.permissionToast.actions.approveOnceAria": "Aprobar una vez",
|
|
"chat.permissionToast.actions.approveOnceAriaWithSession": "Aprobar una vez para {session}",
|
|
"chat.permissionToast.actions.approveAlwaysAria": "Aprobar siempre",
|
|
"chat.permissionToast.actions.approveAlwaysAriaWithSession": "Aprobar siempre para {session}",
|
|
"chat.permissionToast.actions.denyAria": "Denegar permiso",
|
|
"chat.permissionToast.actions.denyAriaWithSession": "Denegar permiso para {session}",
|
|
"chat.permissionRequest.required": "Permiso requerido:",
|
|
"chat.permissionRequest.actions.once": "Una vez",
|
|
"chat.permissionRequest.actions.always": "Siempre",
|
|
"chat.permissionRequest.actions.reject": "Rechazar",
|
|
"chat.modelControls.provider": "Proveedor",
|
|
"chat.modelControls.capability.toolCalling": "Uso de herramientas",
|
|
"chat.modelControls.capability.reasoning": "Razonamiento",
|
|
"chat.modelControls.modality.text": "Texto",
|
|
"chat.modelControls.modality.image": "Imagen",
|
|
"chat.modelControls.modality.video": "Vídeo",
|
|
"chat.modelControls.modality.audio": "Audio",
|
|
"chat.modelControls.modality.pdf": "PDF",
|
|
"chat.modelControls.capabilities": "Capacidades",
|
|
"chat.modelControls.modalities": "Modalidades",
|
|
"chat.modelControls.input": "Entrada",
|
|
"chat.modelControls.output": "Salida",
|
|
"chat.modelControls.limits": "Límites",
|
|
"chat.modelControls.context": "Contexto",
|
|
"chat.modelControls.metadata": "Metadatos",
|
|
"chat.modelControls.knowledge": "Conocimiento",
|
|
"chat.modelControls.release": "Lanzamiento",
|
|
"chat.modelControls.mode": "Modo",
|
|
"chat.modelControls.model": "Modelo",
|
|
"chat.modelControls.temperature": "Temperatura",
|
|
"chat.modelControls.topP": "Top P",
|
|
"chat.modelControls.permissions": "Permisos",
|
|
"chat.modelControls.edit": "Editar",
|
|
"chat.modelControls.bash": "Bash",
|
|
"chat.modelControls.webFetch": "WebFetch",
|
|
"chat.modelControls.customPrompt": "Prompt personalizado",
|
|
"chat.modelControls.selectModel": "Seleccionar modelo",
|
|
"chat.modelControls.searchProvidersOrModels": "Buscar proveedores o modelos",
|
|
"chat.modelControls.clearSearch": "Limpiar búsqueda",
|
|
"chat.modelControls.current": "Actual",
|
|
"chat.modelControls.thinking": "Pensando",
|
|
"chat.modelControls.default": "Predeterminado",
|
|
"chat.modelControls.selectAgent": "Seleccionar agente",
|
|
"chat.modelControls.costPerMillion": "Costo ($/1M tokens)",
|
|
"chat.modelControls.metadataUnavailable": "Metadatos del modelo no disponibles.",
|
|
"chat.modelControls.addNewProvider": "Añadir nuevo proveedor",
|
|
"chat.modelControls.noAgentSelected": "No se seleccionó ningún agente.",
|
|
"chat.modelControls.resetToDefault": "Restablecer al valor predeterminado",
|
|
"chat.modelControls.searchModels": "Buscar modelos",
|
|
"chat.modelControls.searchAgents": "Buscar agentes",
|
|
"chat.modelControls.noModelsFound": "No se encontraron modelos",
|
|
"chat.modelControls.favorites": "Favoritos",
|
|
"chat.modelControls.recent": "Recientes",
|
|
"chat.modelControls.addToFavorites": "Añadir a favoritos",
|
|
"chat.modelControls.removeFromFavorites": "Eliminar de favoritos",
|
|
"chat.modelControls.favoriteAria": "Favorito",
|
|
"chat.modelControls.unfavoriteAria": "Quitar de favoritos",
|
|
"chat.modelControls.collapseProvider": "Colapsar proveedor",
|
|
"chat.modelControls.expandProvider": "Expandir proveedor",
|
|
"chat.modelControls.keyboardHint": "↑↓ navegar{thinking} • Enter seleccionar • Esc cerrar",
|
|
"chat.modelControls.keyboardHintNavigate": "↑↓ navegar",
|
|
"chat.modelControls.keyboardHintSwitchAgent": "{shortcut} cambiar agente",
|
|
"chat.modelControls.keyboardHintThinking": "←→ cambiar razonamiento",
|
|
"chat.modelControls.showThinkingModes": "Mostrar modos de razonamiento",
|
|
"chat.modelControls.hideThinkingModes": "Ocultar modos de razonamiento",
|
|
"chat.modelControls.moreThinkingModes": "Más modos de razonamiento",
|
|
"chat.modelControls.noProvidersOrModelsFound": "Ningún proveedor o modelo coincide con tu búsqueda.",
|
|
"chat.modelControls.reorderFavoriteAria": "Reordenar favorito",
|
|
"chat.modelControls.reorderFavoriteTitle": "Arrastrar para reordenar favorito",
|
|
"chat.modelControls.reorderProviderTitle": "Arrastrar para reordenar proveedor",
|
|
"chat.modelControls.permissionLabel.custom": "Personalizado",
|
|
"chat.modelControls.permissionLabel.allow": "Permitir",
|
|
"chat.modelControls.permissionLabel.deny": "Denegar",
|
|
"chat.modelControls.permissionLabel.ask": "Preguntar",
|
|
"chat.modelControls.modeValue.primary": "Primario",
|
|
"chat.modelControls.modeValue.subagent": "Subagente",
|
|
"chat.modelControls.modeValue.all": "Todos",
|
|
"chat.modelControls.modeValue.none": "—",
|
|
"chat.reasoningTrace.thinking": "Pensando",
|
|
"chat.reasoningTrace.justification": "Justificación",
|
|
"chat.reasoningTrace.expandAria": "Expandir traza de razonamiento",
|
|
"chat.reasoningTrace.collapseAria": "Contraer traza de razonamiento",
|
|
"chat.reasoningTrace.thought": "Pensó",
|
|
"chat.messageBody.subtask.title": "Tarea delegada",
|
|
"chat.messageBody.subtask.hidePrompt": "Ocultar prompt",
|
|
"chat.messageBody.subtask.showPrompt": "Mostrar prompt",
|
|
"chat.messageBody.subtask.openSession": "Abrir sesión de subtarea",
|
|
"chat.messageBody.shellCommand.title": "Comando de shell",
|
|
"chat.messageBody.shellCommand.hideOutput": "Ocultar salida",
|
|
"chat.messageBody.shellCommand.showOutput": "Mostrar salida",
|
|
"chat.messageBody.shellCommand.copied": "Copiado",
|
|
"chat.messageBody.shellCommand.copyOutput": "Copiar salida",
|
|
"commandPalette.title": "Paleta de comandos",
|
|
"commandPalette.description": "Buscar archivos, sesiones y comandos.",
|
|
"commandPalette.input.placeholder": "Buscar archivos, sesiones, comandos...",
|
|
"commandPalette.empty.noResults": "No se encontraron resultados.",
|
|
"commandPalette.empty.searchingFiles": "Buscando archivos...",
|
|
"commandPalette.item.newSession": "Nueva sesión",
|
|
"commandPalette.item.newMiniChat": "Nueva ventana Mini Chat",
|
|
"commandPalette.item.newWorktreeDraft": "Nuevo borrador de worktree",
|
|
"commandPalette.item.addProject": "Añadir proyecto",
|
|
"commandPalette.item.showSessionSwitcher": "Mostrar cambiador de sesiones",
|
|
"commandPalette.item.toggleSidebar": "Mostrar u ocultar barra lateral",
|
|
"commandPalette.item.showContextUsage": "Mostrar uso del contexto",
|
|
"commandPalette.item.toggleTerminal": "Mostrar u ocultar terminal",
|
|
"commandPalette.item.cycleTheme": "Cambiar tema",
|
|
"commandPalette.item.showOpenCodeStatus": "Mostrar estado de OpenCode",
|
|
"commandPalette.item.toggleMemoryDebug": "Alternar panel de depuración de memoria",
|
|
"commandPalette.item.pinSession": "Anclar o desanclar sesión",
|
|
"commandPalette.item.copySessionId": "Copiar ID de sesión",
|
|
"commandPalette.item.openMultiRun": "Abrir lanzador multi-run",
|
|
"commandPalette.item.openArchive": "Abrir sesiones archivadas",
|
|
"commandPalette.item.openNotes": "Abrir panel de notas",
|
|
"commandPalette.item.openTodos": "Abrir panel de tareas",
|
|
"commandPalette.item.openSettings": "Abrir configuración...",
|
|
"commandPalette.session.untitled": "Sesión sin título",
|
|
"openCodeStatusDialog.title": "Estado de OpenCode",
|
|
"openCodeStatusDialog.description": "Inspecciona el estado actual de OpenCode y diagnósticos.",
|
|
"openCodeStatusDialog.actions.copy": "Copiar",
|
|
"openCodeStatusDialog.empty.noData": "No hay datos.",
|
|
"openCodeStatusDialog.toast.copiedTitle": "Copiado",
|
|
"openCodeStatusDialog.toast.copiedDescription": "Estado copiado al portapapeles",
|
|
"openCodeStatusDialog.toast.copyFailed": "No se pudo copiar el estado",
|
|
"saveProjectPlanDialog.title": "Guardar plan del proyecto",
|
|
"saveProjectPlanDialog.description": "Guarda este plan en tu proyecto como un archivo Markdown.",
|
|
"saveProjectPlanDialog.field.title": "Título",
|
|
"saveProjectPlanDialog.field.titlePlaceholder": "Título del plan",
|
|
"saveProjectPlanDialog.field.contentPreview": "Vista previa del contenido",
|
|
"saveProjectPlanDialog.actions.cancel": "Cancelar",
|
|
"saveProjectPlanDialog.actions.save": "Guardar",
|
|
"saveProjectPlanDialog.actions.saving": "Guardando...",
|
|
"branchPickerDialog.title": "Selector de rama",
|
|
"branchPickerDialog.description.localBranchesForProject": "Ramas locales para {project}",
|
|
"branchPickerDialog.description.selectProject": "Selecciona un proyecto para ver ramas",
|
|
"branchPickerDialog.search.placeholder": "Buscar ramas...",
|
|
"branchPickerDialog.search.renameBranchPlaceholder": "Cambiar nombre de rama",
|
|
"branchPickerDialog.state.noProjectSelected": "No se seleccionó un proyecto",
|
|
"branchPickerDialog.state.loadingBranches": "Cargando ramas...",
|
|
"branchPickerDialog.state.noMatchingBranches": "No se encontraron ramas coincidentes",
|
|
"branchPickerDialog.state.noBranchesFound": "No se encontraron ramas",
|
|
"branchPickerDialog.badge.head": "HEAD",
|
|
"branchPickerDialog.badge.worktree": "worktree",
|
|
"branchPickerDialog.actions.createWorktreeAria": "Crear worktree desde rama",
|
|
"branchPickerDialog.actions.renameAria": "Cambiar nombre de rama",
|
|
"branchPickerDialog.actions.deleteAria": "Eliminar rama",
|
|
"branchPickerDialog.actions.deleteWorktreeAria": "Eliminar worktree",
|
|
"branchPickerDialog.actions.confirmRenameAria": "Confirmar cambio de nombre de",
|
|
"branchPickerDialog.actions.cancelRenameAria": "Cancelar cambio de nombre de",
|
|
"branchPickerDialog.actions.confirmDeleteAria": "Confirmar eliminación de rama",
|
|
"branchPickerDialog.actions.cancelDeleteAria": "Cancelar eliminación de rama",
|
|
"branchPickerDialog.actions.deletePrompt": "Eliminar",
|
|
"branchPickerDialog.actions.forceDeletePrompt": "Forzar eliminación",
|
|
"branchPickerDialog.tooltip.createWorktree": "Crear worktree",
|
|
"branchPickerDialog.tooltip.worktreeAlreadyExists": "El worktree ya existe",
|
|
"branchPickerDialog.tooltip.rename": "Cambiar nombre de rama",
|
|
"branchPickerDialog.tooltip.renameDisabledForRoot": "No se puede cambiar el nombre de la rama raíz",
|
|
"branchPickerDialog.tooltip.delete": "Eliminar rama",
|
|
"branchPickerDialog.tooltip.deleteCurrentBranch": "No se puede eliminar la rama actual",
|
|
"branchPickerDialog.tooltip.deleteDisabledForRoot": "No se puede eliminar la rama raíz",
|
|
"branchPickerDialog.tooltip.deleteWorktree": "Eliminar worktree",
|
|
"branchPickerDialog.tooltip.deleteWorktreeRootProtected": "No se puede eliminar el worktree raíz",
|
|
"branchPickerDialog.toast.branchRenamed": "Rama renombrada",
|
|
"branchPickerDialog.toast.failedToRenameBranch": "No se pudo cambiar el nombre de la rama",
|
|
"branchPickerDialog.toast.branchDeleted": "Rama eliminada",
|
|
"branchPickerDialog.toast.branchNotMerged": "La rama no tiene todos sus cambios integrados",
|
|
"branchPickerDialog.toast.confirmAgainToForceDelete": "Confirma de nuevo para eliminar forzadamente",
|
|
"branchPickerDialog.toast.failedToDeleteBranch": "No se pudo eliminar la rama",
|
|
"branchPickerDialog.toast.worktreeCreated": "Worktree creado",
|
|
"branchPickerDialog.toast.failedToCreateWorktree": "No se pudo crear el worktree",
|
|
"branchPickerDialog.error.failedToLoad": "No se pudieron cargar las ramas",
|
|
"branchPickerDialog.error.renameRejected": "El cambio de nombre fue rechazado",
|
|
"branchPickerDialog.error.renameFailed": "No se pudo cambiar el nombre de la rama",
|
|
"branchPickerDialog.error.deleteRejected": "La eliminación fue rechazada",
|
|
"branchPickerDialog.error.deleteFailed": "No se pudo eliminar la rama",
|
|
"branchPickerDialog.error.createWorktreeFailed": "No se pudo crear el worktree",
|
|
"projectEditDialog.title": "Editar proyecto",
|
|
"projectEditDialog.field.name": "Nombre",
|
|
"projectEditDialog.field.namePlaceholder": "Nombre del proyecto",
|
|
"projectEditDialog.field.color": "Color",
|
|
"projectEditDialog.field.icon": "Icono",
|
|
"projectEditDialog.field.preview": "Vista previa",
|
|
"projectEditDialog.field.iconBackground": "Fondo del icono",
|
|
"projectEditDialog.field.iconBackgroundAria": "Color del fondo del icono del proyecto",
|
|
"projectEditDialog.option.none": "Ninguno",
|
|
"projectEditDialog.actions.uploadIcon": "Subir icono",
|
|
"projectEditDialog.actions.uploading": "Subiendo...",
|
|
"projectEditDialog.actions.discoverFavicon": "Buscar icono",
|
|
"projectEditDialog.actions.discovering": "Descubriendo...",
|
|
"projectEditDialog.actions.removeProjectIcon": "Eliminar icono del proyecto",
|
|
"projectEditDialog.actions.removing": "Eliminando...",
|
|
"projectEditDialog.actions.undoRemove": "Deshacer eliminación",
|
|
"projectEditDialog.actions.clear": "Limpiar",
|
|
"projectEditDialog.actions.cancel": "Cancelar",
|
|
"projectEditDialog.actions.save": "Guardar",
|
|
"projectEditDialog.toast.failedToUploadIcon": "No se pudo subir el icono del proyecto",
|
|
"projectEditDialog.toast.iconUpdated": "Icono del proyecto actualizado",
|
|
"projectEditDialog.toast.failedToRemoveIcon": "No se pudo eliminar el icono del proyecto",
|
|
"projectEditDialog.toast.iconRemoved": "Icono del proyecto eliminado",
|
|
"projectEditDialog.toast.failedToDiscoverIcon": "No se pudo descubrir el icono del proyecto",
|
|
"projectEditDialog.toast.customIconAlreadySet": "Icono personalizado ya establecido para este proyecto",
|
|
"projectEditDialog.toast.iconDiscovered": "Icono del proyecto descubierto",
|
|
"agentManager.sidebar.search.placeholder": "Buscar grupos de agentes...",
|
|
"agentManager.sidebar.actions.newAgentGroup": "Nuevo grupo de agentes",
|
|
"agentManager.sidebar.actions.more": "... Más ({count})",
|
|
"agentManager.sidebar.actions.showLess": "Mostrar menos",
|
|
"agentManager.sidebar.section.agentGroups": "Grupos de agentes",
|
|
"agentManager.sidebar.state.loading": "Cargando...",
|
|
"agentManager.sidebar.state.noGroupsFound": "No se encontraron grupos",
|
|
"agentManager.sidebar.state.noGroupsYet": "No hay grupos de agentes aún",
|
|
"agentManager.sidebar.state.createToGetStarted": "Crea un nuevo grupo de agentes para comenzar",
|
|
"agentManager.sidebar.item.modelCountSingle": "{count} modelo",
|
|
"agentManager.sidebar.item.modelCountPlural": "{count} modelos",
|
|
"agentManager.sidebar.item.groupMenuAria": "Menú del grupo",
|
|
"agentManager.sidebar.item.delete": "Eliminar",
|
|
"agentManager.sidebar.relativeTime.now": "ahora",
|
|
"agentManager.sidebar.relativeTime.minutes": "{count}m",
|
|
"agentManager.sidebar.relativeTime.hours": "{count}h",
|
|
"agentManager.sidebar.relativeTime.days": "{count}d",
|
|
"agentManager.sidebar.dialog.deleteGroupTitle": "Eliminar grupo de agentes",
|
|
"agentManager.sidebar.dialog.deleteGroupDescription": "¿Eliminar \"{group}\"? Esto elimina todos los worktrees y sesiones en este grupo.",
|
|
"agentManager.sidebar.dialog.cancel": "Cancelar",
|
|
"agentManager.sidebar.dialog.delete": "Eliminar",
|
|
"agentManager.sidebar.dialog.deleting": "Eliminando...",
|
|
"agentManager.sidebar.toast.deletingGroup": "Eliminando \"{group}\"...",
|
|
"agentManager.sidebar.toast.deletedGroup": "Eliminado \"{group}\"",
|
|
"agentManager.sidebar.toast.failedToDeleteGroup": "No se pudo eliminar completamente \"{group}\"",
|
|
"agentManager.detail.header.modelCountSingle": "{count} modelo",
|
|
"agentManager.detail.header.modelCountPlural": "{count} modelos",
|
|
"agentManager.detail.header.noBranch": "Sin rama",
|
|
"agentManager.detail.actions.worktreeActionsAria": "Acciones del worktree",
|
|
"agentManager.detail.actions.removeThisWorktree": "Eliminar este worktree",
|
|
"agentManager.detail.actions.keepThisRemoveOthers": "Conservar este y eliminar los demás",
|
|
"agentManager.detail.actions.copyWorktreePath": "Copiar ruta del worktree",
|
|
"agentManager.detail.dialog.removeWorktreeTitle": "Eliminar worktree",
|
|
"agentManager.detail.dialog.removeOtherWorktreesTitle": "Eliminar otros worktrees",
|
|
"agentManager.detail.dialog.removeWorktreeDescription": "¿Eliminar \"{label}\"? Esto elimina todas las sesiones de ese worktree y el propio worktree.",
|
|
"agentManager.detail.dialog.removeOtherWorktreesDescription": "Mantener \"{label}\" y eliminar los demás worktrees en \"{group}\".",
|
|
"agentManager.detail.dialog.cancel": "Cancelar",
|
|
"agentManager.detail.dialog.remove": "Eliminar",
|
|
"agentManager.detail.dialog.removeOthers": "Eliminar otros",
|
|
"agentManager.detail.dialog.working": "Trabajando...",
|
|
"agentManager.detail.state.loadingSessionFor": "Cargando sesión para {label}",
|
|
"agentManager.detail.state.sessionId": "ID de sesión: {id}",
|
|
"agentManager.detail.state.noSessionsInGroup": "No hay sesiones en este grupo",
|
|
"agentManager.detail.toast.noWorktreePath": "No hay ruta disponible para el worktree",
|
|
"agentManager.detail.toast.worktreePathCopied": "Ruta del worktree copiada",
|
|
"agentManager.detail.toast.failedToCopyPath": "No se pudo copiar la ruta",
|
|
"agentManager.detail.toast.removingWorktree": "Eliminando worktree...",
|
|
"agentManager.detail.toast.removingOtherWorktrees": "Eliminando otros worktrees...",
|
|
"agentManager.detail.toast.failedToFullyRemoveWorktree": "No se pudo eliminar completamente el worktree",
|
|
"agentManager.detail.toast.worktreeRemoved": "Worktree eliminado",
|
|
"agentManager.detail.toast.otherWorktreesRemoved": "Otros worktrees eliminados",
|
|
"agentManager.empty.groupName.label": "Nombre del grupo",
|
|
"agentManager.empty.groupName.placeholder": "p. ej. feature-auth, bugfix-login",
|
|
"agentManager.empty.groupName.description": "Usado para el nombre de la carpeta y la rama del worktree",
|
|
"agentManager.empty.baseBranch.label": "Rama base",
|
|
"agentManager.empty.baseBranch.description": "Crea nuevas ramas desde {branch}",
|
|
"agentManager.empty.setupCommands.label": "Comandos de configuración",
|
|
"agentManager.empty.setupCommands.configured": "{count} configurados",
|
|
"agentManager.empty.setupCommands.description": "Comandos que se ejecutan en cada nuevo worktree. Usa $ROOT_PROJECT_PATH para la raíz del proyecto.",
|
|
"agentManager.empty.setupCommands.loading": "Cargando...",
|
|
"agentManager.empty.setupCommands.commandPlaceholder": "p. ej., bun install",
|
|
"agentManager.empty.setupCommands.removeCommandAria": "Eliminar comando",
|
|
"agentManager.empty.setupCommands.addCommand": "Añadir comando",
|
|
"agentManager.empty.agent.label": "Agente",
|
|
"agentManager.empty.agent.description": "Usa el agente predeterminado configurado",
|
|
"agentManager.empty.models.label": "Modelos",
|
|
"agentManager.empty.models.addModel": "Añadir modelo",
|
|
"agentManager.empty.models.selectedSingle": "{count} modelo seleccionado",
|
|
"agentManager.empty.models.selectedPlural": "{count} modelos seleccionados",
|
|
"agentManager.empty.prompt.label": "Prompt",
|
|
"agentManager.empty.prompt.placeholder": "Pregunta algo...",
|
|
"agentManager.empty.prompt.addAttachmentAria": "Añadir adjunto",
|
|
"agentManager.empty.actions.startAgentGroupAria": "Iniciar grupo de agentes",
|
|
"agentManager.empty.toast.fileTooLarge": "El archivo \"{fileName}\" es demasiado grande (máximo 10MB)",
|
|
"agentManager.empty.toast.failedToAttach": "No se pudo adjuntar \"{fileName}\"",
|
|
"agentManager.empty.toast.attachedSingle": "{count} archivo adjuntado",
|
|
"agentManager.empty.toast.attachedPlural": "{count} archivos adjuntados",
|
|
"agentManager.empty.toast.failedToCreateGroup": "No se pudo crear el grupo de agentes",
|
|
"openInApp.actions.open": "Abrir",
|
|
"openInApp.actions.openInAria": "Abrir en {app}",
|
|
"openInApp.actions.chooseAppAria": "Elegir aplicación para abrir",
|
|
"openInApp.actions.copyPath": "Copiar ruta",
|
|
"openInApp.actions.refreshApps": "Actualizar aplicaciones",
|
|
"openInApp.toast.pathCopied": "Ruta copiada al portapapeles",
|
|
"projectActions.actions.addActionAria": "Añadir acción",
|
|
"projectActions.actions.addAction": "Añadir acción",
|
|
"projectActions.actions.addNewAction": "Añadir nueva acción",
|
|
"projectActions.actions.autoDiscover": "Autodetectar",
|
|
"projectActions.actions.autoDiscoverTooltip": "Detecta y ejecuta automáticamente el servidor de desarrollo",
|
|
"projectActions.actions.chooseActionAria": "Elegir acción del proyecto",
|
|
"projectActions.actions.openPreview": "Abrir Preview",
|
|
"projectActions.actions.runNamedAria": "Ejecutar {name}",
|
|
"projectActions.actions.stopNamedAria": "Detener {name}",
|
|
"projectActions.label.fallbackAction": "Acción",
|
|
"projectActions.toast.openedUrlFromOutput": "Abierto URL desde la salida de la acción",
|
|
"projectActions.toast.openedForwardedUrl": "Abierto URL reenviada",
|
|
"projectActions.toast.openedActionUrl": "Abierto URL de la acción",
|
|
"projectActions.error.noActiveDirectory": "No hay directorio activo",
|
|
"projectActions.error.noActiveDirectoryForAction": "No hay directorio activo para la acción",
|
|
"projectActions.error.failedToCreateTerminalSession": "No se pudo crear la sesión de terminal",
|
|
"projectActions.error.invalidCustomUrlFormat": "Formato de URL personalizada inválido",
|
|
"projectActions.error.selectedDesktopSshForwardUnavailable": "La conexión SSH en la máquina de escritorio seleccionada no está disponible",
|
|
"projectActions.error.failedToRunAction": "No se pudo ejecutar la acción",
|
|
"mcpDropdown.title": "Servidores MCP",
|
|
"mcpDropdown.actions.refreshAria": "Actualizar",
|
|
"mcpDropdown.actions.openAria": "Servidores MCP",
|
|
"mcpDropdown.statusAria": "Estado MCP",
|
|
"mcpDropdown.status.unknown": "Desconocido",
|
|
"mcpDropdown.status.connected": "Conectado",
|
|
"mcpDropdown.status.failed": "Fallido: {error}",
|
|
"mcpDropdown.status.unknownError": "Error desconocido",
|
|
"mcpDropdown.status.needsAuth": "Necesita autenticación",
|
|
"mcpDropdown.status.needsRegistration": "Necesita registro: {error}",
|
|
"mcpDropdown.empty.configureInConfig": "Configura los servidores MCP en Ajustes.",
|
|
"sessionAuth.error.rateLimitTitle": "Demasiados intentos",
|
|
"sessionAuth.error.networkTitle": "No se puede alcanzar el servidor",
|
|
"sessionAuth.error.rateLimitDescriptionSingle": "Por favor, espera {minutes} minuto antes de intentarlo de nuevo.",
|
|
"sessionAuth.error.rateLimitDescriptionPlural": "Por favor, espera {minutes} minutos antes de intentarlo de nuevo.",
|
|
"sessionAuth.error.networkDescription": "No pudimos verificar la sesión de la UI. Si abres OpenChamber desde otro dispositivo en tu red local, activa Desktop Network Access en la app de escritorio y usa la dirección LAN que aparece en Ajustes.",
|
|
"sessionAuth.error.retry": "Volver a intentar",
|
|
"sessionAuth.error.passkeySetupFailed": "No se pudo configurar la clave de paso.",
|
|
"sessionAuth.error.incorrectPassword": "Contraseña incorrecta. Inténtalo de nuevo.",
|
|
"sessionAuth.error.unexpectedResponse": "Respuesta inesperada del servidor.",
|
|
"sessionAuth.error.networkRetry": "Error de red. Comprueba la conexión y vuelve a intentarlo.",
|
|
"sessionAuth.error.passkeySignInCanceled": "El inicio de sesión con clave de paso se canceló.",
|
|
"sessionAuth.error.enterPasswordForPasskey": "Introduce tu contraseña para añadir una clave de paso.",
|
|
"sessionAuth.locked.tunnelTitle": "Se requiere acceso por túnel",
|
|
"sessionAuth.expired.banner": "Tu sesión expiró: inicia sesión para continuar.",
|
|
"sessionAuth.expired.loginAction": "Iniciar sesión",
|
|
"sessionAuth.expired.sendBlocked": "Sesión expirada: inicia sesión para enviar mensajes.",
|
|
"sessionAuth.locked.unlockTitle": "Desbloquear OpenChamber",
|
|
"sessionAuth.locked.tunnelDescription": "Abre este túnel usando el enlace de conexión única desde la aplicación de escritorio.",
|
|
"sessionAuth.locked.passwordDescription": "Esta sesión está protegida con contraseña.",
|
|
"sessionAuth.locked.hostSwitcherHint": "Usa Local si el servidor remoto no está disponible.",
|
|
"sessionAuth.actions.cancelPasskey": "Cancelar clave de paso",
|
|
"sessionAuth.actions.usePasskey": "Usar clave de paso",
|
|
"sessionAuth.actions.unlockingAria": "Desbloqueando",
|
|
"sessionAuth.actions.unlockAria": "Desbloquear",
|
|
"sessionAuth.actions.trustDevice": "Confiar en este dispositivo",
|
|
"sessionAuth.actions.trustDeviceAria": "Confiar en este dispositivo",
|
|
"sessionAuth.actions.cancelPasskeySetup": "Cancelar configuración de clave de paso",
|
|
"sessionAuth.actions.addPasskey": "Añadir clave de paso",
|
|
"sessionAuth.password.placeholder": "Introduce contraseña",
|
|
"sessionAuth.toast.passkeyAdded": "Clave de paso añadido",
|
|
"sessionAuth.toast.passkeySetupCanceled": "Configuración de clave de paso cancelada",
|
|
"desktopHostSwitcher.title": "Instancia",
|
|
"desktopHostSwitcher.description": "Cambia entre Local y el servidor remoto de OpenChamber",
|
|
"desktopHostSwitcher.header.current": "Actual",
|
|
"desktopHostSwitcher.header.default": "Predeterminado",
|
|
"desktopHostSwitcher.header.currentColon": "Actual:",
|
|
"desktopHostSwitcher.header.currentDefaultColon": "Predeterminado actual:",
|
|
"desktopHostSwitcher.status.connected": "Conectado",
|
|
"desktopHostSwitcher.status.authRequired": "Autenticación requerida",
|
|
"desktopHostSwitcher.status.checking": "Comprobando",
|
|
"desktopHostSwitcher.status.updateRecommended": "Actualización recomendada",
|
|
"desktopHostSwitcher.status.incompatible": "Incompatible",
|
|
"desktopHostSwitcher.status.wrongService": "Servicio incorrecto",
|
|
"desktopHostSwitcher.status.unreachable": "Inalcanzable",
|
|
"desktopHostSwitcher.status.unknown": "Desconocido",
|
|
"desktopHostSwitcher.status.ping": " · {ms}ms ping",
|
|
"desktopHostSwitcher.statusAria": "Estado de la instancia",
|
|
"desktopHostSwitcher.sshPhase.ready": "Listo",
|
|
"desktopHostSwitcher.sshPhase.error": "Error",
|
|
"desktopHostSwitcher.sshPhase.reconnecting": "Reconectando",
|
|
"desktopHostSwitcher.sshPhase.resolvingConfig": "Resolviendo configuración",
|
|
"desktopHostSwitcher.sshPhase.checkingAuth": "Verificando autenticación",
|
|
"desktopHostSwitcher.sshPhase.connectingSsh": "Conectando SSH",
|
|
"desktopHostSwitcher.sshPhase.probingRemote": "Explorando remoto",
|
|
"desktopHostSwitcher.sshPhase.installing": "Instalando",
|
|
"desktopHostSwitcher.sshPhase.updating": "Actualizando",
|
|
"desktopHostSwitcher.sshPhase.detectingServer": "Detectando servidor",
|
|
"desktopHostSwitcher.sshPhase.startingServer": "Iniciando servidor",
|
|
"desktopHostSwitcher.sshPhase.forwardingPorts": "Redirigiendo puertos",
|
|
"desktopHostSwitcher.sshPhase.idle": "Inactivo",
|
|
"desktopHostSwitcher.ssh.needInstancesHint": "¿Necesitas instancias SSH? Gestiónalas en Configuración.",
|
|
"desktopHostSwitcher.ssh.instanceFallback": "Instancia SSH",
|
|
"desktopHostSwitcher.ssh.connectingTo": "Conectando a {host}",
|
|
"desktopHostSwitcher.actions.refresh": "Actualizar",
|
|
"desktopHostSwitcher.actions.refreshInstancesAria": "Actualizar instancias",
|
|
"desktopHostSwitcher.actions.remoteSsh": "SSH remoto",
|
|
"desktopHostSwitcher.actions.instanceActionsAria": "Acciones de instancia",
|
|
"desktopHostSwitcher.actions.edit": "Editar",
|
|
"desktopHostSwitcher.actions.delete": "Eliminar",
|
|
"desktopHostSwitcher.actions.connect": "Conectar",
|
|
"desktopHostSwitcher.actions.defaultInstanceAria": "Instancia predeterminada",
|
|
"desktopHostSwitcher.actions.setAsDefaultAria": "Establecer como predeterminado",
|
|
"desktopHostSwitcher.actions.setAsDefault": "Establecer como predeterminado",
|
|
"desktopHostSwitcher.actions.openInNewWindowAria": "Abrir en nueva ventana",
|
|
"desktopHostSwitcher.actions.openInNewWindow": "Abrir en nueva ventana",
|
|
"desktopHostSwitcher.actions.addInstance": "Añadir instancia",
|
|
"desktopHostSwitcher.actions.cancel": "Cancelar",
|
|
"desktopHostSwitcher.actions.save": "Guardar",
|
|
"desktopHostSwitcher.actions.add": "Añadir",
|
|
"desktopHostSwitcher.actions.switchToLocal": "Cambiar a Local",
|
|
"desktopHostSwitcher.actions.retry": "Reintentar",
|
|
"desktopHostSwitcher.actions.switchInstanceAria": "Cambiar instancia",
|
|
"desktopHostSwitcher.actions.switchInstance": "Cambiar instancia",
|
|
"desktopHostSwitcher.actions.switchToAria": "Cambiar a {instance}",
|
|
"desktopHostSwitcher.field.labelPlaceholder": "Etiqueta",
|
|
"desktopHostSwitcher.field.labelOptionalPlaceholder": "Etiqueta (opcional)",
|
|
"desktopHostSwitcher.field.urlPlaceholder": "https://host:port",
|
|
"desktopHostSwitcher.state.limitedOnPage": "El selector de instancias está limitado en esta página. Usa Local para recuperar.",
|
|
"desktopHostSwitcher.state.loading": "Cargando...",
|
|
"desktopHostSwitcher.state.instanceUnreachable": "Instancia inalcanzable",
|
|
"desktopHostSwitcher.edit.title": "Editar instancia",
|
|
"desktopHostSwitcher.add.title": "Añadir instancia",
|
|
"desktopHostSwitcher.error.failedToSave": "No se pudo guardar",
|
|
"desktopHostSwitcher.error.failedToLoad": "No se pudo cargar",
|
|
"desktopHostSwitcher.error.invalidUrl": "URL inválida (debe ser http/https)",
|
|
"desktopHostSwitcher.error.failedToOpenNewWindow": "No se pudo abrir nueva ventana",
|
|
"desktopHostSwitcher.instance.local": "Local",
|
|
"desktopHostSwitcher.instance.fallback": "Instancia",
|
|
"desktopHostSwitcher.startup.title": "Instancia SSH predeterminada no disponible",
|
|
"desktopHostSwitcher.startup.connectingTo": "Conectando a {host}...",
|
|
"desktopHostSwitcher.startup.failed": "No se pudo conectar con la instancia predeterminada de SSH.",
|
|
"desktopHostSwitcher.toast.sshConnected": "Instancia SSH \"{host}\" conectada",
|
|
"desktopHostSwitcher.toast.sshFailedToConnect": "No se pudo conectar con la instancia SSH \"{host}\"",
|
|
"desktopHostSwitcher.toast.instanceUnreachable": "Instancia \"{host}\" no está disponible",
|
|
"miniChat.header.newSession": "Nueva sesión",
|
|
"miniChat.header.session": "Sesión",
|
|
"miniChat.header.defaultAgent": "Agente predeterminado",
|
|
"miniChat.header.noModel": "Sin modelo",
|
|
"miniChat.status.busy": "En ejecución",
|
|
"miniChat.status.retry": "Reintentando",
|
|
"miniChat.status.idle": "Inactivo",
|
|
"miniChat.actions.pin": "Fijar sobre otras ventanas",
|
|
"miniChat.actions.unpin": "Desfijar ventana",
|
|
"miniChat.actions.pinAria": "Fijar ventana Mini Chat",
|
|
"miniChat.actions.unpinAria": "Desfijar ventana Mini Chat",
|
|
"miniChat.actions.openMain": "Abrir en la ventana principal",
|
|
"miniChat.actions.openMainAria": "Abrir sesión en la ventana principal",
|
|
"miniChat.unavailable.title": "Sesión no disponible",
|
|
"miniChat.unavailable.description": "No se pudo cargar esta sesión. Puede haber sido eliminada, archivada o abierta desde otro contexto de proyecto.",
|
|
"sessions.sidebar.session.menu.openMiniChatWindow": "Abrir en ventana Mini Chat",
|
|
"header.actions.newMiniChat": "Nueva ventana Mini Chat",
|
|
"header.actions.newMiniChatAria": "Abrir una nueva ventana Mini Chat",
|
|
"header.actions.openSessionMiniChat": "Abrir sesión en Mini Chat",
|
|
"header.actions.openSessionMiniChatAria": "Abrir la sesión actual en Mini Chat",
|
|
"header.windowControls.groupAria": "Controles de ventana",
|
|
"header.windowControls.minimize": "Minimizar ventana",
|
|
"header.windowControls.maximize": "Maximizar ventana",
|
|
"header.windowControls.restore": "Restaurar ventana",
|
|
"header.windowControls.close": "Cerrar ventana",
|
|
"errorBoundary.title": "Algo salió mal",
|
|
"errorBoundary.description": "La aplicación encontró un error inesperado. Esto se ha registrado para depuración.",
|
|
"errorBoundary.state.unknownError": "Error desconocido",
|
|
"errorBoundary.state.componentStackLabel": "Pila de componentes:",
|
|
"errorBoundary.actions.errorDetails": "Detalles del error",
|
|
"errorBoundary.actions.tryAgain": "Volver a intentarlo",
|
|
"errorBoundary.actions.copy": "Copiar",
|
|
"errorBoundary.actions.copied": "Copiado",
|
|
"jsonTreeView.error.emptyJson": "Contenido JSON vacío",
|
|
"jsonTreeView.error.invalidJson": "JSON inválido",
|
|
"jsonTreeView.error.invalidJsonTitle": "JSON inválido",
|
|
"jsonTreeView.actions.expandAll": "Expandir todo",
|
|
"jsonTreeView.actions.collapseAll": "Colapsar todo",
|
|
"numberInput.actions.decreaseAria": "Reducir valor",
|
|
"numberInput.actions.increaseAria": "Aumentar valor",
|
|
"goToLineDialog.field.linePlaceholderShort": "Línea",
|
|
"goToLineDialog.field.linePlaceholder": "Número de línea",
|
|
"goToLineDialog.actions.go": "Ir",
|
|
"goToLineDialog.helper.editorUnavailable": "Editor no disponible.",
|
|
"goToLineDialog.helper.currentLineRange": "Línea actual: {current}. Escribe un número de línea entre 1 y {max} para navegar.",
|
|
"goToLineDialog.helper.goToLine": "Ir a la línea {line}",
|
|
"dialog.common.actions.close": "Cerrar",
|
|
"filesView.toast.relativePathCopied": "Ruta relativa copiada",
|
|
"filesView.tree.menu.copyRelativePath": "Copiar ruta relativa",
|
|
"multiRun.branchSelector.placeholder.selectSourceBranch": "Seleccionar rama de origen...",
|
|
"multiRun.branchSelector.status.loadingBranches": "Cargando ramas...",
|
|
"multiRun.branchSelector.status.noBranchesFound": "No se encontraron ramas",
|
|
"multiRun.branchSelector.status.notInGitRepository": "No estás en un repositorio Git.",
|
|
"multiRun.branchSelector.groups.localBranches": "Ramas locales",
|
|
"multiRun.branchSelector.groups.remoteBranches": "Ramas remotas",
|
|
"multiRun.window.actions.closeAria": "Cerrar Multi-Run",
|
|
"multiRun.window.description": "Ventana de OpenChamber Multi-Run.",
|
|
"voice.status.idle": "Voz lista",
|
|
"voice.status.listening": "Escuchando...",
|
|
"voice.status.processing": "Procesando...",
|
|
"voice.status.speaking": "Hablando...",
|
|
"voice.status.error": "Error de voz",
|
|
"voice.status.conversationModeActiveAria": "Modo de conversación activo",
|
|
"voice.action.finishAndTranscribe": "Finalizar y transcribir la entrada de voz",
|
|
"onboarding.common.actions.back": "Atrás",
|
|
"onboarding.common.copyToClipboard": "Copiar al portapapeles",
|
|
"onboarding.common.status.copiedToClipboard": "Copiado al portapapeles",
|
|
"onboarding.chooser.title": "Bienvenido a OpenChamber",
|
|
"onboarding.chooser.description": "Elige cómo quieres conectar para comenzar.",
|
|
"onboarding.chooser.tabs.localInstall": "Instalación local",
|
|
"onboarding.chooser.tabs.connectRemote": "Conectar remoto",
|
|
"onboarding.localSetup.title": "Configuración de OpenCode",
|
|
"onboarding.localSetup.description": "Instala la CLI de OpenCode para continuar.",
|
|
"onboarding.localSetup.dialog.selectOpencodeBinary": "Seleccionar ejecutable de opencode",
|
|
"onboarding.localSetup.errors.cliNotReady": "La CLI de OpenCode aún no está lista. Confirma que la instalación está completa y intenta de nuevo.",
|
|
"onboarding.localSetup.errors.detectionFailed": "Error de detección",
|
|
"onboarding.localSetup.windows.title": "Configuración de Windows",
|
|
"onboarding.localSetup.windows.stepInstallWsl": "Instala OpenCode con el comando siguiente.",
|
|
"onboarding.localSetup.windows.stepInstallWslSuffix": "",
|
|
"onboarding.localSetup.windows.stepRunInstallInWsl": "Ejecuta el comando de instalación a continuación en una terminal de Windows.",
|
|
"onboarding.localSetup.windows.stepSetBinaryPath": "Si OpenChamber no detecta OpenCode automáticamente, establece la ruta del ejecutable a continuación.",
|
|
"onboarding.localSetup.intro": "OpenCode es el corazón de OpenChamber. Instálalo para empezar.",
|
|
"onboarding.localSetup.docs.windows": "Documentación de OpenCode",
|
|
"onboarding.localSetup.docs.default": "Documentación de OpenCode",
|
|
"onboarding.localSetup.actions.checking": "Verificando...",
|
|
"onboarding.localSetup.actions.checkAndContinue": "He completado la instalación, verificar y continuar",
|
|
"onboarding.localSetup.actions.checkNow": "Verificar ahora",
|
|
"onboarding.localSetup.helper.checkAndContinue": "Haz clic para verificar si la CLI de OpenCode está disponible. Si la verificación funciona, entrarás automáticamente en la pantalla principal.",
|
|
"onboarding.localSetup.status.watching": "Esperando OpenCode",
|
|
"onboarding.localSetup.status.autoContinue": "Continuaremos automáticamente al detectarlo.",
|
|
"onboarding.localSetup.field.alreadyInstalled": "¿Ya está instalado? Establece la ruta de la CLI de OpenCode:",
|
|
"onboarding.localSetup.advanced.title": "Establecer una ruta personalizada del binario",
|
|
"onboarding.localSetup.troubleshoot.title": "¿Tienes problemas?",
|
|
"onboarding.localSetup.actions.browse": "Explorar",
|
|
"onboarding.localSetup.actions.apply": "Aplicar",
|
|
"onboarding.localSetup.helper.saveAndReload": "Guarda en la configuración de OpenChamber y recarga la configuración de OpenCode.",
|
|
"onboarding.localSetup.remotePreference": "¿Prefieres usar un servidor remoto?",
|
|
"onboarding.localSetup.actions.connectRemoteServer": "Conectar a un servidor remoto →",
|
|
"onboarding.localSetup.windows.hintInstallInWsl": "En Windows, instala y ejecuta OpenCode de forma nativa.",
|
|
"onboarding.localSetup.windows.hintDetectionFailed": "Si la detección falla, establece una ruta nativa como opencode.cmd u opencode.exe.",
|
|
"onboarding.localSetup.hint.ensurePath": "¿Ya está instalado? Asegúrate de que opencode esté en tu PATH.",
|
|
"onboarding.localSetup.hint.setEnv": "O establece la variable de entorno OPENCODE_BINARY.",
|
|
"onboarding.localSetup.hint.missingRuntime": "Si ves \"env: node: No such file or directory\" o \"env: bun: No such file or directory\", instala ese runtime o asegúrate de que esté en PATH.",
|
|
"onboarding.remoteConnection.title": "Conectar a servidor remoto",
|
|
"onboarding.remoteConnection.titleRecovery": "Conectar a un servidor diferente",
|
|
"onboarding.remoteConnection.description": "Introduce la dirección de un servidor de OpenChamber para conectar.",
|
|
"onboarding.remoteConnection.field.serverAddress": "Dirección del servidor",
|
|
"onboarding.remoteConnection.field.serverAddressPlaceholder": "https://your-server.example.com:4096",
|
|
"onboarding.remoteConnection.field.nameOptional": "Nombre (opcional)",
|
|
"onboarding.remoteConnection.field.namePlaceholder": "Mi servidor remoto",
|
|
"onboarding.remoteConnection.errors.connectionTestFailed": "No se pudo probar la conexión",
|
|
"onboarding.remoteConnection.errors.failedToSaveConnection": "No se pudo guardar la conexión",
|
|
"onboarding.remoteConnection.status.connectedSuccessfully": "Conexión correcta ({latencyMs}ms)",
|
|
"onboarding.remoteConnection.status.authWarning": "El servidor requiere autenticación. Puedes conectarte aún así.",
|
|
"onboarding.remoteConnection.status.connectionFailed": "Error de conexión",
|
|
"onboarding.remoteConnection.status.suggestionsUnreachable": "Sugerencias: Verifica la dirección del servidor, asegúrate de que el servidor esté en ejecución o revisa tu conexión de red.",
|
|
"onboarding.remoteConnection.status.suggestionsWrongService": "Sugerencias: Verifica que la URL apunte a un servidor OpenChamber o contacta al administrador del servidor.",
|
|
"onboarding.remoteConnection.actions.testing": "Probando…",
|
|
"onboarding.remoteConnection.actions.testConnection": "Probar conexión",
|
|
"onboarding.remoteConnection.actions.connectAndRestart": "Conectar & Restablecer",
|
|
"onboarding.remoteConnection.actions.whatToDo": "¿Qué deseas hacer?",
|
|
"onboarding.remoteConnection.actions.chooseDifferentServer": "Elegir otro servidor",
|
|
"onboarding.remoteConnection.actions.useLocalInstead": "Usar Local en su lugar",
|
|
"onboarding.remoteConnection.probe.authMessage": "El servidor requiere autenticación. Puedes conectarte aún así, pero puede que tengas que proporcionar credenciales.",
|
|
"onboarding.remoteConnection.probe.updateRecommendedMessage": "Esta instancia ejecuta una versión diferente de OpenChamber. Puedes conectarte, pero actualiza ambas apps si algo no funciona.",
|
|
"onboarding.remoteConnection.probe.incompatibleMessage": "El servidor ejecuta OpenChamber pero no es compatible con esta versión de la app. Actualiza OpenChamber en el servidor y vuelve a intentarlo.",
|
|
"onboarding.remoteConnection.probe.wrongServiceMessage": "El servidor respondió pero no está ejecutando OpenChamber. Verifica que la dirección apunte a un servidor OpenChamber.",
|
|
"onboarding.remoteConnection.probe.unreachableMessage": "El servidor no está disponible. Revisa tu conexión de red y verifica la dirección del servidor.",
|
|
"onboarding.desktopRecovery.localUnavailable.title": "OpenCode Local no disponible",
|
|
"onboarding.desktopRecovery.localUnavailable.description": "La CLI de OpenCode no pudo iniciarse o no está instalado. Instala OpenCode o conecta a un servidor remoto en su lugar.",
|
|
"onboarding.desktopRecovery.localUnavailable.retry": "Reintentar Local",
|
|
"onboarding.desktopRecovery.localUnavailable.useLocal": "Configurar Local",
|
|
"onboarding.desktopRecovery.noDefaultConnection.title": "Sin conexión predeterminada",
|
|
"onboarding.desktopRecovery.noDefaultConnection.description": "Tu conexión predeterminada guardada no pudo encontrarse. Elige cómo deseas conectarte.",
|
|
"onboarding.desktopRecovery.remoteUnreachable.title": "Servidor remoto no disponible",
|
|
"onboarding.desktopRecovery.remoteUnreachable.description": "No se pudo conectar a \"{host}\". Revisa tu conexión de red y verifica la dirección del servidor.",
|
|
"onboarding.desktopRecovery.remoteUnreachable.retry": "Reintentar conexión",
|
|
"onboarding.desktopRecovery.incompatibleServer.title": "Servidor incompatible",
|
|
"onboarding.desktopRecovery.incompatibleServer.description": "El servidor en \"{host}\" no está ejecutando OpenChamber. Verifica que la dirección apunte a un servidor OpenChamber.",
|
|
"onboarding.desktopRecovery.remoteIncompatible.title": "Actualización del servidor requerida",
|
|
"onboarding.desktopRecovery.remoteIncompatible.description": "El servidor OpenChamber en \"{host}\" no es compatible con esta versión de la app. Actualiza OpenChamber en el servidor y vuelve a intentarlo.",
|
|
"onboarding.desktopRecovery.common.useLocal": "Usar Local",
|
|
"onboarding.desktopRecovery.common.useRemote": "Usar remoto",
|
|
"onboarding.desktopRecovery.actions.retrying": "Reintentando…",
|
|
"onboarding.desktopRecovery.actions.retryConnection": "Reintentar conexión",
|
|
"startup.initRecovery.title": "Error al iniciar",
|
|
"startup.initRecovery.description": "OpenChamber no pudo completar la inicialización. Comprueba que el servidor esté en ejecución y vuelve a intentarlo.",
|
|
"startup.initRecovery.retry": "Reintentar",
|
|
"startup.initRecovery.retrying": "Reintentando…",
|
|
"onboarding.desktopRecovery.placeholders.remoteServer": "el servidor remoto",
|
|
"onboarding.desktopRecovery.placeholders.unknownServer": "desconocido",
|
|
"vscodeLayout.title.chat": "Chat",
|
|
"vscodeLayout.title.newSession": "Nueva sesión",
|
|
"vscodeLayout.title.sessions": "Sesiones",
|
|
"vscodeLayout.title.sessionFallback": "Sesión",
|
|
"vscodeLayout.actions.backToSessionsAria": "Volver a sesiones",
|
|
"vscodeLayout.actions.newSessionAria": "Nueva sesión",
|
|
"vscodeLayout.actions.archiveAllAria": "Archivar todas las sesiones",
|
|
"vscodeLayout.actions.archiveAllConfirm": "Archivar todo",
|
|
"vscodeLayout.actions.archiveAllSuccess": "{count} sesión(es) archivada(s)",
|
|
"vscodeLayout.actions.archiveAllError": "Error al archivar {count} sesión(es)",
|
|
"vscodeLayout.actions.cancel": "Cancelar",
|
|
"vscodeLayout.actions.openAgentManagerAria": "Abrir gestor de agentes",
|
|
"vscodeLayout.actions.resizeSessionsSidebarAria": "Ajustar tamaño del panel de sesiones",
|
|
"vscodeLayout.actions.settingsAria": "Configuración",
|
|
"vscodeLayout.quota.title": "Límites de tasa",
|
|
"vscodeLayout.quota.mode.used": "Usado",
|
|
"vscodeLayout.quota.mode.remaining": "Restante",
|
|
"vscodeLayout.quota.lastUpdated": "Última actualización {time}",
|
|
"vscodeLayout.quota.noRateLimitsAvailable": "No hay límites de tasa disponibles.",
|
|
"vscodeLayout.quota.noRateLimitsReported": "No se reportaron límites de tasa.",
|
|
"vscodeLayout.quota.actions.rateLimitsAria": "Límites de tasa",
|
|
"vscodeLayout.quota.actions.showUsedAria": "Mostrar cuota usada",
|
|
"vscodeLayout.quota.actions.showRemainingAria": "Mostrar cuota restante",
|
|
"vscodeLayout.quota.actions.refreshAria": "Actualizar límites de tasa",
|
|
"updateDialog.header.updateAvailable": "Actualización disponible",
|
|
"updateDialog.header.updating": "Actualizando OpenChamber...",
|
|
"updateDialog.changelog.title": "¿Qué hay de nuevo",
|
|
"updateDialog.status.installingUpdate": "Instalando actualización...",
|
|
"updateDialog.status.serverRestarting": "Servidor reiniciándose...",
|
|
"updateDialog.status.waitingForServer": "Esperando al servidor...",
|
|
"updateDialog.status.autoReloadHint": "La página se recargará automáticamente cuando la actualización finalice.",
|
|
"updateDialog.fallback.updateViaTerminal": "O actualiza desde la terminal:",
|
|
"updateDialog.actions.copyCommand": "Copiar comando",
|
|
"updateDialog.actions.copied": "Copiado!",
|
|
"updateDialog.status.downloadingPayload": "Descargando el payload de actualización...",
|
|
"updateDialog.actions.downloadUpdate": "Descargar actualización",
|
|
"updateDialog.status.downloading": "Descargando...",
|
|
"updateDialog.actions.restartToUpdate": "Reiniciar para actualizar",
|
|
"updateDialog.actions.updateNow": "Actualizar ahora",
|
|
"updateDialog.actions.openMobileUpdate": "Abrir actualización",
|
|
"updateDialog.status.updating": "Actualizando...",
|
|
"updateDialog.error.updateFailed": "No se pudo actualizar",
|
|
"updateDialog.error.takingLonger": "La actualización está tardando más de lo esperado. Espera un poco y refresca, o ejecuta: openchamber update",
|
|
"updateDialog.error.signatureRejected": "La actualización descargada fue rechazada: su firma de código no coincide con esta instalación. Normalmente significa que la copia en ejecución no se instaló desde una versión oficial firmada. Instala OpenChamber desde una versión oficial y vuelve a actualizar.",
|
|
"updateDialog.error.updaterDisabled": "El actualizador se detuvo tras una instalación fallida. Cierra OpenChamber, ábrelo de nuevo y reintenta la actualización.",
|
|
"updateDialog.error.restartFailed": "No se pudo reiniciar para instalar la actualización.",
|
|
"updateDialog.error.restartUnavailable": "Instalar la actualización requiere la aplicación de escritorio de OpenChamber.",
|
|
"mobileUpdate.toast.available.title": "Actualización de OpenChamber disponible",
|
|
"mobileUpdate.toast.available.description": "La versión {version} está lista para Android.",
|
|
"mobileUpdate.toast.actions.download": "Descargar",
|
|
"mobileUpdate.toast.actions.dismiss": "Descartar",
|
|
"opencodeUpdate.toast.available.title": "Actualización de OpenCode",
|
|
"opencodeUpdate.toast.available.description": "Versión {version} disponible.",
|
|
"opencodeUpdate.toast.actions.update": "Actualizar",
|
|
"opencodeUpdate.toast.actions.dismiss": "Descartar",
|
|
"opencodeUpdate.toast.actions.reload": "Recargar OpenCode",
|
|
"opencodeUpdate.toast.upgrading.title": "Actualizando OpenCode...",
|
|
"opencodeUpdate.toast.upgrading.description": "Mantén OpenChamber abierto.",
|
|
"opencodeUpdate.toast.updated.title": "OpenCode actualizado",
|
|
"opencodeUpdate.toast.updated.description": "Actualización instalada.",
|
|
"opencodeUpdate.toast.updated.descriptionWithVersion": "Versión {version} instalada.",
|
|
"opencodeUpdate.toast.failed.title": "No se pudo actualizar OpenCode",
|
|
"opencodeUpdate.toast.failed.description": "La actualización de OpenCode falló.",
|
|
"opencodeUpdate.toast.reload.message": "Reiniciando OpenCode...",
|
|
"memoryDebugPanel.title": "Panel de depuración",
|
|
"memoryDebugPanel.tabs.memory": "Memoria",
|
|
"memoryDebugPanel.tabs.streaming": "Transmisión",
|
|
"memoryDebugPanel.tabs.requests": "Solicitudes",
|
|
"memoryDebugPanel.section.sessionsInMemory": "Sesiones en memoria",
|
|
"memoryDebugPanel.section.uiStreamingMetrics": "Métricas de streaming de UI",
|
|
"memoryDebugPanel.section.vscodeBridgeMetrics": "Métricas del puente de VS Code",
|
|
"memoryDebugPanel.section.noUiSamples": "No hay muestras de transmisión de UI aún. Inicia una transmisión y mantén abierto este panel.",
|
|
"memoryDebugPanel.section.noVscodeSamples": "No hay muestras de puente VS Code aún.",
|
|
"memoryDebugPanel.metric.totalMessages": "Mensajes totales",
|
|
"memoryDebugPanel.metric.cachedSessions": "Sesiones en caché",
|
|
"memoryDebugPanel.metric.userMessages": "Mensajes del usuario",
|
|
"memoryDebugPanel.metric.assistantMessages": "Mensajes del asistente",
|
|
"memoryDebugPanel.metric.viewportWindow": "Ventana de visualización",
|
|
"memoryDebugPanel.metric.zombieTimeout": "Timeout zombie",
|
|
"memoryDebugPanel.metric.githubTotalRequests": "Solicitudes totales de GitHub",
|
|
"memoryDebugPanel.metric.metrics": "Métricas",
|
|
"memoryDebugPanel.metric.samples": "Muestras",
|
|
"memoryDebugPanel.metric.lastUpdate": "Última actualización",
|
|
"memoryDebugPanel.metric.uiMetrics": "Métricas de UI",
|
|
"memoryDebugPanel.metric.vscodeMetrics": "Métricas de VS Code",
|
|
"memoryDebugPanel.metric.messageListRenders": "Renderizados de MsgList",
|
|
"memoryDebugPanel.metric.messageListStreamRenders": "Renderizados de MsgList en streaming",
|
|
"memoryDebugPanel.metric.chatMessageRenders": "Renderizados de ChatMessage",
|
|
"memoryDebugPanel.metric.chatMessageStreamRenders": "Renderizados de ChatMessage en streaming",
|
|
"memoryDebugPanel.metric.chatMessageStaticDuringStream": "ChatMessage estático durante streaming",
|
|
"memoryDebugPanel.metric.chatMessageStaticOutsideActiveTurn": "ChatMessage estático fuera del turno activo",
|
|
"memoryDebugPanel.metric.messagesValue": "{count} mensajes",
|
|
"memoryDebugPanel.metric.minutesValue": "{count} minutos",
|
|
"memoryDebugPanel.metric.msgsValue": "{count} mensajes",
|
|
"memoryDebugPanel.metric.roleMsgsValue": "U {user} / A {assistant}",
|
|
"memoryDebugPanel.metric.countValue": "conteo {value}",
|
|
"memoryDebugPanel.metric.avgValue": "prom. {value}",
|
|
"memoryDebugPanel.metric.maxValue": "máx. {value}",
|
|
"memoryDebugPanel.metric.totalValue": "total {value}",
|
|
"memoryDebugPanel.actions.logState": "Registrar estado",
|
|
"memoryDebugPanel.actions.copyJson": "Copiar JSON",
|
|
"memoryDebugPanel.tooltip.logCurrentState": "Registrar el estado actual de memoria en la consola del navegador",
|
|
"memoryDebugPanel.streaming.copy.copied": "JSON de depuración en streaming copiado",
|
|
"memoryDebugPanel.streaming.copy.failed": "No se pudo copiar JSON",
|
|
"memoryDebugPanel.streaming.copy.hint": "Copia exportaciones de métricas de UI como de métricas de VS Code en formato JSON",
|
|
"memoryDebugPanel.requests.inFlight": "En curso",
|
|
"memoryDebugPanel.requests.peak": "Pico",
|
|
"memoryDebugPanel.requests.duration": "Duración",
|
|
"memoryDebugPanel.requests.totalRequests": "Solicitudes totales",
|
|
"memoryDebugPanel.requests.tracking": "Seguimiento",
|
|
"memoryDebugPanel.requests.now": "ahora",
|
|
"memoryDebugPanel.requests.noSamples": "Aún no se han registrado solicitudes. Mantén este panel abierto para registrar la actividad de fetch.",
|
|
"memoryDebugPanel.requests.chartLabel": "Solicitudes fetch en curso a lo largo del tiempo, pico {peak}",
|
|
"memoryDebugPanel.requests.windowHint": "últimos {seconds}s",
|
|
"memoryDebugPanel.requests.percentileChartLabel": "Percentiles de antigüedad de solicitudes en curso (p50, p90, p99, máx) a lo largo del tiempo",
|
|
"memoryDebugPanel.common.idle": "inactivo",
|
|
"memoryDebugPanel.common.live": "en vivo",
|
|
"memoryDebugPanel.common.notAvailable": "n/a",
|
|
"memoryDebugPanel.common.untitled": "Sin título",
|
|
"directoryTree.field.newDirectoryPlaceholder": "new_directory",
|
|
"textarea.resizeHandleAria": "Ajustar textarea",
|
|
"sidebar.resize.leftPanelAria": "Ajustar panel izquierdo",
|
|
"sidebar.resize.rightPanelAria": "Ajustar panel derecho",
|
|
"mainLayout.mobile.closeDrawerAria": "Cerrar drawer",
|
|
"sortableTabsStrip.aria.tabs": "Pestañas",
|
|
"openChamberLogo.aria.logo": "Logo de OpenChamber",
|
|
"markdownRenderer.code.actions.copyTitle": "Copiar código",
|
|
"markdownRenderer.code.actions.copiedTitle": "Copiado",
|
|
"markdownRenderer.table.actions.copyTitle": "Copiar tabla",
|
|
"markdownRenderer.code.actions.enableWrapTitle": "Activar ajuste de línea",
|
|
"markdownRenderer.code.actions.disableWrapTitle": "Desactivar ajuste de línea",
|
|
"markdownRenderer.table.actions.downloadTitle": "Descargar tabla",
|
|
"markdownRenderer.table.toast.downloadedAsFormat": "Tabla descargada como {format}",
|
|
"markdownRenderer.mermaid.actions.copyTitle": "Copiar",
|
|
"markdownRenderer.mermaid.actions.copySourceTitle": "Copiar fuente",
|
|
"markdownRenderer.mermaid.actions.downloadSvgTitle": "Descargar SVG",
|
|
"markdownRenderer.mermaid.actions.zoomInTitle": "Acercar",
|
|
"markdownRenderer.mermaid.actions.zoomOutTitle": "Alejar",
|
|
"markdownRenderer.mermaid.actions.resetViewTitle": "Restablecer vista",
|
|
"markdownRenderer.mermaid.toast.downloadFailed": "No se pudo descargar el diagrama",
|
|
"contextPanel.preview.title": "Vista previa",
|
|
"contextPanel.preview.description": "Usa Acciones del proyecto o el botón Preview del terminal para abrir una vista previa.",
|
|
"contextPanel.preview.startPreview": "Iniciar vista previa",
|
|
"contextPanel.preview.starting": "Iniciando...",
|
|
"contextPanel.preview.noDevServer": "No se encontro un comando de servidor de desarrollo. Configura una accion del proyecto o anade un script \"dev\" a package.json.",
|
|
"contextPanel.preview.startFailed": "Fallo al iniciar el servidor de vista previa.",
|
|
"contextPanel.preview.serverExited": "El servidor de desarrollo se cerro inesperadamente.",
|
|
"contextPanel.preview.noUrlDetected": "El servidor de desarrollo se inicio, pero no se detecto ningun URL en su salida. Abre la pestaña de terminal de vista previa para ver los registros.",
|
|
"contextPanel.preview.serverExitedWithLog": "El servidor de desarrollo terminó inesperadamente. Última salida:\n\n{log}",
|
|
"contextPanel.preview.noUrlDetectedWithLog": "El servidor de desarrollo no respondió. Última salida:\n\n{log}",
|
|
"contextPanel.preview.startingServer": "Iniciando servidor de desarrollo...",
|
|
"contextPanel.preview.startingServerHint": "Esperando a que el servidor acepte conexiones.",
|
|
"contextPanel.preview.console.open": "Abrir consola de vista previa",
|
|
"contextPanel.preview.console.waiting": "Esperando la consola de vista previa",
|
|
"contextPanel.preview.console.title": "Consola de vista previa",
|
|
"contextPanel.preview.console.attach": "Adjuntar",
|
|
"contextPanel.preview.console.copy": "Copiar",
|
|
"contextPanel.preview.console.clear": "Limpiar",
|
|
"contextPanel.preview.console.empty": "Aún no hay eventos de consola de vista previa.",
|
|
"contextPanel.preview.console.noFilteredEvents": "Ningún evento coincide con este filtro.",
|
|
"contextPanel.preview.console.runtimeError": "Error de ejecución",
|
|
"contextPanel.preview.console.copied": "Consola de vista previa copiada",
|
|
"contextPanel.preview.console.copyFailed": "No se pudo copiar la consola de vista previa",
|
|
"contextPanel.preview.console.attached": "Consola de vista previa adjuntada al chat",
|
|
"contextPanel.preview.console.attachNoSession": "Abre una sesión de chat antes de adjuntar logs de vista previa",
|
|
"contextPanel.preview.console.attachAnnotation": "Estos son logs de la consola del navegador del servidor de desarrollo que se ejecuta para este proyecto.",
|
|
"contextPanel.preview.inspect.toggle": "Inspeccionar elemento de vista previa",
|
|
"contextPanel.preview.inspect.attached": "Anotación de vista previa adjuntada al chat",
|
|
"contextPanel.preview.inspect.attachNoSession": "Abre una sesión de chat antes de adjuntar anotaciones de vista previa",
|
|
"contextPanel.preview.inspect.attachAnnotation": "Este es un elemento DOM seleccionado de la vista previa integrada.",
|
|
"contextPanel.preview.inspect.attachAnnotationWithScreenshot": "Este es un elemento DOM seleccionado de la vista previa integrada. Se adjunta una captura del área visible de la vista previa con el elemento resaltado.",
|
|
"contextPanel.preview.console.filter.all": "Todo",
|
|
"contextPanel.preview.console.filter.errors": "Errores",
|
|
"contextPanel.preview.console.filter.warnings": "Advertencias",
|
|
"contextPanel.preview.console.filter.logs": "Registros",
|
|
"common.date.today": "Today",
|
|
"common.date.yesterday": "Yesterday",
|
|
"common.date.yesterdayWithTime": "Yesterday {time}",
|
|
"common.relative.justNow": "Just now",
|
|
"common.relative.minutesAgoShort": "{count}min ago",
|
|
"common.relative.hoursAgoShort": "{count}h ago",
|
|
"common.relative.daysAgoShort": "{count}d ago",
|
|
"common.relative.weeksAgoShort": "{count}w ago",
|
|
"common.relative.yearsAgoShort": "{count}y ago",
|
|
"common.relative.daysAgoCompact": "{count}d ago",
|
|
"common.relative.weeksAgoCompact": "{count}w ago",
|
|
"common.relative.yearsAgoCompact": "{count}y ago",
|
|
"common.duration.secondsCompact": "{seconds}s",
|
|
"common.duration.minutesSecondsCompact": "{minutes}m {seconds}s",
|
|
"common.duration.hoursMinutesCompact": "{hours}h {minutes}m",
|
|
"contextFileOpen.failure.tooLarge": "File is too large to open (>{count} lines)",
|
|
"contextFileOpen.failure.missing": "File not found",
|
|
"contextFileOpen.failure.unreadable": "Failed to open file",
|
|
"quota.window.5h": "5-Hour",
|
|
"quota.window.7d": "7-Day Limit",
|
|
"quota.window.extraUsage": "Uso adicional",
|
|
"quota.window.weekly": "Semanal",
|
|
"quota.window.daily": "Daily",
|
|
"quota.window.monthly": "Mensual",
|
|
"quota.window.credits": "Credits",
|
|
"quota.window.creditsBalance": "Credits Balance",
|
|
"quota.window.monthlyCredits": "Créditos mensuales",
|
|
"quota.window.purchasedCredits": "Créditos comprados",
|
|
"quota.window.freeCredits": "Créditos gratuitos",
|
|
"quota.window.billingCycle": "Billing Cycle",
|
|
"quota.window.auto": "Auto",
|
|
"quota.window.api": "API",
|
|
"quota.window.planLimit": "Plan Limit",
|
|
"quota.window.onDemand": "On-demand",
|
|
"quota.window.session": "Session",
|
|
"quota.window.premium": "Premium Interactions",
|
|
"quota.window.chat": "Chat Requests",
|
|
"quota.window.completions": "Completions",
|
|
"quota.window.premiumInteractions": "Créditos de IA",
|
|
'chat.workStatus.ariaLabel': 'Estado del trabajo',
|
|
'chat.workStatus.context.label': 'Contexto',
|
|
'chat.workStatus.cost.breakdown': "Sesión {session} · Subagentes {subagents}",
|
|
'chat.workStatus.git.changedFileSingle': '{count} archivo modificado',
|
|
'chat.workStatus.git.changedFilePlural': '{count} archivos modificados',
|
|
'chat.workStatus.pr.untitled': 'Pull request sin título',
|
|
'chat.workStatus.pr.draft': 'Borrador',
|
|
'chat.workStatus.pr.checks': 'Comprobaciones',
|
|
'chat.workStatus.pr.checksFailed': '{count} fallaron',
|
|
'chat.workStatus.pr.checksPending': '{count} en curso',
|
|
'chat.workStatus.pr.checksPassed': '{count} correctas',
|
|
'chat.workStatus.attention.merge': 'Fusión en curso',
|
|
'chat.workStatus.attention.rebase': 'Rebase en curso',
|
|
'chat.workStatus.attention.cherryPick': 'Cherry-pick en curso',
|
|
'chat.workStatus.attention.revert': 'Reversión en curso',
|
|
'chat.workStatus.attention.bisect': 'Bisect en curso',
|
|
'chat.workStatus.subagent.done': 'Listo',
|
|
'chat.workStatus.subagent.untitled': 'Subagente',
|
|
'chat.workStatus.mcp.toggle': 'Alternar {name}',
|
|
'chat.workStatus.mcp.needsAuth': 'Iniciar sesión',
|
|
'chat.workStatus.mcp.failed': 'Falló',
|
|
'chat.workStatus.pinned.unavailable': 'Mensaje fijado',
|
|
'chat.workStatus.section.session': 'Sesión',
|
|
'chat.workStatus.section.project': 'Proyecto',
|
|
'chat.workStatus.section.subagents': 'Subagentes',
|
|
'chat.workStatus.section.mcp': 'MCP',
|
|
'chat.workStatus.section.pinned': 'Mensajes fijados',
|
|
'chat.workStatus.section.tasks': 'Tareas',
|
|
'chat.workStatus.subagent.working': 'está trabajando',
|
|
'chat.workStatus.subagent.needsPermission': 'necesita permiso',
|
|
'chat.workStatus.subagent.askedQuestion': 'hizo una pregunta',
|
|
'chat.workStatus.section.contextBreakdown': 'Fuentes de contexto',
|
|
'chat.workStatus.breakdown.skills': 'Habilidades',
|
|
'chat.workStatus.breakdown.pinnedNote': 'nota',
|
|
'chat.workStatus.breakdown.unpin': 'Dejar de fijar al contexto',
|
|
'chat.workStatus.breakdown.pinnedPlan': 'plan',
|
|
'chat.workStatus.breakdown.memory': 'Memoria del agente',
|
|
'chat.workStatus.breakdown.pinnedKnowledgeSingle': '{count} fijado',
|
|
'chat.workStatus.breakdown.pinnedKnowledgePlural': '{count} fijados',
|
|
'chat.workStatus.breakdown.mcp': 'Servidores MCP',
|
|
'chat.workStatus.action.openChanges': 'Abrir cambios',
|
|
'chat.workStatus.action.openGit': 'Abrir panel de Git',
|
|
'chat.workStatus.action.openPr': 'Abrir pull request',
|
|
'chat.workStatus.action.openSubagent': 'Abrir {name}',
|
|
'chat.workStatus.section.usage': 'Uso',
|
|
'chat.workStatus.section.telemetry': 'Estadísticas del turno',
|
|
'chat.workStatus.telemetry.responseSpeed': 'Respuesta',
|
|
'chat.workStatus.telemetry.responseSpeedDescription': 'La velocidad a la que llegó el texto final. Excluye la espera inicial, el razonamiento y las llamadas anteriores a herramientas. Es una estimación basada en las marcas de tiempo del texto, no una medición del proveedor.',
|
|
'chat.workStatus.telemetry.speed': 'Solicitud',
|
|
'chat.workStatus.telemetry.llmDuration': 'Modelo',
|
|
'chat.workStatus.telemetry.llmDurationDescription': 'Tiempo de todos los pasos del modelo, incluida la espera de respuestas. Se resta la ejecución de herramientas. No es solo el tiempo de generación de texto.',
|
|
'chat.workStatus.telemetry.toolDuration': 'Herramientas',
|
|
'chat.workStatus.telemetry.toolDurationDescription': 'Tiempo de ejecución de herramientas, incluidas las llamadas fallidas. Las herramientas que se ejecutan a la vez cuentan una sola vez.',
|
|
'chat.workStatus.telemetry.ttft': 'TTFT medio',
|
|
'chat.workStatus.telemetry.ttftDescription': 'Espera media hasta el primer texto o razonamiento de cada paso. Se oculta si falta la marca de inicio de algún paso, algo habitual en pasos que solo llaman a herramientas.',
|
|
'chat.workStatus.telemetry.steps': 'Pasos',
|
|
'chat.workStatus.telemetry.stepsDescription': 'Cuántas veces se llamó al modelo para este prompt. Leer el resultado de una herramienta y decidir qué hacer suele requerir otro paso.',
|
|
'chat.workStatus.telemetry.tokens': 'Tokens',
|
|
'chat.workStatus.telemetry.tokens.inOut': '{input} ↑ · {output} ↓',
|
|
'chat.workStatus.telemetry.speedDescription': 'Tokens generados en todos los pasos, incluido el razonamiento, divididos por el tiempo sin ejecución de herramientas. La espera del modelo sí cuenta, por lo que muchas llamadas cortas pueden reducir este valor.',
|
|
'chat.workStatus.telemetry.tokensDescription': '↑ Entrada sin tokens en caché: {input}. ↓ Generados: {output} para texto y llamadas a herramientas, más {reasoning} de razonamiento. Totales de todos los pasos de este prompt.',
|
|
'chat.workStatus.telemetry.cacheHit': 'Caché',
|
|
'chat.workStatus.telemetry.cacheHitDescription': 'Proporción de tokens de entrada reutilizados de la caché del prompt en todos los pasos. Reutilizar el contexto puede reducir el costo y la espera, pero no es una medida de velocidad.',
|
|
'chat.workStatus.telemetry.cost': 'Costo',
|
|
'chat.workStatus.telemetry.costDescription': 'Costo comunicado por el proveedor para todos los pasos de este prompt, en dólares estadounidenses. No incluye sesiones separadas de subagentes. Cero puede indicar un modelo gratuito o un proveedor que no informa del cobro.',
|
|
'chat.workStatus.goal.open': 'Gestionar objetivo',
|
|
'chat.workStatus.goal.pause': 'Pausar',
|
|
'chat.workStatus.goal.resume': 'Reanudar',
|
|
'chat.workStatus.goal.updateFailed': 'No se pudo actualizar el objetivo',
|
|
'chat.workStatus.pinned.unpin': 'Dejar de fijar',
|
|
'chat.workStatus.pinned.reveal': 'Ir al mensaje',
|
|
'chat.workStatus.pinned.unpinFailed': 'No se pudo dejar de fijar el mensaje',
|
|
'chat.workStatus.action.openContext': 'Abrir panel de contexto',
|
|
'chat.workStatus.section.linkedIssues': 'Vinculados',
|
|
'chat.workStatus.linkedIssues.open': 'Abrir #{number} en GitHub',
|
|
'chat.workStatus.linkedIssues.unlink': 'Quitar vínculo',
|
|
'chat.workStatus.linkedIssues.unlinkFailed': 'No se pudo quitar el vínculo',
|
|
'chat.workStatus.linkedIssues.link': 'Vincular a la sesión',
|
|
'chat.workStatus.linkedIssues.linkFailed': 'No se pudo vincular',
|
|
'chat.workStatus.breakdown.issueCountSingle': '{count} incidencia',
|
|
'chat.workStatus.breakdown.issueCountPlural': '{count} incidencias',
|
|
'chat.workStatus.breakdown.prCountSingle': '{count} PR',
|
|
'chat.workStatus.breakdown.prCountPlural': '{count} PR',
|
|
'chat.workStatus.breakdown.skillCountSingle': '{count} habilidad',
|
|
'chat.workStatus.breakdown.skillCountPlural': '{count} habilidades',
|
|
'chat.workStatus.breakdown.mcpCountSingle': '{count} MCP',
|
|
'chat.workStatus.breakdown.mcpCountPlural': '{count} MCP',
|
|
'chat.workStatus.sections.open': 'Elegir secciones',
|
|
'chat.workStatus.sections.dialogTitle': 'Secciones del panel',
|
|
'chat.workStatus.sections.dialogDescription': 'Elige qué muestra el panel de estado. Las secciones ocultas conservan sus datos: solo no aparecen en el panel.',
|
|
'chat.workStatus.sections.allHidden': 'Ninguna sección seleccionada',
|
|
'chat.workStatus.sections.showAll': 'Mostrar todas',
|
|
'chat.workStatus.sections.noneWarning': 'El panel aparecerá vacío.',
|
|
'header.workStatusPanel.toggleAria': 'Alternar panel de estado',
|
|
'header.workStatusPanel.hide': 'Ocultar estado del trabajo',
|
|
'header.workStatusPanel.show': 'Mostrar estado del trabajo',
|
|
'chat.workStatus.mcp.authorizeOpenFailed': 'No se pudo abrir la página de autorización',
|
|
'chat.workStatus.mcp.authorizeFailed': 'Error de autorización',
|
|
'mcpDropdown.toast.authorizeOpenFailed': 'No se pudo abrir la página de autorización',
|
|
'mcpDropdown.toast.authorizeFailed': 'Error de autorización',
|
|
'header.services.tooltip.currentInstance': 'Instancia actual: {current} ({toggle})',
|
|
'header.workStatusPanel.showOverlay': 'Mostrar estado sobre el chat',
|
|
'settings.mcp.page.connection.title': 'Cómo conectarse',
|
|
'settings.mcp.page.connection.description': 'Pega el comando que lo inicia o el enlace a un servidor alojado.',
|
|
'settings.mcp.page.registration.title': 'Este servidor necesita su propia app',
|
|
'settings.mcp.page.registration.description': 'No entrega credenciales automáticamente. Crea una app en los ajustes del servicio, pega sus datos aquí e inicia sesión.',
|
|
'settings.mcp.page.registration.callbackLabel': 'Da esta dirección al servicio',
|
|
'settings.mcp.page.registration.clientId': 'ID de la app',
|
|
'settings.mcp.page.registration.clientSecret': 'Secreto de la app',
|
|
'settings.mcp.page.registration.afterSaving': 'Guarda y luego pulsa Autorizar.',
|
|
'settings.mcp.page.toast.copiedCallbackUrl': 'Dirección copiada',
|
|
'settings.mcp.page.toast.clipboardWriteFailed': 'No se pudo copiar al portapapeles',
|
|
'settings.mcp.page.scope.everywhere': 'Disponible en todos los proyectos',
|
|
'settings.mcp.page.scope.thisProject': 'Solo en este proyecto',
|
|
'settings.mcp.page.env.description': 'Valores que el servidor necesita, como una clave de API.',
|
|
'settings.mcp.page.connection.kindCommand': 'Comando',
|
|
'settings.mcp.page.connection.kindLink': 'Enlace',
|
|
'settings.mcp.page.connection.hintCommand': 'Se ejecuta en este equipo. Pega un comando completo y se dividirá en un argumento por línea.',
|
|
'settings.mcp.page.connection.hintLink': 'Se conecta a un servidor alojado por otra persona. Pega su dirección https.',
|
|
};
|