Files
OmniRoute/bin/cli/locales/es.json
Diego Rodrigues de Sa e Souza 9d9284417c fix(cli): translate the CLI for every locale (38 catalogs were nearly empty) (#13892)
sync-ui-keys --catalog=cli + blocking i18n:check-keys:cli gate; 65 CLI catalogs synced (52,000 strings, 0 __MISSING__, all 830 keys, placeholders verified). ⚠️ base-red inherited: #12732
2026-09-16 12:27:59 -03:00

1341 lines
59 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"error": "Error: {message}",
"serverOffline": "El servidor OmniRoute está offline. Inícielo con: omniroute serve",
"authRequired": "Autenticación requerida. Configure OMNIROUTE_API_KEY o ejecute: omniroute setup",
"rateLimited": "Límite de solicitudes excedido. Reintente en {seconds}s.",
"timeout": "Solicitud expiró después de {ms}ms.",
"success": "Listo.",
"yes": "sí",
"no": "no",
"confirm": "¿Está seguro? (sí/no)",
"dryRun": "[simulación] haría: {action}",
"cancelled": "Cancelado.",
"jsonOpt": "Salida como JSON",
"yesOpt": "Omitir confirmación"
},
"setup": {
"title": "Configuración de OmniRoute",
"passwordPrompt": "Contraseña de administrador",
"providerPrompt": "Proveedor predeterminado (dejar en blanco para omitir)",
"done": "Configuración completada",
"passwordSet": "Contraseña de administrador configurada",
"providerSet": "Proveedor configurado: {name}",
"testingProvider": "Probando la conexión con el proveedor: {name}",
"testPassed": "Prueba del proveedor superada",
"testFailed": "La prueba del proveedor falló: {error}",
"loginEnabled": "Inicio de sesión: activado (contraseña actualizada)",
"loginDisabled": "Inicio de sesión: desactivado",
"providerInfo": "Proveedor: {info}",
"opencode": "Instalar y configurar el @omniroute/opencode-plugin incluido para OpenCode"
},
"doctor": {
"title": "Diagnóstico de OmniRoute",
"dbOk": "Base de datos: correcta ({path})",
"dbMissing": "Base de datos: no inicializada — ejecutar `omniroute setup`",
"portOk": "Puerto {port}: disponible",
"portConflict": "Puerto {port}: en uso por otro proceso",
"encryptionOk": "Clave de cifrado: configurada",
"encryptionMissing": "Falta la clave de cifrado — ejecutar `omniroute setup`",
"allGood": "Todas las comprobaciones se superaron.",
"warnings": "{count} advertencia(s) — consultar más arriba."
},
"providers": {
"title": "Proveedores",
"noProviders": "No hay proveedores configurados. Ejecutar: omniroute setup",
"testing": "Probando {name}...",
"available": "{count} proveedor(es) disponible(s)",
"connected": "Conectado",
"disconnected": "Desconectado",
"validationFailed": "La validación falló: {error}",
"metrics": {
"description": "Mostrar métricas de rendimiento del proveedor (latencia, tasa de éxito, coste)",
"provider": "Filtrar por ID de proveedor",
"connection_id": "Filtrar por ID de conexión",
"period": "Período de tiempo: 1h|6h|24h|7d|30d (predeterminado: 24h)",
"metric": "Centrarse en un campo de métrica específico",
"sort": "Ordenar por campo (descendente)",
"limit": "Número máximo de filas (predeterminado: 50)",
"watch": "Actualizar cada 5 s (modo en directo)",
"compare": "IDs de proveedores separados por comas para compararlos en paralelo"
},
"metric_single": {
"description": "Obtener un único valor de métrica para una conexión específica"
},
"rotate": {
"description": "Rotar la clave de API de nivel superior para una conexión de proveedor",
"newKeyOpt": "Nuevo valor de la clave de API (evítelo: es preferible --from-env)",
"fromEnvOpt": "Leer la nueva clave desde la variable de entorno VAR",
"oauthOpt": "Iniciar en su lugar el flujo de reautenticación de OAuth",
"skipTestOpt": "Omitir la prueba de conectividad posterior a la rotación",
"dryRunOpt": "Mostrar qué cambiaría sin escribir nada",
"confirmPrompt": "¿Reemplazar la clave de API de la conexión «{name}» ({id})? [y/N]",
"dryRunResult": "[dry-run] Se rotaría la clave de «{name}» ({id}). No se realizaron cambios.",
"oauthHint": "Conexión OAuth: ejecute: omniroute oauth {provider}",
"envVarEmpty": "La variable de entorno {var} no está definida o está vacía.",
"success": "Se rotó la clave de «{name}». Ejecute `providers test {id}` para verificarla.",
"testPassed": "La prueba posterior a la rotación se completó correctamente.",
"testFailed": "La prueba posterior a la rotación falló: {error}"
},
"status": {
"description": "Mostrar el estado de las claves de todas las conexiones de proveedores (antigüedad, vencimiento, periodo de espera)",
"providerOpt": "Filtrar por nombre de proveedor",
"header": "ID Proveedor Nombre Estado de vencimiento Estado de prueba Periodo de espera hasta",
"noData": "No hay datos disponibles sobre conexiones de proveedores.",
"requiresServer": "providers status requiere que el servidor de OmniRoute esté en ejecución."
}
},
"keys": {
"title": "Claves de API",
"addDescription": "Añadir o actualizar una clave de API para un proveedor",
"listDescription": "Listar todas las claves de API configuradas",
"removeDescription": "Eliminar la clave de API de un proveedor",
"regenerateDescription": "Regenerar una clave de API de OmniRoute",
"revokeDescription": "Revocar una clave de API de OmniRoute",
"revealDescription": "Mostrar el valor sin enmascarar de la clave de API",
"usageDescription": "Mostrar el uso reciente de una clave de API",
"usageLimitOpt": "Número de solicitudes recientes",
"rotateDescription": "Generar una clave nueva e invalidar la anterior",
"graceOpt": "Periodo de gracia (ms) antes de que se invalide la clave anterior",
"stdinOpt": "Leer la clave de API desde stdin en lugar de un argumento",
"added": "Se añadió la clave de {provider}.",
"removed": "Se eliminó la clave.",
"listed": "{count} clave(s).",
"noKeys": "No hay claves configuradas.",
"noUsage": "No se encontraron datos de uso.",
"confirmRemove": "¿Eliminar la clave {id}?",
"confirmRegenerate": "¿Regenerar la clave {id}?",
"confirmRevoke": "¿Revocar la clave {id}?",
"confirmRotate": "¿Rotar la clave {id}? (la clave anterior se invalidará después del periodo de gracia)",
"regenerated": "Regenerada. Nueva clave: {key}",
"revoked": "Clave {id} revocada.",
"rotated": "Clave {id} rotada. Nuevo ID de clave: {newId}",
"revealWarning": "⚠ Esto mostrará la clave completa sin enmascarar. Asegúrate de que tu pantalla sea privada.",
"providerRequired": "El proveedor es obligatorio.",
"keyRequired": "La clave de API es obligatoria.",
"stdinEmpty": "No se proporcionó ninguna clave de API mediante stdin.",
"unknownProvider": "Proveedor desconocido: {provider}",
"policy": {
"title": "Política de claves",
"showDescription": "Mostrar la política de límites/costes de una clave",
"setDescription": "Establecer la política de límites/costes de una clave",
"rateLimitOpt": "Máximo de solicitudes por minuto",
"maxCostOpt": "Coste máximo por día (USD)",
"allowedModelsOpt": "Lista de modelos permitidos separados por comas",
"nothingToSet": "No se proporcionaron campos de política. Usa --rate-limit, --max-cost o --allowed-models.",
"updated": "Política actualizada."
},
"expiration": {
"title": "Caducidad de claves",
"listDescription": "Listar las claves que caducarán pronto",
"daysOpt": "Mostrar las claves que caducarán en un plazo de N días",
"none": "No hay claves que caduquen en un plazo de {days} días.",
"listTitle": "Claves que caducarán en un plazo de {days} días:"
}
},
"authExport": {
"description": "Exportar credenciales de proveedores DESCIFRADAS (solo local, salida en texto sin formato)",
"idOpt": "Exportar solo la conexión que coincida con este id/nombre/proveedor",
"formatOpt": "Formato de salida: json o env",
"outOpt": "Escribir la salida en un archivo en lugar de stdout (se escribirá con permisos 0600)",
"forceOpt": "Confirmar que comprendes que esto imprime/escribe secretos en texto sin formato",
"warning": "⚠ Esto imprime/escribe claves de API y tokens OAuth DESCIFRADOS en texto sin formato. Asegúrate de que tu pantalla, el historial del shell y cualquier archivo de salida permanezcan privados.",
"confirmHeading": "⚠ ADVERTENCIA: esto exporta credenciales de proveedores DESCIFRADAS en texto sin formato",
"confirmBody": "Este comando descifra e imprime/escribe apiKey, accessToken, refreshToken e\nidToken para las conexiones seleccionadas. Trata la salida como un secreto.",
"confirmFooter": "Para confirmar, ejecuta:\n omniroute auth export --force",
"missingKey": "STORAGE_ENCRYPTION_KEY es obligatoria para exportar credenciales.",
"notFound": "No se encontró la conexión: {id}",
"invalidFormat": "Formato no válido: {format}. Usa json o env."
},
"stream": {
"description": "Transmitir una respuesta de chat con modos de inspección SSE",
"file": "Leer el prompt desde un archivo",
"stdin": "Leer el prompt desde stdin",
"model": "ID del modelo (predeterminado: auto)",
"system": "Prompt del sistema",
"combo": "Forzar una combinación específica por nombre",
"max_tokens": "Máximo de tokens en la respuesta",
"responses_api": "Usar /v1/responses en lugar de /v1/chat/completions",
"raw": "Mostrar las líneas SSE sin procesar tal como se reciben",
"debug": "Mostrar la información de tiempo de cada fragmento en stderr",
"save": "Guardar todos los eventos SSE en un archivo .jsonl",
"error": {
"empty_prompt": "Error: se requiere un prompt (argumento posicional, --file o --stdin)"
}
},
"usage": {
"description": "Análisis de uso, presupuestos, cuotas y registros",
"analytics": {
"description": "Mostrar análisis de uso agregados",
"period": "Intervalo de tiempo: 1d|7d|30d|90d|ytd|all (predeterminado: 30d)",
"provider": "Filtrar por ID de proveedor"
},
"budget": {
"description": "Gestionar presupuestos de costes",
"set": {
"scope": "Ámbito del presupuesto (predeterminado: global)",
"period": "Periodo del presupuesto: daily|weekly|monthly (predeterminado: monthly)"
}
},
"quota": {
"description": "Mostrar el uso de la cuota del proveedor",
"provider": "Filtrar por ID de proveedor",
"check": "Mostrar si hay cuota disponible para una nueva solicitud"
},
"logs": {
"description": "Mostrar registros de llamadas de solicitudes",
"limit": "Número de entradas de registro que se devolverán (predeterminado: 100)",
"search": "Consulta de búsqueda para filtrar registros",
"since": "Devolver registros desde esta marca de tiempo",
"follow": "Seguir continuamente las nuevas entradas de registro",
"api_key": "Filtrar registros por clave de API"
},
"utilization": {
"description": "Mostrar métricas de uso de claves de API",
"api_key": "Filtrar por clave de API"
},
"history": {
"description": "Mostrar el historial de solicitudes",
"limit": "Número de entradas del historial (predeterminado: 100)"
},
"proxy_logs": {
"description": "Mostrar registros de solicitudes a nivel de proxy",
"limit": "Número de entradas del registro del proxy (predeterminado: 100)"
}
},
"cost": {
"description": "Mostrar un informe de costes con desglose por proveedor, modelo, combinación o clave de API",
"period": "Intervalo de tiempo: 1d|7d|30d|90d|ytd|all (predeterminado: 30d)",
"since": "Fecha de inicio (formato ISO, p. ej., 2026-01-01) — reemplaza --period",
"until": "Fecha de finalización (formato ISO)",
"group_by": "Agrupar resultados por: provider|model|api-key|combo|day (predeterminado: provider)",
"api_key_filter": "Filtrar por una clave de API específica",
"limit": "Número máximo de filas que se mostrarán (predeterminado: 100)"
},
"simulate": {
"description": "Simulación de enrutamiento sin ejecución: muestra qué proveedores se seleccionarían sin llamar al servicio ascendente",
"file": "Cargar el cuerpo completo de la solicitud desde un archivo JSON",
"model": "ID del modelo (predeterminado: auto)",
"combo": "Forzar una combinación específica por nombre",
"reasoning": "Nivel de esfuerzo de razonamiento (low|medium|high)",
"thinking": "Presupuesto de tokens para razonamiento extendido",
"explain": "Imprimir el árbol de respaldo y el rango de costes en stderr",
"noCombo": "No se encontró ninguna combinación coincidente. Configure una con: omniroute combo create"
},
"chat": {
"description": "Enviar una solicitud de chat única a OmniRoute",
"file": "Leer la solicitud desde un archivo",
"stdin": "Leer la solicitud desde stdin",
"system": "Solicitud del sistema",
"model": "ID del modelo (predeterminado: auto)",
"max_tokens": "Número máximo de tokens en la respuesta",
"temperature": "Temperatura de muestreo (02)",
"top_p": "Muestreo de núcleo top-p",
"reasoning_effort": "Nivel de esfuerzo de razonamiento (low|medium|high)",
"thinking_budget": "Presupuesto de tokens para razonamiento extendido",
"combo": "Forzar una combinación específica por nombre",
"responses_api": "Usar /v1/responses en lugar de /v1/chat/completions",
"stream": "Transmitir la respuesta de forma incremental",
"no_history": "No guardar en ~/.omniroute/cli-history.jsonl",
"error": {
"empty_prompt": "Error: se requiere una solicitud (argumento posicional, --file o --stdin)"
}
},
"serve": {
"description": "Iniciar el servidor de OmniRoute (acción predeterminada)",
"starting": "Iniciando el servidor de OmniRoute en el puerto {port}...",
"ready": "Disponible en http://localhost:{port}",
"stopping": "Deteniendo el servidor (PID {pid})...",
"stopped": "Servidor detenido.",
"notRunning": "El servidor no está en ejecución.",
"port": "Puerto en el que escuchar (predeterminado: 20128)",
"no_open": "No abrir el navegador automáticamente",
"daemon": "Ejecutar el servidor como un demonio en segundo plano",
"log": "Mostrar los registros del servidor en línea",
"no_recovery": "Desactivar el reinicio automático tras un fallo (modo de depuración)",
"max_restarts": "Número máximo de reinicios tras fallos en un plazo de 30 s antes de desistir (predeterminado: 2)",
"tray": "Iniciar en la bandeja del sistema (solo para escritorio, opcional)",
"no_tray": "Desactivar el icono de la bandeja del sistema",
"ready_timeout": "Tiempo de espera de la comprobación de disponibilidad en ms (también OMNIROUTE_READY_TIMEOUT_MS, predeterminado: 60000)",
"tls_cert": "Ruta a un certificado TLS (PEM) para servir mediante HTTPS (también OMNIROUTE_TLS_CERT)",
"tls_key": "Ruta a la clave privada TLS (PEM) para servir mediante HTTPS (también OMNIROUTE_TLS_KEY)"
},
"backup": {
"title": "Copia de seguridad",
"description": "Crear una copia de seguridad de los datos de OmniRoute",
"creating": "Creando copia de seguridad...",
"done": "Copia de seguridad guardada en {path}",
"noFiles": "No hay archivos de los que hacer una copia de seguridad (la base de datos no está inicializada)",
"failed": "Error al crear la copia de seguridad: {error}",
"restoring": "Restaurando desde {path}...",
"restored": "Restauración completada.",
"restoreDescription": "Restaurar desde una copia de seguridad",
"listTitle": "Copias de seguridad disponibles",
"noBackups": "No se encontraron copias de seguridad.",
"notFound": "No se encontró la copia de seguridad: {name}",
"confirmRestore": "¿Sobrescribir los datos actuales con la copia de seguridad del {ts}?",
"createDescription": "Crear una copia de seguridad de los datos de OmniRoute",
"nameOpt": "Nombre personalizado de la copia de seguridad",
"cloudOpt": "Subir la copia de seguridad al almacenamiento en la nube",
"encryptOpt": "Cifrar la copia de seguridad con AES-256-GCM",
"keyFileOpt": "Ruta al archivo que contiene la frase de contraseña de cifrado",
"excludeOpt": "Excluir archivos que coincidan con el patrón (se puede repetir)",
"retentionOpt": "Conservar solo las últimas N copias de seguridad",
"passphrasePrompt": "Frase de contraseña de cifrado:",
"noPassphrase": "Se requiere una frase de contraseña para la copia de seguridad cifrada.",
"cloudFailed": "Advertencia: no se pudo subir a la nube. La copia de seguridad local se guardó.",
"cloudUploaded": "Copia de seguridad subida a la nube: {url}",
"auto": {
"title": "Programación de copias de seguridad",
"enableDescription": "Activar las copias de seguridad automáticas programadas",
"disableDescription": "Desactivar las copias de seguridad automáticas programadas",
"statusDescription": "Mostrar el estado actual de la programación de copias de seguridad",
"cronOpt": "Expresión cron para la programación (valor predeterminado: todos los días a las 3 a. m.)",
"enabled": "Copia de seguridad automática activada (cron: {cron}).",
"hint": "omniroute serve lee la programación al iniciarse.",
"disabled": "Copia de seguridad automática desactivada.",
"notConfigured": "No hay ninguna programación de copias de seguridad configurada."
}
},
"health": {
"description": "Comprobar el estado del servidor y de los componentes",
"noServer": "El servidor no está en ejecución. Inícielo con: omniroute serve",
"title": "Estado",
"status": "Estado: {status}",
"uptime": "Tiempo de actividad: {uptime}",
"requests": "Solicitudes (24 h): {count}",
"cost": "Coste (24 h): ${cost}"
},
"quota": {
"description": "Mostrar el uso de la cuota del proveedor",
"noServer": "El servidor no está en ejecución. Inícielo con: omniroute serve",
"noData": "No hay información disponible sobre la cuota."
},
"cache": {
"description": "Gestionar la caché de respuestas",
"noServer": "El servidor no está en ejecución. Inícielo con: omniroute serve",
"cleared": "Caché borrada.",
"clearFailed": "No se pudo borrar la caché."
},
"redis": {
"description": "Iniciar un contenedor local de Redis con un clic (Podman o Docker) para el almacenamiento en caché y seguimiento de cuotas de OmniRoute"
},
"test": {
"description": "Probar la conexión de un proveedor",
"noServer": "El servidor no está en ejecución. Inícialo con: omniroute serve",
"testing": "Probando {provider} / {model}...",
"passed": "¡Conexión establecida correctamente!",
"failed": "Error de conexión: {error}",
"allProvidersOpt": "Probar todos los proveedores configurados",
"latencyOpt": "Mostrar las mediciones de latencia (media/mín./máx. en ms)",
"repeatOpt": "Repetir la prueba N veces y agregar los resultados",
"compareOpt": "Modelos separados por comas para comparar (p. ej., gpt-4o,claude-3-5-sonnet)",
"saveOpt": "Guardar los resultados en un archivo JSON",
"saved": "Resultados guardados en {path}",
"compareTitle": "Comparación de modelos",
"compareMinTwo": "Se requieren al menos dos modelos para --compare (separados por comas)",
"noProviders": "No hay proveedores configurados. Añade uno con: omniroute keys add"
},
"update": {
"checking": "Buscando actualizaciones...",
"upToDate": "Ya está actualizado ({version}).",
"available": "Actualización disponible: {current} → {latest}",
"installing": "Instalando {latest}...",
"done": "Actualizado a {latest}. Reinicia el servidor para aplicar los cambios."
},
"mcp": {
"title": "Servidor MCP",
"running": "Servidor MCP en ejecución ({transport})",
"stopped": "Servidor MCP detenido.",
"restarted": "Servidor MCP reiniciado.",
"stoppedHint": "Ejecuta `omniroute mcp enable` para activarlo.",
"enabled": "Servidor MCP activado.",
"disabled": "Servidor MCP desactivado.",
"enable": {
"description": "Activar el servidor MCP",
"transport": "Transporte que se utilizará: stdio|sse|streamable-http"
},
"disable": {
"description": "Desactivar el servidor MCP"
},
"call": {
"description": "Invocar directamente una herramienta MCP",
"args": "Objeto de argumentos JSON (en línea)",
"args_file": "Ruta al archivo de argumentos JSON",
"stream": "Usar el endpoint de streaming (/api/mcp/stream)",
"scope": "Ámbito requerido (repetible, p. ej., read:health)"
},
"scopes": {
"description": "Listar los ámbitos MCP disponibles",
"tool": "Mostrar los ámbitos requeridos por una herramienta específica"
},
"tools": {
"description": "Inspeccionar las herramientas MCP",
"list": {
"description": "Listar todas las herramientas MCP",
"scope": "Filtrar por ámbito"
},
"info": {
"description": "Mostrar metadatos de una herramienta MCP"
},
"schema": {
"description": "Mostrar el esquema JSON de entrada/salida de una herramienta MCP",
"io": "Tipo de esquema: input|output (predeterminado: input)"
}
},
"audit": {
"description": "Registro de auditoría de MCP (alias de audit --source mcp)"
}
},
"a2a": {
"skills": {
"description": "Listar las habilidades A2A disponibles en la tarjeta del agente"
},
"invoke": {
"description": "Invocar una habilidad A2A y devolver el ID de la tarea",
"input": "Objeto JSON de entrada",
"input_file": "Ruta al archivo JSON de entrada",
"wait": "Esperar a que finalice la tarea antes de devolver el resultado",
"timeout": "Tiempo de espera para la finalización en ms (predeterminado: 60000)"
},
"tasks": {
"description": "Gestionar tareas A2A",
"list": {
"status": "Filtrar por estado",
"skill": "Filtrar por ID de habilidad"
},
"watch": {
"description": "Consultar periódicamente el estado de la tarea hasta que finalice"
},
"stream": {
"description": "Transmitir eventos de ejecución de tareas mediante SSE"
},
"logs": {
"description": "Mostrar mensajes y artefactos de la tarea"
}
}
},
"policy": {
"description": "Gestionar las políticas de autorización de OmniRoute",
"list": {
"description": "Listar políticas",
"kind": "Filtrar por tipo (allow|deny|rate-limit|cost-cap)",
"scope": "Filtrar por ámbito (global|api-key|provider)"
},
"get": {
"description": "Obtener los detalles de una política por ID"
},
"create": {
"description": "Crear una política a partir de un archivo JSON",
"file": "Ruta al archivo JSON de la política"
},
"update": {
"description": "Actualizar una política a partir de un archivo JSON",
"file": "Ruta al archivo JSON de la política"
},
"delete": {
"description": "Eliminar una política por ID",
"yes": "Omitir la solicitud de confirmación"
},
"evaluate": {
"description": "Evaluación de política de prueba (código de salida 0=permitido, 4=denegado)",
"api_key": "Clave de API que se evaluará",
"action": "Acción que se comprobará (p. ej., chat, embed, admin)",
"resource": "Ruta o identificador del recurso",
"context": "Contexto adicional como objeto JSON"
},
"export": {
"description": "Exportar todas las políticas a un archivo JSON"
},
"import": {
"description": "Importar políticas desde un archivo JSON",
"overwrite": "Sobrescribir las políticas existentes con el mismo ID"
}
},
"compression": {
"description": "Configurar e inspeccionar el proceso de compresión de OmniRoute",
"status": {
"description": "Mostrar el estado y la configuración actuales de la compresión"
},
"configure": {
"description": "Configurar los ajustes de compresión",
"engine": "Motor de compresión (caveman|rtk|hybrid|none)",
"caveman_agg": "Agresividad de Caveman de 0.0 a 1.0",
"rtk_budget": "Presupuesto de tokens RTK",
"language_pack": "Paquete de idioma que se activará"
},
"engine": {
"description": "Obtener o establecer el motor de compresión activo"
},
"combos": {
"description": "Gestionar estadísticas de combinaciones de compresión"
},
"rules": {
"description": "Gestionar reglas de compresión",
"add": {
"pattern": "Patrón que debe coincidir (regex o campo:patrón)",
"action": "Acción: drop|shrink|replace"
}
},
"language_packs": {
"description": "Listar los paquetes de idioma de compresión disponibles"
},
"preview": {
"description": "Previsualizar el efecto de la compresión en una solicitud",
"file": "Ruta al archivo JSON de la solicitud"
}
},
"tunnel": {
"title": "Túneles",
"listDescription": "Listar los túneles activos",
"createDescription": "Crear un túnel",
"created": "Túnel creado: {url}",
"stopped": "Túnel detenido.",
"confirmStop": "¿Detener el túnel {id}?",
"stopDescription": "Detener un túnel",
"statusDescription": "Mostrar el estado detallado de un túnel",
"logsDescription": "Mostrar los registros de un túnel",
"infoDescription": "Mostrar los detalles de configuración de un túnel",
"rotateDescription": "Generar una nueva URL de túnel",
"tailOpt": "Número de líneas de registro que se mostrarán",
"typeRequired": "El tipo de túnel es obligatorio.",
"noLogs": "No hay registros disponibles.",
"notAvailable": "La información del túnel no está disponible.",
"noTunnels": "No hay túneles activos.",
"infoTitle": "Información del túnel: {type}",
"rotated": "URL del túnel renovada: {url}",
"confirmRotate": "¿Renovar el túnel {type}? (se generará una nueva URL)"
},
"stop": {
"description": "Detener el servidor de OmniRoute",
"stopping": "Deteniendo el servidor (PID {pid})...",
"stopped": "Servidor detenido.",
"notRunning": "No hay ningún servidor en ejecución.",
"portFallback": "No se encontró ningún archivo PID; intentando detenerlo mediante el puerto..."
},
"restart": {
"description": "Reiniciar el servidor de OmniRoute",
"restarting": "Reiniciando el servidor de OmniRoute..."
},
"dashboard": {
"description": "Abrir el panel de OmniRoute en un navegador",
"opening": "Abriendo el panel en {url}",
"urlOnly": "Mostrar la URL del panel sin abrir el navegador",
"tui": "Abrir el panel TUI interactivo (interfaz de terminal, 7 pestañas)"
},
"models": {
"description": "Listar los modelos disponibles (requiere servidor)",
"search": "Filtrar modelos por ID, nombre, proveedor o descripción",
"noServer": "El servidor no está en ejecución. Inícialo con: omniroute serve",
"noModels": "No se encontraron modelos."
},
"audit": {
"description": "Acceder a los registros de auditoría de cumplimiento y MCP",
"source": "Origen del registro: all|compliance|mcp (predeterminado: all)",
"since": "Devolver entradas desde esta marca de tiempo (ISO 8601)",
"until": "Devolver entradas hasta esta marca de tiempo (ISO 8601)",
"tail": {
"description": "Mostrar las entradas recientes del registro de auditoría",
"follow": "Supervisar continuamente las nuevas entradas (consulta cada 2 s)",
"limit": "Número máximo de entradas que se mostrarán (predeterminado: 100)"
},
"search": {
"description": "Buscar entradas del registro de auditoría por palabra clave",
"limit": "Número máximo de resultados (predeterminado: 200)",
"actor": "Filtrar por ID del actor",
"action": "Filtrar por nombre de acción"
},
"export": {
"description": "Exportar el registro de auditoría a un archivo",
"format": "Formato de salida: jsonl|csv (predeterminado: jsonl)"
},
"stats": {
"description": "Mostrar estadísticas del registro de auditoría",
"period": "Período: 1d|7d|30d (predeterminado: 7d)"
},
"get": {
"description": "Obtener una entrada del registro de auditoría por ID"
}
},
"skills": {
"description": "Gestionar las habilidades de OmniRoute (sandbox, builtin, custom, hybrid, skillssh)",
"list": {
"description": "Listar las habilidades instaladas",
"type": "Filtrar por tipo (sandbox|custom|builtin|hybrid|skillssh)",
"enabled": "Mostrar solo las habilidades habilitadas",
"disabled": "Mostrar solo las habilidades deshabilitadas",
"api_key": "Filtrar por clave de API"
},
"get": {
"description": "Obtener los detalles de una habilidad por ID"
},
"install": {
"description": "Instalar una habilidad desde un archivo o una URL",
"from_file": "Ruta al archivo de definición JSON de la habilidad",
"from_url": "URL de la definición remota de la habilidad",
"type": "Tipo de habilidad (sandbox|custom|hybrid)",
"enable": "Habilitar la habilidad después de instalarla"
},
"enable": {
"description": "Habilitar una habilidad por ID"
},
"disable": {
"description": "Deshabilitar una habilidad por ID",
"yes": "Omitir la solicitud de confirmación"
},
"delete": {
"description": "Eliminar una habilidad por ID",
"yes": "Omitir la solicitud de confirmación"
},
"execute": {
"description": "Ejecutar una habilidad por ID",
"input": "Objeto de entrada JSON",
"input_file": "Ruta al archivo de entrada JSON",
"timeout": "Tiempo de espera de ejecución en ms (predeterminado: 30000)"
},
"executions": {
"description": "Listar el historial de ejecución de habilidades",
"skill": "Filtrar por ID de habilidad",
"limit": "Número máximo de resultados (predeterminado: 50)",
"status": "Filtrar por estado (running|completed|failed)"
},
"skillssh": {
"description": "Gestionar las habilidades instaladas mediante SSH"
},
"marketplace": {
"description": "Explorar e instalar habilidades del marketplace"
},
"mp": {
"search": {
"description": "Buscar paquetes en el marketplace",
"category": "Filtrar por categoría",
"tag": "Filtrar por etiqueta",
"limit": "Número máximo de resultados (predeterminado: 30)",
"sort": "Ordenar por: downloads|rating|recent"
},
"info": {
"description": "Mostrar los detalles y el archivo readme del paquete"
},
"install": {
"description": "Instalar un paquete del marketplace",
"version": "Versión del paquete (predeterminada: latest)",
"enable": "Activar después de la instalación",
"yes": "Omitir la solicitud de confirmación"
},
"categories": {
"description": "Listar las categorías del marketplace"
},
"featured": {
"description": "Mostrar los paquetes destacados del marketplace"
}
}
},
"memory": {
"description": "Gestionar la memoria conversacional de OmniRoute (FTS5 + vector)",
"search": {
"description": "Buscar entradas de memoria mediante una consulta semántica",
"type": "Filtrar por tipo de memoria (user|feedback|project|reference)",
"limit": "Número máximo de resultados (predeterminado: 20)",
"api_key": "Filtrar por clave de API",
"token_budget": "Limitar el total de tokens en los resultados"
},
"add": {
"description": "Añadir una nueva entrada de memoria",
"content": "Contenido de texto de la memoria",
"file": "Leer el contenido desde un archivo",
"type": "Tipo de memoria (predeterminado: user)",
"metadata": "Objeto de metadatos JSON",
"api_key": "Asociar con una clave de API"
},
"clear": {
"description": "Eliminar las entradas de memoria que coincidan con los filtros",
"type": "Filtrar por tipo",
"older": "Eliminar entradas anteriores a la duración indicada (30d, 6m, 1y)",
"api_key": "Filtrar por clave de API",
"yes": "Omitir la solicitud de confirmación"
},
"list": {
"description": "Listar las entradas de memoria sin clasificación de búsqueda",
"type": "Filtrar por tipo",
"limit": "Número máximo de resultados (predeterminado: 100)",
"api_key": "Filtrar por clave de API"
},
"get": {
"description": "Obtener una única entrada de memoria por ID"
},
"delete": {
"description": "Eliminar una entrada de memoria por ID",
"yes": "Omitir la solicitud de confirmación"
},
"health": {
"description": "Mostrar el estado del subsistema de memoria (FTS5 + Qdrant)"
}
},
"oauth": {
"description": "Gestionar conexiones de proveedores OAuth",
"providers": {
"description": "Listar los proveedores compatibles con OAuth y sus tipos de flujo"
},
"start": {
"description": "Iniciar el flujo de autorización OAuth para un proveedor",
"provider": "ID del proveedor (gemini, copilot, cursor, …)",
"no_browser": "Mostrar solo la URL; no abrir el navegador",
"import_system": "Importar automáticamente las credenciales desde la configuración local del sistema",
"social": "Proveedor de inicio de sesión social (google|github); obligatorio para kiro",
"timeout": "Tiempo de espera para la autorización en ms (predeterminado: 300000)"
},
"status": {
"description": "Listar las conexiones OAuth activas",
"provider": "Filtrar por ID de proveedor"
},
"revoke": {
"description": "Revocar una conexión OAuth",
"provider": "ID del proveedor que se va a revocar",
"connection_id": "Revocar una conexión específica por ID",
"yes": "Omitir la solicitud de confirmación"
}
},
"cloud": {
"description": "Gestionar tareas de agentes de IA en la nube (codex, devin, jules)",
"agents": {
"description": "Listar los agentes en la nube disponibles"
},
"agent": {
"description": "Gestionar las tareas del agente en la nube {agent}",
"auth": {
"description": "Autorizar a {agent} mediante OAuth"
}
},
"task": {
"description": "Gestionar tareas de agentes en la nube",
"create": {
"description": "Crear una nueva tarea de agente",
"title": "Título de la tarea (de forma predeterminada, los primeros 80 caracteres de la instrucción)",
"prompt": "Texto de la instrucción de la tarea",
"prompt_file": "Leer la instrucción desde un archivo",
"repo": "URL del repositorio que se va a clonar para la tarea",
"branch": "Nombre de la rama que se va a utilizar",
"metadata": "Objeto de metadatos JSON"
},
"list": {
"description": "Listar las tareas del agente",
"status": "Filtrar por estado (running|completed|failed|cancelled)",
"limit": "Número máximo de resultados (predeterminado: 50)"
},
"get": {
"description": "Obtener los detalles de la tarea por ID"
},
"status": {
"description": "Mostrar el estado de la tarea (running|completed|failed|cancelled)"
},
"cancel": {
"description": "Cancelar una tarea en ejecución",
"yes": "Omitir la solicitud de confirmación"
},
"approve": {
"description": "Aprobar el plan del agente para iniciar la ejecución"
},
"message": {
"description": "Enviar un mensaje a una tarea en ejecución"
}
},
"sources": {
"description": "Listar los archivos fuente producidos por una tarea"
}
},
"eval": {
"description": "Gestionar suites y ejecuciones de evaluación",
"suites": {
"description": "Gestionar suites de evaluación",
"list": {
"description": "Listar suites de evaluación"
},
"get": {
"description": "Obtener los detalles de una suite de evaluación por ID"
},
"create": {
"description": "Crear una suite de evaluación desde un archivo JSON",
"file": "Ruta al archivo JSON de definición de la suite"
}
},
"run": {
"description": "Iniciar una ejecución de evaluación para una suite",
"model": "ID del modelo que se va a evaluar (predeterminado: auto)",
"combo": "Forzar una combinación específica por nombre",
"concurrency": "Número de muestras simultáneas (predeterminado: 4)",
"tag": "Etiquetar esta ejecución para filtrarla posteriormente",
"watch": "Supervisar el progreso de la ejecución hasta que finalice"
},
"list": {
"description": "Listar ejecuciones de evaluación",
"suite": "Filtrar por ID de suite",
"status": "Filtrar por estado",
"since": "Devolver ejecuciones desde esta marca de tiempo",
"limit": "Número máximo de resultados (predeterminado: 50)"
},
"get": {
"description": "Obtener los detalles de una ejecución de evaluación por ID"
},
"results": {
"description": "Mostrar los resultados de las muestras de una ejecución de evaluación",
"failed": "Mostrar solo las muestras fallidas"
},
"cancel": {
"description": "Cancelar una evaluación en ejecución",
"yes": "Omitir la solicitud de confirmación"
},
"scorecard": {
"description": "Mostrar el cuadro de puntuación de una ejecución de evaluación completada"
}
},
"webhooks": {
"description": "Gestionar webhooks de OmniRoute",
"events": {
"description": "Listar todos los tipos de eventos de webhook disponibles"
},
"list": {
"description": "Listar los webhooks configurados"
},
"get": {
"description": "Obtener los detalles de un webhook por ID"
},
"add": {
"description": "Registrar un nuevo webhook",
"url": "URL de destino",
"events": "Lista de tipos de eventos separados por comas",
"secret": "Secreto de firma HMAC",
"header": "Encabezado adicional con formato key=value (repetible)",
"no_enabled": "Crear el webhook en estado deshabilitado"
},
"update": {
"description": "Actualizar un webhook existente",
"enabled": "Establecer el estado habilitado (true|false)"
},
"remove": {
"description": "Eliminar un webhook",
"yes": "Omitir la solicitud de confirmación"
},
"test": {
"description": "Enviar un evento de prueba a un webhook",
"event": "Tipo de evento que se simulará (predeterminado: request.completed)"
}
},
"program": {
"description": "OmniRoute — Router de IA inteligente con fallback automático",
"version": "Mostrar versión y salir",
"output": "Formato de salida (table, json, jsonl, csv)",
"quiet": "Suprimir salida no esencial",
"no_color": "Deshabilitar salida en color",
"timeout": "Tiempo de espera de solicitudes HTTP en milisegundos",
"api_key": "Clave de API para el servidor OmniRoute",
"base_url": "URL base del servidor OmniRoute",
"context": "Contexto/perfil del servidor para este comando",
"lang": "Establecer idioma del CLI (reemplaza OMNIROUTE_LANG)"
},
"files": {
"description": "Gestionar archivos (subir, listar, obtener, descargar y eliminar)",
"list": {
"purpose": "Filtrar por propósito",
"limit": "Máximo de resultados"
},
"get": {
"description": "Obtener metadatos del archivo"
},
"upload": {
"description": "Subir un archivo",
"purpose": "Propósito del archivo (batch, assistants, fine-tune)"
},
"content": {
"description": "Descargar el contenido del archivo",
"out": "Guardar en la ruta (predeterminado: stdout)"
},
"delete": {
"yes": "Omitir confirmación"
}
},
"batches": {
"description": "Gestionar trabajos por lotes compatibles con OpenAI",
"list": {
"status": "Filtrar por estado",
"limit": "Máximo de resultados"
},
"create": {
"description": "Crear un trabajo por lotes",
"inputFile": "ID del archivo de entrada",
"endpoint": "Endpoint de destino",
"window": "Ventana de finalización",
"metadata": "Añadir metadatos clave=valor"
},
"submit": {
"description": "Subir un archivo JSONL y crear un lote",
"jsonl": "Ruta al archivo JSONL",
"endpoint": "Endpoint de destino",
"wait": "Esperar a que finalice"
},
"cancel": {
"yes": "Omitir confirmación"
},
"wait": {
"timeout": "Tiempo de espera en ms"
},
"output": {
"out": "Guardar la salida en la ruta"
},
"errors": {
"out": "Guardar los errores en la ruta"
}
},
"translator": {
"description": "Traducir cuerpos de solicitudes entre formatos de LLM",
"detect": {
"description": "Detectar el formato del cuerpo"
},
"translate": {
"description": "Convertir el cuerpo de un formato a otro"
},
"send": {
"description": "Traducir y enviar al proveedor ascendente"
},
"stream": {
"description": "Traducir en streaming el cuerpo de una solicitud"
},
"from": "Formato de origen (openai|anthropic|gemini|cohere)",
"to": "Formato de destino (openai|anthropic|gemini|cohere)",
"file": "Ruta al archivo JSON del cuerpo de la solicitud",
"out": "Guardar la salida en un archivo",
"model": "Sobrescribir el modelo",
"history": {
"limit": "Máximo de resultados"
}
},
"pricing": {
"description": "Gestionar datos de precios de los modelos",
"sync": {
"description": "Sincronizar precios desde fuentes ascendentes",
"provider": "Filtrar por proveedor",
"force": "Forzar la resincronización"
},
"list": {
"provider": "Filtrar por proveedor",
"model": "Filtrar por modelo",
"limit": "Máximo de resultados"
},
"defaults": {
"description": "Gestionar precios predeterminados",
"input": "Coste de entrada por 1 millón de tokens (USD)",
"output": "Coste de salida por 1 millón de tokens (USD)",
"cacheRead": "Coste de lectura de caché por 1 millón de tokens (USD)",
"cacheWrite": "Coste de escritura en caché por 1 millón de tokens (USD)"
},
"diff": {
"description": "Mostrar la diferencia respecto a los precios de origen",
"model": "Filtrar por modelo"
}
},
"radar": {
"description": "Inspeccionar y sincronizar los feeds del catálogo local de Radar",
"status": "Mostrar la configuración local de Radar y el estado de la caché de feeds",
"sync": "Sincronizar el catálogo, las referencias, las ofertas y Intel mediante el servidor local"
},
"resilience": {
"description": "Inspeccionar y gestionar los mecanismos de resiliencia",
"status": {
"provider": "Filtrar por proveedor"
},
"breakers": {
"provider": "Filtrar por proveedor"
},
"cooldowns": {
"provider": "Filtrar por proveedor",
"connectionId": "Filtrar por ID de conexión"
},
"lockouts": {
"provider": "Filtrar por proveedor",
"model": "Filtrar por modelo"
},
"reset": {
"description": "Restablecer el estado del disyuntor/tiempo de espera",
"provider": "Proveedor que se restablecerá",
"connectionId": "ID de conexión que se restablecerá",
"model": "Modelo cuyo bloqueo se restablecerá",
"allCooldowns": "Restablecer todos los tiempos de espera del proveedor",
"yes": "Omitir confirmación"
},
"profile": {
"description": "Gestionar el perfil de resiliencia",
"name": "Nombre del perfil"
},
"config": {
"description": "Gestionar la configuración de resiliencia",
"threshold": "Umbral de fallos",
"resetTimeout": "Tiempo de espera de restablecimiento en ms",
"baseCooldown": "Tiempo de espera base en ms"
}
},
"nodes": {
"description": "Gestionar nodos de proveedores (endpoints)",
"list": {
"provider": "Filtrar por proveedor",
"enabled": "Mostrar solo los nodos habilitados"
},
"add": {
"provider": "Nombre del proveedor",
"baseUrl": "URL base del nodo",
"name": "Nombre del nodo",
"weight": "Peso del balanceo de carga",
"region": "Etiqueta de región",
"authHeader": "Encabezado de autenticación personalizado (key=value)"
},
"update": {
"baseUrl": "Nueva URL base",
"name": "Nuevo nombre",
"weight": "Nuevo peso",
"region": "Nueva región",
"enabled": "Activar o desactivar (true|false)"
},
"remove": {
"yes": "Omitir confirmación"
},
"validate": {
"baseUrl": "URL que se va a validar",
"provider": "Proveedor con el que se va a validar"
},
"test": {
"description": "Enviar solicitud de prueba al nodo"
},
"metrics": {
"description": "Mostrar métricas del nodo",
"period": "Periodo de tiempo (p. ej., 24h, 7d)"
}
},
"context": {
"description": "Configurar la canalización de ingeniería de contexto (Caveman, RTK)",
"analytics": {
"period": "Periodo de tiempo (p. ej., 7d, 30d)"
},
"caveman": {
"description": "Gestionar el compresor de contexto Caveman",
"config": {
"description": "Mostrar o actualizar la configuración de Caveman",
"aggressiveness": "Agresividad 0.01.0",
"maxShrinkPct": "Porcentaje máximo de reducción",
"preserveTags": "Etiquetas separadas por comas que se deben conservar"
}
},
"rtk": {
"description": "Gestionar el optimizador de contexto RTK",
"config": {
"description": "Mostrar o actualizar la configuración de RTK",
"tokenBudget": "Presupuesto de tokens para RTK",
"reservePct": "Porcentaje de reserva"
},
"filters": {
"description": "Gestionar filtros de RTK",
"pattern": "Patrón del filtro (regex)",
"priority": "Prioridad del filtro (valor predeterminado: 100)",
"action": "Acción del filtro: drop|shrink|replace",
"yes": "Omitir confirmación"
},
"test": {
"file": "Ruta al archivo JSON de la solicitud"
}
},
"combos": {
"description": "Gestión de combinaciones con reconocimiento del contexto"
}
},
"sessions": {
"description": "Inspeccionar y gestionar sesiones activas",
"list": {
"user": "Filtrar por usuario",
"kind": "Filtrar por tipo (dashboard|api-key|mcp|a2a)",
"active": "Mostrar solo sesiones activas",
"limit": "Número máximo de resultados (valor predeterminado: 100)"
},
"expire": {
"yes": "Omitir confirmación"
},
"expireAll": {
"user": "Usuario cuyas sesiones se deben cerrar",
"yes": "Omitir confirmación"
}
},
"tags": {
"description": "Gestionar etiquetas de recursos",
"add": {
"color": "Color de la etiqueta (hexadecimal o nombre)",
"description": "Descripción de la etiqueta"
},
"remove": {
"yes": "Omitir confirmación"
},
"assign": {
"tag": "Nombre de la etiqueta",
"to": "Recurso de destino con formato type:id (p. ej., provider:openai)"
},
"unassign": {
"tag": "Nombre de la etiqueta",
"from": "Recurso de origen con formato type:id"
}
},
"openapi": {
"description": "Acceder y probar la especificación OpenAPI de OmniRoute",
"dump": {
"description": "Volcar la especificación OpenAPI en stdout o en un archivo",
"format": "Formato de salida: yaml|json (predeterminado: yaml)",
"out": "Guardar en la ruta del archivo"
},
"validate": {
"description": "Validar la especificación OpenAPI"
},
"try": {
"description": "Probar un endpoint de la API mediante la especificación",
"method": "Método HTTP (predeterminado: GET)",
"body": "Ruta al archivo JSON del cuerpo de la solicitud",
"query": "Parámetro de consulta con formato key=value (se puede repetir)",
"header": "Encabezado con formato key=value (se puede repetir)"
},
"endpoints": {
"description": "Listar todos los endpoints de la API",
"search": "Filtrar por ruta o resumen"
},
"paths": {
"description": "Listar todas las rutas de la API"
}
},
"combo": {
"title": "Combinaciones",
"switched": "Combinación activa: {name}",
"created": "Combinación creada: {name}",
"deleted": "Combinación eliminada: {name}",
"noCombos": "No hay combinaciones configuradas.",
"confirmDelete": "¿Eliminar la combinación {name}?",
"suggest": {
"description": "Sugerir la mejor combinación para una tarea mediante puntuación con IA",
"task": "Descripción de la tarea",
"maxCost": "Coste máximo por solicitud en USD",
"maxLatencyMs": "Latencia máxima en milisegundos",
"weights": "Pesos de puntuación JSON, p. ej., {\"latency\":0.7,\"cost\":0.3}",
"top": "Número de candidatos principales que se mostrarán (predeterminado: 5)",
"explain": "Imprimir la justificación en stderr",
"switch": "Activar la combinación mejor clasificada"
}
},
"oneproxy": {
"description": "Gestionar el grupo de servidores upstream de OneProxy",
"stats": {
"provider": "Filtrar por proveedor",
"period": "Periodo de tiempo (predeterminado: 24h)"
},
"fetch": {
"description": "Obtener proxies del grupo",
"count": "Número de proxies que se obtendrán (predeterminado: 1)",
"type": "Tipo de proxy: http|socks5 (predeterminado: http)"
},
"rotate": {
"description": "Forzar la rotación del proxy",
"provider": "Proveedor para el que se realizará la rotación",
"connectionId": "ID de conexión específica que se va a rotar"
},
"config": {
"description": "Mostrar o actualizar la configuración de OneProxy",
"enabled": "Habilitar el grupo de proxies (true|false)",
"poolSize": "Tamaño del grupo",
"providerSource": "URL del proveedor de proxies",
"rotationPolicy": "Política de rotación: sticky|per-request|periodic"
},
"pool": {
"description": "Listar el grupo de proxies actual con métricas"
}
},
"open": {
"description": "Abrir una página específica del panel de OmniRoute en el navegador",
"url": "Mostrar solo la URL, sin abrir el navegador"
},
"telemetry": {
"description": "Acceder a los datos de telemetría agregados",
"summary": {
"description": "Mostrar el resumen de telemetría agregada",
"period": "Periodo de tiempo: 24h|7d|30d (predeterminado: 24h)",
"compareTo": "Comparar con el periodo anterior"
},
"export": {
"description": "Exportar eventos de telemetría a JSONL",
"out": "Ruta del archivo de salida (predeterminada: telemetry.jsonl)",
"period": "Periodo de tiempo para la exportación (predeterminado: 7d)"
}
},
"sync": {
"description": "Sincronizar la configuración entre instancias de OmniRoute",
"push": {
"description": "Enviar la configuración a la nube o a una instancia remota",
"target": "Destino (cloud o context:name)",
"bundle": "Partes del paquete que se van a sincronizar",
"dryRun": "Previsualizar sin aplicar"
},
"pull": {
"description": "Obtener la configuración de la nube o de una instancia remota",
"source": "Origen (cloud o context:name)",
"merge": "Combinar con la configuración existente",
"replace": "Reemplazar la configuración existente",
"dryRun": "Previsualizar sin aplicar"
},
"diff": {
"source": "Contexto de origen",
"target": "Contexto de destino"
},
"bundle": {
"description": "Exportar la configuración como archivo de paquete",
"include": "Partes que se incluirán (separadas por comas)"
},
"import": {
"description": "Importar un archivo de paquete",
"dryRun": "Validar sin aplicar"
},
"initialize": {
"fromCloud": "Inicializar desde una copia de seguridad en la nube"
},
"tokens": {
"description": "Gestionar tokens de sincronización",
"create": {
"name": "Nombre del token",
"scope": "Ámbito del token",
"ttl": "TTL del token (p. ej., 30d)"
},
"revoke": {
"yes": "Omitir la confirmación"
}
},
"resolve": {
"description": "Resolver conflictos de sincronización de forma interactiva"
}
},
"config": {
"contexts": {
"description": "Gestionar contextos/perfiles del servidor (añadir, usar, listar, mostrar, eliminar, renombrar, exportar, importar)"
},
"lang": {
"description": "Gestionar el idioma de visualización de la CLI",
"getDescription": "Mostrar el código del idioma activo actualmente",
"setDescription": "Establecer el idioma de visualización y guardarlo en la configuración",
"listDescription": "Listar todos los idiomas disponibles",
"listTitle": "Idiomas disponibles",
"current": "Idioma: {code} ({name})",
"saved": "Idioma establecido en {code} ({name}).",
"noCode": "Se requiere un código de idioma. Ejecuta 'omniroute config lang list' para ver los códigos disponibles.",
"unknown": "Código de idioma desconocido: {code}. Ejecuta 'omniroute config lang list' para ver los códigos disponibles.",
"alreadySet": "El idioma ya está establecido en {code}.",
"envHint": "Consejo: también puedes establecer OMNIROUTE_LANG={code} en tu entorno."
}
},
"completion": {
"description": "Generar o instalar scripts de autocompletado para el shell",
"zsh": "Mostrar el script de autocompletado para zsh",
"bash": "Mostrar el script de autocompletado para bash",
"fish": "Mostrar el script de autocompletado para fish",
"install": "Instalar globalmente el script de autocompletado para el shell detectado",
"refresh": "Actualizar la caché de combos/proveedores/modelos"
},
"logs": {
"description": "Transmitir o exportar registros de solicitudes",
"follow": "Transmitir registros en tiempo real",
"filter": "Filtrar por nivel (error,warn,info), separado por comas",
"lines": "Número de líneas que se obtendrán",
"timeout": "Tiempo de espera de conexión en ms",
"baseUrl": "URL base de la API de OmniRoute",
"requestId": "Filtrar por ID de solicitud",
"apiKey": "Filtrar por clave de API",
"combo": "Filtrar por nombre de combo",
"status": "Filtrar por código de estado HTTP",
"durationMin": "Duración mínima de la solicitud en ms",
"durationMax": "Duración máxima de la solicitud en ms",
"export": "Guardar los registros en un archivo (json/jsonl/csv)",
"exported": "Registros guardados en {path}",
"stopped": "Transmisión de registros detenida.",
"streamError": "Error en la transmisión de registros: {message}"
},
"tray": {
"description": "Controlar el icono de la bandeja del sistema",
"show": "Mostrar el icono de la bandeja (si el servidor se está ejecutando con --tray)",
"hide": "Ocultar el icono de la bandeja",
"quit": "Salir de OmniRoute desde la bandeja"
},
"autostart": {
"description": "Gestionar el inicio automático de OmniRoute durante el arranque (Linux: servicio de usuario de systemd)",
"enable": "Activar el inicio automático durante el arranque",
"disable": "Desactivar el inicio automático durante el arranque",
"toggle": "Activar o desactivar el inicio automático al arrancar",
"status": "Mostrar el estado del inicio automático"
},
"runtime": {
"description": "Gestionar las dependencias nativas del entorno de ejecución",
"check": "Comprobar el estado de las dependencias nativas en el directorio del entorno de ejecución",
"repair": "Reinstalar las dependencias nativas en el directorio del entorno de ejecución",
"repair_force": "Forzar la reinstalación aunque sean válidas",
"clean": "Eliminar el directorio del entorno de ejecución (libera espacio en disco)",
"clean_yes": "Omitir la confirmación"
},
"repl": {
"description": "REPL interactivo de varios turnos con LLM",
"model": "Modelo que se usará (predeterminado: auto)",
"combo": "Nombre de la combinación que se usará",
"system": "Prompt del sistema",
"resume": "Reanudar una sesión guardada por nombre"
},
"plugin": {
"description": "Gestionar plugins de la CLI (omniroute-cmd-*)",
"list": "Listar los plugins instalados",
"install": "Instalar un plugin desde npm o una ruta local",
"remove": "Eliminar un plugin instalado",
"info": "Mostrar los detalles de un plugin instalado",
"search": "Buscar plugins disponibles en el registro de npm",
"update": "Actualizar los plugins instalados",
"scaffold": "Generar la estructura inicial de un nuevo plugin"
},
"launch": {
"description": "Iniciar Claude Code conectado a OmniRoute (local o remoto, con --profile)",
"token": "Token que debe enviar el cliente de Claude (ANTHROPIC_AUTH_TOKEN)",
"notRunning": "No se puede acceder a OmniRoute en {port}. Inícialo con 'omniroute serve'.",
"notFound": "No se encontró la CLI 'claude' en PATH."
},
"run": {
"description": "Iniciar un destino de CLI compatible a través de OmniRoute"
},
"setupClaude": {
"description": "Generar perfiles de Claude Code en ~/.claude/profiles a partir del catálogo de modelos de OmniRoute"
},
"connect": {
"description": "Conectarse a un servidor remoto de OmniRoute y entrar en modo remoto"
},
"tokens": {
"description": "Gestionar tokens de acceso a la CLI con ámbitos (modo remoto)"
},
"configure": {
"description": "Elegir un proveedor y un modelo del servidor activo y configurar una CLI local compatible"
},
"launchCodex": {
"description": "Iniciar Codex CLI conectado a OmniRoute (local o VPS remoto)"
},
"setupCodex": {
"description": "Generar archivos de perfil en ~/.codex a partir del catálogo de modelos activo de OmniRoute"
},
"packs": {
"description": "Gestionar paquetes opcionales del entorno de ejecución (ML / automatización del navegador)",
"listDescription": "Listar los paquetes opcionales y su estado de instalación",
"installDescription": "Instalar un paquete opcional en DATA_DIR",
"verifyDescription": "Verificar los paquetes instalados con el índice de sumas de comprobación incluido",
"removeDescription": "Eliminar un paquete opcional instalado",
"sourceOpt": "Directorio que contiene los archivos de los paquetes y el índice de paquetes",
"warnNoIndex": "No se encontró optional-packs.index.json; la instalación y la verificación no están disponibles en esta copia del repositorio (los paquetes de escritorio sí lo incluyen)",
"errUnknown": "paquete desconocido: {name}",
"errNoIndex": "no se encontró el índice del paquete; pasa --source <dir> apuntando al directorio que contiene el contenido del paquete (los paquetes de escritorio lo incluyen junto a la aplicación)",
"installed": "paquete \"{name}\" instalado y verificado en {dir}",
"restartHint": "reinicia el servidor de OmniRoute (o la aplicación de escritorio) para que el entorno de ejecución detecte el paquete",
"removed": "paquete \"{name}\" eliminado",
"notInstalled": "el paquete \"{name}\" no estaba instalado",
"verifyOk": "se verificaron todos los paquetes instalados",
"verifyFailed": "{count} paquete(s) no superaron la verificación",
"noneInstalled": "no hay paquetes opcionales instalados"
}
}