2026-04-26 14:03:39 +03:00
import type { I18nKey } from './en' ;
import { settingsDict } from './es.settings' ;
export const dict : Record < I18nKey , string > = {
... settingsDict ,
2026-07-17 13:17:21 +03:00
'terminalView.actions.attachSelection' : 'Adjuntar salida seleccionada' ,
'terminalView.actions.restart' : 'Reiniciar terminal' ,
'chat.message.terminalContext' : '{terminal}, líneas {start}-{end}' ,
'chat.chatInput.terminalContext' : '{terminal}, líneas {start}-{end}' ,
'chat.chatInput.terminalContextRemove' : 'Eliminar contexto del terminal' ,
2026-07-27 23:07:42 +03:00
'chat.chatInput.prCommentContext' : 'Comentarios del PR' ,
'chat.chatInput.prCommentContextRemove' : 'Quitar el contexto de comentarios del PR' ,
'chat.chatInput.prCheckContext' : 'Comprobaciones del PR fallidas' ,
'chat.chatInput.prCheckContextRemove' : 'Quitar el contexto de comprobaciones del PR' ,
2026-04-29 12:03:39 +03:00
"common.loading" : "Cargando..." ,
"common.unavailable" : "No disponible" ,
2026-04-26 14:03:39 +03:00
"common.language.english" : "Inglés" ,
2026-08-03 02:26:52 +03:00
"common.language.german" : "Alemán" ,
2026-06-10 19:19:30 +02:00
"common.language.french" : "Francés" ,
2026-04-26 14:03:39 +03:00
"common.language.simplifiedChinese" : "Chino (simplificado)" ,
2026-05-26 07:34:58 +08:00
"common.language.traditionalChinese" : "Chino (tradicional)" ,
2026-04-26 14:03:39 +03:00
"common.language.ukrainian" : "Ucraniano" ,
"common.language.spanish" : "Español" ,
"common.language.brazilianPortuguese" : "Portugués brasileño" ,
2026-04-27 17:05:43 +09:00
"common.language.korean" : "Coreano" ,
2026-05-06 18:38:58 +02:00
"common.language.polish" : "Polaco" ,
2026-06-27 07:00:05 +09:00
"common.language.japanese" : "Japonés" ,
2026-04-26 14:03:39 +03:00
"common.revealPath.finder" : "Mostrar en Finder" ,
"common.revealPath.fileExplorer" : "Abrir en File Explorer" ,
"common.revealPath.fileManager" : "Abrir en gestor de archivos" ,
2026-05-06 18:38:58 +02:00
"pwa.installPrompt.description" : "Instala OpenChamber para acceder más rápido" ,
"pwa.installPrompt.action" : "Instalar" ,
2026-05-19 10:57:23 -03:00
"pwa.installPrompt.dismiss" : "Descartar" ,
2026-05-06 18:38:58 +02:00
"pwa.installPrompt.started" : "Instalación iniciada" ,
"pwa.installPrompt.installed" : "OpenChamber se instaló" ,
2026-04-26 14:03:39 +03:00
"layout.mainTab.chat" : "Chat" ,
"layout.mainTab.plan" : "Plan" ,
"layout.mainTab.diff" : "Diff" ,
2026-06-08 11:50:56 -04:00
"layout.mainTab.diagram" : "Diagrama" ,
2026-04-26 14:03:39 +03:00
"layout.mainTab.files" : "Archivos" ,
"layout.mainTab.terminal" : "Terminal" ,
2026-05-24 01:48:56 +07:00
"layout.mainTab.context" : "Contexto" ,
2026-06-02 00:43:05 +03:00
"mobile.nav.aria" : "Navegación móvil" ,
2026-07-01 09:55:41 +03:00
"mobile.connect.welcome.title" : "Conéctate a OpenChamber" ,
"mobile.connect.welcome.description" : "Agrega una URL de servidor o escanea un código QR de emparejamiento para empezar a usar la app móvil." ,
"mobile.connect.url.label" : "URL del servidor" ,
"mobile.connect.url.placeholder" : "http://192.168.1.74:2606" ,
"mobile.connect.token.label" : "Token de cliente" ,
"mobile.connect.token.placeholder" : "Pega el token de acceso" ,
"mobile.connect.token.hint" : "Solo es necesario si tu servidor requiere un token en lugar de una contraseña." ,
"mobile.connect.password.label" : "Contraseña" ,
"mobile.connect.password.placeholder" : "Contraseña de OpenChamber" ,
"mobile.connect.connectButton" : "Conectar" ,
"mobile.connect.unlockButton" : "Desbloquear y conectar" ,
"mobile.connect.cancelPassword" : "Usar otro servidor" ,
"mobile.connect.connecting" : "Conectando..." ,
2026-08-01 21:16:36 +03:00
"mobile.connect.notice.unreachable" : "No se pudo conectar con {label}. Comprueba que el servidor esté en marcha." ,
"mobile.connect.notice.authExpired" : "El acceso a {label} caducó o fue revocado. Inicia sesión de nuevo." ,
"mobile.connect.recovery.description" : "No se pudo conectar con el servidor guardado. Comprueba que esté en marcha o elige otra instancia." ,
2026-07-01 09:55:41 +03:00
"mobile.connect.scanQr" : "Escanear código QR" ,
2026-07-10 01:44:42 +03:00
"mobile.connect.welcome.scanHint" : "En tu ordenador, abre «Añadir un dispositivo» para mostrar un código QR y escanéalo aquí." ,
2026-07-01 09:55:41 +03:00
"mobile.connect.advanced" : "Avanzado" ,
2026-07-10 01:44:42 +03:00
"mobile.connect.manual.toggle" : "Conectar por dirección" ,
2026-07-01 09:55:41 +03:00
"mobile.connect.scan.permissionDenied" : "El acceso a la cámara está desactivado. Actívalo en Ajustes para escanear un código QR." ,
"mobile.connect.scan.failed" : "No se pudo escanear ese código QR. Inténtalo de nuevo o introduce la URL manualmente." ,
"mobile.connect.scan.invalid" : "Ese código QR no es un código de conexión de OpenChamber." ,
"mobile.connect.scan.unsupported" : "El escaneo de QR solo está disponible en la app móvil instalada." ,
"mobile.connect.saved.title" : "Conexiones guardadas" ,
"mobile.connect.saved.empty" : "Aún no hay conexiones guardadas." ,
2026-07-08 03:44:02 +03:00
"mobile.connect.relay.badge" : "a través de OpenChamber Relay" ,
2026-07-01 09:55:41 +03:00
"mobile.connect.error.urlRequired" : "Introduce una URL de servidor." ,
2026-07-13 01:29:35 +03:00
"mobile.connect.splash.connectingTo" : "Conectando al dispositivo:" ,
2026-07-01 09:55:41 +03:00
"mobile.connect.error.invalidUrl" : "Esa URL de servidor no es válida." ,
"mobile.connect.error.unreachable" : "No se pudo conectar con ese servidor de OpenChamber." ,
"mobile.connect.error.authRequired" : "Este servidor requiere una contraseña o un token de cliente." ,
"mobile.connect.error.passwordFailed" : "No se pudo desbloquear ese servidor. Revisa la contraseña." ,
"mobile.instances.addTitle" : "Agregar instancia" ,
2026-07-10 01:44:42 +03:00
"mobile.instances.addManual" : "Añadir por dirección" ,
2026-07-01 09:55:41 +03:00
"mobile.instances.editTitle" : "Editar instancia" ,
"mobile.instances.edit" : "Editar" ,
"mobile.instances.delete" : "Eliminar" ,
"mobile.instances.deleteAria" : "Eliminar {label}" ,
"mobile.instances.confirmDeleteAria" : "Confirmar la eliminación de {label}" ,
"mobile.instances.cancelDeleteAria" : "Conservar {label}" ,
"mobile.instances.cancelEdit" : "Cancelar" ,
"mobile.instances.label.label" : "Nombre" ,
"mobile.instances.label.placeholder" : "Nombre para mostrar (opcional)" ,
"mobile.instances.saveNew" : "Guardar instancia" ,
2026-07-10 01:44:42 +03:00
"mobile.instances.status.connectedDirect" : "Conectado · Red local" ,
"mobile.instances.status.connectedRelay" : "Conectado · Relay privado" ,
2026-07-01 09:55:41 +03:00
"mobile.instances.saveEdit" : "Guardar cambios" ,
2026-06-02 00:43:05 +03:00
"mobile.nav.changes" : "Cambios" ,
"mobile.nav.settings" : "Ajustes" ,
"mobile.surface.closeAria" : "Cerrar" ,
2026-08-01 21:16:36 +03:00
"mobile.header.openWorkspaceAria" : "Abrir panel de trabajo" ,
2026-06-10 12:00:10 +03:00
"mobile.header.openMetadataAria" : "Abrir metadatos de la sesión" ,
"mobile.header.metadata.context" : "Contexto" ,
"mobile.header.metadata.usage" : "Uso" ,
2026-06-02 00:43:05 +03:00
"mobile.menu.titleAria" : "Herramientas del espacio de trabajo" ,
"mobile.menu.files" : "Archivos" ,
"mobile.menu.changes" : "Cambios" ,
2026-07-17 13:17:21 +03:00
"mobile.menu.terminal" : "Terminal" ,
2026-06-10 12:00:10 +03:00
"mobile.menu.mcp" : "MCP" ,
2026-07-01 09:55:41 +03:00
"mobile.menu.instances" : "Instancias" ,
2026-06-10 12:00:10 +03:00
"mobile.menu.update" : "Actualizar" ,
2026-06-02 00:43:05 +03:00
"mobile.menu.settings" : "Ajustes" ,
"mobile.sessions.newChatCta" : "Nuevo chat en {project}" ,
"mobile.sessions.dateGroup.today" : "Hoy" ,
"mobile.sessions.dateGroup.yesterday" : "Ayer" ,
"mobile.sessions.dateGroup.thisWeek" : "Antes esta semana" ,
"mobile.sessions.dateGroup.older" : "Más antiguos" ,
"mobile.sessions.section.worktrees" : "Worktrees" ,
"mobile.sessions.section.otherProjects" : "Cambiar de proyecto" ,
"mobile.sessions.section.projects" : "Proyectos" ,
"mobile.sessions.empty.noProjectsTitle" : "Sin proyectos" ,
"mobile.sessions.empty.noProjectsDescription" : "Agrega un proyecto para empezar a chatear con tu código." ,
"mobile.sessions.empty.noSessionsTitle" : "Sin sesiones" ,
"mobile.sessions.empty.noSessionsDescription" : "Inicia tu primer chat para verlo aquí." ,
"mobile.sessions.empty.searchTitle" : "Sin resultados" ,
"mobile.sessions.empty.searchDescription" : "Prueba con otro término de búsqueda." ,
"mobile.sessions.showArchived" : "Mostrar archivadas ({count})" ,
"mobile.sessions.hideArchived" : "Ocultar archivadas" ,
"mobile.sessions.activeWorktreeAria" : "Worktree activo" ,
"mobile.sessions.activeProjectAria" : "Proyecto activo" ,
"mobile.sessions.startNewChat" : "Iniciar nuevo chat" ,
"mobile.sessions.newChat" : "Nuevo chat" ,
"mobile.sessions.editOrder" : "Reordenar proyectos" ,
"mobile.sessions.doneEditing" : "Listo" ,
2026-08-01 21:16:36 +03:00
"mobile.sessions.editOrderHint" : "Arrastra el asa para reordenar los proyectos. Toca un proyecto para mostrar sus worktrees y arrástralos también. Toca la marca para terminar." ,
2026-06-02 00:43:05 +03:00
"mobile.sessions.dragHandleAria" : "Arrastra {label} para reordenar" ,
"mobile.sessions.moveUpAria" : "Mover {label} arriba" ,
"mobile.sessions.moveDownAria" : "Mover {label} abajo" ,
"mobile.sessions.removeProjectAria" : "Eliminar {label}" ,
"mobile.sessions.confirmRemoveProjectAria" : "Confirmar eliminación de {label}" ,
"mobile.sessions.toast.projectRemoved" : "Se eliminó {label}" ,
2026-06-02 16:20:12 +03:00
"mobile.sessions.archiveSessionAria" : "Archivar {title}" ,
"mobile.sessions.cancelArchiveAria" : "Cancelar archivar {title}" ,
2026-08-01 21:16:36 +03:00
"mobile.sessions.renameSessionAria" : "Renombrar {title}" ,
"mobile.sessions.renameError" : "No se pudo renombrar la sesión" ,
"mobile.sessions.deleteSessionAria" : "Eliminar {title}" ,
"mobile.sessions.confirmDeleteSessionAria" : "Confirmar eliminación de {title}" ,
2026-06-02 16:10:20 +03:00
"mobile.sessions.editProjectAria" : "Editar {label}" ,
"mobile.projectEdit.worktreesTitle" : "Worktrees" ,
"mobile.projectEdit.worktreesEmpty" : "Este proyecto aún no tiene worktrees." ,
"mobile.projectEdit.reorderHint" : "Arrastra para reordenar los worktrees." ,
"mobile.projectEdit.dragWorktreeAria" : "Arrastra {label} para reordenar" ,
"mobile.projectEdit.deleteWorktreeAria" : "Eliminar worktree {label}" ,
"mobile.projectEdit.deleteWorktreeTitle" : "Eliminar worktree" ,
"mobile.projectEdit.deleteWorktreeConfirmButton" : "Eliminar" ,
"mobile.projectEdit.deleteWorktreeConfirm" : "¿Eliminar el worktree «{name}»? No se puede deshacer." ,
"mobile.projectEdit.deleteWorktreeDirty" : "Este worktree tiene cambios sin confirmar que se perderán." ,
"mobile.projectEdit.deleteWorktreeArchiveNote" : "Se archivarán {count} sesión(es) adjunta(s)." ,
"mobile.projectEdit.deleteLocalBranch" : "Eliminar también la rama local" ,
"mobile.projectEdit.deleteRemoteBranch" : "Eliminar también la rama remota" ,
2026-06-02 00:43:05 +03:00
"mobile.sessions.showMore" : "Mostrar {count} más" ,
"mobile.sessions.search.section.sessions" : "Sesiones" ,
"mobile.sessions.search.section.archived" : "Archivadas" ,
"mobile.sessions.search.section.projects" : "Proyectos" ,
"mobile.sessions.clearSearchAria" : "Limpiar búsqueda" ,
"mobile.header.noProject" : "Selecciona un proyecto" ,
"mobile.header.activeSession" : "Sesión activa" ,
"mobile.header.noSession" : "No hay sesión activa" ,
"mobile.sessions.openSheetAria" : "Abrir sesiones y proyectos" ,
"mobile.sessions.closeSheetAria" : "Cerrar sesiones y proyectos" ,
"mobile.sessions.sheet.title" : "Sesiones" ,
"mobile.sessions.sheet.description" : "Cambia proyectos, abre sesiones o inicia un nuevo chat." ,
"mobile.sessions.search.placeholder" : "Buscar sesiones" ,
"mobile.sessions.empty" : "No se encontraron sesiones." ,
"mobile.sessions.unassignedProject" : "Otras sesiones" ,
"mobile.sessions.newSessionAria" : "Iniciar una nueva sesión en este proyecto" ,
"mobile.sessions.untitled" : "Sesión sin título" ,
"mobile.sessions.project.sessionsSingle" : "1 sesión" ,
"mobile.sessions.project.sessionsPlural" : "{count} sesiones" ,
"mobile.files.refreshAria" : "Actualizar archivos" ,
"mobile.files.backToParentAria" : "Volver a {name}" ,
"mobile.files.rootDirectory" : "Archivos del proyecto" ,
"mobile.files.search.placeholder" : "Buscar archivos" ,
"mobile.files.search.empty" : "No se encontraron archivos." ,
"mobile.files.parentDirectory" : "Directorio superior" ,
"mobile.files.empty.noDirectory" : "Selecciona un proyecto para explorar archivos." ,
"mobile.files.empty.directory" : "Este directorio está vacío." ,
"mobile.files.error.listFailed" : "No se pudieron cargar los archivos" ,
"mobile.files.error.readUnavailable" : "La vista previa del archivo no está disponible en este entorno." ,
"mobile.files.file.truncated" : "Vista previa del archivo truncada para móvil." ,
"mobile.files.copyPathAria" : "Copiar ruta del archivo" ,
"mobile.files.copyContent" : "Copiar contenido" ,
"mobile.files.copyContentAria" : "Copiar contenido del archivo" ,
2026-08-01 21:16:36 +03:00
"mobile.files.editAria" : "Editar archivo" ,
"mobile.files.doneEditingAria" : "Terminar edición" ,
2026-06-02 00:43:05 +03:00
"mobile.files.toast.pathCopied" : "Ruta copiada" ,
"mobile.files.toast.contentCopied" : "Contenido copiado" ,
"mobile.files.toast.copyFailed" : "No se pudo copiar" ,
"mobile.changes.placeholder.title" : "Cambios" ,
"mobile.changes.placeholder.description" : "Aquí vivirán la revisión del árbol de trabajo, sync y commits." ,
"mobile.changes.branchLabel" : "Rama: {branch}" ,
"mobile.changes.noRemote" : "No hay remoto disponible" ,
"mobile.changes.cleanDescription" : "No hay archivos modificados en este workspace." ,
"mobile.changes.diffDetail.subtitle" : "Diff de solo lectura" ,
"mobile.changes.diffDetail.loadFailed" : "No se pudo cargar el diff" ,
"mobile.changes.diffDetail.missingTitle" : "El archivo ya no tiene cambios" ,
"mobile.changes.diffDetail.missingDescription" : "Vuelve a Cambios y actualiza la lista." ,
"mobile.changes.diffDetail.imageUnavailable" : "Los diffs de imagen aún no están disponibles en Cambios móvil." ,
"mobile.settings.placeholder.title" : "Ajustes" ,
"mobile.settings.placeholder.description" : "Aquí vivirán los ajustes móviles de conexión y app." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-08-06 09:38:18 +03:00
'sessions.scheduledTasks.dialog.loopFile.note' : 'Gestionada por el archivo de bucle {file}' ,
'sessions.scheduledTasks.dialog.loopFile.toggleDisabled' : 'La activación la controla el archivo de bucle; establece enabled en el frontmatter de Markdown' ,
'sessions.scheduledTasks.dialog.loopFile.actionsDisabled' : 'Las tareas de bucle se configuran en su archivo Markdown .agents/loops' ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-16 04:03:42 -04:00
"sessions.scheduledTasks.editor.scheduleType.cron" : "Cron" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-12 01:23:22 +03:00
"sessions.scheduledTasks.editor.goal.label" : "Ejecutar como objetivo" ,
"sessions.scheduledTasks.editor.goal.aria" : "Ejecutar esta tarea como un objetivo que el agente persigue hasta completarlo" ,
"sessions.scheduledTasks.editor.goal.budgetLabel" : "Presupuesto de tokens" ,
"sessions.scheduledTasks.editor.goal.budgetAria" : "Limitar el objetivo a un presupuesto de tokens" ,
2026-07-20 23:07:01 +03:00
"sessions.scheduledTasks.editor.permissionAutoAccept.label" : "Aceptar permisos automáticamente" ,
"sessions.scheduledTasks.editor.permissionAutoAccept.aria" : "Iniciar la sesión de la tarea con la aceptación automática de permisos activada" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-16 04:03:42 -04:00
"sessions.scheduledTasks.editor.validation.cronRequired" : "Se requiere una expresión cron" ,
"sessions.scheduledTasks.editor.validation.cronInvalid" : "Expresión cron no válida" ,
"sessions.scheduledTasks.editor.cronExpression.label" : "Expresión cron" ,
"sessions.scheduledTasks.editor.cronExpression.placeholder" : "*/5 * * * *" ,
"sessions.scheduledTasks.editor.cronExpression.nextRuns" : "Próximas ejecuciones" ,
"sessions.scheduledTasks.editor.cronExpression.examples" : "Ejemplos" ,
"sessions.scheduledTasks.editor.cronExpression.examples.every5min" : "Cada 5 minutos" ,
"sessions.scheduledTasks.editor.cronExpression.examples.everyHour" : "Cada hora" ,
"sessions.scheduledTasks.editor.cronExpression.examples.monday9am" : "Cada lunes a las 9 a. m." ,
"sessions.scheduledTasks.editor.cronExpression.examples.9am5pm" : "9 a. m. y 5 p. m. todos los días" ,
"sessions.scheduledTasks.editor.cronExpression.examples.firstOfMonth" : "Primero de cada mes" ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-05-14 23:33:04 +03:00
"multirun.launcher.project.gitRequired" : "Sin aislamiento worktree: las ejecuciones usan el mismo directorio." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-15 11:35:23 +03:00
"multirun.launcher.isolateRuns.label" : "Aislar ejecuciones" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-15 13:26:46 +03:00
"multirun.fusion.title" : "Ejecutar fusion" ,
"multirun.fusion.description" : "Combina los resultados seleccionados del multi-run en una respuesta más sólida." ,
"multirun.fusion.provider.placeholder" : "Proveedor" ,
"multirun.fusion.model.placeholder" : "Modelo" ,
"multirun.fusion.sources.label" : "Fuentes ({count})" ,
"multirun.fusion.actions.cancel" : "Cancelar" ,
"multirun.fusion.actions.start" : "Iniciar fusion" ,
"multirun.fusion.actions.starting" : "Iniciando..." ,
"multirun.fusion.toast.noOutputs" : "No se encontraron respuestas del asistente para fusionar." ,
"multirun.fusion.toast.failed" : "No se pudo iniciar fusion." ,
2026-05-21 09:35:42 -04:00
"multirun.launcher.attachments.label" : "Archivos" ,
"multirun.launcher.actions.startWithRunCount" : "Iniciar ({count} ejecuciones)" ,
"multirun.launcher.groups.addGroup" : "Añadir grupo de ejecución" ,
"multirun.launcher.groups.removeGroup" : "Eliminar grupo" ,
"multirun.launcher.groups.groupLabel" : "Grupo de ejecución {index}" ,
"multirun.launcher.groups.template.label" : "Plantilla" ,
"multirun.launcher.groups.template.placeholder" : "Selecciona una plantilla..." ,
"multirun.launcher.groups.template.custom" : "Prompt personalizado" ,
"multirun.launcher.groups.prompt.label" : "Prompt" ,
"multirun.launcher.groups.prompt.placeholder" : "Introduce el prompt para este grupo..." ,
2026-04-26 14:03:39 +03:00
"sessions.sidebar.header.actions.searchSessions" : "Buscar sesiones" ,
"sessions.sidebar.header.actions.exitSelection" : "Salir de selección" ,
"sessions.sidebar.header.actions.selectSessions" : "Seleccionar sesiones" ,
2026-07-11 22:43:57 +11:00
"sessions.sidebar.header.actions.sortProjects" : "Ordenar proyectos" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-03 16:32:14 +03:00
"sessions.sidebar.header.displayMode.showRecent" : "Mostrar recientes" ,
2026-06-02 13:25:28 +03:00
"sessions.sidebar.header.displayMode.showArchived" : "Mostrar sesiones archivadas" ,
2026-04-26 14:03:39 +03:00
"sessions.sidebar.header.displayMode.collapseAll" : "Colapsar todo" ,
"sessions.sidebar.header.displayMode.expandAll" : "Expandir todo" ,
2026-07-11 22:43:57 +11:00
"sessions.sidebar.header.projectSort.manual" : "Manual" ,
"sessions.sidebar.header.projectSort.aToZ" : "A → Z" ,
"sessions.sidebar.header.projectSort.zToA" : "Z → A" ,
"sessions.sidebar.header.projectSort.dateAdded" : "Más recientes" ,
"sessions.sidebar.header.projectSort.recent" : "Recientes" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-28 12:04:39 +03:00
"sessions.archivePage.allDirectories" : "Todos los directorios" ,
"sessions.sidebar.header.displayMode.stickyHeaders" : "Encabezados de proyecto fijos" ,
"sessions.sidebar.header.grouping.label" : "Agrupar sesiones" ,
"sessions.sidebar.header.grouping.byWorktree" : "Por worktree" ,
"sessions.sidebar.header.grouping.flat" : "Lista plana" ,
"sessions.sidebar.project.actions.manageWorktrees" : "Gestionar worktrees" ,
"sessions.worktreesPage.title" : "Worktrees en {project}" ,
"sessions.worktreesPage.description" : "Crea, inspecciona y elimina los worktrees de git de este proyecto." ,
"sessions.worktreesPage.closeAria" : "Cerrar worktrees" ,
"sessions.scheduledTasks.page.closeAria" : "Cerrar tareas programadas" ,
"sessions.sidebar.nav.archive" : "Archivo" ,
"sessions.archivePage.title" : "Archivo" ,
"sessions.archivePage.countSingle" : "{count} sesión archivada" ,
"sessions.archivePage.countPlural" : "{count} sesiones archivadas" ,
"sessions.archivePage.closeAria" : "Cerrar archivo" ,
"sessions.archivePage.searchPlaceholder" : "Buscar sesiones archivadas" ,
"sessions.archivePage.empty.noArchived" : "No hay sesiones archivadas" ,
"sessions.archivePage.empty.noMatches" : "No hay sesiones archivadas coincidentes" ,
"sessions.archivePage.otherProjects" : "otros proyectos" ,
"sessions.archivePage.deleteProject" : "Eliminar todas las sesiones archivadas de este proyecto" ,
"sessions.archivePage.deleteProjectAria" : "Eliminar todas las sesiones archivadas de {label}" ,
"sessions.archivePage.deleteSessionAria" : "Eliminar {title}" ,
2026-08-04 13:21:04 +03:00
"sessions.archivePage.restoreSessionAria" : "Restaurar {title}" ,
2026-05-15 18:16:03 +03:00
"sessions.switcher.openAria" : "Abrir selector de sesiones" ,
"sessions.switcher.empty" : "No hay sesiones recientes" ,
"sessions.switcher.draftTitle" : "Nueva sesión" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-08-04 13:21:04 +03:00
"sessions.sidebar.bulkActions.restore" : "Restaurar" ,
"sessions.sidebar.bulkActions.restoredSingle" : "Se restauró {count} sesión" ,
"sessions.sidebar.bulkActions.restoredPlural" : "Se restauraron {count} sesiones" ,
"sessions.sidebar.bulkActions.failedRestoreSingle" : "No se pudo restaurar {count} sesión" ,
"sessions.sidebar.bulkActions.failedRestorePlural" : "No se pudo restaurar {count} sesiones" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-09 13:54:05 +03:00
"sessions.sidebar.project.actions.edit" : "Editar" ,
2026-04-26 14:03:39 +03:00
"sessions.sidebar.project.actions.newDraftSession" : "Nueva sesión de borrador" ,
"sessions.sidebar.session.menu.rename" : "Cambiar nombre" ,
2026-07-31 21:02:23 +03:00
"sessions.sidebar.session.menu.copyId" : "Copiar ID de sesión" ,
"sessions.sidebar.session.copyId.success" : "ID de sesión copiado" ,
"sessions.sidebar.session.copyId.error" : "No se pudo copiar el ID de sesión" ,
"header.sessionActions.openAria" : "Abrir acciones de sesión" ,
2026-05-12 04:02:53 -04:00
"sessions.sidebar.session.rename.save" : "Guardar nombre de sesión" ,
"sessions.sidebar.session.rename.cancel" : "Cancelar cambio de nombre de sesión" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-19 00:00:31 +03:00
"sessions.sidebar.session.menu.moveToWorktree" : "Mover a un worktree nuevo" ,
"sessions.sidebar.session.moveToWorktree.success" : "Sesión movida a un worktree nuevo" ,
"sessions.sidebar.session.moveToWorktree.failed" : "No se pudo mover la sesión a un worktree nuevo" ,
"sessions.sidebar.session.moveToWorktree.tooltip" : "Crea un worktree nuevo desde la rama actual, transfiere los cambios sin confirmar y mueve allí esta sesión y sus subsesiones." ,
"sessions.sidebar.session.moveToWorktree.tooltipBusy" : "Disponible cuando la sesión está inactiva. Detén la actividad actual o espera a que termine." ,
"sessions.sidebar.session.moveToWorktree.tooltipMoving" : "Esta sesión ya se está moviendo a un worktree nuevo." ,
2026-05-15 13:26:46 +03:00
"sessions.sidebar.session.menu.runFusion" : "Ejecutar fusion" ,
2026-04-26 14:03:39 +03:00
"sessions.sidebar.session.menu.openInSidePanel" : "Abrir en panel lateral" ,
2026-05-19 15:53:54 +03:00
"sessions.sidebar.session.actions.openInEditor" : "Abrir en el editor" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-31 21:02:23 +03:00
"sessions.sidebar.session.export.failedLoadHistory" : "No se pudo cargar el historial completo de la sesión" ,
2026-04-26 14:03:39 +03:00
"sessions.sidebar.session.export.success" : "Sesión exportada" ,
"sessions.sidebar.session.export.failedRevealPath" : "No se pudo mostrar la ruta" ,
2026-04-26 16:24:07 +03:00
"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" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-19 00:00:31 +03:00
"sessions.sidebar.session.status.movingToWorktree" : "Moviendo la sesión a un worktree nuevo" ,
2026-04-26 14:03:39 +03:00
"sessions.sidebar.session.status.permissionRequired" : "Permiso requerido" ,
2026-08-05 13:41:48 +03:00
"sessions.sidebar.session.status.questionPendingSingle" : "1 pregunta pendiente" ,
"sessions.sidebar.session.status.questionPendingMany" : "{count} preguntas pendientes" ,
2026-08-05 03:06:35 +03:00
"sessions.sidebar.session.status.activeFor" : "Activa desde hace {duration}" ,
"sessions.sidebar.session.status.lastTurnDuration" : "El último turno duró {duration}" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-31 21:02:23 +03:00
"sessions.sidebar.session.share.successDescription" : "El enlace para compartir se copió al portapapeles." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-08-04 13:21:04 +03:00
"sessions.sidebar.session.restore.success" : "Sesión restaurada" ,
"sessions.sidebar.session.restore.error" : "No se pudo restaurar la sesión" ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-06-02 13:25:28 +03:00
"sessions.sidebar.group.showMore" : "Mostrar más sesiones" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-06 00:32:55 +03:00
"gitView.branch.dialogDescriptionPrefix" : "Elige cómo traer otra rama a" ,
2026-04-26 14:03:39 +03:00
"gitView.branch.empty" : "No se encontraron ramas." ,
"gitView.branch.localBranches" : "Ramas locales" ,
2026-05-06 00:32:55 +03:00
"gitView.branch.mergeDescription" : "Crea un commit de merge y conserva el historial." ,
2026-04-26 14:03:39 +03:00
"gitView.branch.mergeRebase" : "Merge/Rebase" ,
2026-05-06 00:32:55 +03:00
"gitView.branch.mergeRebaseTooltip" : "Actualiza esta rama desde otra rama." ,
2026-04-26 14:03:39 +03:00
"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:" ,
2026-05-06 00:32:55 +03:00
"gitView.branch.rebaseDescription" : "Reaplica tus commits encima de la rama seleccionada." ,
2026-04-26 14:03:39 +03:00
"gitView.branch.rebasingInProgress" : "Rebase en progreso" ,
"gitView.branch.remoteBranches" : "Ramas remotas" ,
"gitView.branch.renameTitle" : "Cambiar nombre de rama" ,
2026-05-12 04:03:26 -04:00
"gitView.branch.renameSave" : "Guardar nombre de rama" ,
"gitView.branch.renameSaving" : "Guardando nombre de rama" ,
"gitView.branch.renameCancel" : "Cancelar cambio de nombre de rama" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-06 00:32:55 +03:00
"gitView.branch.updateDescriptionPrefix" : "Trae los últimos cambios a" ,
2026-04-26 14:03:39 +03:00
"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?" ,
2026-06-08 19:55:56 +07:00
"gitView.changes.revertDirectoryAria" : "Revertir cambios en {path}" ,
"gitView.changes.revertDirectory" : "Revertir carpeta" ,
"gitView.changes.revertDirectoryDescriptionPlural" : "Se descartarán los cambios locales de {count} archivos en {path}." ,
"gitView.changes.revertDirectoryDescriptionSingle" : "Se descartarán los cambios locales de {count} archivo en {path}." ,
"gitView.changes.revertDirectoryDialogTitle" : "¿Revertir cambios de la carpeta?" ,
"gitView.changes.revertDirectoryTooltip" : "Revertir cambios de la carpeta" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-23 23:49:38 +02:00
"gitView.changes.stagedTitle" : "Preparados" ,
"gitView.changes.resizeSplitAria" : "Ajustar tamaño de cambios preparados y sin preparar" ,
"gitView.changes.stageAllAria" : "Preparar todos los cambios" ,
"gitView.changes.stageDirectoryAria" : "Preparar todos los cambios en {path}" ,
"gitView.changes.stageFileAria" : "Preparar {path}" ,
2026-04-26 14:03:39 +03:00
"gitView.changes.title" : "Cambios" ,
"gitView.changes.toggleDirectorySelectionAria" : "Alternar selección de directorio" ,
2026-05-23 23:49:38 +02:00
"gitView.changes.unstageAllAria" : "Quitar todos los cambios del área preparada" ,
"gitView.changes.unstageDirectoryAria" : "Quitar del área preparada todos los cambios en {path}" ,
"gitView.changes.unstageFileAria" : "Quitar {path} del área preparada" ,
2026-04-26 14:03:39 +03:00
"gitView.commit.addGitmoji" : "Añadir gitmoji" ,
"gitView.commit.aiHighlights.insertAria" : "Insertar" ,
"gitView.commit.aiHighlights.insertTooltip" : "Insertar" ,
2026-05-07 01:10:17 +03:00
"gitView.commit.aiHighlights.title" : "Puntos destacados" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-06 00:12:39 +03:00
"gitView.commit.push" : "Commit & sync" ,
"gitView.commit.pushAria" : "Commit and sync" ,
"gitView.commit.pushing" : "Sincronizando..." ,
2026-04-26 14:03:39 +03:00
"gitView.commit.selectFilesHint" : "Selecciona archivos en Cambios para habilitar el commit." ,
2026-05-23 23:49:38 +02:00
"gitView.commit.stageFilesHint" : "Prepara archivos para habilitar el commit." ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-05-27 00:13:25 +03:00
"gitView.header.repositoryViews" : "Vistas del repositorio" ,
2026-07-27 23:07:42 +03:00
"gitView.header.updateBranch" : "Actualizar rama" ,
"gitView.header.openPullRequest" : "Abrir pull request" ,
2026-04-26 14:03:39 +03:00
"gitView.header.removeRemoteAria" : "Eliminar remoto" ,
"gitView.header.removeRemoteTitle" : "Eliminar remoto" ,
2026-05-26 11:13:59 -04:00
"gitView.header.upstreamSynced" : "sincronizado" ,
"gitView.header.upstreamTooltip" : "Comparado con {target}." ,
"gitView.header.upstreamTooltipTracking" : "Comparado con {target}. Los indicadores principales de sincronización aún reflejan {tracking}." ,
2026-05-27 00:13:25 +03:00
"gitView.history.actions.cancelButton" : "Cancelar" ,
"gitView.history.actions.checkoutConfirm" : "¿Cambiar a este commit como HEAD separado?" ,
"gitView.history.actions.cherryPickConfirm" : "¿Aplicar cherry-pick de este commit sobre la rama actual?" ,
"gitView.history.actions.conflictToastDescription" : "Conflictos en: {files}. Resuélvelos manualmente y haz commit, o aborta con git cherry-pick/revert --abort." ,
"gitView.history.actions.conflictToastTitle" : "Conflicto" ,
"gitView.history.actions.confirmButton" : "Confirmar" ,
"gitView.history.actions.mergeConfirm" : "¿Fusionar este commit en la rama actual?" ,
"gitView.history.actions.rebaseConfirm" : "¿Rebasear la rama actual sobre este commit?" ,
"gitView.history.actions.resetHardConfirm" : "Reset hard — HEAD se mueve y todos los cambios sin commit se descartan permanentemente." ,
"gitView.history.actions.resetMixedConfirm" : "Reset mixed — HEAD se mueve y los cambios quedan sin preparar." ,
"gitView.history.actions.resetSoftConfirm" : "Reset soft — HEAD se mueve y los cambios preparados se conservan." ,
"gitView.history.actions.revertConfirm" : "¿Preparar una reversión de este commit?" ,
"gitView.history.actions.checkout" : "Cambiar a commit" ,
"gitView.history.actions.cherryPick" : "Cherry-pick" ,
"gitView.history.actions.createBranch" : "Crear rama aquí" ,
"gitView.history.actions.createBranchConfirm" : "Crear" ,
"gitView.history.actions.createBranchPlaceholder" : "Nombre de rama" ,
"gitView.history.actions.detachedHead" : "Checkout realizado (HEAD separado)" ,
"gitView.history.actions.merge" : "Fusionar en la actual" ,
"gitView.history.actions.rebase" : "Rebasear sobre este" ,
"gitView.history.actions.reset" : "Reset..." ,
"gitView.history.actions.resetHard" : "Hard — descartar todos los cambios" ,
"gitView.history.actions.resetHardConfirmButton" : "Descartar cambios" ,
"gitView.history.actions.resetMixed" : "Mixed — quitar del stage" ,
"gitView.history.actions.resetSoft" : "Soft — conservar staged" ,
"gitView.history.actions.revert" : "Revertir" ,
2026-04-26 14:03:39 +03:00
"gitView.history.binary" : "Binario" ,
2026-05-17 20:08:17 +03:00
"gitView.history.binaryNoDiff" : "Archivo binario — no hay diff disponible" ,
2026-04-26 14:03:39 +03:00
"gitView.history.commitsPlaceholder" : "Buscar commits..." ,
"gitView.history.copySha" : "Copiar SHA" ,
2026-05-17 20:08:17 +03:00
"gitView.history.diffError" : "Error al cargar el diff. Haz clic para reintentar." ,
"gitView.history.largeDiffDescription" : "El renderizado puede ser lento. Puedes ver el diff igualmente haciendo clic abajo." ,
"gitView.history.largeDiffTitle" : "Diff grande ({count} líneas cambiadas)" ,
"gitView.history.loadingDiff" : "Cargando diff..." ,
2026-04-26 14:03:39 +03:00
"gitView.history.loadingFiles" : "Cargando archivos..." ,
2026-05-27 00:13:25 +03:00
"gitView.history.loadMore" : "Cargar más" ,
"gitView.history.loadingMore" : "Cargando..." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-17 20:08:17 +03:00
"gitView.history.renamedNoDiff" : "Archivo renombrado — diff no soportado" ,
"gitView.history.renderDiffAnyway" : "Renderizar igualmente" ,
2026-04-26 14:03:39 +03:00
"gitView.history.title" : "Historial" ,
2026-07-27 23:07:42 +03:00
"gitView.history.refresh" : "Actualizar" ,
2026-05-27 00:13:25 +03:00
"gitView.graph.title" : "Grafo" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-06 01:58:36 +03:00
"gitView.operation.inProgressTitle" : "{operation} en progreso" ,
2026-08-02 20:15:18 +03:00
"gitView.operation.inProgressTitleManyConflicts" : "{operation} en curso: {count} conflictos" ,
"gitView.operation.inProgressTitleOneConflict" : "{operation} en curso: {count} conflicto" ,
2026-04-26 14:03:39 +03:00
"gitView.operation.merge" : "Merge" ,
2026-05-06 01:58:36 +03:00
"gitView.operation.mergeInProgressWithHead" : "Haciendo merge de {head}" ,
"gitView.operation.mergingMessage" : "Haciendo merge: {message}" ,
2026-04-26 14:03:39 +03:00
"gitView.operation.rebase" : "Rebase" ,
"gitView.operation.rebaseInProgress" : "Rebase en progreso" ,
2026-05-06 01:58:36 +03:00
"gitView.operation.rebasingOnto" : "Haciendo rebase de {headName} sobre {onto}" ,
2026-08-02 20:15:18 +03:00
"gitView.operation.readyToContinueHint" : "Todos los conflictos están resueltos. Continúa para finalizar la operación." ,
2026-05-06 01:58:36 +03:00
"gitView.operation.resolveConflictsHint" : "Resuelve los conflictos y luego continúa la operación." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-05 23:39:20 +03:00
"gitView.stashes.actions.apply" : "Apply" ,
"gitView.stashes.actions.drop" : "Drop" ,
"gitView.stashes.actions.pop" : "Pop" ,
"gitView.stashes.actions.stashCurrent" : "Stash current changes" ,
"gitView.stashes.actions.stashCurrentWithCount" : "Stash {count} files" ,
"gitView.stashes.confirm.drop" : "Drop {ref}?" ,
"gitView.stashes.description" : "Save, restore, and clean up Git stashes for this repository." ,
"gitView.stashes.empty.list" : "No stashes yet." ,
"gitView.stashes.empty.search" : "No matching stashes." ,
"gitView.stashes.includeUntrackedHint" : "Untracked files are included automatically." ,
"gitView.stashes.fileCount" : "{count} files" ,
"gitView.stashes.fileCountLoading" : "counting files..." ,
"gitView.stashes.itemNumber" : "#{number}" ,
"gitView.stashes.latestLabel" : "Latest" ,
"gitView.stashes.messagePlaceholder" : "Stash name" ,
"gitView.stashes.searchPlaceholder" : "Search stashes" ,
"gitView.stashes.title" : "Stashes" ,
"gitView.stashes.toast.applyFailed" : "Failed to apply stash" ,
"gitView.stashes.toast.applySuccess" : "Stash applied" ,
"gitView.stashes.toast.createFailed" : "Failed to stash changes" ,
"gitView.stashes.toast.created" : "Changes stashed" ,
"gitView.stashes.toast.dropFailed" : "Failed to drop stash" ,
"gitView.stashes.toast.dropSuccess" : "Stash dropped" ,
"gitView.stashes.toast.loadFailed" : "Failed to load stashes" ,
"gitView.stashes.toast.noChanges" : "No local changes to stash" ,
"gitView.stashes.toast.popFailed" : "Failed to pop stash" ,
"gitView.stashes.toast.popSuccess" : "Stash popped" ,
"gitView.stashes.untitled" : "Untitled stash" ,
2026-04-26 14:03:39 +03:00
"gitView.sync.fetch" : "Fetch" ,
2026-05-05 20:45:21 +03:00
"gitView.sync.fetchFromRemote" : "Fetch de {name}" ,
2026-04-26 14:03:39 +03:00
"gitView.sync.fetchTooltip" : "Fetch del remoto" ,
2026-05-05 20:45:21 +03:00
"gitView.sync.commitOrStashTooltip" : "Haz commit o stash de tus cambios antes de sincronizar" ,
"gitView.sync.moreActionsAria" : "Más acciones de sincronización" ,
"gitView.sync.noRemoteTooltip" : "No hay remotos configurados" ,
2026-04-26 14:03:39 +03:00
"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)" ,
2026-05-05 23:53:21 +03:00
"gitView.sync.sync" : "sync" ,
2026-05-05 20:45:21 +03:00
"gitView.sync.syncChanges" : "Sync Changes" ,
"gitView.sync.syncChangesTooltip" : "Sync Changes ({behind} abajo, {ahead} arriba)" ,
"gitView.sync.syncChangesWithCounts" : "Sync Changes {behind}↓ {ahead}↑" ,
"gitView.sync.syncCounts" : "{behind}↓ {ahead}↑" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-06 23:22:16 +03:00
"worktree.bootstrap.toast.failed" : "Error al configurar el worktree" ,
"worktree.bootstrap.toast.failedDescription" : "El worktree se creó, pero la configuración en segundo plano no terminó." ,
"worktree.bootstrap.toast.timeoutDescription" : "El worktree se creó, pero la configuración en segundo plano agotó el tiempo de espera." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-27 23:07:42 +03:00
"gitView.pr.actions.resolveFailedChecks" : "Adjuntar comprobaciones fallidas" ,
"gitView.pr.actions.resolveFailedChecksAria" : "Adjuntar comprobaciones fallidas al contexto del chat" ,
2026-04-26 14:03:39 +03:00
"gitView.pr.actions.savePr" : "Guardar PR" ,
"gitView.pr.actions.savePrAria" : "Guardar cambios de la PR" ,
2026-07-27 23:07:42 +03:00
"gitView.pr.actions.sendCommentToAgent" : "Adjuntar comentario al contexto del chat" ,
"gitView.pr.actions.sendCommentToAgentAria" : "Adjuntar este comentario al contexto del chat" ,
"gitView.pr.actions.sendToAgent" : "Adjuntar al chat" ,
"gitView.pr.actions.shareComments" : "Adjuntar comentarios" ,
"gitView.pr.actions.shareCommentsAria" : "Adjuntar los comentarios del pull request al contexto del chat" ,
2026-04-26 14:03:39 +03:00
"gitView.pr.actions.toggleDraftAria" : "Alternar estado de borrador" ,
2026-04-29 12:03:39 +03:00
"gitView.pr.actions.refresh" : "Actualizar estado de la PR" ,
"gitView.pr.actions.refreshAria" : "Actualizar estado del pull request" ,
2026-04-26 14:03:39 +03:00
"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..." ,
2026-05-06 00:46:40 +03:00
"gitView.pr.checks.label" : "checks" ,
2026-04-26 14:03:39 +03:00
"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}" ,
2026-07-27 23:07:42 +03:00
"gitView.pr.segment.overview" : "Resumen" ,
"gitView.pr.segment.checks" : "Comprobaciones" ,
"gitView.pr.segment.comments" : "Comentarios" ,
"gitView.pr.comments.addAll" : "Adjuntar todo al chat" ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-05-06 00:55:56 +03:00
"gitView.pullRequest.availableOnFeatureBranches" : "Disponible cuando la rama actual puede abrir un PR." ,
2026-04-26 14:03:39 +03:00
"gitView.pullRequest.title" : "PR" ,
"gitView.tabs.worktree" : "Árbol de trabajo" ,
"gitView.toast.abortOperationFailed" : "No se pudo abortar la operación" ,
"gitView.toast.appliedIdentity" : "Identidad aplicada: {name}" ,
"gitView.toast.applyIdentityFailed" : "No se pudo aplicar la identidad" ,
"gitView.toast.branchCreatedLocally" : "Rama creada localmente, pero no se pudo configurar el upstream." ,
"gitView.toast.cannotCheckout" : "No se puede cambiar a la rama: {reason}" ,
"gitView.toast.cannotCreateBranch" : "No se puede crear la rama: {reason}" ,
"gitView.toast.cannotRemoveOriginRemote" : "No se puede eliminar el remoto origin" ,
"gitView.toast.cannotRenameBranch" : "No se puede cambiar el nombre de la rama: {reason}" ,
"gitView.toast.checkedOut" : "Cambiado a {name}" ,
"gitView.toast.checkoutFailed" : "No se pudo cambiar a {name}" ,
"gitView.toast.commitCreated" : "Commit creado" ,
"gitView.toast.commitHashCopied" : "Hash del commit copiado" ,
"gitView.toast.continueOperationFailed" : "No se pudo continuar la operación" ,
"gitView.toast.copyFailed" : "No se pudo copiar" ,
"gitView.toast.createBranchFailed" : "No se pudo crear la rama" ,
"gitView.toast.createCommitFailed" : "No se pudo crear el commit" ,
"gitView.toast.createdBranch" : "Rama {name} creada" ,
"gitView.toast.enterCommitMessage" : "Escribe un mensaje de commit" ,
"gitView.toast.fetchedFromRemote" : "Recuperado de {name}" ,
"gitView.toast.generateCommitMessageFailed" : "No se pudo generar el mensaje de commit" ,
"gitView.toast.mergeAborted" : "Merge abortado" ,
"gitView.toast.mergeCompleted" : "Merge completado" ,
"gitView.toast.mergeConflictsDetected" : "Se detectaron conflictos al hacer merge" ,
"gitView.toast.mergedIntoBranch" : "Merge de {branch} en {currentBranch}" ,
"gitView.toast.pulledFilesPlural" : "Se trajeron {count} archivos de {name}" ,
"gitView.toast.pulledFilesSingle" : "Se trajo {count} archivo de {name}" ,
2026-05-26 11:13:59 -04:00
"gitView.toast.pushedToUpstream" : "Enviado a {name}" ,
2026-05-05 20:45:21 +03:00
"gitView.toast.commitOrStashBeforeSync" : "Haz commit o stash de tus cambios antes de sincronizar" ,
2026-05-06 15:13:38 +03:00
"gitView.toast.alreadyUpToDate" : "Ya está actualizado" ,
2026-05-05 23:53:21 +03:00
"gitView.toast.syncedPulledPluralAndPushed" : "Se trajeron {count} archivos de {name} y se envió al upstream" ,
"gitView.toast.syncedPulledSingleAndPushed" : "Se trajo {count} archivo de {name} y se envió al upstream" ,
2026-05-05 20:45:21 +03:00
"gitView.toast.syncedChanges" : "Cambios sincronizados" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-23 23:49:38 +02:00
"gitView.toast.stageFileFailed" : "No se pudieron preparar los cambios" ,
"gitView.toast.stageFileToCommit" : "Prepara al menos un archivo para el commit" ,
"gitView.toast.stageFileToDescribe" : "Prepara al menos un archivo para describir" ,
2026-04-26 14:03:39 +03:00
"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ó" ,
2026-05-23 23:49:38 +02:00
"gitView.toast.unstageFileFailed" : "No se pudieron quitar los cambios del área preparada" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-14 00:51:12 +03:00
"contextPanel.mode.diff" : "Cambios" ,
2026-05-23 23:49:38 +02:00
"contextPanel.mode.stagedDiff" : "Staged Diff" ,
"contextPanel.mode.workingDiff" : "Working Diff" ,
2026-04-26 14:03:39 +03:00
"contextPanel.mode.plan" : "Plan" ,
2026-07-27 23:07:42 +03:00
"contextPanel.mode.pr" : "Pull Request" ,
2026-04-26 14:03:39 +03:00
"contextPanel.mode.context" : "Contexto" ,
2026-04-29 17:03:38 -04:00
"contextPanel.mode.preview" : "Vista previa" ,
2026-05-14 14:45:04 +03:00
"contextPanel.mode.browser" : "Navegador" ,
2026-07-27 23:07:42 +03:00
"contextRail.aria.rail" : "Superficies del panel" ,
"contextPanel.editorEmpty.title" : "Ningún archivo abierto" ,
"contextPanel.editorEmpty.description" : "Elige un archivo del árbol para empezar a editar." ,
"contextRail.surface.editor.description" : "Editar archivos del proyecto" ,
"contextRail.surface.git.description" : "Commits, ramas y pull requests" ,
2026-08-05 13:26:46 +00:00
"contextRail.surface.git.changesCountAriaSingle" : "{label}, {count} archivo modificado" ,
"contextRail.surface.git.changesCountAriaPlural" : "{label}, {count} archivos modificados" ,
"contextRail.surface.git.changesCountTooltipSingle" : "{count} archivo modificado" ,
"contextRail.surface.git.changesCountTooltipPlural" : "{count} archivos modificados" ,
2026-07-27 23:07:42 +03:00
"contextRail.surface.terminal.description" : "Terminal integrada" ,
"contextRail.surface.diff.description" : "Revisar cambios en curso" ,
2026-08-02 16:22:55 +03:00
"contextPanel.mode.walkthrough" : "Recorrido" ,
"contextRail.surface.walkthrough.description" : "Un recorrido por tus cambios guiado por IA" ,
"walkthrough.scope.all" : "Todo sin confirmar" ,
"walkthrough.scope.group.workingTree" : "Árbol de trabajo" ,
"walkthrough.scope.group.committed" : "Confirmado" ,
"walkthrough.scope.staged" : "Preparados" ,
"walkthrough.scope.working" : "Sin preparar" ,
"walkthrough.scope.branch" : "Esta rama" ,
"walkthrough.scope.selectorAria" : "Elegir qué revisar" ,
2026-08-03 01:27:27 +03:00
"walkthrough.language.menuLabel" : "Idioma del recorrido" ,
"walkthrough.missing.language" : "Aún no hay un recorrido en {requested}: se muestra el de {shown}." ,
"walkthrough.missing.model" : "Aún no hay un recorrido de {model}: se muestra el último generado aquí." ,
"walkthrough.missing.languageAndModel" : "Aún no hay un recorrido en este idioma con este modelo: se muestra el último generado aquí." ,
"walkthrough.language.selectorAria" : "Elegir el idioma del recorrido" ,
2026-08-02 16:22:55 +03:00
"walkthrough.scope.pullRequest" : "PR n.º {number}" ,
"walkthrough.action.generate" : "Generar recorrido" ,
"walkthrough.action.regenerate" : "Regenerar" ,
"walkthrough.action.cancel" : "Cancelar" ,
"walkthrough.action.next" : "Paso siguiente" ,
"walkthrough.action.previous" : "Paso anterior" ,
"walkthrough.action.refresh" : "Actualizar" ,
"walkthrough.action.open" : "Recorrido con IA" ,
"walkthrough.stage.collecting" : "Reuniendo los cambios" ,
"walkthrough.stage.asking" : "Esperando al modelo" ,
"walkthrough.stage.assembling" : "Montando el recorrido" ,
"walkthrough.empty.title" : "Todavía no hay recorrido" ,
"walkthrough.empty.description" : "Crea una ruta de lectura guiada por estos cambios. Esto llama al modelo pequeño y consume tokens, así que solo se ejecuta cuando lo pides." ,
"walkthrough.stale.banner" : "El código cambió después de esta revisión. Pasos desactualizados: {count}" ,
"walkthrough.stop.staleAll" : "Todo el código que describía este paso ha cambiado." ,
"walkthrough.stop.stalePartial" : "Parte del código que describía este paso ha cambiado. Fragmentos perdidos: {count}" ,
"walkthrough.stop.staleShort" : "Desactualizado" ,
"walkthrough.stop.noCode" : "El código de este paso no está en el diff actual." ,
"walkthrough.uncovered.title" : "Cambios que la revisión omitió: {count}" ,
"walkthrough.uncovered.description" : "La revisión los consideró rutinarios. Despliega para revisarlos tú mismo." ,
"walkthrough.toc.moreFiles" : "Más archivos: {count}" ,
"walkthrough.toc.uncovered" : "Sin cubrir: {count}" ,
"walkthrough.toc.resize" : "Cambiar el ancho de la columna de contenidos" ,
2026-08-04 15:09:25 +03:00
"walkthrough.importance.critical" : "Cambio clave" ,
"walkthrough.importance.criticalHint" : "Este paso impulsa el resto del cambio, así que léelo con atención. No es un problema detectado en tu código." ,
2026-08-02 16:22:55 +03:00
"walkthrough.importance.context" : "Contexto" ,
2026-08-04 15:09:25 +03:00
"walkthrough.importance.contextHint" : "Un cambio de apoyo, incluido para que el resto tenga sentido." ,
"walkthrough.help.guide" : "Cómo funcionan los walkthroughs" ,
2026-08-02 16:22:55 +03:00
"walkthrough.blocked.noModel.title" : "No hay ningún modelo pequeño disponible" ,
"walkthrough.blocked.noModel.description" : "Inicia sesión en un proveedor de modelos para generar una revisión." ,
"walkthrough.blocked.emptyDiff.title" : "Nada que revisar" ,
"walkthrough.blocked.emptyDiff.description" : "Todavía no hay cambios en este ámbito." ,
"walkthrough.blocked.contextTooSmall.title" : "Este diff es demasiado grande para el modelo actual" ,
"walkthrough.blocked.contextTooSmall.description" : "{model} admite unos {available} mil caracteres y este diff necesita unos {required} mil. No se recorta nada: elige un modelo con más contexto." ,
"walkthrough.blocked.structuredOutput.title" : "Este modelo no puede generar salida estructurada" ,
"walkthrough.blocked.structuredOutput.description" : "{model} no admite las respuestas estructuradas que necesita un recorrido." ,
"walkthrough.blocked.chooseModel" : "Elige el modelo pequeño" ,
"walkthrough.blocked.outputExhausted.title" : "El modelo se quedó sin presupuesto de respuesta" ,
"walkthrough.blocked.outputExhausted.description" : "{model} gastó todo su margen de salida razonando y no devolvió nada. Los modelos de razonamiento suelen hacerlo con diffs grandes: prueba con un modelo que razone menos o revisa un ámbito más reducido." ,
"walkthrough.blocked.outputExhausted.descriptionUnknownModel" : "El modelo pequeño gastó todo su margen de salida razonando y no devolvió nada. Los modelos de razonamiento suelen hacerlo con diffs grandes: prueba con un modelo que razone menos o revisa un ámbito más reducido." ,
"walkthrough.blocked.onlyGenerated.title" : "Solo cambiaron archivos generados" ,
"walkthrough.blocked.onlyGenerated.description" : "Todos los cambios son archivos de bloqueo u otra salida generada por herramientas, que la revisión omite a propósito." ,
2026-08-04 15:15:47 +03:00
"walkthrough.blocked.serverUnsupported.title" : "Este servidor no admite walkthroughs" ,
"walkthrough.blocked.serverUnsupported.description" : "El servidor de OpenChamber al que está conectada esta app no respondió a la API de walkthrough, así que es más antiguo que la app. Actualiza el servidor a 1.18 o posterior y vuelve a intentarlo." ,
2026-08-02 16:22:55 +03:00
"walkthrough.blocked.contextTooSmall.descriptionUnknownModel" : "El modelo pequeño admite unos {available} mil caracteres y este diff necesita unos {required} mil. No se recorta nada: elige un modelo con más contexto." ,
"walkthrough.blocked.structuredOutput.descriptionUnknownModel" : "El modelo pequeño no admite las respuestas estructuradas que necesita un recorrido." ,
2026-07-27 23:07:42 +03:00
"contextRail.surface.plan.description" : "Ver el plan actual" ,
"contextRail.surface.pr.description" : "Crea, revisa y fusiona el pull request de la rama actual" ,
"contextRail.surface.notes.description" : "Notas, tareas y planes del proyecto" ,
"contextRail.surface.context.description" : "Contexto de la sesión y uso de tokens" ,
"contextRail.surface.browser.description" : "Navegador web integrado" ,
"contextRail.surface.preview.description" : "Vista previa del servidor de desarrollo" ,
"contextRail.surface.chat.description" : "Sesión abierta en paralelo" ,
"contextRail.surface.notes" : "Notas del proyecto" ,
"contextRail.editorTree.toggle" : "Alternar árbol de archivos" ,
2026-05-14 14:45:04 +03:00
"contextPanel.browser.open" : "Abrir panel del navegador" ,
"contextPanel.browser.addressAria" : "Dirección del navegador" ,
"contextPanel.browser.empty" : "Navegador web" ,
"contextPanel.browser.emptyHint" : "Ingrese una dirección arriba para comenzar a navegar" ,
2026-05-29 01:42:03 +03:00
"contextPanel.browser.inspectUnavailable" : "Esta página no se puede inspeccionar desde el panel del navegador." ,
"contextPanel.browser.trustNotice" : "Las páginas que abras aquí se ejecutan con acceso completo a OpenChamber: necesario para la inspección y las capturas. Abre solo sitios de confianza: una página maliciosa podría leer tus datos o actuar en tu nombre." ,
2026-04-26 14:03:39 +03:00
"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}" ,
2026-04-29 17:03:38 -04:00
"contextPanel.preview.actions.reload" : "Recargar vista previa" ,
"contextPanel.preview.actions.openExternal" : "Abrir en el navegador" ,
"contextPanel.preview.actions.retry" : "Reintentar" ,
"contextPanel.preview.iframeTitle" : "Vista previa" ,
"contextPanel.preview.invalidUrl" : "La vista previa necesita una URL http(s) válida." ,
"contextPanel.preview.empty" : "Sin URL de vista previa" ,
"contextPanel.preview.loading" : "Conectando proxy de vista previa..." ,
"contextPanel.preview.proxyError" : "No se pudo iniciar el proxy de vista previa." ,
"contextPanel.preview.upstreamUnreachable" : "El servidor de desarrollo no responde." ,
"contextPanel.preview.upstreamUnreachableHint" : "Verifica que tu servidor de desarrollo siga en ejecución y vuelve a intentarlo." ,
"terminalView.preview.open" : "Vista previa" ,
"terminalView.preview.openTitle" : "Abrir panel de vista previa" ,
2026-04-26 14:03:39 +03:00
"sidebarFilesTree.menu.rename" : "Cambiar nombre" ,
"sidebarFilesTree.menu.copyPath" : "Copiar ruta" ,
"sidebarFilesTree.menu.save" : "Guardar" ,
2026-08-03 17:11:41 +03:00
"sidebarFilesTree.menu.download" : "Descargar" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-27 23:07:42 +03:00
"sidebarFilesTree.actions.collapseAllTitle" : "Contraer todas las carpetas" ,
2026-05-25 01:51:58 +07:00
"sidebarFilesTree.actions.fileMenuTitle" : "Menú de archivo" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-06 02:27:07 +03:00
"filesView.editor.autoSaveOn" : "Guardado automático activado" ,
"filesView.editor.manualSave" : "Guardado manual" ,
2026-04-26 14:03:39 +03:00
"filesView.editor.saveNowTitle" : "Guardar ahora ({shortcut}) - se guarda automáticamente después de 1.5 segundos" ,
2026-05-06 02:27:07 +03:00
"filesView.editor.saveNowManualTitle" : "Guardar ahora ({shortcut})" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-12 15:46:03 -07:00
"filesView.editor.switchToEditMode" : "Cambiar al modo de edición" ,
"filesView.editor.switchToPreviewMode" : "Cambiar al modo de vista previa" ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-07-30 06:37:47 +00:00
"filesView.editor.cannotPreviewBinary" : "No se puede previsualizar el archivo binario" ,
"filesView.editor.binaryFileDescription" : "Este archivo es binario y no se puede editar en OpenChamber. Descárgalo para abrirlo con otra aplicación." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-25 01:51:58 +07:00
"filesView.tree.actions.refreshTitle" : "Actualizar" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-08 11:50:56 -04:00
"filesView.diagram.closeDiagramView" : "Cerrar vista de diagrama" ,
"filesView.diagram.saveDiagram" : "Guardar diagrama" ,
2026-04-26 14:03:39 +03:00
"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é" ,
2026-06-11 14:43:41 -04:00
"contextSidebar.tokens.cacheHit" : "Acierto de caché" ,
2026-04-26 14:03:39 +03:00
"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.selector.selectFile" : "Seleccionar archivo" ,
"diffView.image.original" : "Original" ,
"diffView.image.modified" : "Modificado" ,
"diffView.image.new" : "Nuevo" ,
"diffView.image.originalAlt" : "Original: {path}" ,
"diffView.image.modifiedAlt" : "Modificado: {path}" ,
"diffView.section.files" : "Archivos" ,
"diffView.state.selectSessionDirectory" : "Selecciona un directorio de sesión para ver diferencias" ,
"diffView.state.loadingRepositoryStatus" : "Cargando estado del repositorio..." ,
"diffView.state.notGitRepository" : "No es un repositorio Git. Usa la pestaña Git para inicializar o cambiar de directorio." ,
"diffView.state.cleanWorkingTree" : "Worktree limpio, no hay cambios para mostrar" ,
2026-07-07 14:44:20 +03:00
"diffView.state.noLastTurnChanges" : "No hay cambios del último turno para mostrar" ,
2026-04-26 14:03:39 +03:00
"diffView.state.failedToLoadDiff" : "No se pudo cargar la diferencia" ,
"diffView.state.loadingDiff" : "Cargando diff..." ,
"diffView.state.loadingChanges" : "Cargando cambios..." ,
2026-06-13 23:55:50 +03:00
"diffView.state.largeDiff" : "Diff grande ({count} líneas modificadas)" ,
"diffView.state.largeDiffDescription" : "El renderizado puede ser lento. Aun así puedes ver el diff con el botón de abajo." ,
2026-04-26 14:03:39 +03:00
"diffView.summary.changedFilesSingle" : "{count} archivo modificado" ,
"diffView.summary.changedFilesPlural" : "{count} archivos modificados" ,
2026-06-14 00:51:12 +03:00
"diffView.scope.changed" : "Cambiados" ,
"diffView.scope.staged" : "Staged" ,
2026-07-07 14:44:20 +03:00
"diffView.scope.lastTurn" : "Último turno" ,
2026-06-14 00:51:12 +03:00
"diffView.scope.selectorAria" : "Seleccionar modo de cambios" ,
2026-04-26 14:03:39 +03:00
"diffView.actions.retry" : "Volver a intentar" ,
2026-06-13 23:55:50 +03:00
"diffView.actions.renderAnyway" : "Renderizar de todos modos" ,
"diffView.actions.expandAll" : "Expandir todo" ,
"diffView.actions.collapseAll" : "Contraer todo" ,
2026-06-14 01:39:49 +03:00
"diffView.actions.loadFullFiles" : "Cargar archivos completos" ,
"diffView.actions.disableFullFiles" : "No cargar archivos completos" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-14 16:55:58 +03:00
'diffView.actions.review' : 'Revisar' ,
'diffView.actions.reviewAria' : 'Revisar cambios' ,
'diffView.reviewDialog.title' : 'Revisar cambios' ,
'diffView.reviewDialog.description' : 'Inicia una sesión de revisión separada para los cambios actuales.' ,
'diffView.reviewDialog.generateHandoff' : 'Generar handoff' ,
2026-06-26 19:29:44 +03:00
'diffView.reviewDialog.autoReview' : 'Ejecutar ciclo de revisión automática' ,
2026-06-14 16:55:58 +03:00
'diffView.reviewDialog.info' : 'Este flujo funciona mejor si se inicia desde la sesión donde se implementaron los cambios.' ,
'diffView.reviewDialog.actions.cancel' : 'Cancelar' ,
'diffView.reviewDialog.actions.start' : 'Revisar' ,
'diffView.reviewDialog.actions.starting' : 'Iniciando...' ,
'diffView.reviewDialog.toast.noSessionDirectory' : 'El directorio de la sesión no está disponible' ,
'diffView.reviewDialog.toast.startFailed' : 'No se pudo iniciar el flujo de revisión' ,
2026-07-04 02:48:07 +03:00
'chat.dictation.start' : 'Iniciar dictado' ,
'chat.dictation.overlayAria' : 'Dictado' ,
'chat.dictation.downloadingModel' : 'Descargando el modelo de voz...' ,
'chat.dictation.downloadingModelProgress' : 'Descargando el modelo de voz... {percent}%' ,
'chat.dictation.listening' : 'Escuchando...' ,
'chat.dictation.processing' : 'Transcribiendo...' ,
'chat.dictation.failed' : 'La transcripción falló' ,
'chat.dictation.cancel' : 'Descartar dictado' ,
'chat.dictation.insert' : 'Insertar transcripción' ,
'chat.dictation.insertAndSend' : 'Insertar y enviar' ,
'chat.dictation.retry' : 'Reintentar transcripción' ,
'chat.dictation.discard' : 'Descartar grabación' ,
2026-07-03 13:49:53 +03:00
'chat.history.loadOlder' : 'Cargar mensajes anteriores' ,
2026-06-26 19:29:44 +03:00
'chat.autoReview.title' : 'El ciclo de revisión de código está en curso' ,
'chat.autoReview.status.waitingForReviewer' : 'Esperando al revisor' ,
'chat.autoReview.status.waitingForImplementer' : 'Esperando al implementador' ,
'chat.autoReview.reviewSessionLabel' : 'Sesión de revisión' ,
'chat.autoReview.actions.open' : 'Abrir' ,
'chat.autoReview.actions.stop' : 'Detener' ,
2026-06-14 10:58:23 +03:00
"diffView.hunk.label" : "Fragmentos" ,
"diffView.hunk.stage" : "Preparar" ,
"diffView.hunk.unstage" : "Quitar" ,
"diffView.hunk.discard" : "Descartar" ,
"diffView.hunk.stageTitle" : "Preparar fragmento {index}" ,
"diffView.hunk.unstageTitle" : "Quitar fragmento {index} de la preparación" ,
"diffView.hunk.discardTitle" : "Descartar fragmento {index}" ,
"diffView.hunk.unavailable" : "Este fragmento ya no está disponible. Actualice el diff e inténtelo de nuevo." ,
"diffView.hunk.unsupported" : "Preparar fragmentos individuales no es compatible en este entorno." ,
2026-04-26 14:03:39 +03:00
"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}\"" ,
2026-05-17 23:26:26 +03:00
"rightSidebar.contextNotesTodo.todo.actions.reorder" : "Reordenar \"{text}\"" ,
"rightSidebar.contextNotesTodo.todo.resizeAria" : "Redimensionar lista de tareas" ,
2026-04-26 14:03:39 +03:00
"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)" ,
2026-06-02 20:50:08 +03:00
"inlineComment.input.placeholderShort" : "Añadir un comentario..." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-11 19:30:19 +03:00
"header.github.accountSource.oauth" : "OAuth" ,
"header.github.accountSource.cli" : "CLI" ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-06-02 00:43:05 +03:00
"header.services.remoteUpdate.title" : "Actualización de instancia remota" ,
"header.services.remoteUpdate.checking" : "Buscando actualizaciones..." ,
"header.services.remoteUpdate.upToDate" : "Esta instancia está actualizada." ,
"header.services.remoteUpdate.available" : "La versión {version} está disponible para esta instancia." ,
"header.services.remoteUpdate.error" : "No se pudieron comprobar las actualizaciones de la instancia remota" ,
"header.services.remoteUpdate.actions.open" : "Actualizar" ,
2026-04-26 14:03:39 +03:00
"header.services.used" : "Usado" ,
"header.services.remaining" : "Restante" ,
"header.services.modelFamily.other" : "Otro" ,
2026-04-29 17:03:38 -04:00
"header.services.shutdownDev" : "Detener OpenChamber" ,
2026-04-26 14:03:39 +03:00
"header.actions.openPlanAria" : "Abrir plan" ,
2026-06-14 00:51:12 +03:00
"header.actions.toggleChangesPanel" : "Panel de cambios" ,
"header.actions.toggleChangesPanelAria" : "Alternar panel de cambios" ,
2026-04-26 14:03:39 +03:00
"header.actions.planWithShortcut" : "Plan ({shortcut})" ,
"header.actions.terminalPanelWithShortcut" : "Panel de terminal ({shortcut})" ,
2026-07-05 23:19:10 +03:00
"chat.recap.aria" : "Resumen de la sesión" ,
"chat.recap.label" : "Resumen:" ,
2026-07-12 01:23:22 +03:00
"chat.goal.dialog.titleCreate" : "Definir objetivo de sesión" ,
"chat.goal.dialog.titleManage" : "Objetivo de sesión" ,
"chat.goal.dialog.objectiveLabel" : "Objetivo" ,
"chat.goal.dialog.objectivePlaceholder" : "Describe el estado final que el agente debe alcanzar y verificar…" ,
"chat.goal.dialog.budgetLabel" : "Presupuesto de tokens" ,
2026-07-15 08:56:10 +03:00
"chat.goal.dialog.evaluationModelLabel" : "Modelo de evaluación" ,
2026-07-12 01:23:22 +03:00
"chat.goal.status.active" : "Activo" ,
"chat.goal.status.evaluating" : "Evaluando…" ,
"chat.goal.status.paused" : "En pausa" ,
"chat.goal.status.blocked" : "Bloqueado" ,
"chat.goal.status.budgetLimited" : "Presupuesto alcanzado" ,
"chat.goal.status.complete" : "Completado" ,
"chat.goal.usage.tokens" : "{used} tokens" ,
"chat.goal.usage.tokensWithBudget" : "{used}/{budget} tokens" ,
"chat.goal.usage.turns" : "{turns} continuaciones" ,
"chat.goal.action.pause" : "Pausar" ,
"chat.goal.action.resume" : "Reanudar" ,
"chat.goal.action.markComplete" : "Marcar como completado" ,
"chat.goal.action.clear" : "Eliminar objetivo" ,
"chat.goal.action.cancel" : "Cancelar" ,
"chat.goal.action.save" : "Guardar objetivo" ,
"chat.goal.action.start" : "Iniciar objetivo" ,
"chat.goal.toast.actionFailed" : "No se pudo actualizar el objetivo" ,
2026-07-12 16:34:16 +03:00
"chat.goal.toast.distillFallback" : "El objetivo superó el límite y no se pudo destilar — el auditor usa una versión recortada" ,
2026-07-12 01:23:22 +03:00
"chat.goal.row.aria" : "Objetivo de sesión — abrir detalles" ,
"chat.goal.button.createAria" : "Definir un objetivo de sesión" ,
"chat.goal.button.manageAria" : "Gestionar el objetivo de sesión" ,
"chat.goal.button.armAria" : "Iniciar un objetivo con el próximo mensaje" ,
"chat.goal.counter.aria" : "Límite de longitud del objetivo" ,
"chat.goal.button.disarmAria" : "Objetivo armado — toca para desactivarlo" ,
"chat.goal.button.cancelAria" : "Objetivo en curso — toca para cancelarlo" ,
"chat.goal.cancelDialog.title" : "¿Cancelar este objetivo?" ,
"chat.goal.cancelDialog.description" : "El agente dejará de trabajar automáticamente hacia este objetivo." ,
"chat.goal.cancelDialog.keep" : "Mantener objetivo" ,
"chat.goal.cancelDialog.confirm" : "Cancelar objetivo" ,
2026-07-05 23:19:10 +03:00
"chat.suggestion.applyAria" : "Usar mensaje sugerido" ,
"chat.suggestion.dismissAria" : "Descartar sugerencia" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-17 13:17:21 +03:00
"terminalView.quickKeys.altLabel" : "Alt" ,
"terminalView.quickKeys.altModifierAria" : "Modificador Alt" ,
2026-04-26 14:03:39 +03:00
"terminalView.quickKeys.commandModifierAria" : "Modificador de comando" ,
"terminalView.quickKeys.arrowUpAria" : "Flecha arriba" ,
"terminalView.quickKeys.arrowLeftAria" : "Flecha izquierda" ,
"terminalView.quickKeys.arrowDownAria" : "Flecha abajo" ,
"terminalView.quickKeys.arrowRightAria" : "Flecha derecha" ,
"terminalView.quickKeys.enterAria" : "Enter" ,
"terminalView.tabs.closeTabTitle" : "Cerrar pestaña" ,
"terminalView.tabs.newTabTitle" : "Nueva pestaña" ,
"terminalView.viewport.inputAria" : "Entrada de terminal" ,
"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..." ,
2026-04-27 15:45:14 +03:00
"directoryExplorerDialog.actions.openingFinder" : "Abriendo..." ,
"directoryExplorerDialog.actions.openInFinder" : "Abrir en Finder" ,
2026-04-26 14:03:39 +03:00
"directoryExplorerDialog.actions.adding" : "Añadiendo..." ,
"directoryExplorerDialog.actions.addProject" : "Añadir proyecto" ,
2026-05-07 01:10:17 +03:00
"directoryExplorerDialog.actions.addLocalProject" : "Añadir proyecto local" ,
"directoryExplorerDialog.actions.cloneRepository" : "Clonar repositorio" ,
"directoryExplorerDialog.actions.cloneAndAdd" : "Clonar y añadir" ,
"directoryExplorerDialog.actions.cloning" : "Clonando..." ,
2026-04-27 15:45:14 +03:00
"directoryExplorerDialog.actions.createAndAdd" : "Crear y añadir" ,
"directoryExplorerDialog.actions.alreadyAdded" : "Ya añadido" ,
2026-05-07 01:10:17 +03:00
"directoryExplorerDialog.clone.remoteUrlPlaceholder" : "URL del repositorio (HTTPS o SSH)" ,
2026-04-27 15:45:14 +03:00
"directoryExplorerDialog.browse.directories" : "Directorios" ,
"directoryExplorerDialog.browse.loading" : "Cargando directorios..." ,
"directoryExplorerDialog.browse.empty" : "No hay directorios coincidentes." ,
2026-08-07 01:49:44 +03:00
"directoryExplorerDialog.browse.permissionDenied" : "OpenChamber necesita acceso a esta carpeta." ,
"directoryExplorerDialog.browse.loadFailed" : "No se pudo cargar esta carpeta." ,
"directoryExplorerDialog.browse.grantAccess" : "Permitir acceso" ,
"directoryExplorerDialog.browse.retry" : "Reintentar" ,
2026-04-27 15:45:14 +03:00
"directoryExplorerDialog.browse.parentDirectory" : "Directorio padre" ,
"directoryExplorerDialog.browse.addedBadge" : "Añadido" ,
2026-05-23 14:37:51 -04:00
"directoryExplorerDialog.browse.quickAdd" : "Añadir" ,
2026-04-27 15:45:14 +03:00
"directoryExplorerDialog.footer.navigate" : "Navegar" ,
"directoryExplorerDialog.footer.select" : "Seleccionar" ,
"directoryExplorerDialog.footer.add" : "Añadir" ,
"directoryExplorerDialog.shortcut.enter" : "Enter" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-07 01:10:17 +03:00
"directoryExplorerDialog.toast.cloneUrlRequired" : "Introduce una URL de repositorio antes de clonar." ,
2026-04-26 14:03:39 +03:00
"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}" ,
2026-05-14 14:45:04 +03:00
"aboutDialog.openChamberVersionLabel" : "Versión de OpenChamber {version}" ,
"aboutDialog.openCodeVersionLabel" : "Versión de OpenCode {version}" ,
2026-04-26 14:03:39 +03:00
"aboutDialog.actions.copyDiagnostics" : "Copiar diagnósticos" ,
"aboutDialog.actions.preparingDiagnostics" : "Preparando diagnósticos..." ,
"aboutDialog.actions.diagnosticsCopied" : "Diagnósticos copiados" ,
"aboutDialog.diagnosticsDescription" : "Incluye el estado de OpenChamber, el estado de OpenCode, directorios y proyectos." ,
"aboutDialog.footerNote" : "Hecho con amor para la comunidad" ,
"aboutDialog.toast.copyFailed" : "No se pudo copiar" ,
"aboutDialog.toast.diagnosticsNotReady" : "Los diagnósticos aún no están listos. Espera un segundo y vuelve a intentarlo." ,
"aboutDialog.toast.diagnosticsCopied" : "Diagnósticos copiados" ,
"helpDialog.title" : "Atajos de teclado" ,
"helpDialog.description" : "Usa estos atajos de teclado para navegar por OpenChamber de manera eficiente" ,
"helpDialog.section.navigationCommands" : "Navegación y comandos" ,
"helpDialog.section.sessionManagement" : "Gestión de sesiones" ,
"helpDialog.section.panels" : "Paneles" ,
"helpDialog.section.interface" : "Interfaz" ,
"helpDialog.item.openCommandPalette" : "Abrir paleta de comandos" ,
"helpDialog.item.showKeyboardShortcuts" : "Mostrar atajos de teclado (este diálogo)" ,
"helpDialog.item.toggleSessionSidebar" : "Mostrar u ocultar barra lateral de sesión" ,
2026-08-03 12:04:35 +00:00
"helpDialog.item.addSelectionToChat" : "Agregar selección al chat" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-13 09:02:14 +03:00
"helpDialog.item.togglePromptNavigator" : "Mostrar u ocultar navegador de prompts" ,
2026-04-26 14:03:39 +03:00
"helpDialog.item.abortActiveRun" : "Detener ejecución activa (doble presionar)" ,
2026-07-27 23:07:42 +03:00
"helpDialog.item.toggleRightSidebar" : 'Alternar panel de contexto' ,
"helpDialog.item.openRightSidebarGitTab" : 'Abrir superficie de Git' ,
"helpDialog.item.openRightSidebarFilesTab" : 'Abrir superficie de archivos' ,
2026-04-26 14:03:39 +03:00
"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)" ,
2026-08-04 20:39:45 +03:00
"helpDialog.item.switchContextSurface" : "Cambiar superficie del panel de contexto (tecla numérica)" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-26 11:13:59 -04:00
"header.actions.openAppMenu" : "Menú de OpenChamber" ,
"header.actions.openAppMenuAria" : "Abrir menú de OpenChamber" ,
2026-04-26 14:03:39 +03:00
"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)." ,
2026-06-08 08:37:42 -04:00
"session.githubIssuePicker.searchPlaceholder" : "Buscar usando la sintaxis de búsqueda de código de GitHub" ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-06-08 08:37:42 -04:00
"session.githubPrPicker.searchPlaceholder" : "Buscar usando la sintaxis de búsqueda de código de GitHub" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-08 08:37:42 -04:00
"session.githubIntegration.search.issuesPlaceholder" : "Buscar usando la sintaxis de búsqueda de código de GitHub" ,
"session.githubIntegration.search.prsPlaceholder" : "Buscar usando la sintaxis de búsqueda de código de GitHub" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-08 16:59:31 +03:00
"session.githubIntegration.validation.branchAlreadyExists" : "La rama ya existe localmente" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-05 00:24:03 +02:00
"chat.fileAttachment.activeEditor.addFile" : "Agregar archivo:{name} al contexto" ,
"chat.fileAttachment.activeEditor.pinSelection" : "Anclar selección al contexto" ,
"chat.fileAttachment.activeEditor.remove" : "Quitar del contexto" ,
2026-06-08 11:50:56 -04:00
"chat.fileAttachment.openInDiagram" : "Abrir en vista de diagrama" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-27 17:35:58 +03:00
"chat.emptyState.draftTitle" : "What are we working on?" ,
"chat.emptyState.draftTitleWithProject" : "What are we working on in {project}?" ,
2026-05-29 02:41:46 +03:00
"chat.draftPresets.explore.label" : "Explore the codebase" ,
2026-05-29 02:56:44 +03:00
"chat.draftPresets.catchup.label" : "Catch me up" ,
2026-05-29 03:12:52 +03:00
"chat.draftPresets.weigh.label" : "Weigh my options" ,
2026-05-29 02:41:46 +03:00
"chat.draftPresets.plan.label" : "Start feature planning" ,
2026-07-12 10:58:58 +03:00
"chat.draftPresets.craftGoal.label" : "Crear un Goal" ,
2026-07-24 21:54:28 +03:00
"chat.draftPresets.scheduleTask.label" : "Programar una tarea" ,
2026-05-29 02:56:44 +03:00
"chat.draftPresets.debug.label" : "Debug an issue" ,
2026-05-29 02:41:46 +03:00
"chat.draftPresets.review.label" : "Review my changes" ,
2026-05-30 00:05:49 +03:00
"chat.draftStarters.add" : "Add a starter" ,
"chat.draftStarters.searchPlaceholder" : "Search commands and skills…" ,
"chat.draftStarters.empty" : "Nothing to add" ,
"chat.draftStarters.sectionBuiltIn" : "Built-in" ,
"chat.draftStarters.sectionCommands" : "Commands" ,
"chat.draftStarters.sectionSkills" : "Skills" ,
"chat.draftStarters.remove" : "Remove" ,
2026-04-26 14:03:39 +03:00
"chat.scrollToBottom.aria" : "Ir al final" ,
2026-07-13 09:02:14 +03:00
"chat.promptNavigator.aria" : "Navegación de prompts" ,
"chat.promptNavigator.currentPrompt" : "Prompt actual" ,
"chat.promptNavigator.loadMore" : "Cargar más prompts" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-19 22:58:28 +03:00
"chat.statusRow.modelStatus" : "{model} · {status}" ,
2026-04-26 14:03:39 +03:00
"chat.statusRow.summary.activeLeft" : "{active} activas · {left} restantes" ,
"chat.statusRow.aborted" : "Interrumpido" ,
2026-05-16 21:44:37 +08:00
"chat.revertIndicator.redo" : "Rehacer" ,
"chat.revertIndicator.redoAria" : "Rehacer — restaurar mensajes revertidos" ,
"chat.revertPopover.title" : "Revertidos" ,
"chat.revertPopover.noTextContent" : "Sin contenido de texto" ,
"chat.revertPopover.forkFromHere" : "Bifurcar desde aquí" ,
"chat.revertPopover.forkFromMessage" : "Bifurcar desde este mensaje" ,
"chat.revertPopover.restoreAll" : "Restaurar todo" ,
"chat.revertPopover.restore" : "Restaurar" ,
"chat.revertPopover.revert" : "Revertir" ,
"chat.revertPopover.fork" : "Bifurcar" ,
"chat.revert.toast.undo" : "Revertido a {preview}" ,
"chat.revert.toast.redo" : "Rehecho" ,
"chat.revert.toast.restored" : "Todos los mensajes restaurados" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-05 16:21:06 +08:00
"chat.commandAutocomplete.command.timelineDescription" : "Abrir la línea de tiempo de la conversación" ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-05-29 12:42:42 +03:00
"chat.commandAutocomplete.command.workspaceReviewDescription" : "Revisa el diff del espacio de trabajo en intención, corrección y adecuación, con hallazgos por severidad." ,
2026-06-07 01:22:40 +03:00
"chat.commandAutocomplete.command.handoffReviewDescription" : "Crea o reutiliza una sesión de revisión separada a partir de un handoff generado." ,
2026-05-29 02:41:46 +03:00
"chat.commandAutocomplete.command.featurePlanDescription" : "Inicia una sesión de planificación guiada e interactiva para una nueva función." ,
2026-07-12 10:58:58 +03:00
"chat.commandAutocomplete.command.craftGoalDescription" : "Convierte una idea o tarea en un Goal claro y verificable." ,
2026-07-24 21:54:28 +03:00
"chat.commandAutocomplete.command.scheduleTaskDescription" : "Define una tarea programada mediante un diálogo guiado." ,
2026-07-12 10:58:58 +03:00
"chat.chatInput.toast.craftGoalFailed" : "No se pudo iniciar la creación del Goal" ,
2026-07-24 21:54:28 +03:00
"chat.chatInput.toast.scheduleTaskFailed" : "No se pudo iniciar la configuración de la tarea programada" ,
2026-05-29 02:56:44 +03:00
"chat.commandAutocomplete.command.catchUpDescription" : "Recupera el contexto: qué estabas haciendo y por dónde continuar." ,
"chat.commandAutocomplete.command.debugDescription" : "Investigación guiada de la causa raíz de un error antes de proponer una solución." ,
2026-05-29 03:12:52 +03:00
"chat.commandAutocomplete.command.weighDescription" : "Compara 2-3 enfoques con sus ventajas y desventajas y una recomendación antes de decidir." ,
2026-05-29 12:08:01 +03:00
"chat.commandAutocomplete.command.exploreDescription" : "Oriéntate en este código: un recorrido general de la arquitectura y las partes principales." ,
2026-04-26 14:03:39 +03:00
"chat.commandAutocomplete.badge.skill" : "habilidad" ,
2026-05-18 19:11:29 +03:00
"chat.commandAutocomplete.badge.command" : "comando" ,
2026-04-26 14:03:39 +03:00
"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)" ,
2026-05-27 17:13:45 +03:00
"chat.queuedMessage.title" : "Queued messages" ,
"chat.queuedMessage.edit" : "edit" ,
"chat.queuedMessage.send" : "send" ,
2026-04-26 14:03:39 +03:00
"chat.queuedMessage.removeAria" : "Eliminar de la cola" ,
2026-06-26 19:35:45 +03:00
"chat.queuedMessage.reorderAria" : "Arrastra para reordenar" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-15 22:16:04 +03:00
"chat.container.readOnlySubagentPromptBanner" : "Las sesiones de subagentes no pueden recibir prompts." ,
2026-07-21 20:52:20 +03:00
"chat.container.sessionLoadError.title" : "No se pudo cargar la sesión" ,
"chat.container.sessionLoadError.description" : "Comprueba la conexión e intenta cargar esta sesión de nuevo." ,
"chat.container.sessionLoadError.retry" : "Reintentar" ,
"sessions.sidebar.group.empty.loadingSessions" : "Cargando sesiones…" ,
"sessions.sidebar.group.empty.loadFailed" : "No se pudieron actualizar las sesiones." ,
"sessions.sidebar.group.empty.retry" : "Reintentar" ,
2026-08-07 01:49:44 +03:00
"sessions.sidebar.group.empty.permissionDenied" : "Se requiere acceso a la carpeta." ,
"sessions.sidebar.group.empty.grantAccess" : "Permitir acceso" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-18 11:54:19 -03:00
"chat.questionCard.copyMarkdown" : "Copiar como Markdown" ,
"chat.questionCard.copyJson" : "Copiar como JSON" ,
"chat.questionCard.copiedMarkdown" : "Pregunta copiada como Markdown" ,
"chat.questionCard.copiedJson" : "Pregunta copiada como JSON" ,
"chat.questionCard.copyFailed" : "No se pudo copiar la pregunta" ,
2026-06-03 13:28:20 +03:00
"chat.questionCard.submitFailed" : "No se pudo enviar la respuesta" ,
"chat.questionCard.dismissFailed" : "No se pudo descartar la pregunta" ,
"chat.questionCard.noLongerPending" : "Esta pregunta ya no espera una respuesta." ,
"chat.questionCard.tryAgain" : "Inténtalo de nuevo en un momento." ,
2026-04-26 14:03:39 +03:00
"chat.textSelection.toast.noProject" : "No se encontró proyecto para esta sesión" ,
"chat.textSelection.toast.addToNotesFailed" : "No se pudo añadir a las notas" ,
2026-05-19 02:07:07 +03:00
"chat.textSelection.toast.addToNotesSuccess" : "Texto seleccionado añadido a notas" ,
2026-04-30 13:07:37 +03:00
"chat.textSelection.toast.addToNotesSummaryFailed" : "No se pudo resumir la selección; se añadió el texto seleccionado a las notas" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-19 02:07:07 +03:00
"chat.textSelection.title.saveInsightToNotes" : "Guardar texto seleccionado en notas" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-17 10:30:45 +03:00
"chat.messageBody.actions.pinContext" : "Fijar en el contexto (se conserva tras la compactación)" ,
"chat.messageBody.actions.unpinContext" : "Quitar del contexto (no se conservará tras la compactación)" ,
"chat.messageBody.actions.contextPinFailed" : "No se pudo actualizar el mensaje fijado en el contexto" ,
2026-04-29 17:03:38 -04:00
"chat.messageBody.actions.openPreviewAria" : "Abrir vista previa" ,
"chat.messageBody.actions.openPreview" : "Abrir vista previa" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-02 12:53:30 +03:00
"chat.messageBody.forkDialog.instructions.label" : "Instrucciones" ,
"chat.messageBody.forkDialog.instructions.placeholder" : "Añade instrucciones para la nueva sesión…" ,
2026-06-06 23:22:16 +03:00
"chat.messageBody.forkDialog.createWorktree" : "Crear worktree" ,
2026-05-14 02:16:46 +03:00
"chat.generatedResult.actions.copy" : "Copiar" ,
"chat.generatedResult.actions.copied" : "Copiado" ,
"chat.generatedResult.commit.title" : "Mensaje de commit generado" ,
"chat.generatedResult.commit.highlights" : "Puntos clave" ,
"chat.generatedResult.pullRequest.title" : "Pull request generado" ,
"chat.generatedResult.pullRequest.titleLabel" : "Título" ,
"chat.generatedResult.pullRequest.bodyLabel" : "Descripción" ,
2026-04-26 14:03:39 +03:00
"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)" ,
2026-06-09 00:31:21 +08:00
"planView.tts.readAloud" : "Leer plan en voz alta" ,
"planView.tts.stopSpeaking" : "Detener lectura" ,
"filesView.tts.readAloud" : "Leer archivo en voz alta" ,
"filesView.tts.stopSpeaking" : "Detener lectura" ,
2026-04-26 14:03:39 +03:00
"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..." ,
2026-05-21 20:00:35 +03:00
"chat.chatInput.placeholder.chat" : "@ para archivos/agentes; / para comandos y habilidades; ! para shell; # para snippets" ,
"chat.chatInput.placeholder.chatCompact" : "Usa @ / ! # para ayudas" ,
2026-04-26 14:03:39 +03:00
"chat.chatInput.placeholder.selectSession" : "Selecciona o crea una sesión para comenzar a chatear" ,
2026-05-21 20:00:35 +03:00
"chat.snippetAutocomplete.action.addNew" : "+ Agregar nuevo snippet" ,
"chat.snippetAutocomplete.empty" : "No se encontraron snippets" ,
"chat.snippetAutocomplete.footer" : "↑↓ navegar • Enter seleccionar • Esc cerrar" ,
"snippets.source.global" : "global" ,
"snippets.source.project" : "proyecto" ,
2026-04-26 14:03:39 +03:00
"chat.chatInput.toast.compactFailed" : "No se pudo comprimir la sesión" ,
"chat.chatInput.toast.summaryFailed" : "No se pudo generar el resumen" ,
2026-06-07 01:22:40 +03:00
"chat.messageBody.actions.sendReviewFeedback" : "Enviar feedback de revisión al agente que implementa los cambios" ,
"chat.messageBody.actions.sendImplementationResponse" : "Enviar respuesta de implementación al agente revisor" ,
2026-04-26 14:03:39 +03:00
"chat.chatInput.toast.reviewFailed" : "No se pudieron revisar los cambios" ,
2026-05-29 02:41:46 +03:00
"chat.chatInput.toast.planFeatureFailed" : "No se pudo iniciar la planificación de la función" ,
2026-05-29 02:56:44 +03:00
"chat.chatInput.toast.catchUpFailed" : "No se pudo recuperar el contexto" ,
"chat.chatInput.toast.debugFailed" : "No se pudo iniciar la depuración" ,
2026-05-29 03:12:52 +03:00
"chat.chatInput.toast.weighFailed" : "No se pudieron comparar las opciones" ,
2026-05-29 12:08:01 +03:00
"chat.chatInput.toast.exploreFailed" : "No se pudo iniciar el recorrido" ,
2026-04-26 14:03:39 +03:00
"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}" ,
2026-07-22 14:40:40 +03:00
"chat.chatInput.toast.unsupportedAttachmentModalities" : "{model} no admite la entrada de {modalities} necesaria para {files}. Aún puedes enviar el mensaje, pero estos adjuntos podrían ignorarse." ,
2026-04-26 14:03:39 +03:00
"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:" ,
2026-06-02 20:50:08 +03:00
"chat.chatInput.reviewCommentsRemove" : "Quitar comentarios de revisión" ,
2026-04-29 17:03:38 -04:00
"chat.chatInput.devServerLogs" : "Logs del Dev Server:" ,
"chat.chatInput.devServerLogsRemove" : "Quitar logs del Dev Server" ,
"chat.chatInput.previewAnnotations" : "Anotaciones de vista previa:" ,
"chat.chatInput.previewContext" : "Contexto de vista previa:" ,
"chat.chatInput.previewContextRemove" : "Quitar contexto de vista previa" ,
2026-04-26 14:03:39 +03:00
"chat.chatInput.projectRoot" : "Raíz del proyecto" ,
"chat.chatInput.branch" : "Rama" ,
2026-07-04 16:41:17 +03:00
"chat.chatInput.draftPicker.projectTitle" : "Proyecto" ,
"chat.chatInput.draftPicker.searchProjects" : "Buscar proyectos..." ,
"chat.chatInput.draftPicker.searchBranches" : "Buscar ramas..." ,
2026-04-26 14:03:39 +03:00
"chat.chatInput.worktrees" : "Worktrees" ,
"chat.chatInput.worktreeNew" : "+ Nuevo" ,
"chat.chatInput.drop.insertMention" : "Suelta para insertar como mención" ,
"chat.chatInput.drop.attachFiles" : "Suelta archivos aquí para adjuntar" ,
"chat.chatInput.fileFallback" : "archivo" ,
"chat.toolOutputDialog.image.previousAria" : "Imagen anterior" ,
"chat.toolOutputDialog.image.nextAria" : "Imagen siguiente" ,
"chat.toolOutputDialog.image.closeAria" : "Cerrar vista previa de imagen" ,
"chat.toolOutputDialog.mermaid.missingSource" : "Falta la URL de origen de Mermaid." ,
"chat.toolOutputDialog.mermaid.loadFailed" : "No se pudo cargar el diagrama de Mermaid." ,
2026-07-09 01:43:23 +08:00
"chat.toolOutputDialog.mermaid.dataUrlMalformed" : "La URL de datos de Mermaid no tiene un formato válido." ,
"chat.toolOutputDialog.mermaid.invalidLocalPath" : "La ruta del archivo local de Mermaid no es válida." ,
"chat.toolOutputDialog.mermaid.readFileFailedWithStatus" : "No se pudo leer el archivo de Mermaid. Estado: {status}." ,
"chat.toolOutputDialog.mermaid.unsupportedUrlProtocol" : "El protocolo de la URL de Mermaid no es compatible." ,
"chat.toolOutputDialog.mermaid.loadFailedWithStatus" : "No se pudo cargar el diagrama de Mermaid. Estado: {status}." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-03 17:15:52 +03:00
"chat.toolPart.showRawJson" : "Mostrar JSON sin formato" ,
"chat.toolPart.showFormattedJson" : "Mostrar JSON formateado" ,
2026-07-10 14:51:33 +03:00
"chat.toolPart.showNavigableJson" : "Mostrar JSON navegable" ,
"chat.toolPart.openFileAtFirstChange" : "Abrir archivo en el primer cambio" ,
"chat.toolPart.openFileDiff" : "Abrir diferencias del archivo" ,
2026-06-03 17:15:52 +03:00
"chat.toolPart.copyOutput" : "Copiar salida" ,
"chat.toolPart.copiedOutput" : "Salida copiada" ,
"chat.toolPart.copyOutputFailed" : "No se pudo copiar la salida" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-04-27 04:28:51 -06:00
"chat.modelControls.keyboardHintNavigate" : "↑↓ navegar" ,
2026-05-15 00:27:39 +03:00
"chat.modelControls.keyboardHintSwitchAgent" : "{shortcut} cambiar agente" ,
2026-04-26 14:03:39 +03:00
"chat.modelControls.keyboardHintThinking" : "←→ cambiar razonamiento" ,
2026-04-27 04:28:51 -06:00
"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" ,
2026-06-26 19:36:47 +03:00
"chat.modelControls.reorderProviderTitle" : "Arrastrar para reordenar proveedor" ,
2026-04-26 14:03:39 +03:00
"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" : "—" ,
2026-05-16 17:20:16 +03:00
"chat.reasoningTrace.thinking" : "Pensando" ,
"chat.reasoningTrace.justification" : "Justificación" ,
"chat.reasoningTrace.expandAria" : "Expandir traza de razonamiento" ,
"chat.reasoningTrace.collapseAria" : "Contraer traza de razonamiento" ,
"chat.reasoningTrace.thought" : "Pensó" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-04-30 18:37:37 +03:00
"commandPalette.title" : "Paleta de comandos" ,
"commandPalette.description" : "Buscar archivos, sesiones y comandos." ,
"commandPalette.input.placeholder" : "Buscar archivos, sesiones, comandos..." ,
2026-04-26 14:03:39 +03:00
"commandPalette.empty.noResults" : "No se encontraron resultados." ,
2026-04-30 18:37:37 +03:00
"commandPalette.empty.searchingFiles" : "Buscando archivos..." ,
2026-04-26 14:03:39 +03:00
"commandPalette.item.newSession" : "Nueva sesión" ,
2026-05-08 12:22:59 +03:00
"commandPalette.item.newMiniChat" : "Nueva ventana Mini Chat" ,
2026-04-26 14:03:39 +03:00
"commandPalette.item.newWorktreeDraft" : "Nuevo borrador de worktree" ,
2026-05-07 01:10:17 +03:00
"commandPalette.item.addProject" : "Añadir proyecto" ,
2026-04-26 14:03:39 +03:00
"commandPalette.item.showSessionSwitcher" : "Mostrar cambiador de sesiones" ,
"commandPalette.item.toggleSidebar" : "Mostrar u ocultar barra lateral" ,
"commandPalette.item.showContextUsage" : "Mostrar uso del contexto" ,
"commandPalette.item.toggleTerminal" : "Mostrar u ocultar terminal" ,
"commandPalette.item.openSettings" : "Abrir configuración..." ,
"commandPalette.session.untitled" : "Sesión sin título" ,
"openCodeStatusDialog.title" : "Estado de OpenCode" ,
"openCodeStatusDialog.description" : "Inspecciona el estado actual de OpenCode y diagnósticos." ,
"openCodeStatusDialog.actions.copy" : "Copiar" ,
"openCodeStatusDialog.empty.noData" : "No hay datos." ,
"openCodeStatusDialog.toast.copiedTitle" : "Copiado" ,
"openCodeStatusDialog.toast.copiedDescription" : "Estado copiado al portapapeles" ,
"openCodeStatusDialog.toast.copyFailed" : "No se pudo copiar el estado" ,
"saveProjectPlanDialog.title" : "Guardar plan del proyecto" ,
"saveProjectPlanDialog.description" : "Guarda este plan en tu proyecto como un archivo Markdown." ,
"saveProjectPlanDialog.field.title" : "Título" ,
"saveProjectPlanDialog.field.titlePlaceholder" : "Título del plan" ,
"saveProjectPlanDialog.field.contentPreview" : "Vista previa del contenido" ,
"saveProjectPlanDialog.actions.cancel" : "Cancelar" ,
"saveProjectPlanDialog.actions.save" : "Guardar" ,
"saveProjectPlanDialog.actions.saving" : "Guardando..." ,
"branchPickerDialog.title" : "Selector de rama" ,
"branchPickerDialog.description.localBranchesForProject" : "Ramas locales para {project}" ,
"branchPickerDialog.description.selectProject" : "Selecciona un proyecto para ver ramas" ,
"branchPickerDialog.search.placeholder" : "Buscar ramas..." ,
"branchPickerDialog.search.renameBranchPlaceholder" : "Cambiar nombre de rama" ,
"branchPickerDialog.state.noProjectSelected" : "No se seleccionó un proyecto" ,
"branchPickerDialog.state.loadingBranches" : "Cargando ramas..." ,
"branchPickerDialog.state.noMatchingBranches" : "No se encontraron ramas coincidentes" ,
"branchPickerDialog.state.noBranchesFound" : "No se encontraron ramas" ,
"branchPickerDialog.badge.head" : "HEAD" ,
"branchPickerDialog.badge.worktree" : "worktree" ,
"branchPickerDialog.actions.createWorktreeAria" : "Crear worktree desde rama" ,
"branchPickerDialog.actions.renameAria" : "Cambiar nombre de rama" ,
"branchPickerDialog.actions.deleteAria" : "Eliminar rama" ,
"branchPickerDialog.actions.deleteWorktreeAria" : "Eliminar worktree" ,
"branchPickerDialog.actions.confirmRenameAria" : "Confirmar cambio de nombre de" ,
"branchPickerDialog.actions.cancelRenameAria" : "Cancelar cambio de nombre de" ,
"branchPickerDialog.actions.confirmDeleteAria" : "Confirmar eliminación de rama" ,
"branchPickerDialog.actions.cancelDeleteAria" : "Cancelar eliminación de rama" ,
"branchPickerDialog.actions.deletePrompt" : "Eliminar" ,
"branchPickerDialog.actions.forceDeletePrompt" : "Forzar eliminación" ,
"branchPickerDialog.tooltip.createWorktree" : "Crear worktree" ,
"branchPickerDialog.tooltip.worktreeAlreadyExists" : "El worktree ya existe" ,
"branchPickerDialog.tooltip.rename" : "Cambiar nombre de rama" ,
"branchPickerDialog.tooltip.renameDisabledForRoot" : "No se puede cambiar el nombre de la rama raíz" ,
"branchPickerDialog.tooltip.delete" : "Eliminar rama" ,
"branchPickerDialog.tooltip.deleteCurrentBranch" : "No se puede eliminar la rama actual" ,
"branchPickerDialog.tooltip.deleteDisabledForRoot" : "No se puede eliminar la rama raíz" ,
"branchPickerDialog.tooltip.deleteWorktree" : "Eliminar worktree" ,
"branchPickerDialog.tooltip.deleteWorktreeRootProtected" : "No se puede eliminar el worktree raíz" ,
"branchPickerDialog.toast.branchRenamed" : "Rama renombrada" ,
"branchPickerDialog.toast.failedToRenameBranch" : "No se pudo cambiar el nombre de la rama" ,
"branchPickerDialog.toast.branchDeleted" : "Rama eliminada" ,
"branchPickerDialog.toast.branchNotMerged" : "La rama no tiene todos sus cambios integrados" ,
"branchPickerDialog.toast.confirmAgainToForceDelete" : "Confirma de nuevo para eliminar forzadamente" ,
"branchPickerDialog.toast.failedToDeleteBranch" : "No se pudo eliminar la rama" ,
"branchPickerDialog.toast.worktreeCreated" : "Worktree creado" ,
"branchPickerDialog.toast.failedToCreateWorktree" : "No se pudo crear el worktree" ,
"branchPickerDialog.error.failedToLoad" : "No se pudieron cargar las ramas" ,
"branchPickerDialog.error.renameRejected" : "El cambio de nombre fue rechazado" ,
"branchPickerDialog.error.renameFailed" : "No se pudo cambiar el nombre de la rama" ,
"branchPickerDialog.error.deleteRejected" : "La eliminación fue rechazada" ,
"branchPickerDialog.error.deleteFailed" : "No se pudo eliminar la rama" ,
"branchPickerDialog.error.createWorktreeFailed" : "No se pudo crear el worktree" ,
"projectEditDialog.title" : "Editar proyecto" ,
"projectEditDialog.field.name" : "Nombre" ,
"projectEditDialog.field.namePlaceholder" : "Nombre del proyecto" ,
"projectEditDialog.field.color" : "Color" ,
"projectEditDialog.field.icon" : "Icono" ,
"projectEditDialog.field.preview" : "Vista previa" ,
"projectEditDialog.field.iconBackground" : "Fondo del icono" ,
"projectEditDialog.field.iconBackgroundAria" : "Color del fondo del icono del proyecto" ,
"projectEditDialog.option.none" : "Ninguno" ,
"projectEditDialog.actions.uploadIcon" : "Subir icono" ,
"projectEditDialog.actions.uploading" : "Subiendo..." ,
"projectEditDialog.actions.discoverFavicon" : "Buscar icono" ,
"projectEditDialog.actions.discovering" : "Descubriendo..." ,
"projectEditDialog.actions.removeProjectIcon" : "Eliminar icono del proyecto" ,
"projectEditDialog.actions.removing" : "Eliminando..." ,
"projectEditDialog.actions.undoRemove" : "Deshacer eliminación" ,
"projectEditDialog.actions.clear" : "Limpiar" ,
"projectEditDialog.actions.cancel" : "Cancelar" ,
"projectEditDialog.actions.save" : "Guardar" ,
"projectEditDialog.toast.failedToUploadIcon" : "No se pudo subir el icono del proyecto" ,
"projectEditDialog.toast.iconUpdated" : "Icono del proyecto actualizado" ,
"projectEditDialog.toast.failedToRemoveIcon" : "No se pudo eliminar el icono del proyecto" ,
"projectEditDialog.toast.iconRemoved" : "Icono del proyecto eliminado" ,
"projectEditDialog.toast.failedToDiscoverIcon" : "No se pudo descubrir el icono del proyecto" ,
"projectEditDialog.toast.customIconAlreadySet" : "Icono personalizado ya establecido para este proyecto" ,
"projectEditDialog.toast.iconDiscovered" : "Icono del proyecto descubierto" ,
"agentManager.sidebar.search.placeholder" : "Buscar grupos de agentes..." ,
"agentManager.sidebar.actions.newAgentGroup" : "Nuevo grupo de agentes" ,
"agentManager.sidebar.actions.more" : "... Más ({count})" ,
"agentManager.sidebar.actions.showLess" : "Mostrar menos" ,
"agentManager.sidebar.section.agentGroups" : "Grupos de agentes" ,
"agentManager.sidebar.state.loading" : "Cargando..." ,
"agentManager.sidebar.state.noGroupsFound" : "No se encontraron grupos" ,
"agentManager.sidebar.state.noGroupsYet" : "No hay grupos de agentes aún" ,
"agentManager.sidebar.state.createToGetStarted" : "Crea un nuevo grupo de agentes para comenzar" ,
"agentManager.sidebar.item.modelCountSingle" : "{count} modelo" ,
"agentManager.sidebar.item.modelCountPlural" : "{count} modelos" ,
"agentManager.sidebar.item.groupMenuAria" : "Menú del grupo" ,
"agentManager.sidebar.item.delete" : "Eliminar" ,
"agentManager.sidebar.relativeTime.now" : "ahora" ,
"agentManager.sidebar.relativeTime.minutes" : "{count}m" ,
"agentManager.sidebar.relativeTime.hours" : "{count}h" ,
"agentManager.sidebar.relativeTime.days" : "{count}d" ,
"agentManager.sidebar.dialog.deleteGroupTitle" : "Eliminar grupo de agentes" ,
"agentManager.sidebar.dialog.deleteGroupDescription" : "¿Eliminar \"{group}\"? Esto elimina todos los worktrees y sesiones en este grupo." ,
"agentManager.sidebar.dialog.cancel" : "Cancelar" ,
"agentManager.sidebar.dialog.delete" : "Eliminar" ,
"agentManager.sidebar.dialog.deleting" : "Eliminando..." ,
"agentManager.sidebar.toast.deletingGroup" : "Eliminando \"{group}\"..." ,
"agentManager.sidebar.toast.deletedGroup" : "Eliminado \"{group}\"" ,
"agentManager.sidebar.toast.failedToDeleteGroup" : "No se pudo eliminar completamente \"{group}\"" ,
"agentManager.detail.header.modelCountSingle" : "{count} modelo" ,
"agentManager.detail.header.modelCountPlural" : "{count} modelos" ,
"agentManager.detail.header.noBranch" : "Sin rama" ,
"agentManager.detail.actions.worktreeActionsAria" : "Acciones del worktree" ,
"agentManager.detail.actions.removeThisWorktree" : "Eliminar este worktree" ,
"agentManager.detail.actions.keepThisRemoveOthers" : "Conservar este y eliminar los demás" ,
"agentManager.detail.actions.copyWorktreePath" : "Copiar ruta del worktree" ,
"agentManager.detail.dialog.removeWorktreeTitle" : "Eliminar worktree" ,
"agentManager.detail.dialog.removeOtherWorktreesTitle" : "Eliminar otros worktrees" ,
"agentManager.detail.dialog.removeWorktreeDescription" : "¿Eliminar \"{label}\"? Esto elimina todas las sesiones de ese worktree y el propio worktree." ,
"agentManager.detail.dialog.removeOtherWorktreesDescription" : "Mantener \"{label}\" y eliminar los demás worktrees en \"{group}\"." ,
"agentManager.detail.dialog.cancel" : "Cancelar" ,
"agentManager.detail.dialog.remove" : "Eliminar" ,
"agentManager.detail.dialog.removeOthers" : "Eliminar otros" ,
"agentManager.detail.dialog.working" : "Trabajando..." ,
"agentManager.detail.state.loadingSessionFor" : "Cargando sesión para {label}" ,
"agentManager.detail.state.sessionId" : "ID de sesión: {id}" ,
"agentManager.detail.state.noSessionsInGroup" : "No hay sesiones en este grupo" ,
"agentManager.detail.toast.noWorktreePath" : "No hay ruta disponible para el worktree" ,
"agentManager.detail.toast.worktreePathCopied" : "Ruta del worktree copiada" ,
"agentManager.detail.toast.failedToCopyPath" : "No se pudo copiar la ruta" ,
"agentManager.detail.toast.removingWorktree" : "Eliminando worktree..." ,
"agentManager.detail.toast.removingOtherWorktrees" : "Eliminando otros worktrees..." ,
"agentManager.detail.toast.failedToFullyRemoveWorktree" : "No se pudo eliminar completamente el worktree" ,
"agentManager.detail.toast.worktreeRemoved" : "Worktree eliminado" ,
"agentManager.detail.toast.otherWorktreesRemoved" : "Otros worktrees eliminados" ,
"agentManager.empty.groupName.label" : "Nombre del grupo" ,
"agentManager.empty.groupName.placeholder" : "p. ej. feature-auth, bugfix-login" ,
"agentManager.empty.groupName.description" : "Usado para el nombre de la carpeta y la rama del worktree" ,
"agentManager.empty.baseBranch.label" : "Rama base" ,
"agentManager.empty.baseBranch.description" : "Crea nuevas ramas desde {branch}" ,
"agentManager.empty.setupCommands.label" : "Comandos de configuración" ,
"agentManager.empty.setupCommands.configured" : "{count} configurados" ,
"agentManager.empty.setupCommands.description" : "Comandos que se ejecutan en cada nuevo worktree. Usa $ROOT_PROJECT_PATH para la raíz del proyecto." ,
"agentManager.empty.setupCommands.loading" : "Cargando..." ,
"agentManager.empty.setupCommands.commandPlaceholder" : "p. ej., bun install" ,
"agentManager.empty.setupCommands.removeCommandAria" : "Eliminar comando" ,
"agentManager.empty.setupCommands.addCommand" : "Añadir comando" ,
"agentManager.empty.agent.label" : "Agente" ,
"agentManager.empty.agent.description" : "Usa el agente predeterminado configurado" ,
"agentManager.empty.models.label" : "Modelos" ,
"agentManager.empty.models.addModel" : "Añadir modelo" ,
"agentManager.empty.models.selectedSingle" : "{count} modelo seleccionado" ,
"agentManager.empty.models.selectedPlural" : "{count} modelos seleccionados" ,
"agentManager.empty.prompt.label" : "Prompt" ,
"agentManager.empty.prompt.placeholder" : "Pregunta algo..." ,
"agentManager.empty.prompt.addAttachmentAria" : "Añadir adjunto" ,
"agentManager.empty.actions.startAgentGroupAria" : "Iniciar grupo de agentes" ,
"agentManager.empty.toast.fileTooLarge" : "El archivo \"{fileName}\" es demasiado grande (máximo 10MB)" ,
"agentManager.empty.toast.failedToAttach" : "No se pudo adjuntar \"{fileName}\"" ,
"agentManager.empty.toast.attachedSingle" : "{count} archivo adjuntado" ,
"agentManager.empty.toast.attachedPlural" : "{count} archivos adjuntados" ,
"agentManager.empty.toast.failedToCreateGroup" : "No se pudo crear el grupo de agentes" ,
"openInApp.actions.open" : "Abrir" ,
"openInApp.actions.openInAria" : "Abrir en {app}" ,
"openInApp.actions.chooseAppAria" : "Elegir aplicación para abrir" ,
"openInApp.actions.copyPath" : "Copiar ruta" ,
"openInApp.actions.refreshApps" : "Actualizar aplicaciones" ,
"openInApp.toast.pathCopied" : "Ruta copiada al portapapeles" ,
"projectActions.actions.addActionAria" : "Añadir acción" ,
"projectActions.actions.addAction" : "Añadir acción" ,
"projectActions.actions.addNewAction" : "Añadir nueva acción" ,
2026-04-29 17:03:38 -04:00
"projectActions.actions.autoDiscover" : "Autodetectar" ,
2026-07-18 00:06:30 +03:00
"projectActions.actions.autoDiscoverTooltip" : "Detecta y ejecuta automáticamente el servidor de desarrollo" ,
2026-04-26 14:03:39 +03:00
"projectActions.actions.chooseActionAria" : "Elegir acción del proyecto" ,
2026-04-29 17:03:38 -04:00
"projectActions.actions.openPreview" : "Abrir Preview" ,
2026-04-26 14:03:39 +03:00
"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}" ,
2026-06-10 12:00:10 +03:00
"mcpDropdown.empty.configureInConfig" : "Configura los servidores MCP en Ajustes." ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-07-11 23:23:34 +11:00
"sessionAuth.error.networkDescription" : "No pudimos verificar la sesión de la UI. Si abres OpenChamber desde otro dispositivo en tu red local, activa Desktop Network Access en la app de escritorio y usa la dirección LAN que aparece en Ajustes." ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-02 00:43:05 +03:00
"desktopHostSwitcher.status.checking" : "Comprobando" ,
"desktopHostSwitcher.status.updateRecommended" : "Actualización recomendada" ,
"desktopHostSwitcher.status.incompatible" : "Incompatible" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-08 12:22:59 +03:00
"miniChat.header.newSession" : "Nueva sesión" ,
"miniChat.header.session" : "Sesión" ,
"miniChat.header.defaultAgent" : "Agente predeterminado" ,
"miniChat.header.noModel" : "Sin modelo" ,
"miniChat.status.busy" : "En ejecución" ,
"miniChat.status.retry" : "Reintentando" ,
"miniChat.status.idle" : "Inactivo" ,
"miniChat.actions.pin" : "Fijar sobre otras ventanas" ,
"miniChat.actions.unpin" : "Desfijar ventana" ,
"miniChat.actions.pinAria" : "Fijar ventana Mini Chat" ,
"miniChat.actions.unpinAria" : "Desfijar ventana Mini Chat" ,
"miniChat.actions.openMain" : "Abrir en la ventana principal" ,
"miniChat.actions.openMainAria" : "Abrir sesión en la ventana principal" ,
"miniChat.unavailable.title" : "Sesión no disponible" ,
"miniChat.unavailable.description" : "No se pudo cargar esta sesión. Puede haber sido eliminada, archivada o abierta desde otro contexto de proyecto." ,
"sessions.sidebar.session.menu.openMiniChatWindow" : "Abrir en ventana Mini Chat" ,
"header.actions.newMiniChat" : "Nueva ventana Mini Chat" ,
"header.actions.newMiniChatAria" : "Abrir una nueva ventana Mini Chat" ,
"header.actions.openSessionMiniChat" : "Abrir sesión en Mini Chat" ,
"header.actions.openSessionMiniChatAria" : "Abrir la sesión actual en Mini Chat" ,
2026-05-26 11:13:59 -04:00
"header.windowControls.groupAria" : "Controles de ventana" ,
"header.windowControls.minimize" : "Minimizar ventana" ,
"header.windowControls.maximize" : "Maximizar ventana" ,
"header.windowControls.restore" : "Restaurar ventana" ,
"header.windowControls.close" : "Cerrar ventana" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-05-13 19:30:25 +07:00
"voice.action.finishAndTranscribe" : "Finalizar y transcribir la entrada de voz" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-05 20:35:53 +03:00
"onboarding.localSetup.windows.title" : "Configuración de Windows" ,
"onboarding.localSetup.windows.stepInstallWsl" : "Instala OpenCode con el comando siguiente." ,
"onboarding.localSetup.windows.stepInstallWslSuffix" : "" ,
"onboarding.localSetup.windows.stepRunInstallInWsl" : "Ejecuta el comando de instalación a continuación en una terminal de Windows." ,
2026-04-26 14:03:39 +03:00
"onboarding.localSetup.windows.stepSetBinaryPath" : "Si OpenChamber no detecta OpenCode automáticamente, establece la ruta del ejecutable a continuación." ,
2026-05-05 00:41:30 +03:00
"onboarding.localSetup.intro" : "OpenCode es el corazón de OpenChamber. Instálalo para empezar." ,
2026-06-05 20:35:53 +03:00
"onboarding.localSetup.docs.windows" : "Documentación de OpenCode" ,
2026-05-05 00:41:30 +03:00
"onboarding.localSetup.docs.default" : "Documentación de OpenCode" ,
2026-04-26 14:03:39 +03:00
"onboarding.localSetup.actions.checking" : "Verificando..." ,
"onboarding.localSetup.actions.checkAndContinue" : "He completado la instalación, verificar y continuar" ,
2026-05-05 00:41:30 +03:00
"onboarding.localSetup.actions.checkNow" : "Verificar ahora" ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-05-05 00:41:30 +03:00
"onboarding.localSetup.status.watching" : "Esperando OpenCode" ,
"onboarding.localSetup.status.autoContinue" : "Continuaremos automáticamente al detectarlo." ,
2026-04-26 14:03:39 +03:00
"onboarding.localSetup.field.alreadyInstalled" : "¿Ya está instalado? Establece la ruta de la CLI de OpenCode:" ,
2026-05-05 00:41:30 +03:00
"onboarding.localSetup.advanced.title" : "Establecer una ruta personalizada del binario" ,
"onboarding.localSetup.troubleshoot.title" : "¿Tienes problemas?" ,
2026-04-26 14:03:39 +03:00
"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 →" ,
2026-06-05 20:35:53 +03:00
"onboarding.localSetup.windows.hintInstallInWsl" : "En Windows, instala y ejecuta OpenCode de forma nativa." ,
"onboarding.localSetup.windows.hintDetectionFailed" : "Si la detección falla, establece una ruta nativa como opencode.cmd u opencode.exe." ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-06-02 00:43:05 +03:00
"onboarding.remoteConnection.probe.updateRecommendedMessage" : "Esta instancia ejecuta una versión diferente de OpenChamber. Puedes conectarte, pero actualiza ambas apps si algo no funciona." ,
"onboarding.remoteConnection.probe.incompatibleMessage" : "El servidor ejecuta OpenChamber pero no es compatible con esta versión de la app. Actualiza OpenChamber en el servidor y vuelve a intentarlo." ,
2026-04-26 14:03:39 +03:00
"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." ,
2026-06-02 00:43:05 +03:00
"onboarding.desktopRecovery.remoteIncompatible.title" : "Actualización del servidor requerida" ,
"onboarding.desktopRecovery.remoteIncompatible.description" : "El servidor OpenChamber en \"{host}\" no es compatible con esta versión de la app. Actualiza OpenChamber en el servidor y vuelve a intentarlo." ,
2026-04-26 14:03:39 +03:00
"onboarding.desktopRecovery.common.useLocal" : "Usar Local" ,
"onboarding.desktopRecovery.common.useRemote" : "Usar remoto" ,
"onboarding.desktopRecovery.actions.retrying" : "Reintentando…" ,
"onboarding.desktopRecovery.actions.retryConnection" : "Reintentar conexión" ,
2026-04-26 16:24:07 +03:00
"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…" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-08 07:11:05 -05:00
"vscodeLayout.actions.archiveAllAria" : "Archivar todas las sesiones" ,
"vscodeLayout.actions.archiveAllConfirm" : "Archivar todo" ,
"vscodeLayout.actions.archiveAllSuccess" : "{count} sesión(es) archivada(s)" ,
"vscodeLayout.actions.archiveAllError" : "Error al archivar {count} sesión(es)" ,
"vscodeLayout.actions.cancel" : "Cancelar" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-07 13:39:50 +03:00
"updateDialog.actions.openMobileUpdate" : "Abrir actualización" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-07 13:49:26 +03:00
"mobileUpdate.toast.available.title" : "Actualización de OpenChamber disponible" ,
"mobileUpdate.toast.available.description" : "La versión {version} está lista para Android." ,
"mobileUpdate.toast.actions.download" : "Descargar" ,
"mobileUpdate.toast.actions.dismiss" : "Descartar" ,
2026-05-20 17:29:00 +03:00
"opencodeUpdate.toast.available.title" : "Actualización de OpenCode" ,
"opencodeUpdate.toast.available.description" : "Versión {version} disponible." ,
2026-05-14 14:45:04 +03:00
"opencodeUpdate.toast.actions.update" : "Actualizar" ,
2026-05-19 10:57:23 -03:00
"opencodeUpdate.toast.actions.dismiss" : "Descartar" ,
2026-05-14 14:45:04 +03:00
"opencodeUpdate.toast.actions.reload" : "Recargar OpenCode" ,
"opencodeUpdate.toast.upgrading.title" : "Actualizando OpenCode..." ,
"opencodeUpdate.toast.upgrading.description" : "Mantén OpenChamber abierto." ,
"opencodeUpdate.toast.updated.title" : "OpenCode actualizado" ,
2026-05-20 17:29:00 +03:00
"opencodeUpdate.toast.updated.description" : "Actualización instalada." ,
"opencodeUpdate.toast.updated.descriptionWithVersion" : "Versión {version} instalada." ,
2026-05-14 14:45:04 +03:00
"opencodeUpdate.toast.failed.title" : "No se pudo actualizar OpenCode" ,
"opencodeUpdate.toast.failed.description" : "La actualización de OpenCode falló." ,
"opencodeUpdate.toast.reload.message" : "Reiniciando OpenCode..." ,
2026-04-26 14:03:39 +03:00
"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é" ,
2026-06-13 16:40:29 +03:00
"memoryDebugPanel.metric.userMessages" : "Mensajes del usuario" ,
"memoryDebugPanel.metric.assistantMessages" : "Mensajes del asistente" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-06-13 16:40:29 +03:00
"memoryDebugPanel.metric.roleMsgsValue" : "U {user} / A {assistant}" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-09 01:43:23 +08:00
"markdownRenderer.code.actions.copyTitle" : "Copiar código" ,
"markdownRenderer.code.actions.copiedTitle" : "Copiado" ,
2026-04-26 14:03:39 +03:00
"markdownRenderer.table.actions.copyTitle" : "Copiar tabla" ,
2026-07-08 14:46:44 +03:00
"markdownRenderer.code.actions.enableWrapTitle" : "Activar ajuste de línea" ,
"markdownRenderer.code.actions.disableWrapTitle" : "Desactivar ajuste de línea" ,
2026-04-26 14:03:39 +03:00
"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" ,
2026-07-09 01:43:23 +08:00
"markdownRenderer.mermaid.actions.zoomInTitle" : "Acercar" ,
"markdownRenderer.mermaid.actions.zoomOutTitle" : "Alejar" ,
"markdownRenderer.mermaid.actions.resetViewTitle" : "Restablecer vista" ,
2026-04-26 14:03:39 +03:00
"markdownRenderer.mermaid.toast.downloadFailed" : "No se pudo descargar el diagrama" ,
2026-04-29 17:03:38 -04:00
"contextPanel.preview.title" : "Vista previa" ,
"contextPanel.preview.description" : "Usa Acciones del proyecto o el botón Preview del terminal para abrir una vista previa." ,
"contextPanel.preview.startPreview" : "Iniciar vista previa" ,
"contextPanel.preview.starting" : "Iniciando..." ,
"contextPanel.preview.noDevServer" : "No se encontro un comando de servidor de desarrollo. Configura una accion del proyecto o anade un script \"dev\" a package.json." ,
"contextPanel.preview.startFailed" : "Fallo al iniciar el servidor de vista previa." ,
"contextPanel.preview.serverExited" : "El servidor de desarrollo se cerro inesperadamente." ,
"contextPanel.preview.noUrlDetected" : "El servidor de desarrollo se inicio, pero no se detecto ningun URL en su salida. Abre la pestaña de terminal de vista previa para ver los registros." ,
"contextPanel.preview.serverExitedWithLog" : "El servidor de desarrollo terminó inesperadamente. Última salida:\n\n{log}" ,
"contextPanel.preview.noUrlDetectedWithLog" : "El servidor de desarrollo no respondió. Última salida:\n\n{log}" ,
"contextPanel.preview.startingServer" : "Iniciando servidor de desarrollo..." ,
"contextPanel.preview.startingServerHint" : "Esperando a que el servidor acepte conexiones." ,
"contextPanel.preview.console.open" : "Abrir consola de vista previa" ,
"contextPanel.preview.console.waiting" : "Esperando la consola de vista previa" ,
"contextPanel.preview.console.title" : "Consola de vista previa" ,
"contextPanel.preview.console.attach" : "Adjuntar" ,
"contextPanel.preview.console.copy" : "Copiar" ,
"contextPanel.preview.console.clear" : "Limpiar" ,
"contextPanel.preview.console.empty" : "Aún no hay eventos de consola de vista previa." ,
"contextPanel.preview.console.noFilteredEvents" : "Ningún evento coincide con este filtro." ,
"contextPanel.preview.console.runtimeError" : "Error de ejecución" ,
"contextPanel.preview.console.copied" : "Consola de vista previa copiada" ,
"contextPanel.preview.console.copyFailed" : "No se pudo copiar la consola de vista previa" ,
"contextPanel.preview.console.attached" : "Consola de vista previa adjuntada al chat" ,
"contextPanel.preview.console.attachNoSession" : "Abre una sesión de chat antes de adjuntar logs de vista previa" ,
"contextPanel.preview.console.attachAnnotation" : "Estos son logs de la consola del navegador del servidor de desarrollo que se ejecuta para este proyecto." ,
"contextPanel.preview.inspect.toggle" : "Inspeccionar elemento de vista previa" ,
"contextPanel.preview.inspect.attached" : "Anotación de vista previa adjuntada al chat" ,
"contextPanel.preview.inspect.attachNoSession" : "Abre una sesión de chat antes de adjuntar anotaciones de vista previa" ,
"contextPanel.preview.inspect.attachAnnotation" : "Este es un elemento DOM seleccionado de la vista previa integrada." ,
"contextPanel.preview.inspect.attachAnnotationWithScreenshot" : "Este es un elemento DOM seleccionado de la vista previa integrada. Se adjunta una captura del área visible de la vista previa con el elemento resaltado." ,
"contextPanel.preview.console.filter.all" : "Todo" ,
"contextPanel.preview.console.filter.errors" : "Errores" ,
"contextPanel.preview.console.filter.warnings" : "Advertencias" ,
"contextPanel.preview.console.filter.logs" : "Registros" ,
2026-06-10 19:19:30 +02:00
"common.date.today" : "Today" ,
"common.date.yesterday" : "Yesterday" ,
"common.date.yesterdayWithTime" : "Yesterday {time}" ,
"common.relative.justNow" : "Just now" ,
"common.relative.minutesAgoShort" : "{count}min ago" ,
"common.relative.hoursAgoShort" : "{count}h ago" ,
"common.relative.daysAgoShort" : "{count}d ago" ,
"common.relative.weeksAgoShort" : "{count}w ago" ,
"common.relative.yearsAgoShort" : "{count}y ago" ,
"common.relative.daysAgoCompact" : "{count}d ago" ,
"common.relative.weeksAgoCompact" : "{count}w ago" ,
"common.relative.yearsAgoCompact" : "{count}y ago" ,
2026-08-05 03:06:35 +03:00
"common.duration.secondsCompact" : "{seconds}s" ,
"common.duration.minutesSecondsCompact" : "{minutes}m {seconds}s" ,
"common.duration.hoursMinutesCompact" : "{hours}h {minutes}m" ,
2026-06-10 19:19:30 +02:00
"contextFileOpen.failure.tooLarge" : "File is too large to open (>{count} lines)" ,
"contextFileOpen.failure.missing" : "File not found" ,
"contextFileOpen.failure.unreadable" : "Failed to open file" ,
"quota.window.5h" : "5-Hour" ,
"quota.window.7d" : "7-Day Limit" ,
"quota.window.7dSonnet" : "7-Day Sonnet Limit" ,
"quota.window.7dOpus" : "7-Day Opus Limit" ,
"quota.window.weekly" : "Weekly Limit" ,
"quota.window.daily" : "Daily" ,
"quota.window.monthly" : "Monthly Limit" ,
"quota.window.credits" : "Credits" ,
"quota.window.creditsBalance" : "Credits Balance" ,
2026-06-11 00:16:48 +03:00
"quota.window.billingCycle" : "Billing Cycle" ,
"quota.window.auto" : "Auto" ,
"quota.window.api" : "API" ,
"quota.window.planLimit" : "Plan Limit" ,
"quota.window.onDemand" : "On-demand" ,
2026-06-10 19:19:30 +02:00
"quota.window.session" : "Session" ,
"quota.window.premium" : "Premium Interactions" ,
"quota.window.chat" : "Chat Requests" ,
"quota.window.completions" : "Completions" ,
"quota.window.premiumInteractions" : "Premium interactions" ,
2026-04-26 14:03:39 +03:00
};