// Spanish — traducciones para la consola de administración de allaigate Gateway. export default { // brand / common "brand.sub": "Gateway", "common.loading": "Cargando…", "common.save": "Guardar", "common.saving": "Guardando…", "common.cancel": "Cancelar", "common.add": "Agregar", "common.edit": "Editar", "common.delete": "Eliminar", "common.close": "Cerrar", "common.test": "Probar", "common.copy": "Copiar", "common.copied": "Copiado", "common.confirm": "Confirmar", "common.none": "ninguno", "common.saved": "Guardado", "common.error": "Error", "common.ok": "OK", "common.refresh": "Actualizar", "common.actions": "Acciones", "common.optional": "opcional", "common.search": "Buscar", "common.all": "todos", // nav "nav.dashboard": "Panel", "nav.models": "Modelos", "nav.routing": "Enrutamiento", "nav.protocols": "Protocolos", "nav.keys": "Claves API", "nav.playground": "Playground", "nav.settings": "Configuración", "nav.foot": "Gateway · v{v}", // topbar / status "status.router": "Router", "status.gateway": "Gateway", "status.online": "en línea", "status.offline": "sin conexión", "status.checking": "verificando…", "theme.toggle": "Tema", "logout": "Cerrar sesión", // login "login.title": "allaigate Gateway", "login.subtitle": "Ingresa el token de administrador para gestionar este gateway.", "login.token": "Token de administrador", "login.tokenPlaceholder": "pega el token de administrador", "login.submit": "Abrir consola", "login.hint": "El token se imprime en el log del gateway al iniciar, o se configura mediante [admin].token_env.", "login.failed": "Token de administrador inválido.", // dashboard "dash.title": "Panel", "dash.subtitle": "Tráfico en vivo, costos y análisis de enrutamiento de tu pool de modelos.", "dash.range": "Rango", "dash.range.1h": "1h", "dash.range.24h": "24h", "dash.range.7d": "7d", "dash.kpi.requests": "Solicitudes", "dash.kpi.tokens": "Tokens", "dash.kpi.cost": "Costo", "dash.kpi.latency": "Latencia promedio", "dash.kpi.success": "Tasa de éxito", "dash.kpi.failovers": "Failovers", "dash.series.title": "Solicitudes en el tiempo", "dash.series.cost": "Costo en el tiempo", "dash.series.empty": "Sin tráfico en este rango.", "dash.breakdown.title": "Desglose", "dash.groupby.model": "por modelo", "dash.groupby.tier": "por nivel", "dash.groupby.label": "por tarea", "dash.groupby.account": "por cuenta", "dash.recent.title": "Solicitudes recientes", "dash.recent.empty": "Sin solicitudes registradas. Prueba el Playground.", "dash.col.time": "Hora", "dash.col.model": "Modelo", "dash.col.tier": "Nivel", "dash.col.task": "Tarea", "dash.col.tokens": "Tokens", "dash.col.cost": "Costo", "dash.col.latency": "Latencia", "dash.col.outcome": "Resultado", "dash.col.requests": "Solicitudes", "dash.col.errors": "Errores", "dash.health.title": "Estado", "dash.health.reachable": "accesible", "dash.health.unreachable": "inaccesible", // models "models.title": "Modelos", "models.subtitle": "Tu pool de modelos — combina modelos locales económicos con APIs en la nube.", "models.add": "Agregar modelo", "models.empty": "Sin modelos aún. Agrega tu primer modelo para comenzar.", "models.col.id": "ID", "models.col.provider": "Proveedor", "models.col.model": "Modelo", "models.col.tier": "Nivel de costo", "models.col.key": "Clave", "models.col.caps": "Capacidades", "models.col.price": "Precio (entrada/salida)", "models.probe": "Sondear", "models.probe.ok": "Accesible ({ms} ms)", "models.probe.fail": "Error: {err}", "models.form.addTitle": "Agregar modelo", "models.form.editTitle": "Editar modelo", "models.form.id": "ID", "models.form.idHint": "ID único usado en enrutamiento, ej. local-qwen", "models.form.provider": "Proveedor", "models.form.baseUrl": "URL base", "models.form.model": "Nombre del modelo", "models.form.kind": "Tipo", "models.form.costTier": "Nivel de costo", "models.form.priceIn": "Precio entrada ($/1M)", "models.form.priceOut": "Precio salida ($/1M)", "models.form.apiKeyEnv": "Nombre de variable env para clave API", "models.form.apiKeyEnvHint": "Nombre de la variable de entorno o secreto que contiene la clave del proveedor.", "models.form.caps": "Capacidades", "models.form.secret": "Valor secreto", "models.form.secretStored": "almacenado", "models.form.secretEnv": "desde env", "models.form.secretMissing": "no configurado", "models.form.secretPlaceholder": "establecer o reemplazar clave (solo escritura)", "models.deleteConfirm": "¿Eliminar modelo \"{id}\"?", // routing "routing.title": "Enrutamiento", "routing.subtitle": "Asigna niveles de complejidad a una lista ordenada de modelos (prioridad = fallback).", "routing.default": "Modelo predeterminado", "routing.defaultHint": "Usado cuando el router no está disponible.", "routing.tiers": "Niveles", "routing.tierHint": "Arrastra los chips para reordenar; el primero es preferido, los demás son fallbacks.", "routing.addModel": "+ agregar", "routing.addTier": "Agregar nivel", "routing.tierName": "Nombre del nivel", "routing.policy": "Política", "routing.policy.mode": "Modo", "routing.policy.fixed": "Tabla fija", "routing.policy.costAware": "Consciente del costo", "routing.policy.maxCost": "Costo máx. por solicitud ($)", "routing.policy.minClass": "Clase mínima por nivel", "routing.empty": "Sin modelos disponibles — agrega modelos primero.", // protocols "protocols.title": "Protocolos", "protocols.subtitle": "Activa solo las APIs de entrada que necesitas. Los cambios se aplican en vivo.", "protocols.implemented": "implementado", "protocols.planned": "planificado", "protocols.openai_chat": "OpenAI Chat Completions", "protocols.openai_chat.d": "POST /v1/chat/completions — compatible con OpenAI SDK, LangChain, crewAI.", "protocols.openai_completions": "OpenAI Completions (legacy)", "protocols.openai_completions.d": "POST /v1/completions — integraciones heredadas.", "protocols.openai_embeddings": "OpenAI Embeddings", "protocols.openai_embeddings.d": "POST /v1/embeddings — pipelines RAG.", "protocols.openai_models": "OpenAI Models", "protocols.openai_models.d": "GET /v1/models — autodescubrimiento de clientes.", "protocols.anthropic_messages": "Anthropic Messages", "protocols.anthropic_messages.d": "POST /v1/messages — agentes nativos Claude.", "protocols.mcp": "MCP (Model Context Protocol)", "protocols.mcp.d": "JSON-RPC / SSE — orquestadores nativos MCP.", "protocols.native_passthrough": "Passthrough nativo", "protocols.native_passthrough.d": "POST /route — acceso directo a la decisión de enrutamiento.", // keys "keys.title": "Claves API", "keys.subtitle": "Claves de gateway virtuales para tus agentes. Las claves del proveedor nunca salen del gateway.", "keys.add": "Nueva clave", "keys.empty": "Sin claves configuradas — el gateway está en modo abierto (sin autenticación).", "keys.openMode": "Modo abierto: cualquier solicitud es aceptada (no se requiere clave).", "keys.col.key": "Clave", "keys.col.account": "Cuenta", "keys.col.rate": "Límite / min", "keys.col.models": "Modelos permitidos", "keys.form.title": "Nueva clave API", "keys.form.account": "Cuenta", "keys.form.rate": "Límite de tasa / min", "keys.form.allow": "Modelos permitidos", "keys.form.allowHint": "Deja vacío para permitir todos los modelos.", "keys.form.custom": "Clave personalizada (opcional)", "keys.form.customHint": "Deja vacío para generar automáticamente sk-gw-…", "keys.created": "Clave creada — cópiala ahora, no se mostrará de nuevo:", "keys.revoke": "Revocar", "keys.revokeConfirm": "¿Revocar esta clave?", "keys.allowAll": "todos", // playground "pg.title": "Playground", "pg.subtitle": "Envía un prompt por el pipeline en vivo e inspecciona la decisión de enrutamiento.", "pg.system": "Prompt del sistema", "pg.systemPlaceholder": "mensaje de sistema opcional", "pg.prompt": "Prompt", "pg.promptPlaceholder": "Escribe algo…", "pg.mode": "Modo", "pg.mode.auto": "Auto (enrutar)", "pg.mode.pinned": "Modelo fijo", "pg.profile": "Perfil", "pg.model": "Modelo", "pg.temp": "Temperatura", "pg.maxTokens": "Tokens máx.", "pg.send": "Enviar", "pg.sending": "Enviando…", "pg.answer": "Respuesta", "pg.empty": "La respuesta y la decisión de enrutamiento aparecerán aquí.", "pg.decision": "Decisión de enrutamiento", "pg.task": "Tarea", "pg.tier": "Nivel", "pg.score": "Complejidad", "pg.selected": "Modelo seleccionado", "pg.source": "Fuente de ruta", "pg.cost": "Costo", "pg.latency": "Latencia", "pg.tokens": "Tokens (entrada/salida)", "pg.failover": "Failover", "pg.error": "Solicitud fallida", // settings "settings.title": "Configuración", "settings.subtitle": "Conexión del gateway, entrada de enrutamiento, fiabilidad y observabilidad.", "settings.router": "Conexión del router", "settings.router.url": "URL del router", "settings.router.keyEnv": "Nombre de variable env para clave del router", "settings.router.timeout": "Tiempo de espera (ms)", "settings.router.verifyTls": "Verificar certificado TLS", "settings.router.taxonomy": "ID de taxonomía", "settings.route": "Entrada de enrutamiento", "settings.route.strategy": "Estrategia de texto", "settings.route.maxChars": "Máx. caracteres", "settings.route.cacheTtl": "TTL de caché", "settings.route.profile": "Perfil predeterminado", "settings.breaker": "Circuit breaker", "settings.breaker.threshold": "Umbral de errores", "settings.breaker.cooldown": "Cooldown", "settings.log": "Registro", "settings.log.level": "Nivel de log", "settings.log.bodies": "Registrar cuerpos de mensajes (privacidad desactivada)", "settings.telemetry": "Telemetría", "settings.telemetry.metrics": "Exponer Prometheus /metrics", "settings.cortiq": "Metadatos de respuesta", "settings.cortiq.echo": "Incluir bloque de enrutamiento cortiq en respuestas", "settings.stats": "Estadísticas", "settings.stats.enabled": "Registrar estadísticas de solicitudes", "settings.stats.file": "Archivo de estadísticas (JSONL)", "settings.stats.retention": "Retención", "settings.listen": "Dirección de escucha", "settings.export": "Exportar configuración", "settings.import": "Importar configuración", "settings.needsRestart": "Guardado. Algunos cambios (dirección de escucha) requieren reinicio.", // toasts / misc "toast.saved": "Cambios guardados", "toast.deleted": "Eliminado", "toast.probing": "Sondeando…", "toast.imported": "Configuración importada", };