# Hermes TUI (ui-tui) strings — Español # Flat dotted keys; every key from locales/_keys.tui.json. Function-valued en entries use # positional {0}, {1} placeholders. billing.autoReload.aDifferentCard: "otra tarjeta" billing.autoReload.agreeAndTurnOn: "Aceptar y activar" billing.autoReload.authorization: "Al confirmar, autorizas a Nous Research a cobrar a {0} cada vez que tu saldo baje del umbral. Puedes desactivarlo en cualquier momento aquí o en el portal." billing.autoReload.cardOnFile: "Tarjeta guardada: {0}" billing.autoReload.description: "Añade fondos automáticamente cuando tu saldo esté bajo." billing.autoReload.distinctCardWarning: "⚠ La recarga automática cobra a {0} — no a tu tarjeta guardada." billing.autoReload.hint: "↑/↓ mover · Tab cambiar campo · Enter siguiente/confirmar · Esc volver" billing.autoReload.manageCardOnPortal: "Usar tu tarjeta guardada — gestionar en el portal" billing.autoReload.noCardManageOnPortal: "🔴 No hay tarjeta guardada — gestiona la facturación en el portal." billing.autoReload.reloadToError: "Recargar hasta: {0}" billing.autoReload.reloadToLabel: "Recargar el saldo hasta:" billing.autoReload.reloadToMustExceedThreshold: "El monto de recarga debe ser mayor que el umbral." billing.autoReload.thresholdError: "Umbral: {0}" billing.autoReload.thresholdLabel: "Cuando el saldo baje de:" billing.autoReload.title: "Recarga automática" billing.autoReload.turnOff: "Desactivar" billing.autoReload.turnedOff: "✅ Recarga automática desactivada." billing.autoReload.turnedOn: "✅ Recarga automática activada: por debajo de {0} → recargar hasta {1}." billing.autoReload.yourCard: "tu tarjeta" billing.buy.addCardOnPortal: "Añadir una tarjeta en el portal" billing.buy.addCardOnce: "Añade una tarjeta una sola vez en la página de facturación del portal; después podrás recargar directamente desde la terminal." billing.buy.addCardThenCheckAgain: "Añade una tarjeta en la página de facturación y luego vuelve aquí y elige “volver a comprobar”." billing.buy.cardFound: "✓ Tarjeta encontrada: {0} — elige un monto." billing.buy.checkAgain: "Ya la añadí — volver a comprobar" billing.buy.checkingForCard: "Buscando una tarjeta…" billing.buy.customAmount: "Monto personalizado…" billing.buy.enterCustomAmount: "Introduce un monto personalizado:" billing.buy.hint: "↑/↓ seleccionar · 1-{0} selección rápida · Enter confirmar · Esc volver" billing.buy.invalidAmount: "Monto no válido." billing.buy.invalidPreset: "Monto predefinido no válido." billing.buy.noSavedCardLine: "No hay tarjeta guardada." billing.buy.portalLinkFailed: "No se pudo generar el enlace del portal — ¿está configurado tu portal?" billing.buy.refreshFailed: "No se pudo actualizar el estado de facturación — inténtalo de nuevo en un momento." billing.buy.stillNoCard: "Aún no hay tarjeta guardada — termina de añadirla en el portal y vuelve a comprobar." billing.buy.title: "Añadir fondos" billing.buy.typingHint: "Enter confirmar · Esc volver" billing.common.back: "Atrás" billing.common.cancel: "Cancelar" billing.common.invalid: "no válido" billing.common.manageOnPortal: "Gestionar en el portal" billing.common.noSavedCard: "No hay tarjeta guardada" billing.common.payment: "Pago: {0}" billing.confirm.authorization: "Al confirmar, autorizas a Nous Research a cobrar a tu tarjeta." billing.confirm.hint: "↑/↓ seleccionar · Enter confirmar · Y/N rápido · Esc volver" billing.confirm.payNow: "Pagar {0} ahora" billing.confirm.portalCardCharged: "Se cobrará a la tarjeta guardada en el portal." billing.confirm.title: "Confirmar compra" billing.confirm.total: "Total: {0}" billing.limit.hint: "↑/↓ seleccionar · 1-{0} selección rápida · Enter confirmar · Esc volver" billing.limit.noCapVisible: "No hay tope mensual visible (se gestiona en el portal)." billing.limit.readOnly: "El límite mensual se define en el portal — aquí se muestra en solo lectura." billing.limit.title: "Límite de gasto mensual" billing.limit.usage: "{0} de {1} usados este mes" billing.limit.usageDefaultCeiling: "{0} de {1} usados este mes (tope predeterminado)" billing.overview.addFunds: "Añadir fondos" billing.overview.autoReload: "Recarga automática" billing.overview.autoReloadOff: "Recarga automática: desactivada" billing.overview.autoReloadOn: "Recarga automática: activada (por debajo de {0} → {1})" billing.overview.card: "Tarjeta: {0}" billing.overview.hint: "↑/↓ seleccionar · 1-{0} selección rápida · Enter confirmar · Esc cerrar" billing.overview.monthlyLimit: "Límite mensual" billing.overview.needsBillingPermissions: "Las acciones de facturación requieren a alguien con permisos de facturación (propietario, administrador o administrador financiero)." billing.overview.noCardHint: "No hay tarjeta guardada; “Añadir fondos” te guía para agregar una." billing.overview.org: "Org: {0}" billing.overview.remoteSpendingOff: "El gasto remoto está desactivado para esta org; un administrador de facturación puede activarlo desde la página Hermes Agent del portal." billing.overview.title: "Recargar · saldo {0}" billing.stepUp.allow: "Permitir Gasto remoto" billing.stepUp.allowedResuming: "✓ Gasto remoto permitido — reanudando tu compra." billing.stepUp.approveInPage: "Aprueba en la página que se acaba de abrir." billing.stepUp.declined: "No se hizo ningún cargo. Ejecuta /topup cuando quieras permitir el Gasto remoto." billing.stepUp.escCancel: "Esc cancelar" billing.stepUp.grantedHint: "Enter reanudar · Esc cancelar" billing.stepUp.grantedTitle: "Gasto remoto permitido" billing.stepUp.heldHere: "Tu recarga de {0} queda retenida aquí y se reanuda cuando termines." billing.stepUp.notAllowed: "! No se pudo permitir el Gasto remoto — debe aprobarlo alguien con permisos de facturación (propietario, administrador o administrador financiero). No se cobró a tu tarjeta." billing.stepUp.notNow: "Ahora no" billing.stepUp.openingBrowser: "Abriendo tu navegador para permitir el Gasto remoto…" billing.stepUp.pressEnterToResume: "Pulsa Enter para reanudar" billing.stepUp.promptBody: "Para cobrar desde esta terminal, permite el Gasto remoto una sola vez." billing.stepUp.promptDetail: "Se abre tu navegador para autorizar y luego tu recarga de {0} continúa aquí mismo." billing.stepUp.promptHint: "↑/↓ seleccionar · Enter confirmar · Y/N rápido · Esc cancelar" billing.stepUp.promptTitle: "Configuración única" billing.stepUp.readyToFinish: "Tu recarga de {0} está lista para completarse." billing.stepUp.resuming: "Reanudando tu recarga de {0}…" billing.stepUp.stillNeedsApproval: "! El Gasto remoto aún necesita aprobación — ejecuta /topup para reintentar. No se cobró a tu tarjeta." billing.stepUp.title: "Permitir Gasto remoto" billing.stepUp.waitingForBrowser: "Esperando a tu navegador…" chatBits.branding.availableSkills: "Skills disponibles" chatBits.branding.availableTools: "Herramientas disponibles" chatBits.branding.charsSuffix: "— {0} caracteres" chatBits.branding.commitsBehindOne: "! {0} commit por detrás" chatBits.branding.commitsBehindOther: "! {0} commits por detrás" chatBits.branding.configured: "configurado" chatBits.branding.connected: "conectado" chatBits.branding.connecting: "conectando" chatBits.branding.disabled: "desactivado" chatBits.branding.failed: "falló" chatBits.branding.helpHint: "/help para ver comandos" chatBits.branding.inCategoriesOne: "en {0} categoría" chatBits.branding.inCategoriesOther: "en {0} categorías" chatBits.branding.lazy: "(bajo demanda)" chatBits.branding.mcpServers: "Servidores MCP" chatBits.branding.mcpSummary: "{0} MCP" chatBits.branding.moreCategories: "(y {0} categorías más…)" chatBits.branding.moreToolsets: "(y {0} conjuntos de herramientas más…)" chatBits.branding.noSystemPrompt: "No hay prompt del sistema cargado." chatBits.branding.runPrefix: " - ejecuta " chatBits.branding.scanningSkills: "escaneando skills" chatBits.branding.sessionLabel: "Sesión: " chatBits.branding.skillsSummary: "{0} skills" chatBits.branding.systemPrompt: "Prompt del sistema" chatBits.branding.tagFull: "Nous Research · Mensajero de los Dioses Digitales" chatBits.branding.tagMid: "Mensajero de los Dioses Digitales" chatBits.branding.toUpdate: " para actualizar" chatBits.branding.toolsOne: "{0} herramienta" chatBits.branding.toolsOther: "{0} herramientas" chatBits.branding.toolsSummary: "{0} herramientas" chatBits.entry.dumpFailed: "(falló)" chatBits.entry.exitingOom: "hermes-tui: saliendo para evitar un OOM; reinicia para recuperar" chatBits.entry.heapClimbing: "hermes-tui: el heap crece rápido ({0}) — una salida de herramienta grande o una sesión larga pueden estar saturando la memoria" chatBits.entry.memoryDump: "hermes-tui: memoria {0} ({1}) — volcado automático del heap → {2}" chatBits.entry.noTty: "hermes-tui: sin TTY" chatBits.messageLine.chars: "{0} caracteres" chatBits.messageLine.emptyToolResult: "(resultado de herramienta vacío)" chatBits.messageLine.longMessage: "[mensaje largo]" chatBits.messageLine.response: "Respuesta" chatBits.messageLine.systemMessage: "(mensaje del sistema)" chatBits.queued.editing: " · editando {0} · Ctrl+X eliminar · Esc cancelar" chatBits.queued.header: "en cola ({0})" chatBits.queued.more: "…y {0} más" chatBits.thinking.activity: "Actividad" chatBits.thinking.agentsHint: "(/agents)" chatBits.thinking.agentsToMonitor: "(/agents para seguirlos)" chatBits.thinking.analyzingToolOutput: "analizando salida de herramienta…" chatBits.thinking.approxTokens: "~{0} tokens" chatBits.thinking.approxTotal: "~{0} en total" chatBits.thinking.argsHeader: "Args:" chatBits.thinking.drafting: "redactando..." chatBits.thinking.progress: "Progreso" chatBits.thinking.spawnTree: "Árbol de subagentes" chatBits.thinking.spawned: "Lanzados" chatBits.thinking.spawnedSuffix: "p{0} · {1} en total" chatBits.thinking.statusQueued: "en cola" chatBits.thinking.statusRunning: "ejecutando" chatBits.thinking.subagentFallback: "Subagente {0}" chatBits.thinking.subtreeTools: "+{0}h sub" chatBits.thinking.thinking: "Pensando" chatBits.thinking.tokShort: "{0} tok" chatBits.thinking.toolCalls: "Llamadas a herramientas" chatBits.thinking.toolsOne: "{0} herramienta" chatBits.thinking.toolsOther: "{0} herramientas" chatBits.todo.incompleteOne: "· incompleta · {0} aún pendiente" chatBits.todo.incompleteOther: "· incompleta · {0} aún pendientes/en curso" chatBits.todo.title: "Tareas" common.cancel: "cancelar" common.no: "no" common.unknown: "desconocido" common.yes: "sí" composer.interruptHint: "Ctrl+C para interrumpir…" composer.placeholders.ask: "Pregúntame lo que quieras…" composer.placeholders.config: "Prueba \"¿cómo funciona el cargador de configuración?\"" composer.placeholders.explain: "Prueba \"explica este código\"" composer.placeholders.help: "Prueba \"/help\" para ver los comandos" composer.placeholders.lint: "Prueba \"corrige los errores del linter\"" composer.placeholders.refactor: "Prueba \"refactoriza el módulo de autenticación\"" composer.placeholders.test: "Prueba \"escribe una prueba para…\"" connection.authorized.continue: "Continuar" connection.authorized.hint: "Enter o Esc continuar" connection.authorized.title: "Autorizado. Herramientas no disponibles." connection.failure.expired: "El enlace expiró." connection.failure.failed: "Eso no funcionó." connection.field.required: "{0} es obligatorio." connection.field.set: "Definir" connection.header.moreToAnswer: "Quedan {0} más por responder después de esta." connection.hint.browser: "Enter abrir en el navegador · Esc omitir · Ctrl+C detener el turno" connection.hint.finishing: "Esc cerrar · Ctrl+C detener el turno" connection.hint.form: "↑/↓ o Tab mover · ←/→ seleccionar · Enter confirmar · Esc omitir · Ctrl+C detener el turno" connection.hint.retry: "←/→ seleccionar · Enter confirmar · Esc omitir · Ctrl+C detener el turno" connection.hint.working: "Esc omitir · Ctrl+C detener el turno" connection.notice.answerNotDelivered: "Esa respuesta no llegó a Hermes. Inténtalo de nuevo." connection.notice.browserDidNotOpen: "El navegador no se abrió. Copia el enlace de arriba." connection.notice.restartFailed: "Hermes no pudo reiniciar eso. Inténtalo de nuevo." connection.selector.skip: "Omitir" connection.selector.tryAgain: "Reintentar" connection.status.finishing: "Finalizando…" connection.status.pending: "Pendiente…" connection.status.working: "Trabajando…" connection.verb.authorize: "Autorizar" connection.verb.connect: "Conectar" connection.verb.enable: "Activar" connection.verb.install: "Instalar" connection.verb.reconnect: "Reconectar" content.faces.face01: "(。•́︿•̀。)" content.faces.face02: "(◔_◔)" content.faces.face03: "(¬‿¬)" content.faces.face04: "( •_•)>⌐■-■" content.faces.face05: "(⌐■_■)" content.faces.face06: "(´・_・`)" content.faces.face07: "◉_◉" content.faces.face08: "(°ロ°)" content.faces.face09: "( ˘⌣˘)♡" content.faces.face10: "ヽ(>∀<☆)☆" content.faces.face11: "٩(๑❛ᴗ❛๑)۶" content.faces.face12: "(⊙_⊙)" content.faces.face13: "(¬_¬)" content.faces.face14: "( ͡° ͜ʖ ͡°)" content.faces.face15: "ಠ_ಠ" content.fortunes.fortune01: "estás a un refactor limpio de la claridad" content.fortunes.fortune02: "un pequeño renombrado hoy evita un bug enorme mañana" content.fortunes.fortune03: "tu próximo mensaje de commit será impecable" content.fortunes.fortune04: "el caso límite que estás ignorando ya está resuelto en tu cabeza" content.fortunes.fortune05: "diff mínimo, calma máxima" content.fortunes.fortune06: "hoy conviene más borrar con audacia que añadir abstracciones" content.fortunes.fortune07: "el helper que necesitas ya está en tu código" content.fortunes.fortune08: "vas a entregar antes de que te alcance el darle demasiadas vueltas" content.fortunes.fortune09: "las pruebas están a punto de salvar a tu yo del futuro" content.fortunes.fortune10: "tu instinto sospecha, con razón, de esa rama" content.legendaryFortunes.legendary01: "drop legendario: arreglo de una línea, al primer intento" content.legendaryFortunes.legendary02: "drop legendario: todos los tests inestables pasan limpios" content.legendaryFortunes.legendary03: "drop legendario: tu diff enseña por sí solo" content.setup.actions: "Acciones" content.setup.exitRow: "salir y ejecutar `hermes setup` manualmente" content.setup.footer: "En el dashboard, la página Modelos define el modelo por defecto del perfil; en Desktop está en Ajustes -> Modelos." content.setup.intro: "Hermes necesita un proveedor de modelos antes de que la TUI pueda iniciar una sesión." content.setup.modelRow: "elegir un modelo (necesita una sesión — añade un proveedor primero)" content.setup.setupRow: "ejecutar aquí mismo el asistente de configuración inicial (añade un proveedor)" content.setup.title: "Configuración requerida" content.verbs.browser: "navegando" content.verbs.clarify: "preguntando" content.verbs.create_file: "creando" content.verbs.delegate_task: "delegando" content.verbs.delete_file: "eliminando" content.verbs.execute_code: "ejecutando" content.verbs.image_generate: "generando" content.verbs.list_files: "listando" content.verbs.memory: "recordando" content.verbs.patch: "parcheando" content.verbs.read_file: "leyendo" content.verbs.run_command: "ejecutando" content.verbs.search_code: "buscando" content.verbs.search_files: "buscando" content.verbs.terminal: "terminal" content.verbs.web_extract: "extrayendo" content.verbs.web_search: "buscando" content.verbs.write_file: "escribiendo" gatewayMsg.agents.workingNudge: "subagentes trabajando · /agents para verlos en vivo" gatewayMsg.billing.enterCode: "Si te lo pide, introduce el código: {0}" gatewayMsg.billing.openLinkRemoteSpending: "💳 Abre este enlace para permitir el Gasto remoto:" gatewayMsg.clarify.timedOut: "tiempo agotado" gatewayMsg.error.unknown: "error desconocido" gatewayMsg.goal.complete: "✓ objetivo completado" gatewayMsg.goal.continuing: "↻ objetivo en curso" gatewayMsg.goal.paused: "⏸ objetivo en pausa" gatewayMsg.moa.aggregating: "MoA: agregando…" gatewayMsg.moa.refs: "MoA: refs {0}/{1}" gatewayMsg.protocol.noise: "ruido de protocolo: {0}" gatewayMsg.protocol.noiseDetected: "ruido de protocolo detectado · /logs para inspeccionar" gatewayMsg.startup.commandCatalogUnavailable: "catálogo de comandos no disponible: {0}" gatewayMsg.startup.imageAttachFailed: "no se pudo adjuntar la imagen inicial: {0}" gatewayMsg.startup.querySkipped: "consulta inicial omitida: no hay sesión activa" gatewayMsg.status.forgingSession: "forjando sesión…" gatewayMsg.status.protocolWarning: "aviso de protocolo" gatewayMsg.status.recoveringSession: "recuperando sesión…" gatewayMsg.status.resumingMostRecent: "reanudando la más reciente…" gatewayMsg.voice.noSpeechLimit: "voz: no se detectó habla 3 veces, modo continuo detenido" gatewayMsg.voice.stopPhrase: "voz: frase de parada — chat de voz finalizado" gatewayMsg.wake.failed: "despertar: {0}" gatewayMsg.wake.otherProfile: "frase de despertar del perfil '{0}' — ejecuta: hermes -p {0} --tui" help.commands.clear: "iniciar una sesión nueva" help.commands.copy: "copiar la selección o el último mensaje del asistente" help.commands.details: "controlar el nivel de detalle de la transcripción" help.commands.help: "lista completa de comandos y atajos" help.commands.quit: "salir de hermes" help.commands.resume: "cambiar de sesión en vivo o reanudar sesiones anteriores" help.commonCommands: "Comandos frecuentes" help.hotkeys: "Atajos" help.quickHelp: "? ayuda rápida" help.quickHelpTail: " · escribe /help para ver el panel completo · retroceso para cerrar" hints.applyCompletion: "aplicar la sugerencia" hints.arrows: "sugerencias / editar cola / historial" hints.collapseAgents: "contraer / restaurar la vista previa de agentes en vivo" hints.continuation: "continuación multilínea (alternativa)" hints.copySelection: "copiar selección" hints.copySelectionForwarded: "copiar selección cuando la reenvía la terminal" hints.ctrlC: "copiar selección / limpiar borrador / interrumpir / salir" hints.ctrlCMac: "limpiar borrador / interrumpir / salir" hints.deleteWord: "borrar palabra" hints.discardDraft: "descartar borrador (recupéralo con ↑)" hints.exit: "salir" hints.expandAgents: "expandir agentes en vivo (conserva tu borrador)" hints.homeEnd: "inicio / fin de línea" hints.interpolate: "insertar la salida de un comando en línea (p. ej. \"la rama es {!git branch --show-current}\")" hints.jumpWord: "saltar palabra" hints.killLine: "cortar hasta el inicio / fin de línea (repite para varias líneas)" hints.lineStartEnd: "inicio / fin de línea" hints.modelPicker: "abrir el selector de modelo (conserva tu borrador; se aplica al siguiente turno)" hints.newline: "insertar salto de línea" hints.openEditor: "abrir $EDITOR (Alt+G como alternativa en VSCode/Cursor)" hints.paste: "pegar texto; /paste adjunta la imagen del portapapeles" hints.redraw: "redibujar / repintar" hints.sessionSwitcher: "abrir el selector de sesiones en vivo (elimina el mensaje en cola mientras editas)" hints.shell: "ejecutar un comando de shell (p. ej. !ls, !git status)" hints.undoRedo: "deshacer / rehacer cambios en la entrada" hubs.agentControls.loadingTranscript: "Cargando transcripción en vivo…" hubs.agentControls.notQueued: "No se encoló: el subagente terminó o ya no acepta indicaciones." hubs.agentControls.notQueuedError: "No se encoló: {0}" hubs.agentControls.queued: "En cola para el subagente — se aplicará en el siguiente límite de herramienta." hubs.agentControls.queueing: "Encolando…" hubs.agentControls.steerHint: "Enter encolar · Esc volver · el borrador principal se conserva" hubs.agentControls.steerIntro: "La indicación se encola hasta el siguiente límite de herramienta; el trabajo actual no se interrumpe." hubs.agentControls.steerTitle: "Redirigir {0}" hubs.agentControls.transcriptRefreshFailed: "No se pudo actualizar la transcripción en vivo." hubs.agentControls.transcriptTitle: "Transcripción en vivo" hubs.agentControls.transcriptUnavailable: "Transcripción en vivo no disponible; puede que el subagente haya terminado. El progreso y la salida siguen abajo." hubs.agentControls.truncatedPrefix: "[últimos 16 KiB]" hubs.agents.caps: "límites d{0}/{1}" hubs.agents.detail.apiCalls: "llamadas api" hubs.agents.detail.depth: "profundidad" hubs.agents.detail.elapsed: "transcurrido" hubs.agents.detail.filesMore: "…+{0} más" hubs.agents.detail.iteration: "iteración" hubs.agents.detail.model: "modelo" hubs.agents.detail.reasoningSuffix: " · {0} razonamiento" hubs.agents.detail.subtree: "subárbol" hubs.agents.detail.subtreeTokens: "tokens del subárbol" hubs.agents.detail.subtreeValueOne: "{0} agente · d{1} · ⚡{2}" hubs.agents.detail.subtreeValueOther: "{0} agentes · d{1} · ⚡{2}" hubs.agents.detail.tokens: "tokens" hubs.agents.detail.tokensValue: "{0} entrada · {1} salida" hubs.agents.detail.tools: "herramientas" hubs.agents.detail.toolsValue: "{0} (subárbol {1})" hubs.agents.detail.toolsets: "conjuntos" hubs.agents.diff.agents: "agentes" hubs.agents.diff.baseline: "A · base" hubs.agents.diff.candidate: "B · candidata" hubs.agents.diff.delta: "Δ" hubs.agents.diff.depth: "profundidad" hubs.agents.diff.duration: "duración" hubs.agents.diff.subtitle: "base vs candidata · esc/q cerrar" hubs.agents.diff.title: "Diff de repeticiones" hubs.agents.diff.tokens: "tokens" hubs.agents.diff.tools: "herramientas" hubs.agents.empty: "No hay subagentes en este turno. Lanza delegate_task para poblar el árbol." hubs.agents.filter.all: "todos" hubs.agents.filter.failed: "fallidos" hubs.agents.filter.leaf: "hojas" hubs.agents.filter.running: "en ejecución" hubs.agents.flash.killFailed: "no se pudo detener: {0}" hubs.agents.flash.killing: "deteniendo {0}" hubs.agents.flash.killingSubtreeOne: "deteniendo subárbol · {0} nodo" hubs.agents.flash.killingSubtreeOther: "deteniendo subárbol · {0} nodos" hubs.agents.flash.liveTurn: "turno en vivo" hubs.agents.flash.notFound: "no encontrado: {0}" hubs.agents.flash.pauseFailed: "no se pudo pausar" hubs.agents.flash.replay: "repetición · {0}/{1}" hubs.agents.flash.replayLocked: "modo repetición — controles desactivados" hubs.agents.flash.spawningPaused: "creación de subagentes en pausa" hubs.agents.flash.spawningResumed: "creación de subagentes reanudada" hubs.agents.flash.turnFinished: "turno terminado · explora libremente · q para cerrar" hubs.agents.hint.controls: " · e redirigir · t seguir · x detener · X subárbol · p {0}" hubs.agents.hint.controlsLocked: " · controles bloqueados" hubs.agents.hint.detail: "↑↓/jk desplazar · PgUp/PgDn página · g/G inicio/fin · Esc/← volver a la lista{0} · q cerrar" hubs.agents.hint.footerLive: "Enter/t seguir · d detalle · e redirigir · x detener · Esc volver" hubs.agents.hint.footerReplay: "Enter/d detalle · e redirigir · x detener · Esc volver" hubs.agents.hint.history: " · [ / ] historial {0}/{1}" hubs.agents.hint.list: "↑↓/jk mover · g/G inicio/fin · {0}{1} · s orden:{2} · f filtro:{3}{4} · q cerrar" hubs.agents.hint.listNavLive: "Enter seguir · d/→ detalle" hubs.agents.hint.listNavReplay: "Enter/→ detalle" hubs.agents.hint.pause: "pausar" hubs.agents.hint.resume: "reanudar" hubs.agents.inheritModel: "heredado" hubs.agents.processes: "Procesos" hubs.agents.section.budget: "Presupuesto" hubs.agents.section.files: "Archivos" hubs.agents.section.output: "Salida" hubs.agents.section.progress: "Progreso" hubs.agents.section.summary: "Resumen" hubs.agents.section.toolCalls: "Llamadas a herramientas" hubs.agents.sort.depthFirst: "orden de creación" hubs.agents.sort.durationDesc: "más lentos" hubs.agents.sort.status: "estado" hubs.agents.sort.toolsDesc: "más activos" hubs.agents.status.completed: "completado" hubs.agents.status.error: "error" hubs.agents.status.failed: "fallido" hubs.agents.status.interrupted: "interrumpido" hubs.agents.status.queued: "en cola" hubs.agents.status.running: "en ejecución" hubs.agents.status.timeout: "tiempo agotado" hubs.agents.subagentFallback: "subagente" hubs.agents.timeline: "Cronología" hubs.agents.title.finishedAt: " · terminó {0}" hubs.agents.title.lastTurn: "Último turno" hubs.agents.title.pausedSuffix: " · ⏸ en pausa" hubs.agents.title.replay: "Repetición {0}/{1}" hubs.agents.title.spawnTree: "Árbol de subagentes" hubs.agentsPanel.collapsedHint: " · Ctrl+T expandir · Ctrl+R restaurar" hubs.agentsPanel.done: "{0} listos" hubs.agentsPanel.expandedHint: " · Ctrl+T expandir · Ctrl+R contraer" hubs.agentsPanel.liveAgents: "{0} agentes en vivo" hubs.agentsPanel.moreHidden: " · +{0} más" hubs.agentsPanel.processes: "Procesos" hubs.agentsPanel.procs: "{0} procesos" hubs.agentsPanel.procsDone: "{0} terminados" hubs.agentsPanel.running: "{0} en ejecución" hubs.list.errorLine: "error: {0}" hubs.list.moreAbove: " ↑ {0} más" hubs.list.moreBelow: " ↓ {0} más" hubs.plugins.allScope: "todos los {0} plugins" hubs.plugins.bundledSuffix: " · +{0} incluidos (Tab)" hubs.plugins.bundledTag: " [bundled]" hubs.plugins.empty: "no hay plugins instalados" hubs.plugins.hintClose: "Esc/q cerrar" hubs.plugins.hintList: "↑/↓ seleccionar · Enter/Espacio alternar · Tab usuario/todos · 1-9,0 rápido · Esc/q cerrar" hubs.plugins.installHint: "instalar: hermes plugins install owner/repo" hubs.plugins.loading: "cargando plugins…" hubs.plugins.status.disabled: "desactivado" hubs.plugins.status.notEnabled: "no activado" hubs.plugins.title: "Hub de plugins" hubs.plugins.updating: "actualizando…" hubs.plugins.userScope: "{0} plugin(s) de usuario" hubs.skills.categoryRow: "{0} · {1} skills" hubs.skills.emptyCategory: "no hay skills en esta categoría" hubs.skills.hintActions: "i reinspeccionar · x reinstalar · Enter/Esc volver · q cerrar" hubs.skills.hintCancel: "Esc/q cancelar" hubs.skills.hintCategory: "↑/↓ seleccionar · Enter abrir · 1-9,0 rápido · Esc/q cancelar" hubs.skills.hintSkill: "↑/↓ seleccionar · Enter abrir · 1-9,0 rápido · Esc volver · q cerrar" hubs.skills.hintSkillEmpty: "Esc volver · q cerrar" hubs.skills.installing: "instalando…" hubs.skills.loading: "cargando skills…" hubs.skills.loadingOne: "cargando…" hubs.skills.pathLine: "ruta: {0}" hubs.skills.selectCategory: "elige una categoría" hubs.skills.skillCount: "{0} skill(s)" hubs.skills.title: "Hub de skills" journey.closeHint: "Esc/q cerrar" journey.confirmDelete: "¿eliminar {0}? y/N" journey.empty: "Aún no hay aprendizaje — tus skills y memorias aprendidas irán apareciendo aquí a medida que uses Hermes." journey.error: "error: {0}" journey.hint.close: "q cerrar" journey.hint.delete: "d eliminar" journey.hint.edit: "e editar" journey.hint.item: "↑↓/jk desplazar · PgUp/PgDn página · e editar · d eliminar · Esc/← volver · q cerrar" journey.hint.move: "↑↓/jk mover" journey.hint.open: "Enter/→ abrir" journey.hint.topBottom: "g/G inicio/fin" journey.loading: "armando tu mapa de aprendizaje…" journey.noDetail: "Aún no hay más detalles registrados." journey.notice.cannotEdit: "no se puede editar" journey.notice.noChanges: "sin cambios" journey.slice.memoriesOne: "{0} memoria" journey.slice.memoriesOther: "{0} memorias" journey.slice.skillsOne: "{0} skill" journey.slice.skillsOther: "{0} skills" journey.subtitle: "skills y memorias aprendidas a lo largo del tiempo" journey.title: "Recorrido" libText.agentRows.agent: "agente" libText.agentRows.resultReady: "resultado listo" libText.agentRows.starting: "Iniciando…" libText.attachments.imageToken: "[[ Imagen {0} ]]" libText.billingDialog.dismiss: "Descartar" libText.billingDialog.nousDetail: "Tu saldo de créditos de Nous se agotó — recarga para seguir." libText.billingDialog.nousTitle: "Sin créditos de Nous" libText.billingDialog.openBillingPage: "Abrir página de facturación" libText.billingDialog.providerDetail: "{0} indica que tus créditos o tu facturación están agotados." libText.billingDialog.providerTitle: "Sin créditos · {0}" libText.billingDialog.switchProvider: "Cambiar de proveedor" libText.billingDialog.topUp: "Recargar" libText.billingDialog.yourProvider: "tu proveedor" libText.completion.unavailable: "autocompletado no disponible" libText.completion.unavailableMeta: "no disponible" libText.gateway.attachUrlChanged: "cambió la url de conexión del gateway" libText.gateway.closed: "gateway cerrado" libText.gateway.error: "error del gateway: {0}" libText.gateway.exited: "gateway finalizado" libText.gateway.exitedWithCode: "gateway finalizado ({0})" libText.gateway.restarting: "reiniciando gateway" libText.gateway.websocketClosed: "websocket del gateway cerrado" libText.gateway.websocketClosedDuringConnect: "websocket del gateway cerrado ({0}) durante la conexión" libText.gateway.websocketClosedWithCode: "websocket del gateway cerrado ({0})" libText.gateway.websocketConnectionFailed: "falló la conexión websocket con el gateway" libText.gateway.websocketStartupFailed: "falló el arranque del websocket del gateway" libText.gateway.websocketUnavailable: "websocket del gateway no disponible" libText.messages.backgroundAgentWorkFinished: "trabajo del agente en segundo plano terminado" libText.messages.backgroundAgentsFinishedOne: "{0} agente en segundo plano terminó" libText.messages.backgroundAgentsFinishedOther: "{0} agentes en segundo plano terminaron" libText.messages.backgroundProcessFinished: "proceso en segundo plano terminado" libText.messages.longMessage: "{0} [mensaje largo]" libText.messages.messageFallback: "(mensaje)" libText.messages.modelChanged: "modelo cambiado" libText.messages.personalityChanged: "personalidad cambiada" libText.messages.resumedInterruptedTurn: "turno interrumpido reanudado" libText.subagentTree.agentsOne: "{0} agente" libText.subagentTree.agentsOther: "{0} agentes" libText.subagentTree.tokens: "{0} tok" libText.subagentTree.toolsOne: "{0} herramienta" libText.subagentTree.toolsOther: "{0} herramientas" libText.terminalParity.appleTerminal: "Apple Terminal detectada · usa /paste como alternativa para el portapapeles solo de imagen, y prueba Ctrl+A / Ctrl+E / Ctrl+U si Cmd+←/→/⌫ se reescribe" libText.terminalParity.ideSetup: "Terminal de {0} detectada · ejecuta /terminal-setup para mejor paridad de Cmd+Enter / deshacer" libText.terminalParity.remote: "Sesión SSH detectada · el portapapeles de texto puede puentearse vía OSC52, pero el portapapeles de imagen y las rutas locales de capturas siguen dependiendo de la máquina que ejecuta Hermes" libText.terminalParity.tmux: "tmux detectado · copiar/pegar del portapapeles usa passthrough cuando está disponible; allow-passthrough mejora la fiabilidad de OSC52" libText.terminalSetup.addedOne: "Se añadió {0} atajo de terminal de {1}" libText.terminalSetup.addedOther: "Se añadieron {0} atajos de terminal de {1}" libText.terminalSetup.alreadyConfigured: "Los atajos de terminal de {0} ya están configurados." libText.terminalSetup.configureFailed: "No se pudieron configurar los atajos de terminal de {0}: {1}" libText.terminalSetup.conflicts: "Hay atajos de terminal existentes que entrarían en conflicto en {0}: {1}" libText.terminalSetup.keybindingsNotArray: "El keybindings.json de {0} no es un array JSON: {1}" libText.terminalSetup.migratedOne: "se migró {0} atajo antiguo a codificación CSI u" libText.terminalSetup.migratedOther: "se migraron {0} atajos antiguos a codificación CSI u" libText.terminalSetup.mustRunLocally: "La configuración de la terminal de {0} debe ejecutarse en la máquina local, no dentro de una sesión SSH." libText.terminalSetup.noSupportedIde: "No se detectó ninguna terminal de IDE compatible. Compatibles: VS Code, Cursor, Windsurf." libText.terminalSetup.readFailed: "No se pudieron leer los atajos de teclado de {0}: {1}" libText.terminalSetup.settingsPathUnknown: "No se pudo determinar la ruta de ajustes de {0} en esta plataforma." libText.terminalSetup.summaryIn: "{0} en {1}" libText.text.argsLabel: "Args" libText.text.clarifyAnswered: "✓ {0} → {1}" libText.text.clarifyHead: "consulta ({0} preguntas)" libText.text.clarifyReason: "({0})" libText.text.clarifyUnanswered: "· {0} (sin respuesta)" libText.text.errorLabel: "Error" libText.text.omittedChars: "[{0}; omitidos {1} caracteres]" libText.text.omittedLinesChars: "[{0}; omitidas {1} líneas / {2} caracteres]" libText.text.pasteLinesChip: "[{0} líneas]" libText.text.resultLabel: "Resultado" libText.text.showingLiveTail: "mostrando el final en vivo" pickers.common.error: "error: {0}" pickers.common.filter: "filtro: {0}" pickers.common.invalidResponse: "respuesta no válida: {0}" pickers.common.moreAbove: " ↑ {0} más" pickers.common.moreBelow: " ↓ {0} más" pickers.common.typeToFilter: "escribe para filtrar" pickers.model.disconnect.disconnecting: "desconectando…" pickers.model.disconnect.hint: "y/Enter confirmar · n/Esc cancelar" pickers.model.disconnect.reauthLater: "Puedes volver a autenticarte más tarde seleccionándolo de nuevo." pickers.model.disconnect.removesCredentials: "Esto elimina las credenciales guardadas de {0}." pickers.model.disconnect.title: "¿Desconectar {0}?" pickers.model.effort.hint: "↑/↓ seleccionar · Enter cambiar · Esc volver · q cerrar" pickers.model.effort.subtitle: "{0} · se aplica con el cambio (mismo ámbito) · Esc volver" pickers.model.effort.title: "Esfuerzo de razonamiento (paso 3/3)" pickers.model.escQCancelHint: "Esc/q cancelar" pickers.model.failedToSaveKey: "no se pudo guardar la clave" pickers.model.key.empty: "(vacío)" pickers.model.key.hint: "Enter guardar · Ctrl+U limpiar · Esc volver" pickers.model.key.pasteBelow: "Pega tu clave de API abajo (se guarda en ~/.hermes/.env)" pickers.model.key.saving: "guardando…" pickers.model.key.title: "Configurar {0}" pickers.model.loading: "cargando modelos…" pickers.model.modelStage.emptyHint: "Esc volver · q cerrar" pickers.model.modelStage.hint: "↑/↓ seleccionar · Enter siguiente · Esc limpiar/volver · q cerrar" pickers.model.modelStage.noMatches: "ningún modelo coincide con el filtro" pickers.model.modelStage.noneListed: "no hay modelos listados para este proveedor" pickers.model.modelStage.subtitle: "{0} · Esc volver" pickers.model.modelStage.title: "Elige modelo (paso 2/3)" pickers.model.modelStage.unknownProvider: "(proveedor desconocido)" pickers.model.noProviders: "no hay proveedores disponibles" pickers.model.pasteKeyToActivate: "pega {0} para activarlo" pickers.model.persist.label: "guardar: {0}" pickers.model.persist.onlySuffix: " solo" pickers.model.persist.scopeGlobal: "global" pickers.model.persist.scopeSession: "sesión" pickers.model.persist.toggleHint: " · ^g alternar" pickers.model.provider.current: "Actual: {0}" pickers.model.provider.filterHint: "escribe para filtrar · ↑/↓ elegir" pickers.model.provider.hint: "↑/↓ seleccionar · Enter elegir · ^d desconectar · Esc limpiar/volver · q cerrar" pickers.model.provider.modelCountOne: "{0} modelo" pickers.model.provider.modelCountOther: "{0} modelos" pickers.model.provider.needsSetup: "(requiere configuración)" pickers.model.provider.noKey: "(sin clave)" pickers.model.provider.noMatches: "ningún proveedor coincide" pickers.model.provider.subtitle: "IDs completos de modelo en el siguiente paso · Enter para continuar" pickers.model.provider.title: "Elige proveedor (paso 1/3)" pickers.model.provider.unknown: "(desconocido)" pickers.model.provider.warning: "aviso: {0}" pickers.model.reasoning.keepCurrent: "Mantener el esfuerzo actual" pickers.model.reasoning.none: "ninguno (desactivar razonamiento)" pickers.model.runHermesModelToConfigure: "ejecuta `hermes model` para configurarlo" pickers.pet.adopting: "adoptando…" pickers.pet.escCancelHint: "Esc cancelar" pickers.pet.hint: "↑/↓ seleccionar · Enter adoptar · escribe para filtrar · Esc cancelar" pickers.pet.loading: "cargando mascotas…" pickers.pet.noMatches: "ninguna mascota coincide con \"{0}\"" pickers.pet.noneAvailable: "no hay mascotas disponibles" pickers.pet.officialTag: " · oficial" pickers.pet.petCountOne: "{0} mascota" pickers.pet.petCountOther: "{0} mascotas" pickers.pet.title: "Mascotas" pickers.session.age.daysAgo: "hace {0}d" pickers.session.age.today: "hoy" pickers.session.age.yesterday: "ayer" pickers.session.counts: "{0} en vivo · {1} reanudables" pickers.session.currentOrDefault: "actual/predeterminada" pickers.session.draftModel: "modelo: {0}" pickers.session.errors.alreadyClosed: "la sesión ya estaba cerrada" pickers.session.errors.couldNotLoadResumable: "no se pudieron cargar las sesiones reanudables" pickers.session.hint.close: " cerrar" pickers.session.hint.delete: " eliminar" pickers.session.hint.model: " modelo" pickers.session.hint.move: " mover · " pickers.session.hint.new: " nueva · " pickers.session.hint.newRowLabel: "Fila nueva:" pickers.session.hint.refresh: " actualizar · " pickers.session.hint.resumableLabel: "Reanudable:" pickers.session.hint.resume: " reanudar · " pickers.session.hint.sessionRowLabel: "Fila de sesión:" pickers.session.hint.start: " iniciar · " pickers.session.hint.switch: " cambiar · " pickers.session.hint.typePrompt: " escribir prompt · " pickers.session.liveSessionsOne: "{0} sesión en vivo" pickers.session.liveSessionsOther: "{0} sesiones en vivo" pickers.session.loading: "cargando sesiones…" pickers.session.modelUnknown: "¿modelo?" pickers.session.newRowMarker: "+new" pickers.session.noOtherSessions: "no hay otras sesiones — Enter en +new para iniciar una" pickers.session.promptLabel: "prompt › " pickers.session.row.closing: "cerrando…" pickers.session.row.current: "actual" pickers.session.row.deleting: "eliminando…" pickers.session.row.draft: "✎ borrador" pickers.session.row.messageCount: "{0} msgs" pickers.session.row.new: "nueva" pickers.session.row.pressDAgain: "pulsa d otra vez para eliminar" pickers.session.row.startNew: "Iniciar una sesión en vivo nueva" pickers.session.row.untitled: "(sin título)" pickers.session.selectNewPrefix: "Selecciona " pickers.session.selectNewSuffix: " para escribir un prompt" pickers.session.status.idle: "inactiva" pickers.session.status.starting: "iniciando" pickers.session.status.waiting: "esperando" pickers.session.status.working: "trabajando" pickers.session.title: "Sesiones" prompt.approval.always: "Permitir siempre" prompt.approval.deny: "Denegar" prompt.approval.moreLines: "… +{0} línea(s) más (texto completo arriba)" prompt.approval.once: "Permitir una vez" prompt.approval.session: "Permitir en esta sesión" prompt.approval.title: "⚠ se requiere aprobación" prompt.clarify.hint: "↑/↓ seleccionar · Enter {0} · Tab/Shift+Tab cambiar de pregunta · Esc/Ctrl+C cancelar" prompt.clarify.typingHint: "Enter {0} · Esc volver" prompt.clarify.confirmAndContinue: "confirmar y continuar" prompt.clarify.lockAnswer: "fijar respuesta" prompt.clarify.other: "Otra (escribe tu respuesta)" prompt.clarify.skipped: "(omitida)" prompt.clarify.toggle: "Espacio alternar" prompt.confirm.cancel: "No" prompt.confirm.confirm: "Sí" prompt.confirm.hint: "↑/↓ seleccionar · Enter confirmar · Y/N rápido · Esc cancelar" rpc.requestFailed: "la solicitud falló" secure.secret.forEnvVar: "para {0}" secure.sudo.title: "se requiere la contraseña de sudo" secure.vault.unlockHint: "contraseña maestra · oculta · va solo a la CLI del gestor · Esc lo deja bloqueado" secure.vault.unlockTitle: "Desbloquear {0} en esta sesión" session.approval.approved: "aprobado ({0})" session.approval.denied: "denegado" session.common.invalidResponse: "respuesta inválida: {0}" session.handoff.exitedWithCode: "hermes {0} salió con código {1}" session.handoff.launchError: "error al lanzar hermes: {0}" session.handoff.launching: "lanzando `hermes {0}`…" session.handoff.stillNoProvider: "aún no hay ningún proveedor configurado" session.input.dashboardNewSession: "iniciando un chat nuevo del dashboard..." session.input.failedToOpenEditor: "no se pudo abrir el editor" session.input.failedToOpenEditorWith: "no se pudo abrir el editor: {0}" session.input.secretCancelled: "entrada de secreto cancelada" session.input.sudoCancelled: "sudo cancelado" session.input.vaultStaysLocked: "{0} sigue bloqueado" session.input.voiceError: "error de voz: {0}" session.input.voiceModeOff: "voz: el modo está desactivado — actívalo con /voice on" session.input.voiceStillTranscribing: "voz: aún transcribiendo; inténtalo de nuevo en un momento" session.input.yoloNeedsSession: "yolo necesita una sesión activa" session.input.yoloOff: "yolo desactivado" session.input.yoloOn: "yolo activado" session.input.yoloToggleFailed: "no se pudo alternar yolo" session.lifecycle.failedToSetTitle: "no se pudo establecer el título de la sesión: {0}" session.lifecycle.interruptBeforeSwitch: "interrumpe el turno actual antes de {0}" session.lifecycle.newLiveSessionStarted: "nueva sesión en vivo iniciada" session.lifecycle.sessionTitleSet: "título de sesión establecido: {0}" session.lifecycle.switchSessions: "cambiar de sesión" session.lifecycle.titleQueuedSuffix: " (en cola mientras la sesión se inicializa)" session.main.clarifyQuestionsOne: "{0} pregunta" session.main.clarifyQuestionsOther: "{0} preguntas" session.main.failedToStartLiveSession: "no se pudo iniciar la nueva sesión en vivo" session.main.invalidModelSwitchResponse: "respuesta inválida: cambio de modelo" session.main.modelSwitched: "modelo → {0}" session.main.skipped: "(omitida)" session.main.voiceOff: "voz desactivada" session.main.voiceOn: "voz activada" session.main.voiceRec: "● REC" session.main.voiceStt: "◉ STT" session.main.voiceTtsSuffix: " [tts]" session.main.widgetFailedToLoad: "no se pudo cargar el widget {0}: {1}" session.main.widgetLive: "widget /{0} activo — escribe /{0} para abrirlo" session.main.widgetRemoved: "widget /{0} eliminado (archivo borrado)" session.request.dangerousCommand: "comando peligroso" session.status.approvalNeeded: "aprobación requerida" session.status.closingSession: "cerrando sesión…" session.status.interrupting: "interrumpiendo…" session.status.reconnecting: "reconectando…" session.status.restarting: "reiniciando…" session.status.resuming: "reanudando…" session.status.secretInputNeeded: "secreto requerido" session.status.setupRequired: "configuración requerida" session.status.setupRunning: "configurando…" session.status.startingAgent: "iniciando agente…" session.status.stopped: "detenido" session.status.sudoPasswordNeeded: "contraseña sudo requerida" session.status.switchingSession: "cambiando de sesión…" session.status.unlockVault: "desbloquear {0}" session.status.waitingForInput: "esperando entrada…" session.turn.interrupted: "interrumpido" slashCmd.core.battery.state: "indicador de batería {0}" slashCmd.core.battery.statusLive: "indicador de batería {0} — ahora {1} {2}%" slashCmd.core.battery.statusNoBattery: "indicador de batería {0} — no se detectó batería en este equipo" slashCmd.core.battery.usage: "uso: /battery [on|off|status]" slashCmd.core.clear.cancelLabel: "No, seguir aquí" slashCmd.core.clear.confirmClear: "Sí, limpiar la sesión" slashCmd.core.clear.confirmNew: "Sí, iniciar una sesión nueva" slashCmd.core.clear.detail: "Esto termina la conversación actual y borra la transcripción." slashCmd.core.clear.forgingSession: "forjando sesión…" slashCmd.core.clear.newSessionStarted: "nueva sesión iniciada" slashCmd.core.clear.switchSessions: "cambiar de sesión" slashCmd.core.clear.titleClear: "¿Limpiar la sesión actual?" slashCmd.core.clear.titleNew: "¿Iniciar una sesión nueva?" slashCmd.core.copy.clipboardFailed: "falló la copia al portapapeles — prueba HERMES_TUI_FORCE_OSC52=1 para forzar la secuencia de escape" slashCmd.core.copy.copied: "copiado al portapapeles" slashCmd.core.copy.copiedCharsOne: "{0} carácter copiado" slashCmd.core.copy.copiedCharsOther: "{0} caracteres copiados" slashCmd.core.copy.failed: "falló la copia: {0}" slashCmd.core.copy.nothingToCopy: "nada que copiar — inicia una conversación primero" slashCmd.core.copy.sentOsc52: "secuencia de copia OSC52 enviada (requiere soporte de la terminal)" slashCmd.core.copy.usage: "uso: /copy [número]" slashCmd.core.density.state: "densidad {0}" slashCmd.core.density.usage: "uso: /density [on|off|toggle]" slashCmd.core.details.current: "detalle: {0}{1}" slashCmd.core.details.reset: "restablecido" slashCmd.core.details.section: "detalle {0}: {1}" slashCmd.core.details.sectionUsage: "uso: /details
[hidden|collapsed|expanded|reset]" slashCmd.core.details.usage: "uso: /details [hidden|collapsed|expanded|cycle] o /details
[hidden|collapsed|expanded|reset]" slashCmd.core.focus.disabled: "vista de enfoque desactivada" slashCmd.core.focus.enabled: "vista de enfoque activada — solo tu prompt y la respuesta final" slashCmd.core.focus.statusOff: "vista de enfoque desactivada" slashCmd.core.focus.statusOn: "vista de enfoque activada — solo tu prompt y la respuesta final" slashCmd.core.focus.usage: "uso: /focus [on|off|status]" slashCmd.core.fortune.usage: "uso: /fortune [random|daily]" slashCmd.core.help.detailsGlobal: "fijar el modo global de visibilidad del detalle del agente" slashCmd.core.help.detailsSection: "sobrescribir una sección (thinking/tools/subagents/activity)" slashCmd.core.help.dialogTest: "abrir un panel de diálogo de ejemplo con fondo simulado" slashCmd.core.help.fortune: "mostrar una fortuna local aleatoria o la del día" slashCmd.core.help.gridTest: "abrir la demo interactiva de la cuadrícula de widgets" slashCmd.core.help.skillCommandsAvailable: "{0} comandos de skills disponibles — /skills para explorarlos" slashCmd.core.help.tuiSection: "TUI" slashCmd.core.history.empty: "(vacío)" slashCmd.core.history.hermesTag: "Hermes #{0}" slashCmd.core.history.noConversation: "aún no hay conversación" slashCmd.core.history.pageTitle: "Historial" slashCmd.core.history.toolCallsOne: "({0} llamada a herramienta)" slashCmd.core.history.toolCallsOther: "({0} llamadas a herramientas)" slashCmd.core.history.youTag: "Tú #{0}" slashCmd.core.logs.none: "no hay registros del gateway" slashCmd.core.logs.pageTitle: "Registros" slashCmd.core.mouse.tracking: "seguimiento del mouse {0}" slashCmd.core.mouse.usage: "uso: /mouse [on|off|toggle|wheel|buttons|all]" slashCmd.core.paste.usage: "uso: /paste" slashCmd.core.prompt.editorFailed: "falló el editor: {0}" slashCmd.core.queue.countOne: "{0} mensaje en cola" slashCmd.core.queue.countOther: "{0} mensajes en cola" slashCmd.core.queue.queued: "en cola: \"{0}\"" slashCmd.core.quit.dashboardDisabled: "salir está desactivado en el chat del panel alojado — usa /new para iniciar una sesión nueva" slashCmd.core.redraw.done: "interfaz redibujada" slashCmd.core.retry.nothing: "nada que reintentar" slashCmd.core.save.failed: "no se pudo guardar" slashCmd.core.save.noActiveSession: "no hay sesión activa — nada que guardar" slashCmd.core.save.noConversation: "aún no hay conversación" slashCmd.core.save.saved: "conversación guardada en: {0}" slashCmd.core.status.empty: "(sin estado)" slashCmd.core.status.noActiveSession: "no hay sesión activa" slashCmd.core.status.pageTitle: "Estado" slashCmd.core.statusbar.state: "barra de estado {0}" slashCmd.core.statusbar.usage: "uso: /statusbar [on|off|top|bottom|toggle]" slashCmd.core.steer.noActiveTurnQueued: "no hay turno activo — en cola para el siguiente: \"{0}\"" slashCmd.core.steer.queued: "redirección en cola — llegará tras la siguiente llamada a herramienta: \"{0}\"" slashCmd.core.steer.rejected: "redirección rechazada — no hay turno activo, en cola para el siguiente turno" slashCmd.core.steer.usage: "uso: /steer " slashCmd.core.terminalSetup.failed: "falló la configuración de la terminal: {0}" slashCmd.core.terminalSetup.restartIde: "reinicia la terminal del IDE para que los nuevos atajos tengan efecto" slashCmd.core.terminalSetup.usage: "uso: /terminal-setup [auto|vscode|cursor|windsurf]" slashCmd.core.title.current: "título: {0}" slashCmd.core.title.noActiveSession: "no hay sesión activa" slashCmd.core.title.none: "sin título" slashCmd.core.title.queuedSuffix: " (en cola mientras se inicializa la sesión)" slashCmd.core.title.set: "título de sesión fijado: {0}{1}" slashCmd.core.title.usage: "uso: /title " slashCmd.core.undo.nothing: "nada que deshacer" slashCmd.core.undo.undidOne: "{0} mensaje deshecho" slashCmd.core.undo.undidOther: "{0} mensajes deshechos" slashCmd.core.update.dashboardDisabled: "la actualización está desactivada en el chat del panel alojado — el entorno alojado se gestiona por separado" slashCmd.core.update.exiting: "saliendo de la TUI para ejecutar la actualización..." slashCmd.debug.heapdump.diagPath: "diagnóstico: {0}" slashCmd.debug.heapdump.failed: "falló el heapdump: {0}" slashCmd.debug.heapdump.heapPath: "heapdump: {0}" slashCmd.debug.heapdump.unknownError: "error desconocido" slashCmd.debug.heapdump.writing: "escribiendo volcado de heap (heap {0} · rss {1})…" slashCmd.debug.mem.arrayBuffers: "array buffers" slashCmd.debug.mem.external: "externo" slashCmd.debug.mem.heapTotal: "heap total" slashCmd.debug.mem.heapUsed: "heap usado" slashCmd.debug.mem.panelTitle: "Memoria" slashCmd.debug.mem.rss: "rss" slashCmd.debug.mem.seconds: "{0}s" slashCmd.debug.mem.uptime: "tiempo activo" slashCmd.debug.themeInfo.dark: "oscuro" slashCmd.debug.themeInfo.detectedMode: "modo detectado" slashCmd.debug.themeInfo.light: "claro" slashCmd.debug.themeInfo.noReply: "(sin respuesta)" slashCmd.debug.themeInfo.osc11Background: "fondo OSC-11" slashCmd.debug.themeInfo.panelTitle: "Tema" slashCmd.debug.themeInfo.unset: "(sin definir)" slashCmd.debug.widgetsReload.loaded: "cargados: {0}" slashCmd.debug.widgetsReload.none: "no se encontraron widgets de usuario" slashCmd.debug.widgetsReload.summary: "widgets — {0}" slashCmd.ops.agents.paused: "delegación · en pausa" slashCmd.ops.agents.resumed: "delegación · reanudada" slashCmd.ops.agents.stateActive: "activa" slashCmd.ops.agents.statePaused: "en pausa" slashCmd.ops.agents.status: "delegación · {0} · límites d{1}/{2}" slashCmd.ops.browser.checking: "comprobando la depuración remota del navegador Chromium en {0}..." slashCmd.ops.browser.connected: "navegador conectado: {0}" slashCmd.ops.browser.connectedLive: "Navegador conectado a un navegador Chromium en uso vía CDP" slashCmd.ops.browser.disconnected: "navegador desconectado" slashCmd.ops.browser.endpoint: "Endpoint: {0}" slashCmd.ops.browser.nextCallUsesEndpoint: "la siguiente llamada a la herramienta de navegador usará este endpoint CDP" slashCmd.ops.browser.notConnected: "navegador no conectado (prueba /browser connect o define browser.cdp_url en config.yaml)" slashCmd.ops.browser.urlUnavailable: "(url no disponible)" slashCmd.ops.browser.usage: "uso: /browser [connect|disconnect|status] [url] · permanente: define browser.cdp_url en config.yaml" slashCmd.ops.reloadEnv.reloadedOne: ".env recargado ({0} variable actualizada)" slashCmd.ops.reloadEnv.reloadedOther: ".env recargado ({0} variables actualizadas)" slashCmd.ops.reloadMcp.complete: "recarga completada" slashCmd.ops.reloadMcp.confirmRequired: "/reload-mcp requiere confirmación" slashCmd.ops.reloadMcp.reloaded: "servidores MCP recargados" slashCmd.ops.reloadMcp.reloadedAlways: "servidores MCP recargados · los próximos /reload-mcp se ejecutarán sin confirmación" slashCmd.ops.reloadSkills.pageTitle: "Recargar skills" slashCmd.ops.reloadSkills.reloaded: "skills recargadas" slashCmd.ops.replay.archivedTitle: "Árboles de spawn archivados" slashCmd.ops.replay.indexOutOfRange: "replay: índice fuera de rango 1..{0} · usa /replay list para ver los de disco" slashCmd.ops.replay.noneOnDisk: "no hay árboles de spawn archivados en disco para esta sesión" slashCmd.ops.replay.noneThisSession: "no hay árboles de spawn completados en esta sesión · prueba /replay list" slashCmd.ops.replay.snapshotEmpty: "snapshot vacío o ilegible" slashCmd.ops.replay.subagentsLabel: "{0} subagentes" slashCmd.ops.replay.usageLoad: "uso: /replay load " slashCmd.ops.replayDiff.unresolved: "replay-diff: no se pudieron resolver los índices · el historial tiene {0} entradas" slashCmd.ops.replayDiff.usage: "uso: /replay-diff (p. ej. /replay-diff 1 2 para los dos últimos)" slashCmd.ops.rollback.diffTitle: "Diff del rollback" slashCmd.ops.rollback.failed: "falló el rollback: {0}" slashCmd.ops.rollback.listTitle: "Checkpoints de rollback" slashCmd.ops.rollback.noChanges: "sin cambios desde este checkpoint" slashCmd.ops.rollback.noMetadata: "(sin metadatos)" slashCmd.ops.rollback.noSession: "no hay sesión activa — nada que revertir" slashCmd.ops.rollback.noneFound: "no se encontraron checkpoints" slashCmd.ops.rollback.notEnabled: "los checkpoints no están habilitados" slashCmd.ops.rollback.restored: "rollback: {0} restaurado: {1}" slashCmd.ops.rollback.restoredDetail: "restaurado" slashCmd.ops.rollback.unknownError: "error desconocido" slashCmd.ops.rollback.usageDiff: "uso: /rollback diff " slashCmd.ops.rollback.workspaceTarget: "espacio de trabajo" slashCmd.ops.skills.browseMore: "/skills browse {0} para ver más" slashCmd.ops.skills.browseTitle: "Explorar skills" slashCmd.ops.skills.browseTitlePage: "Explorar skills — p{0}" slashCmd.ops.skills.fetching: "obteniendo skills de la comunidad (escanea 6 fuentes, puede tardar ~15 s)…" slashCmd.ops.skills.inspectTitle: "Skill" slashCmd.ops.skills.installFailed: "falló la instalación" slashCmd.ops.skills.installed: "{0} instalada" slashCmd.ops.skills.installing: "instalando {0}…" slashCmd.ops.skills.listTitle: "Skills" slashCmd.ops.skills.noResults: "sin resultados para: {0}" slashCmd.ops.skills.noneOnPage: "no hay skills en la página {0}" slashCmd.ops.skills.noneOnPageWithTotal: "no hay skills en la página {0} (total {1})" slashCmd.ops.skills.pageOf: "página {0} de {1}" slashCmd.ops.skills.rowCategory: "Categoría" slashCmd.ops.skills.rowName: "Nombre" slashCmd.ops.skills.rowPath: "Ruta" slashCmd.ops.skills.searchTitle: "Búsqueda: {0}" slashCmd.ops.skills.skillsTotal: "{0} skills en total" slashCmd.ops.skills.unknownSkill: "skill desconocida: {0}" slashCmd.ops.skills.usageBrowse: "uso: /skills browse [page] (page debe ser un número positivo)" slashCmd.ops.skills.usageInspect: "uso: /skills inspect " slashCmd.ops.skills.usageInstall: "uso: /skills install " slashCmd.ops.skills.usageSearch: "uso: /skills search " slashCmd.ops.slashWorker.pluginsNoOutput: "/plugins: sin salida" slashCmd.ops.slashWorker.pluginsTitle: "Plugins" slashCmd.ops.slashWorker.skillsNoOutput: "/skills: sin salida" slashCmd.ops.slashWorker.skillsTitle: "Skills" slashCmd.ops.slashWorker.toolsNoOutput: "/tools: sin salida" slashCmd.ops.slashWorker.toolsTitle: "Herramientas" slashCmd.ops.slashWorker.warning: "aviso: {0}" slashCmd.ops.stop.stoppedOne: "{0} proceso en segundo plano detenido" slashCmd.ops.stop.stoppedOther: "{0} procesos en segundo plano detenidos" slashCmd.ops.tools.builtinExample: "conjunto de herramientas integrado: /tools {0} web" slashCmd.ops.tools.disabled: "desactivado: {0}" slashCmd.ops.tools.enabled: "activado: {0}" slashCmd.ops.tools.mcpExample: "herramienta MCP: /tools {0} github:create_issue" slashCmd.ops.tools.missingServers: "faltan servidores MCP: {0}" slashCmd.ops.tools.sessionReset: "sesión restablecida. la nueva configuración de herramientas está activa." slashCmd.ops.tools.unknownToolsets: "conjuntos de herramientas desconocidos: {0}" slashCmd.ops.tools.usage: "uso: /tools {0} [name ...]" slashCmd.session.bg.started: "bg {0} iniciado" slashCmd.session.bg.usage: "/bg " slashCmd.session.branch.branched: "ramificado → {0}" slashCmd.session.btw.answering: "btw {0} — respondiendo desde un snapshot de la conversación" slashCmd.session.btw.usage: "/btw " slashCmd.session.busy.mode: "modo de entrada al estar ocupado: {0}" slashCmd.session.busy.usage: "uso: /busy [queue|steer|interrupt|status]" slashCmd.session.compress.compressedOne: "{0} mensaje comprimido" slashCmd.session.compress.compressedOther: "{0} mensajes comprimidos" slashCmd.session.compress.nothing: "nada que comprimir" slashCmd.session.compress.tokSuffix: " · {0} tok" slashCmd.session.fast.mode: "modo rápido: {0}" slashCmd.session.fast.usage: "uso: /fast [normal|fast|ultrafast|status|on|off|toggle]" slashCmd.session.indicator.current: "indicador: {0}" slashCmd.session.indicator.switched: "indicador → {0}" slashCmd.session.indicator.usage: "uso: /indicator [{0}]" slashCmd.session.model.cancel: "Cancelar" slashCmd.session.model.expensiveDetail: "Este modelo tiene un precio conocido inusualmente alto." slashCmd.session.model.expensiveTitle: "Selección de modelo costoso" slashCmd.session.model.invalidResponse: "error: respuesta no válida: cambio de modelo" slashCmd.session.model.switchAnyway: "Cambiar de todos modos" slashCmd.session.model.switched: "modelo → {0}" slashCmd.session.model.switchedDeferred: "modelo → {0} (se aplica en el siguiente turno)" slashCmd.session.personality.changed: "personalidad: {0}" slashCmd.session.personality.changedCleared: "personalidad: {0} · transcripción borrada" slashCmd.session.personality.defaultValue: "predeterminada" slashCmd.session.pet.noOutput: "/pet: sin salida" slashCmd.session.pet.warning: "advertencia: {0}\n{1}" slashCmd.session.reasoning.current: "razonamiento: {0}" slashCmd.session.reasoning.currentWithDisplay: "razonamiento: {0} · vista {1}" slashCmd.session.sessions.busyGuardAction: "cambiar de sesión" slashCmd.session.skin.current: "skin: {0}" slashCmd.session.skin.defaultValue: "predeterminado" slashCmd.session.skin.switched: "skin → {0}" slashCmd.session.theme.current: "tema: {0}" slashCmd.session.theme.switched: "tema → {0}" slashCmd.session.theme.usage: "uso: /theme [auto|light|dark]" slashCmd.session.usage.balanceTitle: "Saldo" slashCmd.session.usage.compressions: "Compresiones: {0}" slashCmd.session.usage.context: "Contexto: {0} / {1} ({2}%)" slashCmd.session.usage.cta: "Ejecuta /subscription para cambiar de plan · /topup para añadir saldo" slashCmd.session.usage.freeNote: "> Gratis · solo modelos gratuitos. Ejecuta /subscription para acceder a modelos de pago." slashCmd.session.usage.freePlan: "Gratis" slashCmd.session.usage.lowBalanceFallback: "menos de $5" slashCmd.session.usage.lowNote: "! Saldo bajo · quedan {0}. Ejecuta /topup o /subscription." slashCmd.session.usage.noCalls: "aún sin llamadas a la API" slashCmd.session.usage.nousBalanceTitle: "Saldo de Nous" slashCmd.session.usage.plan: "Plan: {0}" slashCmd.session.usage.planRenews: "Plan: {0} · se renueva el {1}" slashCmd.session.usage.rowApiCalls: "Llamadas API" slashCmd.session.usage.rowInputTokens: "Tokens de entrada" slashCmd.session.usage.rowModel: "Modelo" slashCmd.session.usage.rowOutputTokens: "Tokens de salida" slashCmd.session.usage.rowTotalTokens: "Tokens totales" slashCmd.session.usage.usageTitle: "Uso" slashCmd.session.verbose.current: "verbose: {0}" slashCmd.session.voice.disabled: "Modo de voz desactivado." slashCmd.session.voice.enabled: "Modo de voz activado" slashCmd.session.voice.enabledWithTts: "Modo de voz activado (TTS activado)" slashCmd.session.voice.off: "DESACTIVADO" slashCmd.session.voice.offHint: " /voice off para desactivar el modo de voz" slashCmd.session.voice.on: "ACTIVADO" slashCmd.session.voice.recordHint: " {0} para iniciar/detener la grabación" slashCmd.session.voice.requirements: " Requisitos:" slashCmd.session.voice.statusMode: " Modo: {0}" slashCmd.session.voice.statusRecordKey: " Grabación: {0}" slashCmd.session.voice.statusTitle: "Estado del modo de voz" slashCmd.session.voice.statusTts: " TTS: {0}" slashCmd.session.voice.ttsDisabled: "TTS de voz desactivado." slashCmd.session.voice.ttsEnabled: "TTS de voz activado." slashCmd.session.voice.ttsHint: " /voice tts para alternar la salida de voz" slashCmd.session.yolo.off: "yolo desactivado" slashCmd.session.yolo.on: "yolo activado" slashCmd.setup.setup.done: "configuración completada — iniciando sesión…" slashCmd.subscription.billingUnreachable: "No se pudo contactar con el servicio de facturación — revisa tu conexión y vuelve a intentarlo." slashCmd.subscription.manageUrlFailed: "No se pudo generar la URL de gestión — ¿está configurado tu portal?" slashCmd.subscription.notLoggedIn: "No has iniciado sesión en Nous Portal — ejecuta /portal para iniciar sesión y luego /subscription." slashCmd.subscription.openBrowserFailedManage: "No se pudo abrir el navegador — visita manualmente tu página de suscripción en {0}" slashCmd.subscription.openBrowserFailedPortal: "No se pudo abrir el navegador — visita {0} para terminar." slashCmd.subscription.openingManage: "Abriendo tu página de suscripción en el navegador — termina allí y vuelve a ejecutar /subscription." slashCmd.subscription.openingPortal: "Abriendo el portal en tu navegador — termina allí y vuelve a ejecutar /subscription." slashCmd.topup.charge.authenticationRequired: "🔴 Tu banco requiere verificación (3DS). Complétala en el portal para terminar esta compra." slashCmd.topup.charge.cardDeclined: "🔴 Tu tarjeta fue rechazada. Prueba con otra tarjeta en el portal." slashCmd.topup.charge.couldNotCheck: "🔴 No se pudo verificar el cargo: {0}" slashCmd.topup.charge.couldNotCheckFallback: "error" slashCmd.topup.charge.creditsFallback: "Créditos" slashCmd.topup.charge.failedReason: "🔴 El cargo no se completó ({0})." slashCmd.topup.charge.paymentMethodExpired: "🔴 Tu tarjeta ha expirado. Actualízala en el portal." slashCmd.topup.charge.settled: "✅ {0} añadidos." slashCmd.topup.charge.submitted: "💳 Cargo enviado — confirmando la liquidación…" slashCmd.topup.charge.timedOut: "🟡 Sigue procesándose tras 5 minutos: es un tiempo de espera agotado, no un fallo. Revisa /topup o el portal en breve." slashCmd.topup.charge.unconfirmed: "🟡 El resultado de tu último cargo no está confirmado — revisa tu saldo/historial antes de reintentar." slashCmd.topup.error.autoTopUpDisabledFailures: "La recarga automática se desactivó tras varios cargos fallidos. Corrige el problema con la tarjeta y vuelve a activarla desde /topup → Recarga automática." slashCmd.topup.error.consentRequired: "Esta acción requiere una confirmación única de la tarjeta y un paso de consentimiento en el portal antes de continuar." slashCmd.topup.error.generic: "🔴 {0}" slashCmd.topup.error.genericFallback: "La solicitud de facturación falló." slashCmd.topup.error.idempotencyConflict: "🔴 Esa clave de cargo ya se usó con un monto distinto. Inicia una recarga nueva." slashCmd.topup.error.insufficientScope: "Esto requiere tener permitido el Gasto remoto. Inicia una recarga para permitirlo y luego reintenta." slashCmd.topup.error.monthlyCapExceeded: "🔴 Tope de gasto mensual alcanzado." slashCmd.topup.error.monthlyCapExceededRemaining: "🔴 Tope de gasto mensual alcanzado — quedan ${0} de margen." slashCmd.topup.error.noPaymentMethod: "💳 Aún no hay tarjeta guardada para cargos desde la terminal. Configura una en el portal (las compras únicas de créditos no guardan una tarjeta reutilizable)." slashCmd.topup.error.orgAccessDenied: "Este token no está vinculado a una org que puedas gestionar. Inicia sesión con la org correcta o gestiónalo en el portal." slashCmd.topup.error.portal: "Portal: {0}" slashCmd.topup.error.rateLimited: "🟡 Demasiados cargos en este momento{0}. No es un fallo de pago." slashCmd.topup.error.remoteSpendingDisabled: "El gasto remoto está desactivado para esta cuenta; un administrador de facturación puede activarlo desde la página Hermes Agent del portal." slashCmd.topup.error.retryIn: " (inténtalo de nuevo en ~{0} min)" slashCmd.topup.error.revokedByAdmin: "Un administrador detuvo el gasto remoto de esta terminal." slashCmd.topup.error.revokedByYou: "Detuviste el gasto remoto de esta terminal." slashCmd.topup.error.revokedReconnect: "{0} Reconecta para restaurarlo: ejecuta /portal para volver a autorizar esta terminal." slashCmd.topup.error.roleRequired: "Añadir fondos requiere a alguien con permisos de facturación (propietario, administrador o administrador financiero), o gestiónalo en el portal." slashCmd.topup.error.sessionRevoked: "Tu sesión se cerró. Ejecuta /portal para iniciar sesión de nuevo." slashCmd.topup.error.stripeUnavailable: "🟡 Stripe tiene problemas en este momento — inténtalo de nuevo en breve{0}." slashCmd.topup.error.upgradeCapExceeded: "🔴 Límite diario de cambios de plan alcanzado (5 por org) — inténtalo mañana o gestiónalo en el portal." slashCmd.topup.notLoggedIn: "💳 No has iniciado sesión en Nous Portal — ejecuta /portal para iniciar sesión y luego /topup." slashCmd.topup.openingPortal: "Abriendo el portal: {0}" slashCmd.topup.validate.invalid: "Introduce un monto en dólares, p. ej. 100 (máx. 2 decimales)." slashCmd.topup.validate.maximum: "El máximo es ${0}." slashCmd.topup.validate.minimum: "El mínimo es ${0}." slashCmd.topup.validate.notPositive: "El monto debe ser mayor que $0." slashCmd.wake.disabledInConfig: "desactivado en la configuración" slashCmd.wake.enabledInConfig: "activado en la configuración" slashCmd.wake.forPhrase: "para “{0}”" slashCmd.wake.listenerOff: "despertar: detector apagado{0}" slashCmd.wake.listening: "despertar: escuchando{0}" slashCmd.wake.micSilent: "⚠ el micrófono solo entrega silencio" slashCmd.wake.notOwnerStop: "esta superficie no controla el detector" slashCmd.wake.notRunning: "inactivo" slashCmd.wake.notStarted: "despertar: no iniciado — {0}" slashCmd.wake.nothingToStop: "despertar: nada que detener — {0}{1}" slashCmd.wake.off: "despertar: desactivado{0} · /wake on para activarlo" slashCmd.wake.offOwnedBy: "despertar: desactivado aquí · detector controlado por {0}{1}" slashCmd.wake.ownedBy: "controlado por {0}" slashCmd.wake.reason.disabled: "desactivado (config wake_word.enabled)" slashCmd.wake.reason.disabledForSurface: "limitado a otra superficie (config wake_word.surface)" slashCmd.wake.reason.notOwner: "otra superficie controla el detector" slashCmd.wake.reason.owned: "otra superficie controla el detector" slashCmd.wake.reason.unavailable: "no disponible" slashCmd.wake.reason.unknown: "desconocido" slashCmd.wake.unavailable: "despertar: no disponible" slashCmd.wake.usage: "uso: /wake [on|off|status]" slashCmd.wake.withHint: "{0} — {1}" status.bgTasks: "{0} bg" status.compacting: "compactando" status.compressions: "cmp {0}" status.devCredits: " (créditos dev)" status.fast: "rápido" status.mcpReloaded: "MCP recargado tras el cambio de configuración" status.paused: "⏸ en pausa" status.ready: "listo" status.resumesWhenSubagentFinishes: "↩ se reanuda cuando termine el subagente" status.resumesWhenSubagentsFinish: "↩ se reanuda cuando terminen {0} subagentes" status.running: "ejecutando…" status.sessionCount: "{0} sesión(es)" status.summoning: "invocando a hermes…" subscription.confirm.blockedFallback: "Ese cambio no se puede hacer aquí — gestiónalo en el portal." subscription.confirm.cancelBody: "Cancelar {0} — sigue activo hasta {1} y después no se renovará." subscription.confirm.cancelKeepCredits: "Conservas los créditos que te quedan de este período. Puedes reanudarlo antes de que termine." subscription.confirm.cardCharged: "Se cobrará a {0}, la tarjeta de tu suscripción." subscription.confirm.cardChargedGeneric: "Se cobrará a la tarjeta de tu suscripción." subscription.confirm.chargedNow: "Se te cobrará {0} ahora (prorrateado)." subscription.confirm.chargedProrated: "Se te cobrará el importe prorrateado ahora." subscription.confirm.chipChargedNow: "se cobra ahora" subscription.confirm.chipScheduled: "programado · no es hoy" subscription.confirm.creditsDelta: "Cambio en los créditos mensuales: {0}." subscription.confirm.hint: "↑/↓ seleccionar · Enter confirmar · Esc volver" subscription.confirm.noOp: "Ya estás en {0} — no hay nada que cambiar." subscription.confirm.payAndUpgrade: "Pagar {0} y mejorar ahora" subscription.confirm.scheduleChangeTo: "Programar el cambio a {0}" subscription.confirm.scheduledBody: "Cambio a {0} — entra en vigor {1}. Sin cobro ahora; conservas tu plan actual hasta entonces." subscription.confirm.titleCancellation: "Confirmar cancelación" subscription.confirm.titleChange: "Confirmar cambio de plan" subscription.confirm.upgradeNowProrated: "Mejorar ahora (cobro prorrateado)" subscription.confirm.upgradeTo: "Mejora a {0}." subscription.confirm.working: "Procesando…" subscription.overview.cancelSubscription: "Cancelar suscripción" subscription.overview.changePlan: "Cambiar de plan" subscription.overview.creditsPerMonth: " · ${0} créditos/mes" subscription.overview.freeNudge: "Los modelos de pago requieren una suscripción. Inicia una para acceder a ellos." subscription.overview.hint: "↑/↓ seleccionar · Enter confirmar · Esc cerrar" subscription.overview.keepPlanUndo: "Conservar {0} (deshacer este cambio)" subscription.overview.keepUntilThen: "Conservas {0} (y sus créditos) hasta entonces." subscription.overview.lowNudge: "Saldo bajo · quedan {0}. Recarga o mejora tu plan antes de que se corte a mitad de ejecución." subscription.overview.lowNudgeAmountFallback: "menos de $5" subscription.overview.noPortalUrl: "🔴 No hay URL del portal disponible — gestiona tu suscripción en el portal de Nous." subscription.overview.org: "Org: {0}" subscription.overview.scheduledChange: "⏳ Cambio programado" subscription.overview.startSubscription: "Iniciar una suscripción" subscription.overview.tierRow: "{0} · {1}/mes" subscription.picker.current: "Actual: {0}. Elige un plan para ver el efecto antes de confirmar." subscription.picker.downgrade: "reducción" subscription.picker.hint: "↑/↓ seleccionar · Enter vista previa · Esc volver" subscription.picker.noOtherPlans: "Ahora mismo no hay otros planes disponibles a los que cambiar." subscription.picker.tierRow: "{0} · {1}/mes · {2}" subscription.picker.title: "Cambiar de plan" subscription.picker.upgrade: "mejora" subscription.result.alreadyOn: "Ya estás en {0}." subscription.result.cancellationScheduled: "Programado — tu plan sigue activo hasta el final del período de facturación y después se cancela. Hoy no cambia nada." subscription.result.cardDeclinedTryDifferent: "Tu tarjeta fue rechazada — prueba con otra tarjeta en el portal." subscription.result.changeScheduled: "Programado — tu plan no cambia hoy. Conservas tu plan actual hasta el final del período de facturación y después cambia." subscription.result.couldNotPreview: "No se pudo previsualizar ese cambio." subscription.result.genericError: "Algo salió mal. Inténtalo de nuevo o gestiónalo en el portal." subscription.result.paymentFailed: "Tu tarjeta fue rechazada. Actualiza tu método de pago en el portal e inténtalo de nuevo." subscription.result.requiresAction: "Esta mejora requiere una verificación adicional (3DS). Complétala en el portal." subscription.result.resumed: "Tu cambio pendiente se deshizo — sigues en tu plan actual." subscription.result.scopeStillDenied: "El Gasto remoto sigue sin estar activo para esta terminal — la autorización no se aplicó. Reintenta o haz este cambio en el portal." subscription.result.upgradeUnconfirmed: "No se pudo confirmar la mejora — es posible que se haya cobrado a tu tarjeta o no. Vuelve a ejecutar /subscription para comprobar tu plan antes de intentarlo de nuevo." subscription.result.upgraded: "Has mejorado a {0}. Tus nuevos créditos mensuales llegarán en un momento." subscription.result.verifyCard: "Verifica tu tarjeta en el portal para terminar esta mejora." subscription.resultScreen.hint: "↑/↓ seleccionar · Enter · Esc cerrar" subscription.resultScreen.openPortalToFinish: "Abrir el portal para terminar" subscription.resultScreen.rerunHint: "Ejecuta /subscription cuando quieras para revisarlo." subscription.resultScreen.stillApplying: "Tu mejora se realizó y aún se está aplicando — actualiza en un momento." subscription.resultScreen.titleApplying: "Aplicando…" subscription.resultScreen.titleDone: "Listo" subscription.resultScreen.titleFailed: "No se pudo completar" subscription.resultScreen.titleStillApplying: "Aún aplicando" subscription.shared.back: "Volver" subscription.shared.cancel: "Cancelar" subscription.shared.close: "Cerrar" subscription.shared.freePlan: "Free" subscription.shared.manageOnPortal: "Gestionar en el portal" subscription.shared.periodEndFallback: "el final del período de facturación" subscription.shared.theSelectedPlan: "el plan seleccionado" subscription.shared.thisPlan: "este plan" subscription.shared.yourNewPlan: "tu nuevo plan" subscription.shared.yourPlan: "tu plan" subscription.status.cancels: "se cancela" subscription.status.freePlan: "Plan: Free · solo modelos gratuitos" subscription.status.left: " · quedan {0}" subscription.status.plan: "Plan: {0}" subscription.status.renews: " · se renueva el {0}" subscription.status.transition: " → {0}" subscription.status.viewOnly: " · solo lectura" subscription.stepUp.allow: "Permitir Gasto remoto" subscription.stepUp.continue: "Continuar" subscription.stepUp.continueChange: "Continuar el cambio" subscription.stepUp.granted: "Gasto remoto permitido. Continúa para terminar tu cambio." subscription.stepUp.hint: "↑/↓ seleccionar · Enter · Esc volver" subscription.stepUp.hintWaiting: "Esperando aprobación… · Esc cancelar" subscription.stepUp.hintWorking: "Procesando…" subscription.stepUp.promptBody: "Para cambiar tu plan hace falta permitir el Gasto remoto en esta terminal. Permítelo aquí y luego continúa." subscription.stepUp.promptNote: "Alguien con permisos de facturación (propietario, admin o admin de finanzas) lo aprueba una sola vez en el navegador." subscription.stepUp.resuming: "Aplicando tu cambio…" subscription.stepUp.title: "Gasto remoto" subscription.stepUp.waiting: "Abriendo tu navegador para aprobar… termina allí y vuelve — no se cobra nada hasta que continúes." subscription.stepUpDenial.notAllowed: "El Gasto remoto no fue permitido — alguien con permisos de facturación (propietario, admin o admin de finanzas) debe aprobarlo. También puedes hacer este cambio en el portal." subscription.stepUpDenial.rateLimited: "Demasiados intentos — espera un momento e inténtalo de nuevo." subscription.stepUpDenial.remoteSpendingRevoked: "El Gasto remoto se detuvo para esta terminal — vuelve a conectar desde el portal y reintenta." subscription.stepUpDenial.sessionRevoked: "Tu sesión expiró — ejecuta /portal para iniciar sesión de nuevo y luego reintenta el cambio." subscription.team.body: "Esta terminal está conectada a {0}. Los equipos usan un saldo compartido · usa /topup para añadir fondos." subscription.team.hint: "Enter/Esc cerrar" subscription.team.orgFallback: "una org de equipo" subscription.team.personalNote: "Las suscripciones personales viven en tu cuenta personal." subscription.team.title: "Suscripción de equipo" userMessages.backend.connectionLost: "Se perdió la conexión con Hermes — reconectando y reabriendo tu chat…" userMessages.backend.connectionLostActivity: "conexión perdida · reconectando…" userMessages.backend.gaveUpActivity: "Hermes se detuvo · /logs para más detalles" userMessages.backend.gaveUpLogs: "Escribe /logs para ver el registro completo, o /quit y ejecuta `hermes doctor` para revisar la instalación." userMessages.backend.gaveUpReconnect: "Hermes sigue intentando reconectar en segundo plano y reabrirá este chat cuando lo consiga; si no lo hace, escribe /resume." userMessages.backend.gaveUpTitle: "Hermes se detuvo y no se pudo reiniciar. Tu chat está guardado." userMessages.backend.gaveUpTitleWithCode: "Hermes se detuvo (código de salida {0}) y no se pudo reiniciar. Tu chat está guardado." userMessages.backend.reconnecting: "reintentando en {0}s" userMessages.backend.reconnectingAttempt: "reintentando en {0}s (intento {1})" userMessages.backend.restarting: "Hermes se detuvo inesperadamente — reiniciando y reabriendo tu chat (la respuesta en curso se perdió)." userMessages.backend.restartingActivity: "Hermes se detuvo inesperadamente · reiniciando…" userMessages.backend.slowStart: "Hermes está tardando más de lo habitual en arrancar. Seguimos esperando… Si nunca conecta: /logs muestra la última salida del backend; /quit y ejecuta `hermes doctor`." userMessages.backend.slowStartStatus: "aún arrancando…" userMessages.backend.stderrProblem: "Algo salió mal dentro de Hermes · /logs para más detalles" userMessages.backend.stderrProblemNamed: "Algo salió mal dentro de Hermes ({0}) · /logs para más detalles" userMessages.credential.currentProvider: "el proveedor actual" userMessages.credential.missingKey: "No hay ninguna clave de API configurada para {0}, así que los mensajes fallarán. Escribe /model, elige {0} y pega una clave (o ejecuta /setup)." userMessages.details: "Detalles: {0}" userMessages.promptTimeout.secret: "El prompt del secreto se cerró: no hubo respuesta a tiempo, así que se omitió el paso que lo necesitaba. Envía tu solicitud de nuevo cuando estés listo para introducirlo." userMessages.promptTimeout.sudo: "El prompt de contraseña se cerró: no hubo respuesta a tiempo, así que se omitió el comando. Envía tu solicitud de nuevo cuando estés listo para introducirla." userMessages.promptTimeout.vaultCode: "El prompt del código de verificación se cerró: no hubo respuesta a tiempo, así que se omitió el inicio de sesión. Envía tu solicitud de nuevo cuando tengas el código." userMessages.promptTimeout.vaultSaveLogin: "El prompt para guardar el inicio de sesión se cerró: no hubo respuesta a tiempo, así que no se guardó nada. Envía tu solicitud de nuevo cuando estés listo." userMessages.promptTimeout.vaultUnlockPrompt: "El prompt de desbloqueo se cerró: no hubo respuesta a tiempo, así que el gestor de contraseñas siguió bloqueado. Envía tu solicitud de nuevo cuando estés listo para desbloquearlo." userMessages.rpc.notConnected: "Hermes no está conectado ahora mismo, así que eso no se envió. Se reconecta automáticamente; espera un momento e inténtalo de nuevo, o escribe /logs si el problema persiste." userMessages.rpc.sessionNotFound: "Este chat ya no está conectado al backend (estuvo inactivo o el backend se reinició). Tu historial está guardado: escribe /resume para reabrirlo." userMessages.rpc.slashCrashed: "/{0} no terminó: el ayudante del comando falló. Inténtalo de nuevo; escribe /logs para ver la traza." userMessages.rpc.slashTimedOut: "/{0} no terminó: el ayudante del comando agotó el tiempo de espera. Inténtalo de nuevo; si sigue ocurriendo, escribe /logs e informa de las últimas líneas." userMessages.rpc.timedOut: "Hermes no respondió en {0}s. Inténtalo de nuevo; si sigue ocurriendo, escribe /logs e informa de las últimas líneas." userMessages.rpc.versionSkew: "La interfaz de terminal y el backend de Hermes no están sincronizados (versiones distintas). Ejecuta /update, o sal y ejecuta `hermes update`, y luego vuelve a iniciar la TUI." userMessages.skills.noneInstalled: "Aún no hay skills instaladas. Escribe /skills browse para ver el catálogo, o /skills install ." userMessages.turn.code.auth.hint: "Corrige la clave con /model y luego /retry." userMessages.turn.code.auth.title: "El proveedor del modelo rechazó la clave de API" userMessages.turn.code.authPermanent.hint: "Corrige la clave con /model y luego /retry." userMessages.turn.code.authPermanent.title: "El proveedor del modelo rechazó la clave de API" userMessages.turn.code.billing.hint: "Recarga la cuenta o cambia de modelo con /model." userMessages.turn.code.billing.title: "El proveedor del modelo indica que no queda crédito" userMessages.turn.code.billingUnverified.hint: "Recarga la cuenta o cambia de modelo con /model." userMessages.turn.code.billingUnverified.title: "El proveedor del modelo indica que no queda crédito" userMessages.turn.code.contentPolicyBlocked.hint: "Reformúlala y envíala de nuevo." userMessages.turn.code.contentPolicyBlocked.title: "El proveedor del modelo rechazó esta solicitud (política de contenido)" userMessages.turn.code.contextOverflow.hint: "Ejecuta /compress y luego /retry." userMessages.turn.code.contextOverflow.title: "La conversación es demasiado larga para este modelo" userMessages.turn.code.formatError.hint: "Prueba /retry; si persiste, cambia de modelo con /model." userMessages.turn.code.formatError.hintNoRetry: "Elige otro modelo con /model; si persiste, cambia de modelo con /model." userMessages.turn.code.formatError.title: "El proveedor del modelo rechazó el formato de la solicitud" userMessages.turn.code.modelNotFound.hint: "Elige otro modelo con /model." userMessages.turn.code.modelNotFound.title: "El proveedor del modelo no conoce este modelo" userMessages.turn.code.overloaded.hint: "Espera un momento y luego /retry." userMessages.turn.code.overloaded.title: "El proveedor del modelo está sobrecargado" userMessages.turn.code.payloadTooLarge.hint: "Ejecuta /compress y luego /retry." userMessages.turn.code.payloadTooLarge.title: "La solicitud era demasiado grande para este modelo" userMessages.turn.code.providerPolicyBlocked.hint: "Cambia con /model." userMessages.turn.code.providerPolicyBlocked.title: "El proveedor del modelo rechazó esta solicitud (política de la cuenta)" userMessages.turn.code.rateLimit.hint: "Espera un momento y luego /retry." userMessages.turn.code.rateLimit.title: "El proveedor del modelo está limitando la tasa de solicitudes" userMessages.turn.code.serverError.hint: "Espera un momento y luego /retry." userMessages.turn.code.serverError.title: "El proveedor del modelo tuvo un error interno" userMessages.turn.code.sslCertVerification.hint: "Revisa el certificado del endpoint y luego /retry." userMessages.turn.code.sslCertVerification.title: "No se pudo verificar la conexión con el proveedor del modelo (TLS)" userMessages.turn.code.timeout.hint: "Prueba /retry; si sigue ocurriendo, cambia de modelo con /model." userMessages.turn.code.timeout.hintNoRetry: "Elige otro modelo con /model; si sigue ocurriendo, cambia de modelo con /model." userMessages.turn.code.timeout.title: "El proveedor del modelo no respondió a tiempo" userMessages.turn.code.upstreamBlocked.hint: "Configura un User-Agent en extra_headers del proveedor, o cambia de modelo con /model." userMessages.turn.code.upstreamBlocked.title: "Un firewall/CDN delante del proveedor del modelo bloqueó la solicitud" userMessages.turn.code.upstreamRateLimit.hint: "Espera un momento y luego /retry." userMessages.turn.code.upstreamRateLimit.title: "El proveedor del modelo está limitando la tasa de solicitudes" userMessages.turn.fallback.hint: "Envía /retry o cambia de modelo con /model." userMessages.turn.fallback.hintNoRetry: "Elige otro modelo con /model o cambia de modelo con /model." userMessages.turn.fallback.title: "La solicitud falló" userMessages.turn.layer.auth.hint: "Corrígelas con /model y luego /retry." userMessages.turn.layer.auth.title: "El proveedor del modelo rechazó las credenciales" userMessages.turn.layer.billing.hint: "Recarga la cuenta o cambia de modelo con /model." userMessages.turn.layer.billing.title: "El proveedor del modelo indica que no queda crédito" userMessages.turn.layer.disk.hint: "Libera espacio y luego /retry." userMessages.turn.layer.disk.title: "El disco está lleno, así que Hermes no pudo guardar el turno" userMessages.turn.layer.endpoint.hint: "Comprueba que el endpoint esté activo y luego /retry." userMessages.turn.layer.endpoint.title: "Tu endpoint de modelo personalizado no respondió" userMessages.turn.layer.gateway.hint: "Envía /retry; escribe /logs para ver la traza." userMessages.turn.layer.gateway.hintNoRetry: "Elige otro modelo con /model; escribe /logs para ver la traza." userMessages.turn.layer.gateway.title: "Hermes tuvo un error interno al ejecutar este turno" userMessages.turn.layer.provider.hint: "Envía /retry o cambia de modelo con /model." userMessages.turn.layer.provider.hintNoRetry: "Elige otro modelo con /model o cambia de modelo con /model." userMessages.turn.layer.provider.title: "El proveedor del modelo devolvió un error" userMessages.turn.layer.streaming.hint: "Envía /retry." userMessages.turn.layer.streaming.hintNoRetry: "Elige otro modelo con /model." userMessages.turn.layer.streaming.title: "La conexión con el proveedor del modelo se cortó a mitad de la respuesta" userMessages.turn.notAnswered: "{0}. Tu mensaje no obtuvo respuesta." userMessages.turn.withProvider: "{0} ({1})"