Files
openchamber/packages/ui/src/lib/i18n/messages/es.ts
T
Islam NoflandBohdan Triapitsyn 21253d7fc2 feat: fork-aware issue/PR listing & OpenCode startup loading indicator (#1061)
* Add design spec: OpenCode readiness loading indicator

* Add implementation plan: OpenCode readiness loading indicator

* feat: add useOpenCodeReadiness hook

* feat: add i18n keys for common.loading

* feat: add loading state to ModelSelector

* feat: add loading state to AgentSelector

* feat: add loading state to ModelControls chat selectors

* update package-lock

* feat(github): add shared fork detection utility

* feat(github): make issue listing fork-aware

* feat(github): make PR listing fork-aware

* feat(types): add sourceRepo to issue/PR summary types

* feat(ui): add source badges to GitHub integration dialog

* feat(ui): add source badges to issue/PR picker dialogs

* feat(github): pass headRemote in PR creation for fork support

* feat(ui): add source→target label in PR tab for fork workflows

* fix(github): allow PR section on base branch when upstream remote exists

* fix(github): show PR section on any branch including main for fork→upstream PRs

* fix(github): allow PullRequestSection to render on base branch when upstream remote exists

* feat(github): auto-detect upstream repo for fork→upstream PR creation

- Add GET /api/github/repo/upstream endpoint to discover fork's upstream
- Fix PullRequestSection canShow to allow PR creation on base branch when repo is a fork
- Add virtual upstream target in remote dropdown (no explicit upstream remote needed)
- Add targetRepo parameter to /api/github/pr/create for direct upstream targeting
- Add repoUpstream() API client method and GitHubRepoUpstreamResult type

* feat(github): auto-detect upstream repo for fork→upstream PR creation

- Add GET /api/github/repo/upstream endpoint to discover fork's upstream
- Fix PullRequestSection canShow to allow PR creation on base branch when repo is a fork
- Add virtual upstream target in remote dropdown (no explicit upstream remote needed)
- Add targetRepo parameter to /api/github/pr/create for direct upstream targeting
- Add repoUpstream() API client method and GitHubRepoUpstreamResult type

* fix: complete fork→upstream PR workflow

- Server: return defaultBranch from /api/github/repo/upstream endpoint
- Server: fix cross-repo head ref construction (compare repos, not remote names)
- Server: filterActiveRemoteBranches checks all remotes, not just origin
- UI: set targetBaseBranch to upstream's default branch when using detected upstream
- UI: include all remote branches in base branch dropdown when using detected upstream
- UI: skip base===head check for cross-repo PRs (same branch name on different repos is valid)
- Types: add defaultBranch to GitHubRepoUpstreamResult

* chore: delete superpowers folder

* feat: add (local)/(remote) labels to PR branch display and adapt Repository button to selected remote

* feat: Repository button adapts to selected remote (upstream vs origin)

* fix: complete fork→upstream PR feature gaps

Server:
- Extend /api/github/repo/upstream to return defaultBranchSha and remoteName
- Reuse headRepo result instead of redundant resolveGitHubRepoFromDirectory call
- Return clear error when headRepo is null (invalid GitHub URL)

UI:
- Add upstream's default branch to availableBaseBranches when using detected upstream
- Use upstream's default branch SHA in git log for generate description (fixes 'No commits found in range main...main')
- Show qualified names (owner/repo · branch) in base branch dropdown when using detected upstream

Types:
- Add defaultBranchSha and remoteName to GitHubRepoUpstreamResult

* fix: move detectedUpstream state before availableBaseBranches to fix temporal dead zone

* fix: fetch upstream branches from GitHub API for base branch dropdown

- Add GET /api/github/repo/branches endpoint to fetch branches via Octokit
- Add repoBranches() to GitHub API client and interface
- Fetch upstream branches on detection and store in upstreamBranches state
- Include upstreamBranches in availableBaseBranches when using detected upstream
- Re-add availableBaseBranches memo and auto-correction effect that were lost
- Remove unnecessary qualified names from dropdown (upstream is already selected)

* fix: restore prStatusKey and statusEntry declarations lost during refactor

* fix: cleanly re-apply all fork→upstream PR UI changes

Restored PullRequestSection.tsx from clean base and re-applied:
- Expand detectedUpstream type with defaultBranch, defaultBranchSha, remoteName
- Add upstreamBranches state and fetch on upstream detection
- Include upstream branches in availableBaseBranches when using detected upstream
- Use upstream default branch SHA in generate description (fixes 'No commits found')
- Adapt Repository button URL to selected remote
- Add (local)/(remote)/(upstream) labels to branch display

* fix: move detectedUpstream/upstreamBranches before availableBaseBranches to fix TDZ

* style: add pill badge styling to upstream repo source labels

* fix: don't cache error PR status responses, allow force-bypass of server cache

* fix: resolve PR status cache bugs, stale directory fallback, and upstream re-detection

* fix: keep collapse button visible when scrolling long user messages

- Collapse button now sticks to top of scrollable user message content instead of scrolling away

* fix: checkbox focus ring blends into sidebar background

* fix: polish fork PR follow-ups

* fix: remove user message collapse artifact

* fix: tighten fork PR internals

* fix: check all remotes for fork PR status

* fix: recover sidebar PR status misses

---------

Signed-off-by: Islam Nofl <islamnofl.official@gmail.com>
Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
2026-04-29 12:03:39 +03:00

2096 lines
145 KiB
TypeScript

import type { I18nKey } from './en';
import { settingsDict } from './es.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
"common.loading": "Cargando...",
"common.unavailable": "No disponible",
"common.language.english": "Inglés",
"common.language.simplifiedChinese": "Chino (simplificado)",
"common.language.ukrainian": "Ucraniano",
"common.language.spanish": "Español",
"common.language.brazilianPortuguese": "Portugués brasileño",
"common.language.korean": "Coreano",
"common.revealPath.finder": "Mostrar en Finder",
"common.revealPath.fileExplorer": "Abrir en File Explorer",
"common.revealPath.fileManager": "Abrir en gestor de archivos",
"layout.mainTab.chat": "Chat",
"layout.mainTab.plan": "Plan",
"layout.mainTab.diff": "Diff",
"layout.mainTab.files": "Archivos",
"layout.mainTab.terminal": "Terminal",
"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.runFailed": "No se pudo ejecutar la tarea",
"sessions.scheduledTasks.dialog.confirm.deleteTask": "Eliminar tarea programada \"{taskName}\"?",
"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.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.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.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",
"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.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.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-{max} 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",
"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.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.collapseAll": "Colapsar todo",
"sessions.sidebar.header.displayMode.expandAll": "Expandir todo",
"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.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.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.newDraftSession": "Nueva sesión de borrador",
"sessions.sidebar.session.menu.rename": "Cambiar nombre",
"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.openInSidePanel": "Abrir en panel lateral",
"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.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.permissionRequired": "Permiso requerido",
"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": "Puedes copiar el enlace desde el menú.",
"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.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.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 worktree",
"sessions.sidebar.sessionDialogs.worktree.removedTitle": "Worktree 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.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": "Confirma la operación sobre",
"gitView.branch.empty": "No se encontraron ramas.",
"gitView.branch.localBranches": "Ramas locales",
"gitView.branch.mergeDescription": "Hacer merge de la rama seleccionada",
"gitView.branch.mergeRebase": "Merge/Rebase",
"gitView.branch.mergeRebaseTooltip": "Merge o rebase con 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": "Hacer rebase de la rama seleccionada",
"gitView.branch.rebasingInProgress": "Rebase en progreso",
"gitView.branch.remoteBranches": "Ramas remotas",
"gitView.branch.renameTitle": "Cambiar 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": "Confirma la operación sobre",
"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.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.title": "Cambios",
"gitView.changes.toggleDirectorySelectionAria": "Alternar selección de directorio",
"gitView.commit.addGitmoji": "Añadir gitmoji",
"gitView.commit.aiHighlights.insertAria": "Insertar",
"gitView.commit.aiHighlights.insertTooltip": "Insertar",
"gitView.commit.aiHighlights.title": "Título",
"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": "Push",
"gitView.commit.pushAria": "Push",
"gitView.commit.pushing": "Enviando...",
"gitView.commit.selectFilesHint": "Selecciona archivos en Cambios para habilitar el commit.",
"gitView.commit.title": "Commit",
"gitView.common.cancel": "Cancelar",
"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.removeRemoteAria": "Eliminar remoto",
"gitView.header.removeRemoteTitle": "Eliminar remoto",
"gitView.history.binary": "Binario",
"gitView.history.commitsPlaceholder": "Buscar commits...",
"gitView.history.copySha": "Copiar SHA",
"gitView.history.loadingFiles": "Cargando archivos...",
"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.title": "Historial",
"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": "Operación en progreso",
"gitView.operation.merge": "Merge",
"gitView.operation.mergeInProgressWithHead": "Merge en progreso",
"gitView.operation.mergingMessage": "Fusionando...",
"gitView.operation.rebase": "Rebase",
"gitView.operation.rebaseInProgress": "Rebase en progreso",
"gitView.operation.rebasingOnto": "Haciendo rebase",
"gitView.operation.resolveConflictsHint": "Resuelve los conflictos para continuar.",
"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.sync.fetch": "Fetch",
"gitView.sync.fetchTooltip": "Fetch del remoto",
"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.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.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": "Resolver checks fallidos",
"gitView.pr.actions.resolveFailedChecksAria": "Enviar checks fallidos al agente",
"gitView.pr.actions.savePr": "Guardar PR",
"gitView.pr.actions.savePrAria": "Guardar cambios de la PR",
"gitView.pr.actions.sendCommentToAgent": "Enviar comentario al agente",
"gitView.pr.actions.sendCommentToAgentAria": "Enviar este comentario al agente",
"gitView.pr.actions.sendToAgent": "Enviar al agente",
"gitView.pr.actions.shareComments": "Compartir comentarios",
"gitView.pr.actions.shareCommentsAria": "Enviar comentarios de la PR al agente",
"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.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.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.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.title": "PR",
"gitView.tabs.commit": "Commit",
"gitView.tabs.pr": "PR",
"gitView.tabs.update": "Actualizar",
"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 al upstream",
"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.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.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": "Diff",
"contextPanel.mode.plan": "Plan",
"contextPanel.mode.context": "Contexto",
"contextPanel.tab.closeTabAria": "Cerrar pestaña {label}",
"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}",
"sidebarFilesTree.menu.rename": "Cambiar nombre",
"sidebarFilesTree.menu.copyPath": "Copiar ruta",
"sidebarFilesTree.menu.save": "Guardar",
"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.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.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.saveNowTitle": "Guardar ahora ({shortcut}) - se guarda automáticamente después de 1.5 segundos",
"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.editor.goToLine": "Ir a línea",
"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.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.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",
"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.usage": "Uso",
"contextUsage.tooltip.usedTokens": "Tokens usados: {tokens}",
"contextUsage.tooltip.contextLimit": "Límite de contexto: {tokens}",
"contextUsage.tooltip.outputLimit": "Límite de salida: {tokens}",
"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.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.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.mode.single.label": "Archivo único",
"diffView.mode.single.description": "Mostrar un archivo a la vez",
"diffView.mode.stacked.label": "Todos los archivos",
"diffView.mode.stacked.description": "Muestra todos los archivos modificados en una sola vista.",
"diffView.selector.selectFile": "Seleccionar archivo",
"diffView.selector.viewMode": "Modo de visualización",
"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.failedToLoadDiff": "No se pudo cargar la diferencia",
"diffView.state.loadingDiff": "Cargando diff...",
"diffView.state.loadingChanges": "Cargando cambios...",
"diffView.summary.changedFilesSingle": "{count} archivo modificado",
"diffView.summary.changedFilesPlural": "{count} archivos modificados",
"diffView.actions.retry": "Volver a intentar",
"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",
"rightSidebar.contextNotesTodo.plan.defaultTitle": "Plan",
"rightSidebar.contextNotesTodo.empty.selectProject": "Selecciona un proyecto para añadir notas y tareas pendientes.",
"rightSidebar.contextNotesTodo.notes.title": "Notas rápidas — {project}",
"rightSidebar.contextNotesTodo.notes.placeholder": "Captura contexto, recordatorios o enlaces",
"rightSidebar.contextNotesTodo.todo.title": "Tareas pendientes",
"rightSidebar.contextNotesTodo.todo.itemsSingle": "{count} elemento",
"rightSidebar.contextNotesTodo.todo.itemsPlural": "{count} elementos",
"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.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.title": "Planes",
"rightSidebar.contextNotesTodo.plans.filesSingle": "{count} archivo",
"rightSidebar.contextNotesTodo.plans.filesPlural": "{count} archivos",
"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.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... (Cmd+Enter para guardar)",
"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.services.openWithCurrent": "Abrir instancia, uso y MCP (actual: {current})",
"header.services.open": "Abrir servicios, uso y MCP",
"header.services.tooltip.currentInstanceWithShortcuts": "Instancia actual: {current} ({toggle}; siguiente pestaña {nextTab})",
"header.services.tooltip.servicesWithShortcuts": "Servicios ({toggle}; siguiente pestaña {nextTab})",
"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.used": "Usado",
"header.services.remaining": "Restante",
"header.services.modelFamily.other": "Otro",
"header.actions.openPlanAria": "Abrir plan",
"header.actions.planWithShortcut": "Plan ({shortcut})",
"header.actions.terminalPanelWithShortcut": "Panel de terminal ({shortcut})",
"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.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.bottomDock.resizeAria": "Ajustar tamaño del panel de terminal",
"terminalView.bottomDock.restoreTitle": "Restaurar altura del panel de terminal",
"terminalView.bottomDock.restoreAria": "Restaurar altura del panel de terminal",
"terminalView.bottomDock.expandTitle": "Expandir panel de terminal",
"terminalView.bottomDock.expandAria": "Expandir panel de terminal",
"terminalView.bottomDock.closeTitle": "Cerrar panel de terminal",
"terminalView.bottomDock.closeAria": "Cerrar panel de terminal",
"terminalView.viewport.inputAria": "Entrada de 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.cancel": "Cancelar",
"directoryExplorerDialog.actions.openingFinder": "Abriendo...",
"directoryExplorerDialog.actions.openInFinder": "Abrir en Finder",
"directoryExplorerDialog.actions.adding": "Añadiendo...",
"directoryExplorerDialog.actions.addProject": "Añadir proyecto",
"directoryExplorerDialog.actions.createAndAdd": "Crear y añadir",
"directoryExplorerDialog.actions.alreadyAdded": "Ya añadido",
"directoryExplorerDialog.browse.directories": "Directorios",
"directoryExplorerDialog.browse.loading": "Cargando directorios...",
"directoryExplorerDialog.browse.empty": "No hay directorios coincidentes.",
"directoryExplorerDialog.browse.parentDirectory": "Directorio padre",
"directoryExplorerDialog.browse.addedBadge": "Añadido",
"directoryExplorerDialog.footer.navigate": "Navegar",
"directoryExplorerDialog.footer.select": "Seleccionar",
"directoryExplorerDialog.footer.add": "Añadir",
"directoryExplorerDialog.footer.close": "Cerrar",
"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.failedToAddProject": "No se pudo añadir el proyecto",
"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.tagline": "Programar con agentes en un espacio de trabajo cuidado.",
"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.quickOpenFile": "Abrir archivo rápido",
"helpDialog.item.showKeyboardShortcuts": "Mostrar atajos de teclado (este diálogo)",
"helpDialog.item.toggleSessionSidebar": "Mostrar u ocultar barra lateral de sesión",
"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.abortActiveRun": "Detener ejecución activa (doble presionar)",
"helpDialog.item.toggleRightSidebar": "Mostrar u ocultar barra lateral derecha",
"helpDialog.item.openRightSidebarGitTab": "Abrir pestaña de Git en barra lateral derecha",
"helpDialog.item.openRightSidebarFilesTab": "Abrir pestaña de archivos en barra lateral derecha",
"helpDialog.item.cycleRightSidebarTab": "Cambiar pestaña de la barra lateral derecha",
"helpDialog.item.toggleTerminalDock": "Mostrar u ocultar dock de terminal",
"helpDialog.item.toggleTerminalExpanded": "Expandir o contraer terminal",
"helpDialog.item.togglePlanContextPanel": "Alternar panel de contexto del plan",
"helpDialog.item.cycleTheme": "Cambiar tema (Claro → Oscuro → Sistema)",
"helpDialog.item.switchProject": "Cambiar proyecto",
"helpDialog.item.toggleServicesMenu": "Mostrar u ocultar menú de servicios",
"helpDialog.item.cycleServicesTab": "Cambiar pestaña 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.themeCycling": "El ciclo de tema recuerda tu preferencia entre sesiones",
"header.actions.rightSidebarWithShortcut": "Barra lateral derecha ({shortcut})",
"header.actions.toggleRightSidebarAria": "Mostrar u ocultar barra lateral derecha",
"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 por título o #123, o pegar la URL del issue",
"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 por título o #123, o pegar la URL de la PR",
"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.otherLocalBranches": "Otras ramas locales",
"session.newWorktree.otherRemoteBranches": "Otras 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.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 issues o introducir #123...",
"session.githubIntegration.search.prsPlaceholder": "Buscar PRs o introducir #456...",
"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.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.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.scrollToBottom.aria": "Ir al final",
"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.summary.activeLeft": "{active} activas · {left} restantes",
"chat.statusRow.aborted": "Interrumpido",
"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.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": "Revisar los cambios actuales del espacio de trabajo solo para problemas de alto impacto.",
"chat.commandAutocomplete.badge.skill": "habilidad",
"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.removeAria": "Eliminar de la cola",
"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.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.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": "Se añadió la información destilada a notas",
"chat.textSelection.actions.addToChat": "Añadir al chat",
"chat.textSelection.actions.newSession": "Nueva sesión",
"chat.textSelection.actions.copy": "Copiar",
"chat.textSelection.actions.addToNotes": "Añadir a las notas",
"chat.textSelection.title.addToCurrentChat": "Añadir al chat actual",
"chat.textSelection.title.newSessionWithSelection": "Crear nueva sesión con selección",
"chat.textSelection.title.saveInsightToNotes": "Guardar información destilada 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.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.tts.stopSpeaking": "Dejar de hablar",
"chat.messageBody.tts.readAloud": "Leer en voz alta",
"chat.messageBody.tts.readAloudWithProvider": "Leer en voz alta ({provider} voz)",
"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; ! para shell",
"chat.chatInput.placeholder.selectSession": "Selecciona o crea una sesión para comenzar a chatear",
"chat.chatInput.toast.compactFailed": "No se pudo comprimir la sesión",
"chat.chatInput.toast.summaryFailed": "No se pudo generar el resumen",
"chat.chatInput.toast.reviewFailed": "No se pudieron revisar los cambios",
"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.clipboardAttachFailed": "No se pudo adjuntar la imagen desde el portapapeles",
"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.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.projectRoot": "Raíz del proyecto",
"chat.chatInput.branch": "Rama",
"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.mobileStatus.editProjects.title": "Editar proyectos",
"chat.mobileStatus.editProjects.footer": "Arrastra los elementos para reordenar, o use flechas para mover. Toca editar para cambiar los detalles.",
"chat.mobileStatus.editProjects.empty": "No hay proyectos para editar",
"chat.mobileStatus.projects.empty": "No hay proyectos",
"chat.mobileStatus.projects.addAria": "Añadir proyecto",
"chat.mobileStatus.projects.removeTitle": "Eliminar proyecto",
"chat.mobileStatus.projects.removeDescriptionPrefix": "¿Estás seguro de que quieres eliminar",
"chat.mobileStatus.projects.cancel": "Cancelar",
"chat.mobileStatus.projects.remove": "Eliminar",
"chat.mobileStatus.new": "Nuevo",
"chat.mobileStatus.noSessionsInProject": "No hay sesiones en este proyecto",
"chat.mobileStatus.swipeHint": "← Desliza aquí para abrir los paneles laterales →",
"chat.mobileStatus.toast.addProjectFailed": "No se pudo añadir el proyecto",
"chat.mobileStatus.toast.selectValidDirectory": "Selecciona un directorio válido.",
"chat.mobileStatus.toast.selectDirectoryFailed": "No se pudo seleccionar el directorio",
"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.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.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": "Tab 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.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.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.input.placeholder": "Escribe un comando o busca...",
"commandPalette.empty.noResults": "No se encontraron resultados.",
"commandPalette.section.sessions": "Sesiones",
"commandPalette.section.view": "Ver",
"commandPalette.section.theme": "Tema",
"commandPalette.section.settings": "Configuración",
"commandPalette.section.recentSessions": "Sesiones recientes",
"commandPalette.item.quickOpen": "Abrir rápido",
"commandPalette.item.newSession": "Nueva sesión",
"commandPalette.item.newWorktreeDraft": "Nuevo borrador de worktree",
"commandPalette.item.showSessionSwitcher": "Mostrar cambiador de sesiones",
"commandPalette.item.toggleSidebar": "Mostrar u ocultar barra lateral",
"commandPalette.item.toggleRightSidebar": "Mostrar u ocultar barra lateral derecha",
"commandPalette.item.showGitRightSidebar": "Mostrar Git en barra lateral derecha",
"commandPalette.item.showFilesRightSidebar": "Mostrar archivos en barra lateral derecha",
"commandPalette.item.showContextUsage": "Mostrar uso del contexto",
"commandPalette.item.showPlan": "Mostrar plan",
"commandPalette.item.toggleTerminal": "Mostrar u ocultar terminal",
"commandPalette.item.collapseTerminal": "Colapsar terminal",
"commandPalette.item.expandTerminal": "Expandir terminal",
"commandPalette.item.keyboardShortcuts": "Atajos de teclado",
"commandPalette.item.themeLight": "Claro",
"commandPalette.item.themeDark": "Oscuro",
"commandPalette.item.themeSystem": "Sistema",
"commandPalette.item.openSettings": "Abrir configuración...",
"commandPalette.session.untitled": "Sesión sin título",
"commandPalette.settingsGroup.appearance": "Apariencia",
"commandPalette.settingsGroup.projects": "Proyectos",
"commandPalette.settingsGroup.general": "General",
"commandPalette.settingsGroup.opencode": "OpenChamber",
"commandPalette.settingsGroup.git": "Git",
"commandPalette.settingsGroup.skills": "Habilidades",
"commandPalette.settingsGroup.usage": "Uso",
"commandPalette.settingsGroup.advanced": "Avanzado",
"commandPalette.settingsPage.home": "Inicio",
"commandPalette.settingsPage.projects": "Proyectos",
"commandPalette.settingsPage.remoteInstances": "Instancias remotas",
"commandPalette.settingsPage.providers": "Proveedores",
"commandPalette.settingsPage.usage": "Uso",
"commandPalette.settingsPage.agents": "Agentes",
"commandPalette.settingsPage.commands": "Comandos",
"commandPalette.settingsPage.mcp": "MCP",
"commandPalette.settingsPage.skillsInstalled": "Habilidades instaladas",
"commandPalette.settingsPage.skillsCatalog": "Catálogo de habilidades",
"commandPalette.settingsPage.git": "Git",
"commandPalette.settingsPage.appearance": "Apariencia",
"commandPalette.settingsPage.chat": "Chat",
"commandPalette.settingsPage.shortcuts": "Atajos de teclado",
"commandPalette.settingsPage.sessions": "Sesiones",
"commandPalette.settingsPage.magicPrompts": "Prompts mágicos",
"commandPalette.settingsPage.notifications": "Notificaciones",
"commandPalette.settingsPage.voice": "Voz",
"commandPalette.settingsPage.tunnel": "Túnel remoto",
"quickOpenDialog.title": "Apertura rápida",
"quickOpenDialog.description": "Abre rápidamente un archivo del proyecto actual.",
"quickOpenDialog.input.placeholder": "Buscar archivos...",
"quickOpenDialog.empty.openProjectFirst": "Abre un proyecto primero",
"quickOpenDialog.empty.searchingFiles": "Buscando archivos...",
"quickOpenDialog.empty.noMatchingFiles": "No se encontraron archivos coincidentes",
"quickOpenDialog.empty.noMatchingRecentFiles": "No se encontraron archivos recientes",
"quickOpenDialog.group.files": "Archivos",
"quickOpenDialog.group.recentFiles": "Archivos recientes",
"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.chooseActionAria": "Elegir acción del proyecto",
"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 la configuración de OpenCode.",
"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. Comprueba que el servicio esté en funcionamiento y vuelve a intentarlo.",
"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.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.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",
"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",
"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 (recomendado WSL)",
"onboarding.localSetup.windows.stepInstallWsl": "Instala WSL (si es necesario) con",
"onboarding.localSetup.windows.stepInstallWslSuffix": "en PowerShell.",
"onboarding.localSetup.windows.stepRunInstallInWsl": "Ejecuta el comando de instalación a continuación dentro de tu terminal de WSL.",
"onboarding.localSetup.windows.stepSetBinaryPath": "Si OpenChamber no detecta OpenCode automáticamente, establece la ruta del ejecutable a continuación.",
"onboarding.localSetup.docs.windows": "Ver documentación de Windows + WSL",
"onboarding.localSetup.docs.default": "Ver documentación",
"onboarding.localSetup.actions.checking": "Verificando...",
"onboarding.localSetup.actions.checkAndContinue": "He completado la instalación, verificar y continuar",
"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.field.alreadyInstalled": "¿Ya está instalado? Establece la ruta de la CLI de OpenCode:",
"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 en WSL para mayor compatibilidad.",
"onboarding.localSetup.windows.hintDetectionFailed": "Si la detección falla, establece una ruta nativa (opencode.cmd/opencode.exe), wsl.exe, o wsl:/usr/local/bin/opencode.",
"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.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.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.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.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",
"memoryDebugPanel.title": "Panel de depuración",
"memoryDebugPanel.tabs.memory": "Memoria",
"memoryDebugPanel.tabs.streaming": "Transmisión",
"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.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.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.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.table.actions.copyTitle": "Copiar tabla",
"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.toast.downloadFailed": "No se pudo descargar el diagrama",
};