omniroute 2.3.16 → 2.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -1
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +53 -53
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/catalog/route.js +1 -1
- package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -2
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +1 -2
- package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -2
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page.js +2 -3
- package/app/.next/server/app/docs/page.js.nft.json +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +53 -53
- package/app/.next/server/chunks/1248.js +1 -1
- package/app/.next/server/chunks/1526.js +1 -1
- package/app/.next/server/chunks/1584.js +1 -1
- package/app/.next/server/chunks/1623.js +1 -1
- package/app/.next/server/chunks/1880.js +1 -1
- package/app/.next/server/chunks/1909.js +1 -1
- package/app/.next/server/chunks/1960.js +1 -1
- package/app/.next/server/chunks/1990.js +1 -1
- package/app/.next/server/chunks/2214.js +1 -1
- package/app/.next/server/chunks/2372.js +1 -1
- package/app/.next/server/chunks/2594.js +1 -1
- package/app/.next/server/chunks/3061.js +1 -1
- package/app/.next/server/chunks/3371.js +1 -1
- package/app/.next/server/chunks/3911.js +1 -1
- package/app/.next/server/chunks/496.js +1 -1
- package/app/.next/server/chunks/5047.js +1 -1
- package/app/.next/server/chunks/5094.js +1 -1
- package/app/.next/server/chunks/5097.js +1 -1
- package/app/.next/server/chunks/5521.js +1 -1
- package/app/.next/server/chunks/5945.js +1 -1
- package/app/.next/server/chunks/5979.js +2 -0
- package/app/.next/server/chunks/6118.js +1 -1
- package/app/.next/server/chunks/6930.js +1 -1
- package/app/.next/server/chunks/7011.js +1 -1
- package/app/.next/server/chunks/708.js +1 -1
- package/app/.next/server/chunks/7650.js +1 -1
- package/app/.next/server/chunks/8220.js +1 -1
- package/app/.next/server/chunks/8369.js +1 -1
- package/app/.next/server/chunks/8464.js +1 -1
- package/app/.next/server/chunks/8706.js +1 -1
- package/app/.next/server/chunks/8976.js +1 -1
- package/app/.next/server/chunks/9119.js +1 -1
- package/app/.next/server/chunks/944.js +1 -1
- package/app/.next/server/chunks/9837.js +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/5846-91acb28376b52f2b.js +2 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-822261c5b1a31e5f.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-07cbc45d62a20735.js +1 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/static/chunks/5846-add861cd813aff4e.js +0 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-bcd322cc28b040e9.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-adb79ef07d8dd6c5.js +0 -1
- /package/app/.next/static/{sMRknb0_nN4sJNpx0fv_B → QxDWWnX69o-VpbuyG_9Li}/_buildManifest.js +0 -0
- /package/app/.next/static/{sMRknb0_nN4sJNpx0fv_B → QxDWWnX69o-VpbuyG_9Li}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=7011,exports.ids=[7011],exports.modules={87011:a=>{a.exports=JSON.parse('{"common":{"save":"Guardar","cancel":"Cancelar","delete":"Eliminar","loading":"Cargando...","error":"Se produjo un error","success":"\xc9xito","confirm":"\xbfEst\xe1s seguro?","refresh":"Actualizar","close":"Cerrar","add":"A\xf1adir","edit":"Editar","search":"Buscar","back":"Atr\xe1s","next":"Siguiente","submit":"Enviar","reset":"Reiniciar","copy":"Copiar","copied":"\xa1Copiado!","enabled":"Habilitado","disabled":"Deshabilitado","active":"Activo","inactive":"Inactivo","noData":"No hay datos disponibles","configure":"Configurar","manage":"Administrar","name":"Nombre","actions":"Acciones","status":"Estado","type":"Tipo","model":"Modelo","models":"modelos","provider":"Proveedor","account":"Cuenta","time":"Hora","details":"Detalles","created":"Creado","lastUsed":"Usado por \xfaltima vez","loadMore":"Cargar m\xe1s","noResults":"No se encontraron resultados","reloadPage":"Recargar p\xe1gina","connected":"Conectado","disconnected":"desconectado","notConfigured":"No configurado","testConnection":"Conexi\xf3n de prueba","enable":"Habilitar","disable":"Desactivar","columns":"Columnas","newest":"M\xe1s reciente","oldest":"M\xe1s antiguo","all":"Todos","none":"Ninguno","yes":"S\xed","no":"No","warning":"Advertencia","note":"Nota","free":"Gratis","skipToContent":"Saltar al contenido"},"sidebar":{"home":"Inicio","dashboard":"Panel de control","providers":"Proveedores","combos":"Combos","usage":"Uso","analytics":"Anal\xedtica","costs":"Costos","health":"Salud","limits":"L\xedmites y cuotas","cliTools":"Herramientas CLI","media":"Multimedia","settings":"Configuraci\xf3n","translator":"Traductor","docs":"Documentaci\xf3n","issues":"Problemas","apiManager":"Gestor de API","logs":"Registros","auditLog":"Registro de auditor\xeda","shutdown":"Apagar","restart":"Reiniciar","shutdownConfirm":"\xbfCerrar OmniRoute?","restartConfirm":"\xbfReiniciar OmniRoute?","version":"v{version}","debug":"Depurar","system":"Sistema","help":"Ayuda","serverDisconnected":"Servidor desconectado","serverDisconnectedMsg":"El servidor proxy se ha detenido o se est\xe1 reiniciando.","expandSidebar":"Expandir barra lateral","collapseSidebar":"Contraer barra lateral","themes":"Temas","presetColors":"Colores populares","createTheme":"Crear tema","chooseColor":"Elige un color","themeCoral":"Coral","themeBlue":"Azul","themeRed":"Rojo","themeGreen":"Verde","themeViolet":"Violeta","themeOrange":"Naranja","themeCyan":"cian","endpoints":"Endpoints","playground":"Playground","agents":"Agentes","cliToolsShort":"Herramientas"},"themesPage":{"title":"Temas","description":"Elige un tema preestablecido o crea el tuyo propio con un solo color","presetColors":"Colores populares","customTheme":"Tema personalizado","customThemeDesc":"Haga clic en crear tema y elija un color","createTheme":"Crear tema","activePreset":"Tema activo"},"header":{"logout":"Cerrar sesi\xf3n","language":"Idioma","providers":"Proveedores","providerDescription":"Gestiona tus conexiones de proveedores de IA","combos":"Combos","comboDescription":"Combinaciones de modelos con fallback","usage":"Uso y an\xe1lisis","usageDescription":"Supervise el uso de su API, el consumo de tokens y los registros de solicitudes","analytics":"Anal\xedticas","analyticsDescription":"Gr\xe1ficos, tendencias y conocimientos de evaluaci\xf3n","cliTools":"Herramientas CLI","cliToolsDescription":"Configurar herramientas CLI","home":"Inicio","homeDescription":"Bienvenido a OmniRoute","endpoint":"Endpoints","endpointDescription":"Gestionar endpoints proxy, MCP, A2A y endpoints de API","settings":"Configuraci\xf3n","settingsDescription":"Gestiona tus preferencias","openaiCompatible":"Compatible con OpenAI","anthropicCompatible":"Compatible con Anthropic","media":"Medios de comunicaci\xf3n","mediaDescription":"Genera im\xe1genes, v\xeddeos y m\xfasica.","themes":"Temas","themesDescription":"Elija un tema de color para todo el panel del tablero","mcp":"MCP","mcpDescription":"Model Context Protocol server management and tools","a2a":"A2A","a2aDescription":"Agent-to-Agent protocol tasks and observability"},"home":{"quickStart":"Inicio r\xe1pido","quickStartDesc":"Empieza en 4 pasos. Conecta proveedores, enruta modelos y monitorea todo.","fullDocs":"Documentaci\xf3n completa","step1Title":"1. Crear clave API","step1Desc":"Ve a <endpoint>Endpoint</endpoint> -> Claves registradas. Genera una clave por entorno.","step2Title":"2. Conectar proveedores","step2Desc":"Agrega cuentas en <providers>Proveedores</providers>. Soporta OAuth, API Key y planes gratuitos.","step3Title":"3. Configura tu cliente","step3Desc":"Configura la URL base como {url} en tu IDE o cliente API.","step4Title":"4. Supervisar y optimizar","step4Desc":"Supervisa tokens, costos y errores en <logs>Registros</logs> y <analytics>Anal\xedticas</analytics>.","providersOverview":"Descripci\xf3n general de proveedores","configuredOf":"{configured} configurado de {total} proveedores disponibles","noModelsAvailable":"No hay modelos disponibles para este proveedor.","configureFirst":"Configure una conexi\xf3n primero en {providers}","configureProvider":"Configurar proveedor","modelAvailable":"Modelo {count} disponible","modelsAvailable":"{count} modelos disponibles","connectionsActive":"{count} conexi\xf3n activa","connectionsActivePlural":"{count} conexiones activas","copyModelName":"Copiar nombre del modelo","documentation":"Documentaci\xf3n","healthMonitor":"Monitor de salud","reportIssue":"Informar problema","activeError":"{active} activo \xb7 {errors} error","oauthLabel":"OAuth","apiKeyLabel":"Clave API","requestsShort":"{count} reqs","providerModelsTitle":"{provider} - Modelos","copiedModel":"Copiado: {model}","aliasLabel":"alias"},"analytics":{"title":"Anal\xedtica","overviewDescription":"Supervise sus patrones de uso de API, consumo de tokens, costos y tendencias de actividad en todos los proveedores y modelos.","evalsDescription":"Ejecute conjuntos de evaluaci\xf3n para probar y validar sus puntos finales de LLM. Compare la calidad del modelo, detecte regresiones y compare la latencia.","overview":"Descripci\xf3n general","evals":"evaluaciones"},"apiManager":{"title":"Claves API","createKey":"Crear clave API","key":"clave","revokeKey":"Revocar clave","revokeConfirm":"\xbfEst\xe1 seguro de que desea revocar esta clave API?","noKeys":"A\xfan no hay claves API","noKeysDesc":"Cree su primera clave API para autenticar solicitudes en su punto final","keyLabel":"Etiqueta clave","permissions":"Permisos","expiresAt":"Vence","never":"nunca","revoke":"Revocar","showKey":"Mostrar clave","hideKey":"Ocultar clave","copyKey":"Copiar clave API","allModels":"Todos los modelos","selectedModels":"Modelos seleccionados","readOnly":"S\xf3lo lectura","fullAccess":"Acceso completo","keyManagement":"Gesti\xf3n de claves API","keyManagementDesc":"Cree y administre claves API para autenticar solicitudes en su punto final","totalKeys":"Claves totales","restricted":"Restringido","totalRequests":"Solicitudes totales","modelsAvailable":"Modelos disponibles","registeredKeys":"Claves registradas","keysRegistered":"{count} claves registradas","keyRegistered":"{count} clave registrada","keysSecurityNote":"Cada clave a\xedsla el seguimiento de uso y se puede revocar de forma independiente. Las claves se enmascaran despu\xe9s de su creaci\xf3n por motivos de seguridad.","createFirstKey":"Crea tu primera clave","name":"Nombre","usage":"Uso","created":"Creado","actions":"Acciones","reqs":"requisitos","neverUsed":"Nunca usado","deleteConfirm":"\xbfEliminar esta clave API?","usageTips":"Consejos de uso","tipAuth":"Utilice claves API en el encabezado de Autorizaci\xf3n como Portador YOUR_KEY","tipSecure":"Las claves solo se muestran una vez durante la creaci\xf3n: gu\xe1rdelas de forma segura","tipSeparate":"Cree claves separadas para diferentes clientes o entornos","tipRestrict":"Restrinja las claves a modelos espec\xedficos para una mejor seguridad y control de costos","keyName":"Nombre clave","keyNamePlaceholder":"por ejemplo, clave de producci\xf3n, clave de desarrollo","keyNameDesc":"Elija un nombre descriptivo para identificar el prop\xf3sito de esta clave","keyCreated":"Clave API creada","keyCreatedSuccess":"\xa1Clave creada exitosamente!","keyCreatedNote":"Copie y almacene esta clave ahora; no se volver\xe1 a mostrar.","done":"hecho","savePermissions":"Guardar permisos","allowAll":"Permitir todo","restrict":"Restringir","allowAllInfo":"Esta clave puede acceder a todos los modelos disponibles.","restrictInfo":"Esta clave puede acceder a {selected} de {total} modelos.","selected":"{count} seleccionado","all":"Todos","clear":"Borrar","searchModels":"Buscar modelos por nombre o proveedor...","noModelsFound":"No se encontraron modelos","keyNameRequired":"El nombre de la clave es obligatorio","keyNameTooLong":"El nombre de la clave debe tener {max} caracteres o menos","keyNameInvalid":"El nombre de la clave solo puede contener letras, n\xfameros, espacios, guiones y guiones bajos.","invalidKeyName":"Nombre de clave no v\xe1lido","failedCreateKey":"No se pudo crear la clave","failedCreateKeyRetry":"No se pudo crear la clave. Por favor int\xe9ntalo de nuevo.","invalidKeyId":"ID de clave no v\xe1lida","failedDeleteKey":"No se pudo eliminar la clave","failedDeleteKeyRetry":"No se pudo eliminar la clave. Por favor int\xe9ntalo de nuevo.","invalidModelsSelection":"Selecci\xf3n de modelos no v\xe1lidos","cannotSelectMoreThanModels":"No se pueden seleccionar m\xe1s de {max} modelos","failedUpdatePermissions":"No se pudieron actualizar los permisos","failedUpdatePermissionsRetry":"No se pudieron actualizar los permisos. Por favor int\xe9ntalo de nuevo.","unknownProvider":"desconocido","copyMaskedKey":"Copiar clave enmascarada","modelsCount":"{count, plural, one {# model} other {# models}}","lastUsedOn":"\xdaltimo: {date}","editPermissions":"Editar permisos","deleteKey":"Eliminar clave","model":"{count} modelo","models":"{count} modelos","permissionsTitle":"Permisos: {name}","allowAllDesc":"Esta clave puede acceder a todos los modelos disponibles.","restrictDesc":"Esta clave puede acceder a {selectedCount} de {totalModels} modelos.","selectedCount":"{count} seleccionado"},"auditLog":{"title":"Registro de auditor\xeda","searchPlaceholder":"Acciones de b\xfasqueda...","action":"acci\xf3n","actor":"Actor","target":"Objetivo","ipAddress":"Direcci\xf3n IP","timestamp":"Marca de tiempo","noEntries":"No se encontraron entradas de auditor\xeda","filterByAction":"Filtrar por acci\xf3n...","filterByActor":"Filtrar por actor...","filterEntriesAria":"Filtrar entradas del registro de auditor\xeda","filterByActionTypeAria":"Filtrar por tipo de acci\xf3n","filterByActorAria":"Filtrar por actor","refreshAuditLogAria":"Actualizar el registro de auditor\xeda","tableAria":"Entradas del registro de auditor\xeda","failedFetchAuditLog":"No se pudo recuperar el registro de auditor\xeda","notAvailable":"—","description":"Acciones administrativas y eventos de seguridad.","showing":"Mostrando entradas {count} (desplazamiento {offset})","previous":"Anterior"},"media":{"title":"Zona multimedia","subtitle":"Genera im\xe1genes, videos y m\xfasica","model":"Model","prompt":"Prompt","generate":"Generar","generating":"Generating...","loadingModels":"Loading available models...","noModels":"No models available. Configure providers with media capabilities first.","error":"Generation Failed","result":"Result","imageDescription":"Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.","videoDescription":"Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.","musicDescription":"Compose music using Stable Audio Open or MusicGen via ComfyUI."},"cliTools":{"title":"Herramientas CLI","noActiveProviders":"No hay proveedores activos","noActiveProvidersDesc":"Primero agregue y conecte proveedores para configurar las herramientas CLI.","mapModels":"Modelos de mapas","testConnection":"Conexi\xf3n de prueba","connectionStatus":"Estado de conexi\xf3n","configureEndpoint":"Configurar punto final","instructions":"Instrucciones","modelMapping":"Mapeo de modelos","baseUrl":"URL b\xe1sica","apiKey":"Clave API","configured":"Configurado","notConfigured":"No configurado","notInstalled":"No instalado","custom":"personalizado","unknown":"Desconocido","lastSavedAt":"\xdaltimo guardado: {date}","never":"nunca","justNow":"justo ahora","minutesAgoShort":"Hace {count}m","hoursAgoShort":"Hace {count}h","daysAgoShort":"Hace {count}d","monthsAgoShort":"hace {count} mes","yearsAgoShort":"Hace {count}y","runtimeCheckFailed":"Error en la comprobaci\xf3n del tiempo de ejecuci\xf3n","yourApiKeyPlaceholder":"tu-clave-api","modelPlaceholder":"proveedor/id-modelo","configurationSaved":"Configuraci\xf3n guardada exitosamente.","failedToSave":"No se pudo guardar la configuraci\xf3n.","noApiKeysCreateOne":"Sin claves API: cree una en la p\xe1gina Claves","defaultOmnirouteKey":"sk_omniroute (predeterminado)","selectModel":"Seleccionar modelo","selectModelForAlias":"Seleccione modelo para {alias}","selectModelForTool":"Seleccione modelo para {tool}","select":"Seleccionar","clear":"Borrar","comingSoon":"Pr\xf3ximamente","checkingRuntime":"Comprobando el estado del tiempo de ejecuci\xf3n...","guideOnlyIntegration":"Integraci\xf3n solo con gu\xeda (no se requiere tiempo de ejecuci\xf3n local)","cliRuntimeDetected":"Tiempo de ejecuci\xf3n de CLI detectado y listo","cliFoundNotRunnable":"CLI encontrada pero no ejecutable{reason}","cliRuntimeNotDetected":"Tiempo de ejecuci\xf3n CLI no detectado","binary":"binario","configPath":"Ruta de configuraci\xf3n","configPathShort":"configuraci\xf3n","failedCheckRuntimeStatus":"No se pudo verificar el estado del tiempo de ejecuci\xf3n.","copy":"Copiar","copied":"Copiado","copyConfig":"Copiar configuraci\xf3n","saveConfig":"Guardar configuraci\xf3n","selectionSaved":"Selecci\xf3n guardada","guide":"Gu\xeda","detected":"Detectado","notReady":"No listo","active":"Activo","inactive":"Inactivo","startMitm":"Iniciar MITM","stopMitm":"Detener MITM","mitmStarted":"\xa1MITM comenz\xf3 con \xe9xito!","mitmStopped":"\xa1MITM se detuvo con \xe9xito!","failedStart":"No se pudo iniciar MITM","failedStop":"No se pudo detener MITM","saveMappings":"Guardar asignaciones","mappingsSaved":"\xa1Asignaciones guardadas!","failedSaveMappings":"No se pudieron guardar las asignaciones","howItWorks":"C\xf3mo funciona:","antigravityHowWorksDesc":"Antigravity env\xeda solicitudes al punto final de Google. MITM los intercepta y los redirige a OmniRoute.","antigravityStep1":"1. Inicie MITM para enrutar solicitudes a trav\xe9s de OmniRoute.","antigravityStep2Prefix":"2. Agregar","antigravityStep2Suffix":"a su archivo de hosts como 127.0.0.1.","antigravityStep3":"3. Abra Antigravity y las solicitudes se enviar\xe1n por proxy.","sudoPasswordRequiredTitle":"Se requiere contrase\xf1a de Sudo","sudoPasswordHint":"Se requiere una contrase\xf1a de administrador para modificar el archivo de hosts y la configuraci\xf3n del proxy del sistema.","enterSudoPassword":"Ingrese la contrase\xf1a de sudo","sudoPasswordRequiredError":"Se requiere contrase\xf1a de Sudo.","cancel":"Cancelar","confirm":"Confirmar","settingsApplied":"\xa1La configuraci\xf3n se aplic\xf3 correctamente!","failedApplySettings":"No se pudo aplicar la configuraci\xf3n","settingsReset":"\xa1La configuraci\xf3n se restableci\xf3 correctamente!","failedResetSettings":"No se pudo restablecer la configuraci\xf3n","backupRestored":"\xa1Copia de seguridad restaurada!","failedRestore":"No se pudo restaurar","checkingCli":"Comprobando {tool} CLI...","cliNotRunnable":"{tool} CLI instalada pero no ejecutable","cliNotInstalled":"{tool} CLI no instalado","cliNotDetected":"{tool} CLI no detectada","cliDetectedReady":"{tool} CLI detectada y lista","cliFoundFailedHealthcheck":"{tool} Se encontr\xf3 CLI pero fall\xf3 la verificaci\xf3n de estado del tiempo de ejecuci\xf3n{reason}.","installCliPrompt":"Instale {tool} CLI para utilizar esta funci\xf3n.","installCodexPrompt":"Instale Codex CLI para utilizar la funci\xf3n de aplicaci\xf3n autom\xe1tica.","hide":"Ocultar","howToInstall":"C\xf3mo instalar","installationGuide":"Gu\xeda de instalaci\xf3n","platforms":"Mac OS/Linux/Windows:","afterInstallationRun":"Despu\xe9s de la instalaci\xf3n, ejecute","toVerify":"para verificar.","current":"Actual","baseUrlPlaceholder":"https://.../v1","resetToDefault":"Restablecer los valores predeterminados","providerModelPlaceholder":"proveedor/id-modelo","apply":"Aplicar","reset":"Reiniciar","manualConfig":"Configuraci\xf3n manual","backups":"Copias de seguridad","configBackups":"Configurar copias de seguridad","noBackupsYet":"A\xfan no hay copias de seguridad. Las copias de seguridad se crean autom\xe1ticamente antes de cada aplicaci\xf3n o reinicio.","restore":"Restaurar","backupRestoredReloading":"\xa1Copia de seguridad restaurada! Estado de recarga...","failedRestoreBackup":"No se pudo restaurar la copia de seguridad","applied":"\xa1Aplicado!","failed":"Fallido","resetDone":"\xa1Reiniciar!","omnirouteConfiguredOpenAiCompatible":"OmniRoute est\xe1 configurado como proveedor compatible con OpenAI","provider":"Proveedor","model":"modelo","providers":"Proveedores","auth":"autenticaci\xf3n","noApiKeysAvailable":"No hay claves API disponibles","usingDefaultOmniroute":"Usando por defecto: sk_omniroute","updateConfig":"Actualizar configuraci\xf3n","applyConfig":"Aplicar configuraci\xf3n","noBackupsAvailable":"No hay copias de seguridad disponibles.","profileSaved":"\xa1Perfil \\"{name}\\" guardado!","failedSaveProfile":"No se pudo guardar el perfil","profileActivated":"\xa1Perfil activado!","failedActivateProfile":"No se pudo activar el perfil","profiles":"Perfiles","savedProfiles":"Perfiles guardados","noProfilesYet":"A\xfan no se han guardado perfiles. Guarde la configuraci\xf3n actual como perfil a continuaci\xf3n.","activate":"Activar","deleteProfile":"Eliminar perfil","profileNamePlaceholder":"Nombre del perfil (por ejemplo, cuenta personal)","saveCurrent":"Guardar actual","codexAuthNotePrefix":"Usos del c\xf3dice","codexAuthNoteMiddle":"con","codexAuthNoteSuffix":"Haga clic en \\"Aplicar\\" para configurar autom\xe1ticamente.","claudeManualConfiguration":"Claude CLI - Configuraci\xf3n manual","codexManualConfiguration":"CLI del Codex: configuraci\xf3n manual","droidManualConfiguration":"Droid de f\xe1brica - Configuraci\xf3n manual","openClawManualConfiguration":"Garra abierta - Configuraci\xf3n manual","clineManualConfiguration":"Configuraci\xf3n manual de l\xednea","kiloManualConfiguration":"Configuraci\xf3n manual del c\xf3digo Kilo","toolDescriptions":{"antigravity":"IDE antigravedad de Google con MITM","claude":"CLI del C\xf3digo Antr\xf3pico Claude","codex":"CLI del C\xf3dice OpenAI","droid":"Asistente de IA de droide de f\xe1brica","openclaw":"Asistente de IA Open Claw","cline":"CLI del asistente de codificaci\xf3n AI de Cline","kilo":"CLI del Asistente de Inteligencia Artificial de Kilo Code","cursor":"Editor de c\xf3digo AI del cursor","continue":"Continuar Asistente de IA","opencode":"OpenCode AI coding agent (Terminal)","kiro":"Amazon Kiro — AI-powered IDE"},"guides":{"cursor":{"notes":{"0":"Requiere una cuenta de Cursor Pro para utilizar esta funci\xf3n.","1":"El cursor enruta las solicitudes a trav\xe9s de su propio servidor, por lo que no se admite el punto final local. Habilite Cloud Endpoint en Configuraci\xf3n."},"steps":{"1":{"title":"Abrir configuraci\xf3n","desc":"Vaya a Configuraci\xf3n -> Modelos"},"2":{"title":"Habilitar la API OpenAI","desc":"Habilite la opci\xf3n \\"Clave API OpenAI\\""},"3":{"title":"URL b\xe1sica"},"4":{"title":"Clave API"},"5":{"title":"Agregar modelo personalizado","desc":"Haga clic en \\"Ver todos los modelos\\" -> \\"Agregar modelo personalizado\\""},"6":{"title":"Seleccionar modelo"}}},"continue":{"steps":{"1":{"title":"Abrir configuraci\xf3n","desc":"Abrir el archivo de configuraci\xf3n Continuar"},"2":{"title":"Clave API"},"3":{"title":"Seleccionar modelo"},"4":{"title":"Agregar configuraci\xf3n de modelo","desc":"Agregue la siguiente configuraci\xf3n a su matriz de modelos:"}}},"opencode":{"steps":{"1":{"title":"Install OpenCode","desc":"Install via npm: npm install -g opencode-ai"},"2":{"title":"API Key"},"3":{"title":"Set Base URL","desc":"opencode config set baseUrl {{baseUrl}}"},"4":{"title":"Select Model"}}},"kiro":{"steps":{"1":{"title":"Open Kiro Settings","desc":"Go to Settings → AI Provider"},"2":{"title":"Base URL","desc":"Paste your OmniRoute endpoint URL"},"3":{"title":"API Key"},"4":{"title":"Select Model"}}}}},"combos":{"title":"combos","description":"Cree combinaciones de modelos con enrutamiento ponderado y soporte alternativo","createCombo":"Crear combinaci\xf3n","editCombo":"Editar combinaci\xf3n","deleteCombo":"Eliminar combinaci\xf3n","noModels":"Sin modelos","noModelsYet":"A\xfan no se han agregado modelos","addModel":"Agregar modelo","addModelToCombo":"Agregar modelo al combo","routingStrategy":"Estrategia de enrutamiento","maxRetries":"Reintentos m\xe1ximos","timeout":"Tiempo de espera (ms)","healthcheck":"control de salud","priority":"Prioridad","fallback":"Respaldo","roundRobin":"Ronda Robin","random":"Aleatorio","leastLatency":"Menor latencia","comboName":"Nombre combinado","comboNamePlaceholder":"mi-combo","deleteConfirm":"\xbfEliminar esta combinaci\xf3n?","noCombosYet":"A\xfan no hay combinaciones","comboCreated":"Combo creado exitosamente","comboUpdated":"Combo actualizado exitosamente","comboDeleted":"Combinaci\xf3n eliminada","failedCreate":"No se pudo crear el combo","failedUpdate":"No se pudo actualizar el combo","errorCreating":"Error al crear combo","errorUpdating":"Error al actualizar el combo","errorDeleting":"Error al eliminar el combo","testFailed":"La solicitud de prueba fall\xf3","failedToggle":"No se pudo alternar el combo","testResults":"Resultados de la prueba: {name}","resolvedBy":"Resuelto por:","more":"+{count} m\xe1s","reqs":"requisitos","success":"\xe9xito","proxyConfigured":"Proxy configurado","copyComboName":"Copiar nombre combinado","enableCombo":"Habilitar combinaci\xf3n","disableCombo":"Desactivar combinaci\xf3n","testCombo":"combinaci\xf3n de prueba","duplicate":"Duplicar","proxyConfig":"Configuraci\xf3n de proxy","nameRequired":"El nombre es obligatorio","nameInvalid":"S\xf3lo letras, n\xfameros, -, _, / y . permitido","nameHint":"Letras, n\xfameros, -, _, / y . permitido","priorityDesc":"Retroceso secuencial: prueba primero el modelo 1, luego el 2, etc.","weightedDesc":"Distribuye el tr\xe1fico por porcentaje de peso con respaldo","roundRobinDesc":"Distribuci\xf3n circular: cada solicitud pasa al siguiente modelo en rotaci\xf3n","randomDesc":"Selecci\xf3n aleatoria uniforme y luego recurrir a los modelos restantes.","leastUsedDesc":"Elige el modelo con menos solicitudes y equilibra la carga a lo largo del tiempo.","costOptimizedDesc":"Rutas al modelo m\xe1s barato primero seg\xfan el precio","models":"Modelos","autoBalance":"Equilibrio autom\xe1tico","advancedSettings":"Configuraci\xf3n avanzada","retryDelay":"Retardo de reintento (ms)","concurrencyPerModel":"Concurrencia / Modelo","queueTimeout":"Tiempo de espera de cola (ms)","advancedHint":"D\xe9jelo vac\xedo para usar los valores predeterminados globales. Estos anulan la configuraci\xf3n por proveedor.","moveUp":"Subir","moveDown":"Bajar","removeModel":"Quitar","saving":"Guardando...","weighted":"ponderado","leastUsed":"Menos utilizado","costOpt":"Opci\xf3n de costo","strategyGuideTitle":"C\xf3mo utilizar esta estrategia","strategyGuideWhen":"cuando usar","strategyGuideAvoid":"evitar cuando","strategyGuideExample":"Ejemplo","strategyGuide":{"priority":{"when":"Tiene un modelo preferido y s\xf3lo desea recurrir al fracaso.","avoid":"Necesita distribuci\xf3n de solicitudes entre modelos.","example":"Modelo de codificaci\xf3n primaria con respaldo m\xe1s econ\xf3mico para cortes."},"weighted":{"when":"Necesita tr\xe1fico controlado dividido entre modelos.","avoid":"No se pueden mantener pesos precisos a lo largo del tiempo.","example":"80% de modelo estable + 20% de implementaci\xf3n de modelo canario."},"round-robin":{"when":"Quiere una distribuci\xf3n predecible y uniforme.","avoid":"Los modelos difieren demasiado en latencia o costo.","example":"Mismo modelo en varias cuentas para distribuir el rendimiento."},"random":{"when":"Quiere una distribuci\xf3n sencilla con una configuraci\xf3n m\xednima.","avoid":"Necesita estrictas garant\xedas de tr\xe1fico.","example":"Creaci\xf3n r\xe1pida de prototipos con modelos equivalentes."},"least-used":{"when":"Quiere un equilibrio adaptativo basado en la demanda en vivo.","avoid":"El tr\xe1fico es demasiado bajo para beneficiarse del equilibrio de uso.","example":"Cargas de trabajo mixtas en las que un modelo a menudo se sobrecarga."},"cost-optimized":{"when":"La reducci\xf3n de costos es su principal prioridad.","avoid":"Faltan datos de precios o est\xe1n desactualizados.","example":"Trabajos en segundo plano o por lotes donde se prefiere un menor costo."}},"advancedHelp":{"maxRetries":"Cu\xe1ntos reintentos se intentan antes de fallar una solicitud.","retryDelay":"Initial wait between retries. Higher values reduce burst pressure.","timeout":"Maximum request duration before aborting.","healthcheck":"Skips unhealthy models/providers from routing decisions.","concurrencyPerModel":"Max simultaneous requests allowed per model in round-robin.","queueTimeout":"How long a request can wait in queue before timing out."},"templatesTitle":"Quick templates","templatesDescription":"Apply a starting profile, then adjust models and config.","templateApply":"Apply template","templateHighAvailability":"High availability","templateHighAvailabilityDesc":"Priority routing with health checks and safe retries.","templateCostSaver":"Cost saver","templateCostSaverDesc":"Cost-optimized routing for budget-first workloads.","templateBalanced":"Balanced load","templateBalancedDesc":"Rutas menos utilizadas para distribuir la demanda a lo largo del tiempo.","usageGuideHide":"Esconder","usageGuideDontShowAgain":"No volver a mostrar","usageGuideShow":"mostrar gu\xeda","quickTestTitle":"Combo listo para validar","quickTestDescription":"Ejecute una prueba ahora para confirmar el comportamiento de reserva y latencia.","testNow":"Prueba ahora","pricingCoverage":"Cobertura de precios","pricingCoverageHint":"La optimizaci\xf3n de costos funciona mejor cuando todos los modelos combinados tienen precios.","pricingAvailable":"Precios disponibles","pricingMissing":"Sin precios","pricingAvailableShort":"carillo","pricingMissingShort":"sin precio","warningRoundRobinSingleModel":"El round-robin es m\xe1s \xfatil con al menos 2 modelos.","warningCostOptimizedPartialPricing":"Solo {priced} de los modelos {total} tienen precios. El enrutamiento puede tener en cuenta parcialmente los costos.","warningCostOptimizedNoPricing":"No se encontraron datos de precios para este combo. El costo optimizado puede enrutarse inesperadamente.","readinessTitle":"\xbfListo para guardar?","readinessDescription":"Revisa la lista de verificaci\xf3n antes de crear o actualizar este combo.","readinessCheckName":"El nombre del combo es v\xe1lido","readinessCheckModels":"Hay al menos un modelo seleccionado","readinessCheckWeights":"El total de pesos es 100%","readinessCheckWeightsOptional":"La regla de pesos no aplica","readinessCheckPricing":"Hay datos de precios disponibles","readinessCheckPricingOptional":"La regla de precios no aplica","saveBlockedTitle":"El guardado est\xe1 bloqueado hasta corregir estos puntos:","saveBlockName":"Define un nombre para el combo.","saveBlockModels":"A\xf1ade al menos un modelo.","saveBlockWeighted":"Ajusta los pesos a 100% (actual: {total}%).","saveBlockPricing":"A\xf1ade precios para al menos un modelo o elige otra estrategia.","recommendationsLabel":"Configuraci\xf3n recomendada","applyRecommendations":"Aplicar recomendaciones","recommendationsUpdated":"Recomendaciones actualizadas para {strategy}.","recommendationsApplied":"Se aplicaron recomendaciones a este combo.","strategyRecommendations":{"priority":{"title":"Base tolerante a fallos","description":"Usa un modelo principal y mant\xe9n una cadena de fallback corta y confiable.","tip1":"Coloca primero tu modelo m\xe1s confiable.","tip2":"Mant\xe9n 1-2 modelos de respaldo con calidad similar.","tip3":"Usa reintentos seguros para absorber fallos transitorios del proveedor."},"weighted":{"title":"Reparto de tr\xe1fico controlado","description":"Ideal para despliegues canary y migraciones graduales entre modelos.","tip1":"Empieza con una divisi\xf3n conservadora como 90/10.","tip2":"Mant\xe9n el total en 100% y autoequilibra tras cambios.","tip3":"Monitorea \xe9xito y latencia antes de subir el peso canary."},"round-robin":{"title":"Reparto de carga predecible","description":"Mejor cuando los modelos son equivalentes y necesitas distribuci\xf3n estable.","tip1":"Usa al menos 2 modelos.","tip2":"Define l\xedmites de concurrencia para evitar r\xe1fagas.","tip3":"Usa timeout de cola para fallar r\xe1pido bajo saturaci\xf3n."},"random":{"title":"Distribuci\xf3n r\xe1pida con poca configuraci\xf3n","description":"\xdasala cuando necesites reparto simple sin garant\xedas estrictas.","tip1":"Usa modelos con perfiles de latencia similares.","tip2":"Mant\xe9n reintentos activos para absorber fallos aleatorios.","tip3":"Prefi\xe9rela para experimentaci\xf3n, no para SLA estrictos."},"least-used":{"title":"Balanceo adaptativo","description":"Enruta a modelos menos usados para reducir cuellos de botella con el tiempo.","tip1":"Funciona mejor con tr\xe1fico continuo.","tip2":"Comb\xednala con health checks para un balanceo m\xe1s seguro.","tip3":"Sigue el uso por modelo para validar la distribuci\xf3n."},"cost-optimized":{"title":"Enrutamiento orientado a costo","description":"Enruta a modelos m\xe1s baratos cuando hay metadatos de precio disponibles.","tip1":"Asegura cobertura de precios para todos los modelos seleccionados.","tip2":"Mant\xe9n un fallback de calidad para prompts dif\xedciles.","tip3":"\xdasala en batch/tareas de fondo donde el costo sea el KPI principal."}}},"costs":{"title":"Costos","budget":"Presupuesto","totalCost":"Costo total","breakdown":"Desglose de costos","noData":"Sin datos de coste","byModel":"Por modelo","byProvider":"Por proveedor"},"endpoint":{"title":"Punto final API","available":"Puntos finales disponibles","cloudProxy":"Proxy en la nube","disableConfirm":"\xbfEst\xe1 seguro de que desea desactivar el proxy en la nube?","baseUrl":"URL b\xe1sica","apiKeyLabel":"Clave API","registeredKeys":"Claves registradas","chatCompletions":"Finalizaciones de chat","responses":"Respuestas","listModels":"Listar modelos","usingCloudProxy":"Usando el proxy en la nube","usingLocalServer":"Usando el servidor local","machineId":"ID de m\xe1quina: {id}...","disableCloud":"Deshabilitar la nube","enableCloud":"Habilitar la nube","modelsAcrossEndpoints":"{models} modelos en {endpoints} puntos finales","chatDesc":"Chat streaming y no streaming con todos los proveedores","embeddings":"Incrustaciones","embeddingsDesc":"Inserciones de texto para b\xfasqueda y canales RAG","imageGeneration":"Generaci\xf3n de im\xe1genes","imageDesc":"Generar im\xe1genes a partir de mensajes de texto","rerank":"Reclasificar","rerankDesc":"Reclasificar documentos por relevancia para una consulta","audioTranscription":"Transcripci\xf3n de audio","audioTranscriptionDesc":"Transcribir archivos de audio a texto (Whisper)","textToSpeech":"Texto a voz","textToSpeechDesc":"Convierta texto en voz con sonido natural","moderations":"Moderaciones","moderationsDesc":"Moderaci\xf3n de contenidos y clasificaci\xf3n de seguridad.","responsesDesc":"API Responses de OpenAI para Codex y flujos de trabajo ag\xe9nticos avanzados","listModelsDesc":"Listar todos los modelos disponibles en todos los proveedores conectados","settingsApiDesc":"Leer y modificar la configuraci\xf3n de OmniRoute a trav\xe9s de la API","settingsApi":"Settings API","categoryCore":"APIs Principales","categoryMedia":"Medios y Multi-Modal","categoryUtility":"Utilidades y Gesti\xf3n","enableCloudTitle":"Habilitar proxy en la nube","whatYouGet":"lo que obtendr\xe1s","cloudBenefitAccess":"Accede a tu API desde cualquier parte del mundo","cloudBenefitShare":"Comparta el punto final con su equipo f\xe1cilmente","cloudBenefitPorts":"No es necesario abrir puertos ni configurar el firewall","cloudBenefitEdge":"Red de borde global r\xe1pida","cloudSessionNote":"Cloud mantendr\xe1 su sesi\xf3n de autenticaci\xf3n durante 1 d\xeda. Si no se utiliza, se eliminar\xe1 autom\xe1ticamente.","cloudUnstableNote":"Actualmente, la nube es inestable con Claude Code OAuth en algunos casos.","cloudConnected":"\xa1Proxy en la nube conectado!","connectingToCloud":"Conect\xe1ndose a la nube...","verifyingConnection":"Verificando conexi\xf3n...","connecting":"Conectando...","verifying":"Verificando...","connected":"\xa1Conectado!","disableCloudTitle":"Deshabilitar el proxy en la nube","disableWarning":"Todas las sesiones de autenticaci\xf3n se eliminar\xe1n de la nube.","syncingData":"Sincronizando datos m\xe1s recientes...","disablingCloud":"Deshabilitando la nube...","syncing":"Sincronizando...","disabling":"Desactivando...","cloudConnectedVerified":"\xa1Cloud Proxy conectado y verificado!","connectedVerificationPending":"Conectado: verificaci\xf3n pendiente","connectedVerificationPendingWithError":"Conectado - verificaci\xf3n pendiente: {error}","cloudDisabledSuccess":"Nube deshabilitada exitosamente","syncedSuccess":"Sincronizado exitosamente","failedDisable":"No se pudo desactivar la nube","failedEnable":"No se pudo habilitar la nube","cloudRequestTimeout":"Tiempo de espera de solicitud de nube","cloudRequestFailed":"Error en la solicitud de nube","cloudWorkerUnreachable":"No se pudo comunicar con el trabajador de la nube. Aseg\xfarese de que el servicio en la nube se est\xe9 ejecutando (npm run dev en /cloud).","connectionFailed":"La conexi\xf3n fall\xf3","syncFailed":"No se pudieron sincronizar los datos de la nube","providerModelsTitle":"{provider} — Modelos","noModelsForProvider":"No hay modelos disponibles para este proveedor.","chat":"Charla","embedding":"incrustar","image":"Imagen","custom":"personalizado","modelsCount":"{count, plural, one {# model} other {# models}}","sectionTitle":"Superficie de integraci\xf3n","sectionDescription":"API compatibles con OpenAI y puntos finales de protocolo operativo","tabApis":"API compatibles con OpenAI","tabProtocols":"Protocolos","tabsAria":"Secciones de punto final","protocolsTitle":"Protocolos","protocolsDescription":"MCP y A2A son puntos finales de primera clase con observabilidad y controles dedicados.","mcpCardTitle":"Servidor MCP","mcpCardDescription":"Protocolo de contexto modelo sobre stdio","a2aCardTitle":"Servidor A2A","a2aCardDescription":"Punto final Agent2Agent JSON-RPC","protocolToolsLabel":"Herramientas","protocolTasksLabel":"Tareas","protocolActiveStreamsLabel":"Corrientes activas","protocolLastActivity":"\xdaltima actividad","quickStart":"Inicio r\xe1pido","openMcpDashboard":"Gesti\xf3n abierta de MCP","openA2aDashboard":"Gesti\xf3n A2A abierta","mcpQuickStartTitle":"Inicio r\xe1pido de MCP","mcpQuickStartStep1":"Ejecute el servidor MCP a trav\xe9s de `omniroute --mcp`.","mcpQuickStartStep2":"Configure su cliente MCP para conectarse a trav\xe9s del transporte est\xe1ndar.","mcpQuickStartStep3":"Invoca herramientas como `omniroute_get_health` y `omniroute_list_combos`.","a2aQuickStartTitle":"Inicio r\xe1pido de A2A","a2aQuickStartStep1":"Descubra la tarjeta de agente en `/.well-known/agent.json`.","a2aQuickStartStep2":"Env\xede solicitudes JSON-RPC a `POST /a2a` usando `message/send` o `message/stream`.","a2aQuickStartStep3":"Realice un seguimiento y controle las tareas utilizando `tasks/get` y `tasks/cancel`.","completionsLegacy":"Completions (Legacy)","completionsLegacyDesc":"Legacy OpenAI text completions — accepts both prompt string and messages array format"},"mcpDashboard":{"loading":"Cargando el panel de MCP...","activate":"activar","deactivate":"desactivar","confirmSwitchCombo":"\xbfConfirmar el combo {action} \\"{combo}\\"?","switchComboFailed":"No se pudo cambiar el estado combinado.","switchComboSuccess":"Combo \\"{combo}\\" actualizado.","confirmApplyProfile":"\xbfAplicar perfil de resiliencia \\"{profile}\\"?","applyProfileFailed":"No se pudo aplicar el perfil de resiliencia.","applyProfileSuccess":"Perfil \\"{profile}\\" aplicado.","confirmResetBreakers":"\xbfReiniciar todos los disyuntores?","resetBreakersFailed":"No se pudo restablecer los disyuntores.","resetBreakersSuccess":"Restablecimiento de los disyuntores.","processStatus":"Estado del proceso","online":"En l\xednea","offline":"Desconectado","pid":"PID","sessionUptime":"tiempo de actividad de la sesi\xf3n","lastHeartbeat":"\xfaltimo latido","activity24h":"Actividad (24h)","totalCalls":"Llamadas totales","successRate":"Tasa de \xe9xito","avgLatency":"Latencia promedio","topTools":"Herramientas superiores","noToolCalls24h":"No hubo llamadas de herramientas en las \xfaltimas 24 horas.","runtimeDetails":"Detalles del tiempo de ejecuci\xf3n","transport":"Transporte","scopesEnforced":"Alcances aplicados","yes":"S\xed","no":"No","lastCall":"\xfaltima llamada","heartbeatPath":"Camino del latido del coraz\xf3n","operationalControls":"Controles operativos","switchCombo":"Combinaci\xf3n de interruptores","inactive":"inactivo","active":"activo","activateCombo":"Activar combo","deactivateCombo":"Desactivar combo","applyResilienceProfile":"Aplicar perfil de resiliencia","profileAggressive":"agresivo","profileBalanced":"equilibrado","profileConservative":"conservador","applyProfile":"Aplicar perfil","resetCircuitBreakers":"Restablecer disyuntores","resetCircuitBreakersHelp":"Borra el estado actual del interruptor y los contadores de fallas para los proveedores.","resetAllBreakers":"Restablecer todos los interruptores","toolsAndScopes":"Herramientas y alcances","tableTool":"Herramienta","tableScopes":"Alcances","tablePhase":"Fase","tableAudit":"Auditor\xeda","auditLog":"Registro de auditor\xeda","auditSummary":"Llamadas: {total} | p\xe1gina {page} de {totalPages}","allTools":"Todas las herramientas","allResults":"Todos los resultados","success":"\xc9xito","failure":"Falla","apiKeyIdPlaceholder":"apiKeyId","loadingAuditEntries":"Loading audit entries...","noAuditEntriesForFilters":"No audit entries found for current filters.","tableTimestamp":"Timestamp","tableDuration":"Duration","tableResult":"Result","tableApiKey":"API key","failed":"failed","previous":"Previous","next":"Next"},"a2aDashboard":{"loading":"Loading A2A dashboard...","confirmCancelTask":"Cancel task {taskId}?","cancelTaskFailed":"No se pudo cancelar la tarea.","cancelTaskSuccess":"Tarea {taskId} cancelada.","smokeSendFailed":"message/send smoke test failed.","smokeSendSuccessWithTask":"message/send ok (task {taskId}).","smokeSendSuccess":"message/send ok.","smokeStreamFailed":"message/stream smoke test failed.","smokeStreamSuccessWithTask":"message/stream ok (task {taskId}{stateSuffix}).","smokeStreamNoTaskId":"message/stream finished without task id.","health":"Health","ok":"ok","totalTasks":"Total tasks","activeStreams":"Corrientes activas","lastTask":"Last task","taskStateOverview":"Task state overview","state":{"submitted":"submitted","working":"working","completed":"completed","failed":"failed","cancelled":"cancelado"},"agentCard":"tarjeta de agente","version":"Versi\xf3n","url":"URL","capabilities":"Capacidades","agentCardNotAvailable":"Tarjeta de agente no disponible.","quickValidation":"Validaci\xf3n r\xe1pida","quickValidationDescription":"Ejecuta llamadas de humo a trav\xe9s del punto final `/a2a` en vivo.","runMessageSend":"Run message/send","runMessageStream":"Run message/stream","taskManagement":"Task management","taskSummary":"{total} tasks | page {page} of {totalPages}","allStates":"all","allSkills":"all skills","loadingTasks":"Loading tasks...","noTasksForFilters":"No tasks found for current filters.","tableTask":"Task","tableSkill":"Skill","tableState":"State","tableUpdated":"Updated","tableActions":"Actions","view":"Vista","cancel":"Cancelar","previous":"Previous","next":"Next","taskDetail":"Detalle de la tarea","close":"Cerca","metadata":"Metadatos","events":"Eventos","artifacts":"Artefactos"},"health":{"title":"Estado del sistema","description":"Monitoreo en tiempo real de su instancia de OmniRoute","healthy":"saludable","degraded":"degradado","down":"abajo","uptime":"tiempo de actividad","memory":"Memoria","memoryRss":"Memoria (RSS)","heap":"mont\xf3n","cpu":"CPU","database":"Base de datos","version":"Versi\xf3n","lastCheck":"\xfaltimo cheque","providerHealth":"Salud del proveedor","systemMetrics":"M\xe9tricas del sistema","tokenHealth":"Salud del token","refreshAll":"Actualizar todo","checkNow":"Comprobar ahora","loadingHealth":"Cargando datos de salud...","failedToLoad":"No se pudieron cargar los datos de salud: {error}","retry":"Reintentar","allOperational":"Todos los sistemas operativos.","issuesDetected":"Problemas del sistema detectados","updatedAt":"Actualizado {time}","latency":"Latencia","latencyP50":"p50","latencyP95":"p95","latencyP99":"p99","millisecondsShort":"{value}ms","notAvailable":"—","totalRequests":"Solicitudes totales","noDataYet":"A\xfan no hay datos","promptCache":"Cach\xe9 de aviso","entries":"Entradas","hitRate":"Tasa de aciertos","hitsMisses":"Aciertos/fallos","signatureCache":"Cach\xe9 de firma","signatureDefaults":"Valores predeterminados","signatureTool":"Herramienta","signatureFamily":"familia","signatureSession":"Sesi\xf3n","recovering":"Recuperando","noCBData":"No hay datos de disyuntores disponibles. Primero haga algunas solicitudes.","providerHealthStatusAria":"Estado de salud del proveedor","issuesLabel":"Problemas detectados","operational":"Operacional","providers":"Proveedores","healthyCount":"{count} saludable","nodeVersion":"Nodo {version}","failures":"{count} error","failuresPlural":"{count} fallas","lastFailure":"\xfaltimo","rateLimitStatus":"Estado del l\xedmite de tarifa","activeLimiters":"{count} limitador activo","activeLimitersPlural":"{count} limitadores activos","queued":"En cola","queuedCount":"{count} en cola","running":"corriendo","runningCount":"{count} ejecut\xe1ndose","ok":"bien","activeLockouts":"Bloqueos activos","resetConfirm":"\xbfRestablecer todos los disyuntores a un estado saludable? Esto borrar\xe1 todos los recuentos de fallas y restaurar\xe1 todos los proveedores al estado operativo.","resetAllTitle":"Restablezca todos los disyuntores al estado saludable","resetting":"Restableciendo...","resetAll":"Restablecer todo","until":"Hasta {time}"},"limits":{"title":"L\xedmites y cuotas","rateLimit":"L\xedmite de tarifa","remaining":"restante","requestsPerMinute":"Solicitudes/min","tokensPerMinute":"Fichas/min","dailyLimit":"L\xedmite diario"},"logs":{"title":"Registros","requestLogs":"Solicitar registros","proxyLogs":"Registros de proxy","auditLog":"Registro de auditor\xeda","console":"Consola","auditLogDesc":"Acciones administrativas y eventos de seguridad.","loading":"Cargando...","refresh":"Actualizar","filterByAction":"Filtrar por acci\xf3n...","filterByActor":"Filtrar por actor...","filterEntriesAria":"Filtrar entradas del registro de auditor\xeda","filterByActionTypeAria":"Filtrar por tipo de acci\xf3n","filterByActorAria":"Filtrar por actor","refreshAuditLogAria":"Actualizar el registro de auditor\xeda","tableAria":"Entradas del registro de auditor\xeda","failedFetchAuditLog":"No se pudo recuperar el registro de auditor\xeda","showing":"Mostrando entradas {count} (desplazamiento {offset})","search":"Buscar","timestamp":"Marca de tiempo","action":"acci\xf3n","actor":"Actor","target":"Objetivo","details":"Detalles","ipAddress":"Direcci\xf3n IP","notAvailable":"—","noEntries":"No se encontraron entradas del registro de auditor\xeda","previous":"Anterior","next":"Siguiente"},"onboarding":{"welcome":"Bienvenido","security":"Seguridad","test":"prueba","ready":"\xa1Listo!","setPassword":"Establecer contrase\xf1a","addProvider":"A\xf1ade tu primer proveedor","getStarted":"Empezar","skip":"Saltar","skipWizard":"Saltar asistente por completo","skipPassword":"Saltar configuraci\xf3n de contrase\xf1a","skipAndContinue":"Saltar y continuar","passwordLabel":"Contrase\xf1a","confirmPassword":"Confirmar contrase\xf1a","enterPassword":"Introduce la contrase\xf1a","confirmPasswordPlaceholder":"Confirmar contrase\xf1a","passwordsMismatch":"Las contrase\xf1as no coinciden","setupComplete":"\xa1Configuraci\xf3n completa!","goToDashboard":"Ir al Panel →","welcomeDesc":"OmniRoute es su proxy API de IA local. Enruta solicitudes a m\xfaltiples proveedores de IA con equilibrio de carga, conmutaci\xf3n por error y seguimiento de uso.","multiProvider":"Multiproveedor","usageTracking":"Seguimiento de uso","apiKeyMgmt":"Gesti\xf3n de claves API","securityDesc":"Establezca una contrase\xf1a para proteger su panel u om\xedtala por ahora.","providerDesc":"Conecte su primer proveedor de IA. Puedes agregar m\xe1s m\xe1s tarde.","apiKeyRequired":"Clave API (obligatoria)","customUrlOptional":"URL personalizada (opcional)","testDesc":"Verifiquemos que la conexi\xf3n de su proveedor funcione.","runTest":"Ejecutar prueba de conexi\xf3n","testingConnection":"Probando conexi\xf3n...","connectionSuccessful":"\xa1Conexi\xf3n exitosa! Su proveedor est\xe1 listo.","noProviderFound":"No se encontr\xf3 ning\xfan proveedor. Puede agregar uno desde el panel m\xe1s tarde.","testFailed":"La prueba fall\xf3, pero puedes configurar esto m\xe1s tarde.","couldNotTest":"No se pudo realizar la prueba en este momento. Puedes probar desde el panel.","doneDesc":"\xa1Est\xe1s listo! Su instancia de OmniRoute est\xe1 configurada y lista para enviar solicitudes de IA.","yourEndpoint":"Su punto final:","continue":"Continuar","retry":"Reintentar","failedSetPassword":"No se pudo establecer la contrase\xf1a. Intentar otra vez.","failedAddProvider":"No se pudo agregar el proveedor. Intentar otra vez.","connectionError":"Error de conexi\xf3n. Por favor int\xe9ntalo de nuevo.","provider":"Proveedor"},"providers":{"title":"Proveedores","addProvider":"Agregar proveedor","editProvider":"Editar proveedor","deleteProvider":"Eliminar proveedor","noProviders":"No hay proveedores configurados","modelAvailability":"Disponibilidad del modelo","accounts":"Cuentas","newAccount":"Nueva cuenta","deleteConfirm":"\xbfEst\xe1 seguro de que desea eliminar este proveedor?","testing":"Probando...","testConnection":"Conexi\xf3n de prueba","testSuccess":"Conexi\xf3n exitosa","testFailed":"La conexi\xf3n fall\xf3","available":"Disponible","cooldown":"Enfriamiento","unavailable":"No disponible","unknown":"Desconocido","oauthLabel":"OAuth","compatibleLabel":"compatibles","chat":"Charla","responses":"Respuestas","messages":"Mensajes","oauthProviders":"Proveedores de OAuth","freeProviders":"Proveedores gratuitos","apiKeyProviders":"Proveedores de claves API","compatibleProviders":"Proveedores compatibles con claves API","testAll":"Probar todo","testAllOAuth":"Pruebe todas las conexiones OAuth","testAllFree":"Pruebe todas las conexiones gratuitas","testAllApiKey":"Pruebe todas las conexiones de clave API","testAllCompatible":"Pruebe todas las conexiones compatibles","connected":"{count} Conectado","errorCount":"{count} Error ({code})","errorCountNoCode":"{count} Error","noConnections":"Sin conexiones","disabled":"Discapacitado","enableProvider":"Habilitar proveedor","disableProvider":"Deshabilitar proveedor","testResults":"Resultados de la prueba","noCompatibleYet":"A\xfan no se han agregado proveedores compatibles","compatibleHint":"Utilice los botones de arriba para agregar puntos finales compatibles con OpenAI o Anthropic","addOpenAICompatible":"Agregar compatibilidad con OpenAI","addAnthropicCompatible":"A\xf1adir compatible antr\xf3pico","addNewProvider":"Agregar nuevo proveedor","backToProviders":"Volver a Proveedores","configureNewProvider":"Configure un nuevo proveedor de IA para usarlo con sus aplicaciones.","providerLabel":"Proveedor","selectProvider":"Seleccione un proveedor","selectedProvider":"Proveedor seleccionado","authMethod":"M\xe9todo de autenticaci\xf3n","apiKeyLabel":"Clave API","apiKeyRequired":"Se requiere clave API","selectProviderRequired":"Por favor seleccione un proveedor","enterApiKey":"Ingrese su clave API","apiKeySecure":"Su clave API se cifrar\xe1 y almacenar\xe1 de forma segura.","oauth2Connect":"Con\xe9ctate con OAuth2","oauth2Label":"OAuth2","oauth2Desc":"Conecte su cuenta mediante la autenticaci\xf3n OAuth2.","displayName":"Nombre para mostrar","displayNamePlaceholder":"por ejemplo, API de producci\xf3n, entorno de desarrollo","displayNameHint":"Opcional. Un nombre descriptivo para identificar esta configuraci\xf3n.","active":"Activo","activeDescription":"Habilite este proveedor para usarlo en sus aplicaciones","cancel":"Cancelar","createProvider":"Crear proveedor","failedCreate":"No se pudo crear el proveedor","errorOccurred":"Se produjo un error. Por favor int\xe9ntalo de nuevo.","modelStatus":"Estado del modelo","allModelsOperational":"Todos los modelos operativos.","modelsWithIssues":"{count} modelo(s) con problemas","allModelsNormal":"Todos los modelos est\xe1n respondiendo normalmente.","cooldownCleared":"Tiempo de reutilizaci\xf3n borrado para {model}","failedClearCooldown":"No se pudo borrar el tiempo de reutilizaci\xf3n","loadingAvailability":"Cargando disponibilidad de modelos...","clearCooldown":"Borrar","clearing":"Limpiando...","until":"Hasta {time}","providerTestFailed":"La prueba del proveedor fall\xf3","modeTest":"{mode} Prueba","passedCount":"{count} pas\xf3","failedCount":"{count} fall\xf3","testedCount":"{count} probado","millisecondsAbbr":"{value}ms","okShort":"bien","errorShort":"ERROR","noActiveConnectionsInGroup":"No se encontraron conexiones activas para este grupo.","allTestsPassed":"Todas las pruebas {total} pasaron","testSummary":"{passed}/{total} pas\xf3, {failed} fall\xf3","nameLabel":"Nombre","prefixLabel":"Prefijo","baseUrlLabel":"URL b\xe1sica","apiTypeLabel":"Tipo de API","prefixHint":"Requerido. Prefijo \xfanico para nombres de modelos.","nameHint":"Requerido. Una etiqueta amigable para este nodo.","baseUrlHint":"Requerido. URL base de la API del proveedor.","anthropicPrefixPlaceholder":"producto ac","openaiPrefixPlaceholder":"oc-prod","anthropicBaseUrlPlaceholder":"https://api.anthropic.com/v1","openaiBaseUrlPlaceholder":"https://api.openai.com/v1","validateConnection":"Validar conexi\xf3n","validating":"Validando...","connectionValid":"\xa1La conexi\xf3n es v\xe1lida!","connectionFailed":"La conexi\xf3n fall\xf3. Verifique la URL y la clave.","testKeyLabel":"Clave API de prueba","testKeyPlaceholder":"sk-... (solo para validaci\xf3n)","providerNotFound":"Proveedor no encontrado","deleteConnectionConfirm":"\xbfEliminar esta conexi\xf3n?","failedSetAlias":"No se pudo establecer el alias","failedSaveConnection":"No se pudo guardar la conexi\xf3n","failedSaveConnectionRetry":"No se pudo guardar la conexi\xf3n. Por favor int\xe9ntalo de nuevo.","failedRetestConnection":"No se pudo volver a probar la conexi\xf3n","deleteCompatibleNodeConfirm":"\xbfEliminar este {type} nodo compatible?","anthropicCompatibleDetails":"Detalles compatibles antr\xf3picos","openaiCompatibleDetails":"Detalles compatibles con OpenAI","messagesApi":"API de mensajes","responsesApi":"API de respuestas","chatCompletions":"Finalizaciones de chat","importingModels":"Importando...","importFromModels":"Importar desde /modelos","addConnectionToImport":"Agregue una conexi\xf3n para permitir la importaci\xf3n.","noModelsConfigured":"No hay modelos configurados","connectionCount":"{count} conexi\xf3n(es)","fetchingModels":"Recuperando modelos disponibles...","failedFetchModels":"No se pudieron recuperar los modelos","noModelsFound":"No se encontraron modelos","importFailed":"Importaci\xf3n fallida","noNewModelsAdded":"No se agregaron nuevos modelos.","adding":"A\xf1adiendo...","importingModelsTitle":"Importar modelos","copyModel":"Copiar modelo","removeModel":"Quitar modelo","rateLimitProtected":"Protegido","rateLimitUnprotected":"Desprotegido","enableRateLimitProtection":"Haga clic para habilitar la protecci\xf3n del l\xedmite de velocidad","disableRateLimitProtection":"Haga clic para desactivar la protecci\xf3n del l\xedmite de velocidad","productionKey":"Clave de producci\xf3n","enterNewApiKey":"Ingrese la nueva clave API","optional":"Opcional","anthropicCompatibleName":"Compatible antr\xf3pico","openaiCompatibleName":"Compatible con OpenAI","failedImportModels":"No se pudieron importar modelos","noModelsReturnedFromEndpoint":"No se devolvieron modelos desde el punto final /models.","importingModelsProgress":"Importando {current} de {total} modelos...","foundModelsStartingImport":"Se encontraron {count} modelos. Iniciando importaci\xf3n...","importingModelById":"Importando {modelId}...","importSuccessCount":"\xa1Importado exitosamente {count, plural, one {# model} other {# models}}!","noNewModelsAddedExisting":"No se agregaron nuevos modelos (todos ya existen).","importDoneCount":"✓ \xa1Listo! {count, plural, one {# model imported.} other {# models imported.}}","unexpectedErrorOccurred":"Ocurri\xf3 un error inesperado","connectionCountLabel":"{count, plural, one {# connection} other {# connections}}","messagesPath":"mensajes","responsesPath":"respuestas","chatCompletionsPath":"chat/finalizaciones","add":"A\xf1adir","edit":"Editar","delete":"Eliminar","anthropic":"antr\xf3pico","openai":"AbiertoAI","singleConnectionPerCompatible":"S\xf3lo se permite una conexi\xf3n por nodo compatible. Agregue otro nodo si necesita m\xe1s conexiones.","connections":"Conexiones","providerProxyTitleConfigured":"Proxy del proveedor: {host}","configured":"configurado","providerProxyConfigureHint":"Configurar proxy para todas las conexiones de este proveedor","providerProxy":"Proxy del proveedor","noConnectionsYet":"A\xfan no hay conexiones","addFirstConnectionHint":"Agregue su primera conexi\xf3n para comenzar","addConnection":"Agregar conexi\xf3n","availableModels":"Modelos disponibles","pageAutoRefresh":"La p\xe1gina se actualizar\xe1 autom\xe1ticamente...","statusDisabled":"discapacitado","statusConnected":"conectado","statusRuntimeIssue":"problema de tiempo de ejecuci\xf3n","statusAuthFailed":"autenticaci\xf3n fallida","statusRateLimited":"tarifa limitada","statusNetworkIssue":"problema de red","statusTestUnsupported":"prueba no compatible","statusUnavailable":"no disponible","statusFailed":"fall\xf3","statusError":"error","oauthAccount":"Cuenta OAuth","errorTypeRuntime":"Tiempo de ejecuci\xf3n local","errorTypeUpstreamAuth":"autenticaci\xf3n ascendente","errorTypeMissingCredential":"credencial faltante","errorTypeRefreshFailed":"Error al actualizar","errorTypeTokenExpired":"Token caducado","errorTypeRateLimited":"Tarifa limitada","errorTypeUpstreamUnavailable":"Upstream no disponible","errorTypeNetworkError":"error de red","errorTypeTestUnsupported":"Prueba no compatible","errorTypeUpstreamError":"Error ascendente","proxySourceGlobal":"Mundial","proxySourceProvider":"Proveedor","proxySourceKey":"clave","proxyConfiguredBySource":"Proxy ({source}): {host}","autoPriority":"Autom\xe1tico: {priority}","proxy":"apoderado","retestAuthentication":"Volver a probar la autenticaci\xf3n","retest":"Volver a probar","disableConnection":"Desactivar conexi\xf3n","enableConnection":"Habilitar conexi\xf3n","reauthenticateConnection":"Volver a autenticar esta conexi\xf3n","proxyConfig":"Configuraci\xf3n de proxy","aliasExistsAlert":"El alias \\"{alias}\\" ya existe. Utilice un modelo diferente o edite el alias existente.","openRouterAnyModelHint":"OpenRouter admite cualquier modelo. Agregue modelos y cree alias para un acceso r\xe1pido.","modelIdFromOpenRouter":"ID del modelo (de OpenRouter)","openRouterModelPlaceholder":"antr\xf3pico/claude-3-opus","customModels":"Modelos personalizados","customModelsHint":"Agregue ID de modelo que no est\xe9n en la lista predeterminada. Estos estar\xe1n disponibles para enrutamiento.","modelId":"ID del modelo","customModelPlaceholder":"por ej. gpt-4.5-turbo","loading":"Cargando...","removeCustomModel":"Eliminar modelo personalizado","noCustomModels":"A\xfan no se han agregado modelos personalizados.","allSuggestedAliasesExist":"Todos los alias sugeridos ya existen. Elija un modelo diferente o elimine los alias conflictivos.","failedSaveCustomModel":"No se pudo guardar el modelo personalizado","modelAddedSuccess":"Modelo {modelId} agregado exitosamente","failedAddModelTryAgain":"No se pudo agregar el modelo. Por favor int\xe9ntalo de nuevo.","failedSaveImportedModel":"No se pudo guardar el modelo importado en la base de datos personalizada","failedImportModelsTryAgain":"No se pudieron importar modelos. Por favor int\xe9ntalo de nuevo.","failedRemoveModelFromDatabase":"No se pudo eliminar el modelo de la base de datos","modelRemovedSuccess":"Modelo eliminado correctamente","failedDeleteModelTryAgain":"No se pudo eliminar el modelo. Por favor int\xe9ntalo de nuevo.","compatibleModelsDescription":"Agregue modelos compatibles con {type} manualmente o imp\xf3rtelos desde el punto final /models.","anthropicCompatibleModelPlaceholder":"claude-3-opus-20240229","openaiCompatibleModelPlaceholder":"gpt-4o","apiKeyValidationFailed":"La validaci\xf3n de la clave API fall\xf3. Por favor verifique su clave e int\xe9ntelo nuevamente.","addProviderApiKeyTitle":"Agregar clave API {provider}","checking":"Comprobando...","check":"comprobar","valid":"V\xe1lido","invalid":"Inv\xe1lido","creating":"Creando...","validationChecksAnthropicCompatible":"La validaci\xf3n verifica {provider} verificando la clave API.","validationChecksOpenAiCompatible":"La validaci\xf3n verifica {provider} a trav\xe9s de /models en su URL base.","priorityLabel":"Prioridad","saving":"Guardando...","save":"Guardar","editConnection":"Editar conexi\xf3n","accountName":"Nombre de cuenta","email":"Correo electr\xf3nico","healthCheckMinutes":"Control de salud (min)","healthCheckHint":"Intervalo de actualizaci\xf3n de token proactivo. 0 = deshabilitado.","failedTestConnection":"No se pudo probar la conexi\xf3n","failed":"Fallido","leaveBlankKeepCurrentApiKey":"D\xe9jelo en blanco para conservar la clave API actual.","editCompatibleTitle":"Editar {type} Compatible","compatibleBaseUrlHint":"Utilice la URL base (que termina en /v1) para su API compatible con {type}.","apiKeyForCheck":"Clave API (para verificaci\xf3n)","compatibleProdPlaceholder":"{type} Compatible (Prod.)","providerTestTimeout":"Provider test timed out — too many connections to test at once"},"settings":{"title":"Configuraci\xf3n","general":"generales","security":"Seguridad","appearance":"Apariencia","routing":"Enrutamiento","cache":"cach\xe9","resilience":"Resiliencia","systemPrompt":"Aviso del sistema","thinkingBudget":"Pensando en el presupuesto","proxy":"apoderado","pricing":"Precios","storage":"Almacenamiento","policies":"Pol\xedticas","ipFilter":"Filtro IP","comboDefaults":"Valores predeterminados combinados","fallbackChains":"Cadenas de respaldo","changePassword":"Cambiar contrase\xf1a","enablePassword":"Habilitar contrase\xf1a","darkMode":"Modo oscuro","lightMode":"Modo de luz","systemTheme":"Tema del sistema","enableCache":"Habilitar cach\xe9","cacheTTL":"TTL de cach\xe9","maxCacheSize":"Tama\xf1o m\xe1ximo de cach\xe9","clearCache":"Borrar cach\xe9","cacheHits":"Visitas de cach\xe9","cacheMisses":"Errores de cach\xe9","hitRate":"Tasa de aciertos","cacheEntries":"Entradas de cach\xe9","circuitBreaker":"Disyuntor","retryPolicy":"Pol\xedtica de reintento","maxRetries":"Reintentos m\xe1ximos","retryDelay":"Retardo de reintento","timeoutMs":"Tiempo de espera (ms)","enableSystemPrompt":"Habilitar mensaje del sistema","systemPromptText":"Texto de aviso del sistema","enableThinking":"Habilitar el pensamiento","maxThinkingTokens":"Fichas de pensamiento m\xe1ximo","enableProxy":"Habilitar proxy","proxyUrl":"URL de proxy","pricingRates":"Formato de tarifas de precios","currentPricing":"Resumen de precios actuales","loadingPricing":"Cargando datos de precios...","noPricing":"No hay datos de precios disponibles","input":"Entrada","output":"Salida","cached":"En cach\xe9","reasoning":"Razonamiento","cacheCreation":"Creaci\xf3n de cach\xe9","customPricing":"Precios personalizados","databaseSize":"Tama\xf1o de la base de datos","backupDb":"Base de datos de respaldo","restoreDb":"Restaurar base de datos","exportData":"Exportar datos","importData":"Importar datos","clearData":"Borrar todos los datos","clearDataConfirm":"Esto eliminar\xe1 permanentemente todos los datos. \xbfEst\xe1 seguro?","enableRequestLogs":"Habilitar registros de solicitudes","logRetention":"Retenci\xf3n de registros","ipWhitelist":"Lista blanca de IP","ipBlacklist":"Lista negra de IP","addIP":"Agregar IP","savedSuccessfully":"Configuraci\xf3n guardada exitosamente","ai":"IA","advanced":"Avanzado","localMode":"Modo local: todos los datos almacenados en su m\xe1quina","settingsSectionsAria":"Secciones de configuraci\xf3n","switchThemes":"Cambiar entre temas claros y oscuros","themeSelectionAria":"Selecci\xf3n de tema","themeLight":"Luz","themeDark":"oscuro","themeSystem":"Sistema","hideHealthLogs":"Ocultar registros de verificaci\xf3n de estado","hideHealthLogsDesc":"Cuando est\xe1 activado, suprime los mensajes [HealthCheck] en la consola del servidor","themeAccent":"Color del tema","themeAccentDesc":"Elige un color predefinido o crea tu propio tema con un solo color","themeCreate":"Crear tema","themeCustom":"Tema personalizado","themeBlue":"Azul","themeRed":"Rojo","themeGreen":"Verde","themeViolet":"Violeta","themeOrange":"Naranja","themeCyan":"Cian","promptCache":"Cach\xe9 de aviso","flushCache":"Vaciar cach\xe9","flushing":"Sonroj\xe1ndose…","size":"Tama\xf1o","hits":"Visitas","evictions":"Desalojos","loadingCacheStats":"Cargando estad\xedsticas de cach\xe9…","globalProxy":"Proxy global","globalProxyDesc":"Configure un proxy saliente global para todas las llamadas API. Los proveedores individuales, los combos y las claves pueden anular esto.","noGlobalProxy":"No hay ning\xfan proxy global configurado","globalLabel":"Mundial","configure":"Configurar","globalSystemPrompt":"Aviso del sistema global","systemPromptDesc":"Inyectado en todas las solicitudes a nivel de proxy","saved":"Guardado","systemPromptPlaceholder":"Ingrese el mensaje del sistema para inyectar en todas las solicitudes...","systemPromptHint":"Este mensaje se antepone al mensaje del sistema de cada solicitud. \xdaselo para instrucciones globales, pautas de seguridad o reglas de formato de respuesta.","chars":"{count} caracteres","thinkingBudgetTitle":"Pensando en el presupuesto","thinkingBudgetDesc":"Controle el uso del token de razonamiento de IA en todas las solicitudes","passthrough":"Paso a trav\xe9s","passthroughDesc":"Sin cambios: el cliente controla el presupuesto pensando en","auto":"Autom\xe1tico","autoDesc":"Elimine toda configuraci\xf3n de pensamiento: deje que el proveedor decida","custom":"personalizado","customDesc":"Establecer un presupuesto de token fijo para todas las solicitudes","adaptive":"Adaptativo","adaptiveDesc":"Escale el presupuesto seg\xfan la complejidad de la solicitud","effortNone":"Ninguno (0 fichas)","effortLow":"Bajo (1K tokens)","effortMedium":"Medio (10.000 tokens)","effortHigh":"Alto (128.000 tokens)","tokenBudget":"Presupuesto simb\xf3lico","tokens":"fichas","baseEffortLevel":"Nivel de esfuerzo base","adaptiveHint":"El modo adaptable escala desde este nivel base seg\xfan el recuento de mensajes, el uso de herramientas y la duraci\xf3n del mensaje.","requireLogin":"Requerir inicio de sesi\xf3n","requireLoginDesc":"Cuando est\xe1 activado, el panel requiere contrase\xf1a. Cuando est\xe9 APAGADO, acceda sin iniciar sesi\xf3n.","currentPassword":"Contrase\xf1a actual","enterCurrentPassword":"Ingrese la contrase\xf1a actual","newPassword":"Nueva contrase\xf1a","enterNewPassword":"Ingrese una nueva contrase\xf1a","confirmPassword":"Confirmar nueva contrase\xf1a","confirmPasswordPlaceholder":"Confirmar nueva contrase\xf1a","passwordsNoMatch":"Las contrase\xf1as no coinciden","passwordUpdated":"Contrase\xf1a actualizada exitosamente","failedUpdatePassword":"No se pudo actualizar la contrase\xf1a","errorOccurred":"Se produjo un error","updatePassword":"Actualizar contrase\xf1a","setPassword":"Establecer contrase\xf1a","apiEndpointProtection":"Protecci\xf3n de terminales API","requireAuthModels":"Requerir clave API para /models","requireAuthModelsDesc":"Cuando est\xe1 activado, el punto final /v1/models devuelve 404 para solicitudes no autenticadas. Impide el descubrimiento del modelo por parte de usuarios no autorizados.","blockedProviders":"Proveedores bloqueados","blockedProvidersDesc":"Oculte proveedores espec\xedficos de la respuesta /v1/models. Los proveedores bloqueados no aparecer\xe1n en los listados de modelos.","providersBlocked":"{count} proveedor(es) bloqueado(s) en /models","blockProviderTitle":"Bloquear {provider}","unblockProviderTitle":"Desbloquear {provider}","routingStrategy":"Estrategia de enrutamiento","fillFirst":"Llenar primero","fillFirstDesc":"Utilice cuentas en orden de prioridad","roundRobin":"Ronda Robin","roundRobinDesc":"Recorrer todas las cuentas","p2c":"P2C","p2cDesc":"Elige 2 al azar, usa el m\xe1s saludable.","random":"Aleatorio","randomDesc":"Cuenta aleatoria cada solicitud","leastUsed":"Menos usado","leastUsedDesc":"Elija la cuenta utilizada menos recientemente","costOpt":"Opci\xf3n de costo","costOptDesc":"Prefiere la cuenta m\xe1s barata disponible","stickyLimit":"L\xedmite fijo","stickyLimitDesc":"Llamadas por cuenta antes de cambiar","modelAliases":"Alias de modelo","modelAliasesTitle":"Aliases de Modelo","modelAliasesDesc":"Patrones comod\xedn para reasignar nombres de modelos • Utilice * y ?","addCustomAlias":"Agregar Alias Personalizado","deprecatedModelId":"ID del modelo obsoleto","newModelId":"Nuevo ID del modelo","customAliases":"Aliases Personalizados","builtInAliases":"Aliases Integrados","backgroundDegradationTitle":"Degradaci\xf3n de Tareas en Segundo Plano","backgroundDegradationDesc":"Detecta autom\xe1ticamente tareas en segundo plano (t\xedtulos, res\xfamenes) y redirige a modelos m\xe1s baratos","enableDegradation":"Activar Degradaci\xf3n en Segundo Plano","enableDegradationHint":"Cuando est\xe1 activado, las tareas en segundo plano como generaci\xf3n de t\xedtulos y res\xfamenes se redirigen autom\xe1ticamente a modelos m\xe1s baratos","tasksDetected":"Tareas detectadas","degradationMap":"Mapa de Degradaci\xf3n de Modelos","premiumModel":"Modelo premium","cheapModel":"Modelo econ\xf3mico","detectionPatterns":"Patrones de Detecci\xf3n","newPattern":"ej: \\"generar un t\xedtulo\\"","aliasPatternPlaceholder":"claude-soneto-*","aliasTargetPlaceholder":"claude-soneto-4-20250514","pattern":"Patr\xf3n","targetModel":"Modelo objetivo","add":"+ Agregar","session":"Sesi\xf3n","sessionDetailsAria":"Detalles de la sesi\xf3n","status":"Estado","authenticated":"Autenticado","guest":"Invitado","loginTime":"Hora de inicio de sesi\xf3n","sessionAge":"Edad de la sesi\xf3n","browser":"Navegador","clearLocalData":"Borrar datos locales","logout":"Cerrar sesi\xf3n","clearLocalDataConfirm":"\xbfBorrar todos los datos locales? Esto restablecer\xe1 sus preferencias.","unknown":"Desconocido","systemActor":"sistema","ipAccessControl":"Control de acceso IP","ipAccessControlDesc":"Bloquear o permitir direcciones IP espec\xedficas","ipModeDisabled":"Discapacitado","ipModeBlacklist":"Lista negra","ipModeWhitelist":"Lista blanca","ipModeWhitelistPriority":"Prioridad WL","addIpAddress":"Agregar direcci\xf3n IP","ipAddressPlaceholder":"192.168.1.0/24 o 10.0.*.*","block":"+ Bloquear","allow":"+ Permitir","blocked":"Bloqueado ({count})","allowed":"Permitido ({count})","temporaryBans":"Prohibiciones temporales ({count})","minLeft":"{min}m restantes","auditLog":"Registro de auditor\xeda","searchAuditLogs":"Buscar registros de auditor\xeda...","failedLoadAuditLog":"No se pudo cargar el registro de auditor\xeda","noAuditEvents":"No se encontraron eventos de auditor\xeda","action":"acci\xf3n","actor":"Actor","details":"Detalles","time":"tiempo","fallbackChainsTitle":"Cadenas de respaldo","fallbackChainsDesc":"Definir el orden de reserva del proveedor por modelo","addChain":"+ Agregar cadena","modelName":"Nombre del modelo","modelNamePlaceholder":"claude-soneto-4-20250514","providersCommaSeparated":"Proveedores (separados por comas, en orden de prioridad)","providersCommaSeparatedPlaceholder":"antr\xf3pico, openai, g\xe9minis","createChain":"Crear cadena","noFallbackChains":"Sin cadenas de respaldo","noFallbackChainsDesc":"Cree una cadena para definir el orden de reserva del proveedor para un modelo.","loadingFallbackChains":"Cargando cadenas de reserva...","deleteChainConfirm":"\xbfEliminar la cadena alternativa para \\"{model}\\"?","chainCreated":"Cadena creada para {model}","chainDeleted":"Cadena eliminada para {model}","failedCreateChain":"No se pudo crear la cadena","failedDeleteChain":"No se pudo eliminar la cadena","deleteChain":"Eliminar cadena","fillModelAndProviders":"Por favor complete el nombre del modelo y los proveedores","addAtLeastOneProvider":"A\xf1ade al menos un proveedor","comboDefaultsTitle":"Valores predeterminados combinados","globalComboConfig":"Configuraci\xf3n combinada global","defaultStrategy":"Estrategia predeterminada","defaultStrategyDesc":"Aplicado a nuevos combos sin estrategia expl\xedcita.","comboStrategyAria":"estrategia combinada","priority":"Prioridad","weighted":"ponderado","maxRetriesLabel":"Reintentos m\xe1ximos","retryDelayLabel":"Retardo de reintento (ms)","timeoutLabel":"Tiempo de espera (ms)","healthCheck":"Control de salud","healthCheckDesc":"Verificar previamente la disponibilidad del proveedor","trackMetrics":"Seguimiento de m\xe9tricas","trackMetricsDesc":"Registre m\xe9tricas de solicitudes por combo","providerOverrides":"Anulaciones de proveedores","providerOverridesDesc":"Anule el tiempo de espera y los reintentos por proveedor. La configuraci\xf3n del proveedor anula los valores predeterminados globales.","providerMaxRetriesAria":"{provider} reintentos m\xe1ximos","providerTimeoutAria":"{provider} tiempo de espera ms","removeProviderOverrideAria":"Eliminar la anulaci\xf3n de {provider}","newProviderNamePlaceholder":"por ej. google, openai...","newProviderNameAria":"Nuevo nombre del proveedor","retries":"reintentos","ms":"se\xf1ora","saveComboDefaults":"Guardar valores predeterminados combinados","maxNestingDepth":"Profundidad m\xe1xima de anidamiento","concurrencyPerModel":"Concurrencia / Modelo","queueTimeout":"Tiempo de espera de cola (ms)","providerProfiles":"Perfiles de proveedores","providerProfilesDesc":"Configuraciones de resiliencia separadas para proveedores de OAuth (basado en sesiones) y de clave API (medidas). Los proveedores de OAuth tienen umbrales m\xe1s estrictos debido a l\xedmites de tarifas m\xe1s bajos.","oauthProviders":"Proveedores de OAuth","apiKeyProviders":"Proveedores de claves API","transientCooldown":"Enfriamiento transitorio","rateLimitCooldown":"Enfriamiento del l\xedmite de velocidad","maxBackoffLevel":"Nivel m\xe1ximo de retroceso","cbThreshold":"Umbral CB","cbResetTime":"Tiempo de reinicio del CB","rateLimiting":"Limitaci\xf3n de tasa","rateLimitingDesc":"Los proveedores de claves API tienen una velocidad limitada autom\xe1ticamente con valores predeterminados seguros. Los l\xedmites se aprenden de los encabezados de respuesta y se adaptan con el tiempo.","defaultSafetyNet":"Red de seguridad predeterminada","rpm":"RPM","minGap":"Brecha m\xednima","maxConcurrent":"M\xe1ximo concurrente","activeLimiters":"Limitadores activos","noActiveLimiters":"A\xfan no hay limitadores de tarifas activos.","reservoir":"dep\xf3sito","running":"corriendo","queued":"En cola","circuitBreakers":"Disyuntores","breakerStateClosed":"Cerrado","breakerStateOpen":"Abierto","breakerStateHalfOpen":"Medio abierto","tripped":"{count} se dispar\xf3","healthy":"{count} saludable","resetAll":"Restablecer todo","noCircuitBreakers":"A\xfan no hay disyuntores activos. Se crean autom\xe1ticamente cuando las solicitudes fluyen a trav\xe9s del canal combinado.","failures":"{count} falla(s)","policiesLocked":"Pol\xedticas e identificadores bloqueados","allOperational":"Todos los sistemas operativos: sin bloqueos ni disyuntores disparados","loadingPolicies":"Cargando pol\xedticas...","lockedIdentifiers":"Identificadores bloqueados","unlockedIdentifier":"Desbloqueado: {identifier}","sinceDate":"desde {date}","forceUnlock":"Forzar desbloqueo","unlocking":"Desbloqueando...","failedUnlock":"No se pudo desbloquear","failedLoadWithStatus":"No se pudo cargar: {status}","failedLoadResilience":"No se pudo cargar el estado de resiliencia","saveFailed":"Error al guardar","resetFailed":"Error al restablecer","loadingResilience":"Cargando estado de resiliencia...","retry":"Reintentar","systemStorage":"Sistema y almacenamiento","allDataLocal":"Todos los datos almacenados localmente en su m\xe1quina","databasePath":"Ruta de la base de datos","exportDatabase":"Exportar base de datos","exportAll":"Exportar todo (.tar.gz)","importDatabase":"Importar base de datos","confirmDbImport":"Confirmar la importaci\xf3n de la base de datos","confirmDbImportDesc":"Esto reemplazar\xe1 todos los datos actuales con el contenido de {file}. Se crear\xe1 una copia de seguridad autom\xe1ticamente antes de la importaci\xf3n.","yesImport":"Si, importar","lastBackup":"\xdaltima copia de seguridad","noBackupYet":"A\xfan no hay copia de seguridad","backupNow":"Copia de seguridad ahora","backupRestore":"Copia de seguridad y restauraci\xf3n","viewBackups":"Ver copias de seguridad","hide":"Ocultar","backupRetentionDesc":"Las instant\xe1neas de la base de datos se crean autom\xe1ticamente antes de la restauraci\xf3n y cada 15 minutos cuando cambian los datos. Retenci\xf3n: 24 horas + 30 respaldos diarios con rotaci\xf3n inteligente.","loadingBackups":"Cargando copias de seguridad...","noBackupsYet":"A\xfan no hay copias de seguridad disponibles. Las copias de seguridad se crear\xe1n autom\xe1ticamente cuando cambien los datos.","backupsAvailable":"{count} copias de seguridad disponibles","refresh":"Actualizar","confirm":"\xbfConfirmar?","yes":"si","no":"No","restore":"Restaurar","invalidFileType":"Tipo de archivo no v\xe1lido. S\xf3lo se aceptan archivos .sqlite.","exportFailed":"Exportaci\xf3n fallida","exportFailedWithError":"Error al exportar: {error}","fullExportFailedWithError":"Error en la exportaci\xf3n completa: {error}","backupCreated":"Copia de seguridad creada: {file}","restoreSuccess":"\xa1Restaurado! {connections} conexiones, {nodes} nodos, {combos} combos, {apiKeys} claves API.","importSuccess":"\xa1Base de datos importada! {connections} conexiones, {nodes} nodos, {combos} combos, {apiKeys} claves API.","justNow":"justo ahora","minutesAgo":"Hace {count}m","hoursAgo":"Hace {count}h","daysAgo":"Hace {count}d","backupReasonManual":"manuales","backupReasonPreRestore":"pre-restauraci\xf3n","connectionsCount":"{count, plural, one {# connection} other {# connections}}","noChangesSinceBackup":"No hay cambios desde la \xfaltima copia de seguridad","backupFailed":"Error en la copia de seguridad","restoreFailed":"Restauraci\xf3n fallida","importFailed":"Importaci\xf3n fallida","errorDuringRestore":"Se produjo un error durante la restauraci\xf3n.","errorDuringImport":"Se produjo un error durante la importaci\xf3n.","modelPricing":"Precios del modelo","modelPricingDesc":"Configurar tarifas de costo por modelo • Todas las tarifas en tokens de $/1 mill\xf3n","providers":"Proveedores","registry":"Registro","priced":"Precio","searchProvidersModels":"Buscar proveedores o modelos...","showAll":"Mostrar todo","noProvidersMatch":"Ning\xfan proveedor coincide con su b\xfasqueda.","howPricingWorks":"C\xf3mo funcionan los precios","cacheWrite":"Escritura en cach\xe9","unsaved":"no salvo","resetDefaults":"Restablecer valores predeterminados","saveProvider":"Guardar proveedor","saving":"Guardando...","model":"modelo","models":"modelos","moreProviders":"{count} m\xe1s proveedores","withPricing":"con precios configurados","policiesCircuitBreakers":"Pol\xedticas y disyuntores","activeIssuesDetected":"Problemas activos detectados","off":"Apagado","resetPricingConfirm":"\xbfRestablecer todos los precios de {provider} a los valores predeterminados?","pricingDescInput":"Entrada: tokens enviados al modelo.","pricingDescOutput":"Salida: tokens generados","pricingDescCached":"En cach\xe9: entrada reutilizada (~50% de la tasa de entrada)","pricingDescReasoning":"Razonamiento: tokens de pensamiento (vuelve a Salida)","pricingDescCacheWrite":"Escritura de cach\xe9: creaci\xf3n de entradas de cach\xe9 (recurre a Entrada)","pricingDescFormula":"Costo = (entrada \xd7 tasa_entrada) + (salida \xd7 tasa_salida) + (almacenado en cach\xe9 \xd7 tasa_almacenamiento) por mill\xf3n de tokens.","pricingSettingsTitle":"Configuraci\xf3n de precios","totalModels":"Modelos totales","active":"Activo","costCalculation":"C\xe1lculo de costos","costCalculationDesc":"Los costos se calculan en funci\xf3n del uso de tokens y las tarifas de precios configuradas para cada modelo.","pricingFormat":"Formato de precios","pricingFormatDesc":"Todas las tarifas est\xe1n en tokens de $/1 mill\xf3n (d\xf3lares por mill\xf3n de tokens).","tokenTypes":"Tipos de tokens","inputTokenDesc":"Fichas de aviso est\xe1ndar","outputTokenDesc":"Fichas de finalizaci\xf3n/respuesta","cachedTokenDesc":"Tokens de entrada almacenados en cach\xe9 (normalmente el 50 % de la tasa de entrada)","reasoningTokenDesc":"Fichas especiales de razonamiento/pensamiento (retroceso a la tasa de producci\xf3n)","cacheCreationTokenDesc":"Tokens utilizados para crear entradas de cach\xe9 (retroceso a la tasa de entrada)","customPricingNote":"Puede anular los precios predeterminados para modelos espec\xedficos. Las anulaciones personalizadas tienen prioridad sobre los precios detectados autom\xe1ticamente.","editPricing":"Editar precios","viewFullDetails":"Ver todos los detalles","themeCoral":"Coral","cliFingerprint":"CLI Fingerprint Matching","cliFingerprintDesc":"Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.","cliFingerprintEnabled":"{count} provider(s) with CLI fingerprint active","enableFingerprintTitle":"Enable fingerprint for {provider}","disableFingerprintTitle":"Disable fingerprint for {provider}"},"translator":{"title":"Traductor","metaTitle":"Patio de juegos del traductor | OmniRuta","metaDescription":"Depurar, probar y visualizar traducciones de formatos API entre proveedores","playgroundTitle":"Patio de juegos del traductor","playground":"Zona de juegos","realtime":"Actividad de traducci\xf3n en tiempo real","chatTester":"Probador de chat","testBench":"Banco de pruebas","liveMonitor":"Monitor en vivo","modeDescriptionPlayground":"Pegue cualquier cuerpo de solicitud de API y vea c\xf3mo OmniRoute lo traduce entre formatos de proveedores (OpenAI ↔ Claude ↔ Gemini ↔ API de respuestas)","modeDescriptionChatTester":"Env\xede solicitudes de chat reales a trav\xe9s de OmniRoute e inspeccione el recorrido completo: entrada, solicitud traducida, respuesta del proveedor y salida traducida.","modeDescriptionTestBench":"Ejecute escenarios predefinidos y compare la compatibilidad entre proveedores y modelos.","modeDescriptionLiveMonitor":"Vea los eventos de traducci\xf3n en tiempo real a medida que las solicitudes fluyen a trav\xe9s de OmniRoute.","modeDescriptionFallback":"Depure, pruebe y visualice c\xf3mo OmniRoute traduce las solicitudes de API entre proveedores.","recentTranslations":"Traducciones recientes","noTranslations":"A\xfan no hay traducciones","source":"Fuente","target":"Objetivo","time":"tiempo","model":"modelo","status":"Estado","latency":"Latencia","totalTranslations":"Traducciones totales","successful":"Exitoso","errors":"Errores","avgLatency":"Latencia promedio","millisecondsShort":"{value}ms","notAvailableSymbol":"—","liveAutoRefreshing":"En vivo: actualizaci\xf3n autom\xe1tica","paused":"En pausa","eventsAppearHint":"Los eventos de traducci\xf3n aparecen aqu\xed a medida que las solicitudes fluyen a trav\xe9s de OmniRoute. Utilice cualquiera de estos m\xe9todos para generar eventos:","chatTesterTab":"Pesta\xf1a Probador de chat","testBenchTab":"Pesta\xf1a Banco de pruebas","externalApiCalls":"Llamadas API externas","ideCliIntegrations":"Integraciones IDE/CLI","inMemoryNote":"Nota: Los eventos se almacenan en la memoria y se restablecen cuando se reinicia el servidor.","ok":"bien","errorShort":"ERROR","formatConverter":"Convertidor de formato","formatConverterDescription":"Pegue o escriba un cuerpo de solicitud JSON. El traductor detectar\xe1 autom\xe1ticamente el formato de origen y lo convertir\xe1 al formato de destino. Utilice esto para depurar c\xf3mo OmniRoute traduce solicitudes entre formatos (OpenAI ↔ Claude ↔ Gemini ↔ API de respuestas).","input":"Entrada","output":"Salida","auto":"Autom\xe1tico","swapFormats":"Intercambiar formatos","translateAction":"Traducir","clear":"Borrar","inputPlaceholder":"Pegue el cuerpo de una solicitud aqu\xed o seleccione una plantilla a continuaci\xf3n...","exampleTemplates":"Plantillas de ejemplo","exampleTemplatesHint":"— Haga clic para cargar","templateLoadHint":"La plantilla carga la solicitud en formato {format}. Cambie el formato de origen para cargar en un formato diferente.","compatibilityTester":"Probador de compatibilidad","compatibilityReport":"Informe de compatibilidad","testBenchDescription":"Ejecute escenarios predefinidos (chat simple, llamadas de herramientas, etc.) para verificar la traducci\xf3n y la compatibilidad del proveedor. Seleccione un formato de origen y un proveedor de destino, luego ejecute todas las pruebas para ver un porcentaje de compatibilidad. Utilice esto para encontrar qu\xe9 funciones funcionan en todos los proveedores.","targetProvider":"Proveedor objetivo","runAllTests":"Ejecutar todas las pruebas","runTest":"Ejecutar prueba","reRun":"Volver a ejecutar","running":"Corriendo...","passed":"pas\xf3","failed":"fall\xf3","passedIconLabel":"✅ Aprobado","chunks":"trozos","scenarioSimpleChat":"Charla sencilla","scenarioToolCalling":"Llamada de herramientas","scenarioMultiTurn":"multivuelta","scenarioThinking":"Pensando","scenarioSystemPrompt":"Aviso del sistema","scenarioStreaming":"Transmisi\xf3n","templateNames":{"simple-chat":"Charla sencilla","tool-calling":"Llamada de herramientas","multi-turn":"multivuelta","thinking":"Pensando","system-prompt":"Aviso del sistema","streaming":"Transmisi\xf3n"},"templateDescriptions":{"simple-chat":"Mensaje de texto b\xe1sico","tool-calling":"Invocaci\xf3n de funci\xf3n/herramienta","multi-turn":"Conversaci\xf3n con la historia.","thinking":"Pensamiento/razonamiento extendido","system-prompt":"Instrucciones complejas del sistema","streaming":"Solicitud de transmisi\xf3n SSE"},"templatePayloads":{"simpleChat":{"system":"Eres un asistente \xfatil.","userGreeting":"\xa1Hola! \xbfC\xf3mo est\xe1s hoy?"},"toolCalling":{"userWeather":"\xbfCu\xe1l es el clima en S\xe3o Paulo?","toolDescription":"Obtener el clima actual para una ubicaci\xf3n","cityNameDescription":"Nombre de la ciudad"},"multiTurn":{"system":"Eres un asistente de codificaci\xf3n.","userInitial":"Escriba una funci\xf3n para ordenar una matriz en Python.","assistantExample":"Aqu\xed hay una funci\xf3n de clasificaci\xf3n simple:\\n\\n```pit\xf3n\\ndef sort_array(arr):\\n devolver ordenado(arr)\\n```","userFollowUp":"Ahora haz que se clasifique en orden descendente."},"thinking":{"question":"\xbfCu\xe1l es la suma de los primeros 100 n\xfameros primos?"},"systemPrompt":{"systemInstruction":"Eres un ingeniero de software senior especializado en sistemas distribuidos. Responda preguntas de manera concisa utilizando las mejores pr\xe1cticas de la industria. Proporcione siempre ejemplos de c\xf3digo cuando sea relevante. Formatee sus respuestas usando Markdown.","question":"\xbfC\xf3mo implemento un patr\xf3n de disyuntor?"},"streaming":{"prompt":"Cu\xe9ntame una historia corta sobre un robot que aprende a pintar."}},"openaiCompatibleLabel":"Compatible con OpenAI","anthropicCompatibleLabel":"Compatible antr\xf3pico","noTemplateForFormat":"No hay plantilla para este formato","translationFailed":"Error de traducci\xf3n: {error}","pipelineDebugger":"Depurador de canalizaci\xf3n","translationPipeline":"Canal de traducci\xf3n","pipelineVisualization":"Visualizaci\xf3n de tuber\xedas","pipelineVisualizationHint":"Env\xede un mensaje para ver c\xf3mo fluye su solicitud a trav\xe9s de detecci\xf3n → traducci\xf3n → llamada al proveedor.","chatTesterDescription":"Env\xede mensajes en un formato de cliente espec\xedfico e inspeccione cada paso del proceso de traducci\xf3n.","chatTesterFlow":"Solicitud de cliente → Detecci\xf3n de formato → OpenAI Intermedio → Formato de proveedor → Respuesta","clickStepToInspect":"Haga clic en cualquier paso para inspeccionar los datos en esa etapa.","clientFormat":"Formato de cliente","provider":"Proveedor","modelPlaceholder":"Seleccione o escriba un nombre de modelo...","sendMessageToSeePipeline":"Env\xede un mensaje para ver el proceso de traducci\xf3n","chatMessageHintPrefix":"Su mensaje tendr\xe1 el formato de","chatMessageHintSuffix":"solicitud, traducida a trav\xe9s del proceso y enviada al proveedor seleccionado.","youWithFormat":"T\xfa ({format})","assistant":"asistente","typeMessage":"Escribe un mensaje...","send":"enviar","clientRequest":"Solicitud de cliente","clientRequestDescription":"El cuerpo de la solicitud como lo enviar\xeda su cliente.","formatDetected":"Formato detectado","formatDetectedDescription":"OmniRoute auto-detects the API format from the request structure","openaiIntermediate":"Intermedio OpenAI","openaiIntermediateDescription":"All formats are first normalized to OpenAI format (the universal bridge)","providerFormat":"Formato del proveedor","providerFormatDescription":"OpenAI format is translated to the provider\'s native format","providerResponse":"Respuesta del proveedor","providerResponseRawDescription":"La respuesta cruda de la API del proveedor","providerResponseSseDescription":"El flujo SSE sin procesar de la API del proveedor","unexpectedError":"Ocurri\xf3 un error inesperado","error":"error","errorMessage":"Error: {message}","requestFailed":"Solicitud fallida","noTextExtracted":"(No se extrae texto)","liveMonitorDescriptionPrefix":"Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). uso","liveMonitorDescriptionSuffix":"o llamadas API externas para generar eventos."},"usage":{"title":"Uso","loggerTab":"registrador","proxyTab":"apoderado","budgetManagement":"Gesti\xf3n Presupuestaria","budgetSaved":"L\xedmites de presupuesto guardados","budgetSaveFailed":"No se pudo guardar el presupuesto","loadingBudgetData":"Cargando datos de presupuesto...","noApiKeysTitle":"Sin claves API","noApiKeysDescription":"Primero agregue claves API para configurar l\xedmites de presupuesto.","apiKey":"Clave API","todaysSpend":"Gasto de hoy","thisMonth":"este mes","setLimits":"Establecer l\xedmites","dailyLimitUsd":"L\xedmite diario (USD)","monthlyLimitUsd":"L\xedmite mensual (USD)","warningThresholdPercent":"Umbral de advertencia (%)","dailyLimitPlaceholder":"por ej. 5.00","monthlyLimitPlaceholder":"por ej. 50.00","warningThresholdPlaceholder":"80","saveLimits":"Guardar l\xedmites","budgetOk":"Presupuesto correcto: {remaining} restante","budgetExceeded":"Presupuesto excedido: las solicitudes pueden bloquearse","totalRequests":"Solicitudes totales","noDataYet":"A\xfan no hay datos","latency":"Latencia","latencyP50":"p50","latencyP95":"p95","latencyP99":"p99","promptCache":"Cach\xe9 de aviso","systemHealth":"Estado del sistema","entries":"Entradas","activeCount":"{count} activo","openCircuitBreakersDetected":"Se detectaron disyuntores abiertos","hitRate":"Tasa de aciertos","hitsMisses":"Aciertos/fallos","circuitBreakers":"Disyuntores","lockedIPs":"IP bloqueadas","lockoutsAutoRefreshHint":"Bloqueos de l\xedmite de velocidad por modelo • Actualizaci\xf3n autom\xe1tica 10 s","lockedCount":"{count, plural, one {# locked} other {# locked}}","timeLeft":"{time} izquierda","howItWorks":"C\xf3mo funciona","howItWorksSubtitle":"Learn how evaluations validate your LLM responses","define":"Definir","defineStepDescription":"Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.","run":"correr","runStepDescription":"Execute test cases against your LLM endpoints through OmniRoute. Cada caso se env\xeda como una solicitud API real.","evaluate":"evaluar","evaluateStepDescription":"Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.","evalSuites":"Suites de evaluaci\xf3n","evalSuitesHint":"Click a suite to view test cases, then run to evaluate your LLM endpoints","evalsLoading":"Cargando suites de evaluaci\xf3n...","noEvalSuitesFound":"No se encontraron suites Eval","noEvalSuitesDescription":"Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.","columnCase":"caso","columnStatus":"Estado","columnLatency":"Latencia","columnDetails":"Detalles","columnModel":"modelo","columnStrategy":"Estrategia","columnExpected":"esperado","statsSuites":"Suites","statsTestCases":"Casos de prueba","statsModels":"Modelos","statsCoverage":"Cobertura","statsStrategiesCount":"{count} estrategias","evaluationStrategies":"Estrategias de evaluaci\xf3n","modelsUnderTest":"Modelos bajo prueba","searchSuitesPlaceholder":"Conjuntos de b\xfasqueda...","passSuffix":"pasar","casesCount":"{count, plural, one {# case} other {# cases}}","runEval":"Ejecutar evaluaci\xf3n","runningProgress":"Ejecutando {current}/{total}...","passRate":"tasa de aprobaci\xf3n","summaryBreakdown":"{passed} aprobado \xb7 {failed} fallido \xb7 {total} total","passedIconLabel":"✅ Aprobado","failedIconLabel":"❌ Fallido","detailsContains":"Contiene: \\"{term}\\"","detailsRegex":"Expresi\xf3n regular: {pattern}","detailsExpected":"Se esperaba: \\"{expected}\\"","noResultsYet":"A\xfan no hay resultados","testCasesCount":"Casos de prueba ({count})","noTestCasesDefined":"No hay casos de prueba definidos","runEvalHint":"Haga clic en \\"Ejecutar evaluaci\xf3n\\" para ejecutar todos los casos en su punto final LLM. Cada prueba env\xeda una solicitud real a trav\xe9s de OmniRoute.","notifyNoTestCases":"No hay casos de prueba definidos para esta suite","notifyAllCasesPassed":"Todos los {total} casos pasados ✅","notifySomeCasesFailed":"{passed}/{total} pas\xf3, {failed} fall\xf3","notifyEvalRunFailed":"La ejecuci\xf3n de evaluaci\xf3n fall\xf3","notifyEvalTitle":"Evaluaci\xf3n: {name}","modelEvals":"Evaluaciones de modelos","evalsHeroDescription":"Pruebe y valide sus puntos finales de LLM ejecutando conjuntos de evaluaci\xf3n predefinidos. Cada conjunto contiene casos de prueba que env\xedan indicaciones reales a trav\xe9s de OmniRoute y comparan respuestas con criterios esperados, lo que le ayuda a detectar regresiones, comparar modelos y garantizar la calidad de las respuestas entre proveedores.","qualityValidation":"Validaci\xf3n de calidad","modelComparison":"Comparaci\xf3n de modelos","regressionDetection":"Detecci\xf3n de regresi\xf3n","latencyBenchmarks":"Puntos de referencia de latencia","modelLockouts":"Bloqueos de modelos","noLockouts":"No hay modelos bloqueados actualmente","activeSessions":"Sesiones activas","noSessions":"No hay sesiones activas","sessionsHint":"Las sesiones aparecen a medida que las solicitudes fluyen a trav\xe9s del proxy.","sessionsTrackedHint":"Seguimiento mediante solicitud de huellas dactilares • Actualizaci\xf3n autom\xe1tica 5s","session":"Sesi\xf3n","age":"edad","requests":"Solicitudes","connection":"Conexi\xf3n","durationMillisecondsShort":"{value}ms","durationSecondsShort":"{value}s","durationMinutesShort":"{value}m","durationHoursShort":"{value}h","reasonSeparator":" - ","notAvailableSymbol":"-","providerLimits":"L\xedmites del proveedor","noProviders":"No hay proveedores conectados","connectProvidersForQuota":"Con\xe9ctese con proveedores con OAuth para realizar un seguimiento de los l\xedmites y el uso de su cuota de API.","accountsCount":"{count, plural, one {# account} other {# accounts}}","filteredFromCount":"(filtrado de {count})","autoRefresh":"Actualizaci\xf3n autom\xe1tica","refreshAll":"Actualizar todo","loadingQuotas":"Cargando...","account":"cuenta","modelQuotas":"Cuotas modelo","lastUsed":"Usado por \xfaltima vez","actions":"Acciones","refreshQuota":"Actualizar cuota","today":"hoy","tomorrow":"ma\xf1ana","dayTimeFormat":"{day}, {time}","inDuration":"en {duration}","notApplicable":"N/A","rawPlanWithValue":"Plan sin formato: {plan}","noPlanFromProvider":"Sin plan del proveedor","noQuotaData":"Sin datos de cuota","noQuotaDataAvailable":"No hay datos de cuota disponibles","noAccountsForTierFilter":"No se encontraron cuentas para el filtro de niveles","tierAll":"Todos","tierEnterprise":"Empresa","tierTeam":"equipo","tierBusiness":"Negocios","tierUltra":"Ultra","tierPro":"profesional","tierPlus":"M\xe1s","tierFree":"Gratis","tierUnknown":"Desconocido"},"modals":{"waitingAuth":"Esperando autorizaci\xf3n","verificationUrl":"URL de verificaci\xf3n","yourCode":"Tu c\xf3digo","remoteAccess":"Acceso remoto:","connectedSuccess":"\xa1Conectado exitosamente!","connectionFailed":"Conexi\xf3n fallida","chooseAuthMethod":"Elija su m\xe9todo de autenticaci\xf3n:","awsBuilderId":"ID del creador de AWS","awsIamIdentity":"Centro de identidad de AWS IAM","googleAccount":"Cuenta de Google","githubAccount":"Cuenta GitHub","importToken":"Importar token","pasteToken":"Pegue el token de actualizaci\xf3n de Kiro IDE.","awsRegion":"Regi\xf3n de AWS","autoDetecting":"Tokens de detecci\xf3n autom\xe1tica...","readingFromCache":"Lectura de la cach\xe9 de AWS SSO","readingFromCursor":"Lectura de la base de datos Cursor IDE","initializing":"Inicializando...","pricingConfig":"Configuraci\xf3n de precios","loadingPricing":"Cargando datos de precios...","pricingRatesFormat":"Formato de tarifas de precios","noPricingData":"No hay datos de precios disponibles","noModelsFound":"No se encontraron modelos"},"loggers":{"allProviders":"Todos los proveedores","allModels":"Todos los modelos","allAccounts":"Todas las cuentas","allApiKeys":"Todas las claves API","allTypes":"Todos los tipos","allLevels":"Todos los niveles","modelAZ":"Modelo A-Z","modelZA":"Modelo Z-A","loadingLogs":"Cargando registros...","loadingProxyLogs":"Cargando registros de proxy...","noLogEntries":"No se encontraron entradas de registro","noPayloadData":"No hay datos de carga disponibles para esta entrada de registro.","proxyEvent":"Evento de proxy","proxy":"apoderado","level":"Nivel","directNative":"Directo (nativo)","combo":"combinado","inputTokens":"Yo:","outputTokens":"Oh:"},"stats":{"usageOverview":"Descripci\xf3n general de uso","outputTokens":"Fichas de salida","totalCost":"Costo total","usageByModel":"Uso por modelo","usageByAccount":"Uso por cuenta","failedToLoad":"No se pudieron cargar las estad\xedsticas de uso.","tokenHealth":"Salud del token","totalOAuth":"OAuth total","healthy":"saludable","warning":"Advertencia","errored":"Error","lastCheck":"\xfaltimo control","noData":"Sin datos","share":"Compartir","unableToLoad":"No se pueden cargar las m\xe9tricas del sistema","product":"Producto","resources":"Recursos","company":"Empresa"},"auth":{"welcome":"Bienvenido","signIn":"Iniciar sesi\xf3n","enterPassword":"Ingresa tu contrase\xf1a para continuar","password":"Contrase\xf1a","unifiedProxy":"Proxy de API de IA unificado","unifiedAiApiProxy":"Proxy de API de IA unificado","unifiedAiApiProxyDesc":"Enrute solicitudes a m\xfaltiples proveedores de IA a trav\xe9s de un \xfanico punto final. Equilibrio de carga, conmutaci\xf3n por error y seguimiento de uso integrados.","passwordNotEnabled":"La protecci\xf3n con contrase\xf1a no est\xe1 habilitada","loading":"Cargando...","invalidPassword":"Contrase\xf1a no v\xe1lida","errorOccurredRetry":"Se produjo un error. Por favor int\xe9ntalo de nuevo.","configureInstance":"Configuremos su instancia de OmniRoute","runOnboardingWizard":"Ejecuta el asistente de onboarding para configurar tu contrase\xf1a y conectar tu primer proveedor de IA.","startOnboarding":"Iniciar la incorporaci\xf3n","secureYourInstance":"Asegure su instancia","setPasswordDescription":"Establezca una contrase\xf1a para proteger su panel y proteger sus puntos finales API contra accesos no autorizados.","configurePassword":"Configurar contrase\xf1a","continue":"Continuar","windowWillClose":"Esta ventana se cerrar\xe1 autom\xe1ticamente...","closeTabNow":"Puedes cerrar esta pesta\xf1a ahora.","copyUrlManual":"Copia la URL de la barra de direcciones y p\xe9gala en la aplicaci\xf3n.","accessDeniedDescription":"No tienes permiso para acceder a este recurso. Verifique su clave API o comun\xedquese con el administrador.","goToDashboard":"Ir al panel","featureMultiProviderTitle":"Multiproveedor","featureMultiProviderDesc":"OpenAI, Anthropic, Google y m\xe1s","featureLoadBalancingTitle":"Equilibrio de carga","featureLoadBalancingDesc":"Distribuya las solicitudes de forma inteligente","featureUsageTrackingTitle":"Seguimiento de uso","featureUsageTrackingDesc":"Monitorear costos y tokens","resetPassword":"Restablecer contrase\xf1a","resetDescription":"Elija un m\xe9todo para recuperar el acceso a su panel","stopServer":"Det\xe9n el servidor OmniRoute","processing":"Procesando...","pleaseWait":"Espere mientras completamos la autorizaci\xf3n.","authSuccess":"\xa1Autorizaci\xf3n exitosa!","copyUrl":"Copia esta URL","accessDenied":"Acceso denegado","methodCliTitle":"M\xe9todo 1: reinicio de CLI","methodCliDescription":"Ejecute el siguiente comando en el servidor donde se ejecuta OmniRoute:","methodCliHint":"Esto le pedir\xe1 que establezca una nueva contrase\xf1a. Primero se debe detener el servidor.","methodManualTitle":"M\xe9todo 2: reinicio manual","methodManualDescription":"Elimina la contrase\xf1a de la base de datos y configura una nueva al iniciar:","setPasswordInYour":"Define una nueva contrase\xf1a en tu","fileLabelSuffix":"archivo:","newPasswordPlaceholder":"tu_nueva_contrase\xf1a","deleteSettingsFile":"Eliminar","orRemovePasswordHashField":"o eliminar el campo contrase\xf1aHash","restartServerWithNewPassword":"Reinicia el servidor; usar\xe1 la nueva contrase\xf1a","backToLogin":"Volver a iniciar sesi\xf3n","forgotPassword":"\xbfOlvidaste tu contrase\xf1a?"},"landing":{"brandName":"OmniRuta","navigateHome":"Navegar a casa","toggleMenu":"Alternar men\xfa","featuresLink":"Caracter\xedsticas","docsLink":"Documentos","github":"GitHub","versionLive":"v1.0 ya est\xe1 disponible","oneEndpoint":"Un punto final para","allProviders":"Todos los proveedores de IA","heroDescription":"Proxy de punto final de IA con panel web: un puerto JavaScript de CLIProxyAPI. Funciona a la perfecci\xf3n con Claude Code, OpenAI Codex, Cline, RooCode y otras herramientas CLI.","getStarted":"Empezar","viewOnGithub":"Ver en GitHub","powerfulFeatures":"Funciones potentes","featuresSubtitle":"Todo lo que necesita para administrar su infraestructura de IA en un solo lugar, dise\xf1ado para escalar.","featureUnifiedEndpointTitle":"Punto final unificado","featureUnifiedEndpointDesc":"Acceda a todos los proveedores a trav\xe9s de una \xfanica URL API est\xe1ndar.","featureEasySetupTitle":"F\xe1cil configuraci\xf3n","featureEasySetupDesc":"P\xf3ngase en funcionamiento en minutos con el comando npx.","featureModelFallbackTitle":"Modelo de reserva","featureModelFallbackDesc":"Cambie autom\xe1ticamente de proveedor en caso de falla o alta latencia.","featureUsageTrackingTitle":"Seguimiento de uso","featureUsageTrackingDesc":"An\xe1lisis detallados y seguimiento de costes en todos los modelos.","featureOAuthApiKeysTitle":"Claves OAuth y API","featureOAuthApiKeysDesc":"Administre de forma segura las credenciales en una b\xf3veda.","featureCloudSyncTitle":"Sincronizaci\xf3n en la nube","featureCloudSyncDesc":"Sincronice sus configuraciones entre dispositivos al instante.","featureCliSupportTitle":"Soporte CLI","featureCliSupportDesc":"Funciona con Claude Code, Codex, Cline, Cursor y m\xe1s.","featureDashboardTitle":"Panel de control","featureDashboardDesc":"Panel visual para an\xe1lisis de tr\xe1fico en tiempo real.","howItWorks":"C\xf3mo funciona OmniRoute","howItWorksDescription":"Los datos fluyen sin problemas desde su aplicaci\xf3n a trav\xe9s de nuestra capa de enrutamiento inteligente hasta el mejor proveedor para el trabajo.","howItWorksStep1Title":"1. CLI y SDK","howItWorksStep1Description":"Sus solicitudes comienzan desde sus herramientas favoritas o nuestro SDK unificado. Simplemente cambie la URL base.","howItWorksStep2Title":"2. Centro OmniRoute","howItWorksStep2Description":"Nuestro motor analiza el aviso, verifica el estado del proveedor y las rutas para obtener la latencia o el costo m\xe1s bajo.","howItWorksStep3Title":"3. Proveedores de IA","howItWorksStep3Description":"OpenAI, Anthropic, Gemini u otros cumplen la solicitud al instante.","getStartedIn30Seconds":"Comience en 30 segundos","getStartedDescription":"Instale OmniRoute, configure sus proveedores a trav\xe9s del panel web y comience a enrutar solicitudes de IA.","installOmniRoute":"Instalar OmniRoute","installStepDescription":"Ejecute el comando npx para iniciar el servidor al instante","openDashboard":"Abrir panel","openDashboardStepDescription":"Configure proveedores y claves API a trav\xe9s de la interfaz web","routeRequests":"Solicitudes de ruta","routeRequestsStepDescription":"Apunte sus herramientas CLI a {endpoint}","terminal":"terminales","copy":"Copiar","copied":"✓ Copiado","startingOmniRoute":"Iniciando OmniRoute...","serverRunningOnLabel":"Servidor ejecut\xe1ndose en","dashboardLabel":"Panel de control","readyToRoute":"\xa1Listo para la ruta! ✓","configureProvidersNote":"\uD83D\uDCDD Configure proveedores en el panel o use variables de entorno","dataLocation":"Ubicaci\xf3n de datos:","dataLocationMacLinux":" MacOS/Linux:","dataLocationWindows":" Ventanas:","product":"Producto","dashboardLink":"Panel de control","changelog":"Registro de cambios","resources":"Recursos","documentation":"Documentaci\xf3n","npm":"MNP","legal":"Legales","mitLicense":"Licencia MIT","footerTagline":"El punto final unificado para la generaci\xf3n de IA. Conecte, enrute y administre sus proveedores de IA con facilidad.","copyright":"\xa9 {year} OmniRoute. Reservados todos los derechos.","flowToolClaudeCode":"C\xf3digo Claude","flowToolOpenAICodex":"C\xf3dice OpenAI","flowToolCline":"Clina","flowToolCursor":"Cursor","flowProviderOpenAI":"AbiertoAI","flowProviderAnthropic":"antr\xf3pico","flowProviderGemini":"G\xe9minis","flowProviderGithubCopilot":"Copiloto de GitHub","interactiveDiagram":"Diagrama interactivo visible en el escritorio.","ctaTitle":"\xbfListo para simplificar su infraestructura de IA?","ctaDescription":"\xdanase a los desarrolladores que est\xe1n optimizando sus integraciones de IA con OmniRoute. C\xf3digo abierto y gratuito para comenzar.","startFree":"Comience gratis","readDocumentation":"Leer documentaci\xf3n"},"docs":{"title":"Documentaci\xf3n","quickStart":"Inicio r\xe1pido","features":"Caracter\xedsticas","supportedProviders":"Proveedores compatibles","supportedProvidersToc":"Proveedores","commonUseCases":"Casos de uso comunes","clientCompatibility":"Compatibilidad del cliente","protocolsToc":"Protocolos","apiReference":"Referencia de API","method":"M\xe9todo","path":"Camino","notes":"Notas","modelPrefixes":"Prefijos de modelo","prefix":"Prefijo","troubleshooting":"Soluci\xf3n de problemas","supportsChat":"Admite puntos finales de chat y respuestas.","oauthAutoRefresh":"Conexi\xf3n OAuth con actualizaci\xf3n autom\xe1tica de token.","fullStreaming":"Soporte completo de transmisi\xf3n para todos los modelos.","docsLabel":"Documentos","docsHeroDescription":"Puerta de enlace de IA para LLM de m\xfaltiples proveedores. Un punto final para OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor y m\xe1s de 20 proveedores.","openDashboard":"Abrir panel","endpointPage":"P\xe1gina de punto final","github":"GitHub","reportIssue":"Informar problema","onThisPage":"En esta p\xe1gina","documentationVersion":"Documentaci\xf3n: v{version}","quickStartStep1Title":"1. Instalar y ejecutar","quickStartStep1Prefix":"correr","quickStartStep1Middle":"o clonar desde GitHub y ejecutar","quickStartStep2Title":"2. Crear clave API","quickStartStep2Text":"Vaya a Punto final -> Claves registradas. Genere una clave por entorno.","quickStartStep3Title":"3. Conectar proveedores","quickStartStep3Text":"Agregue cuentas de proveedor mediante el inicio de sesi\xf3n de OAuth, la clave API o la conexi\xf3n autom\xe1tica de nivel gratuito.","quickStartStep4Title":"4. Establecer la URL de la base de clientes","quickStartStep4Prefix":"Apunte su cliente IDE o API a","quickStartStep4Suffix":"Utilice el prefijo del proveedor, por ejemplo","featureRoutingTitle":"Enrutamiento multiproveedor","featureRoutingText":"Enrute solicitudes a m\xe1s de 30 proveedores de IA a trav\xe9s de un \xfanico punto final compatible con OpenAI. Admite API de chat, respuestas, audio e im\xe1genes.","featureCombosTitle":"Combos y equilibrio","featureCombosText":"Cree combinaciones de modelos con cadenas de respaldo y estrategias de equilibrio: round-robin, prioridad, aleatorio, menos utilizado y de costo optimizado.","featureUsageTitle":"Seguimiento de uso y costos","featureUsageText":"Recuento de tokens en tiempo real, c\xe1lculo de costos por proveedor/modelo y desglose detallado del uso por clave API y cuenta.","featureAnalyticsTitle":"Panel de an\xe1lisis","featureAnalyticsText":"An\xe1lisis visual con gr\xe1ficos de solicitudes, tokens, errores, latencia, costos y popularidad del modelo a lo largo del tiempo.","featureHealthTitle":"Monitoreo de salud","featureHealthText":"Comprobaciones de estado en vivo, estado del proveedor, estados de los disyuntores y detecci\xf3n autom\xe1tica del l\xedmite de velocidad con retroceso exponencial.","featureCliTitle":"Herramientas CLI","featureCliText":"Administre configuraciones de IDE, exporte/importe copias de seguridad, descubra perfiles de c\xf3dice y configure ajustes desde el panel.","featureSecurityTitle":"Seguridad y pol\xedticas","featureSecurityText":"Autenticaci\xf3n de clave API, filtrado de IP, protecci\xf3n contra inyecci\xf3n r\xe1pida, pol\xedticas de dominio, gesti\xf3n de sesiones y registro de auditor\xeda.","featureCloudSyncTitle":"Sincronizaci\xf3n en la nube","featureCloudSyncText":"Sincronice su configuraci\xf3n con Cloudflare Workers para obtener acceso remoto con credenciales cifradas y conmutaci\xf3n por error autom\xe1tica.","providersAcrossConnectionTypes":"{count} proveedores en tres tipos de conexi\xf3n.","manageProviders":"Administrar proveedores","providersCount":"{count} proveedores","providerTypeFree":"Nivel gratuito","providerTypeOAuth":"OAuth","providerTypeApiKey":"Clave API","useCaseSingleEndpointTitle":"Punto final \xfanico para muchos proveedores","useCaseSingleEndpointText":"Dirija a los clientes a una URL base y enr\xfatelos por prefijo de modelo (por ejemplo: gh/, cc/, kr/, openai/).","useCaseFallbackTitle":"Retroceso y cambio de modelo con combos","useCaseFallbackText":"Cree modelos combinados en el Panel y mantenga estable la configuraci\xf3n del cliente mientras los proveedores rotan internamente.","useCaseUsageVisibilityTitle":"Visibilidad de uso, costo y depuraci\xf3n","useCaseUsageVisibilityText":"Realice un seguimiento de los tokens y el costo por proveedor, cuenta y clave API en las pesta\xf1as Uso y An\xe1lisis.","clientCherryStudioTitle":"estudio de cereza","baseUrlLabel":"URL b\xe1sica","chatEndpointLabel":"Punto final del chat","modelRecommendationLabel":"Recomendaci\xf3n del modelo: prefijo expl\xedcito","clientCodexTitle":"Modelos de copiloto Codex/GitHub","clientCodexBullet1":"Utilice ID de modelo con","clientCodexBullet2":"Los modelos de la familia Codex se enrutan autom\xe1ticamente a","clientCodexBullet3":"Los modelos que no pertenecen al Codex contin\xfaan","clientCursorTitle":"Cursor IDE","clientCursorBullet1":"uso","clientCursorBullet1Suffix":"Prefijo para modelos de cursor.","clientCursorBullet2":"Conexi\xf3n OAuth: inicie sesi\xf3n desde la p\xe1gina de Proveedores.","clientClaudeTitle":"C\xf3digo Claude / Antigravedad","clientClaudeBullet1Prefix":"uso","clientClaudeBullet1Middle":"(Claude) o","clientClaudeBullet1Suffix":"Prefijo (antigravedad).","protocolsTitle":"Protocolos: MCP y A2A","protocolsDescription":"OmniRoute expone dos protocolos operativos adem\xe1s de las API compatibles con OpenAI: MCP para la ejecuci\xf3n de herramientas y A2A para flujos de trabajo de agente a agente.","protocolMcpTitle":"MCP (Protocolo de contexto modelo)","protocolMcpDesc":"Utilice MCP sobre stdio para permitir que los clientes descubran y llamen a las herramientas OmniRoute con visibilidad de auditor\xeda.","protocolMcpStep1":"Inicie el transporte MCP con `omniroute --mcp`.","protocolMcpStep2":"Apunte su cliente MCP al transporte stdio.","protocolMcpStep3":"Llame a `omniroute_get_health` y `omniroute_list_combos` para validar la conectividad.","protocolA2aTitle":"A2A (Agente2Agente)","protocolA2aDesc":"Utilice A2A JSON-RPC para enviar tareas de forma sincr\xf3nica o mediante transmisi\xf3n SSE.","protocolA2aStep1":"Lea `/.well-known/agent.json` para descubrir agentes.","protocolA2aStep2":"Env\xede solicitudes `message/send` o `message/stream` a `POST /a2a`.","protocolA2aStep3":"Administre el ciclo de vida de las tareas con `tasks/get` y `tasks/cancel`.","protocolTroubleshootingTitle":"Soluci\xf3n de problemas de protocolo","protocolTroubleshooting1":"Si el estado de MCP est\xe1 fuera de l\xednea, verifique que el proceso stdio se est\xe9 ejecutando y que el archivo de latido se est\xe9 actualizando.","protocolTroubleshooting2":"Si las tareas A2A permanecen en `working`, inspeccione `/api/a2a/tasks/:id` y transmita eventos para ver el estado terminal.","protocolTroubleshooting3":"Utilice `/dashboard/mcp` y `/dashboard/a2a` para controles operativos y visibilidad de auditor\xeda.","endpointChatNote":"Punto final de chat compatible con OpenAI (predeterminado).","endpointResponsesNote":"Punto final de API de respuestas (Codex, o-series).","endpointModelsNote":"Cat\xe1logo de modelos para todos los proveedores conectados.","endpointAudioNote":"Transcripci\xf3n de audio (Deepgram, AssemblyAI).","endpointImagesNote":"Generaci\xf3n de im\xe1genes (NanoBanana).","endpointRewriteChatNote":"Reescribir el asistente para clientes sin /v1.","endpointRewriteResponsesNote":"Reescriba el asistente para respuestas sin /v1.","endpointRewriteModelsNote":"Reescriba el asistente para el descubrimiento de modelos sin /v1.","modelPrefixesDescriptionStart":"Utilice el prefijo del proveedor antes del nombre del modelo para enrutar a un proveedor espec\xedfico. Ejemplo:","modelPrefixesDescriptionEnd":"rutas al copiloto de GitHub.","provider":"Proveedor","type":"Tipo","troubleshootingModelRouting":"Si el cliente falla con el enrutamiento del modelo, utilice proveedor/modelo expl\xedcito (por ejemplo: gh/gpt-5.1-codex).","troubleshootingAmbiguousModels":"Si recibe errores de modelo ambiguos, elija un prefijo de proveedor en lugar de una identificaci\xf3n de modelo simple.","troubleshootingCodexFamily":"Para los modelos de la familia GitHub Codex, mantenga el modelo como gh/codex-model; El enrutador selecciona/respuestas autom\xe1ticamente.","troubleshootingTestConnection":"Utilice Panel > Proveedores > Probar conexi\xf3n antes de realizar pruebas desde IDE o clientes externos.","troubleshootingCircuitBreaker":"Si un proveedor muestra el disyuntor abierto, espere el tiempo de reutilizaci\xf3n o consulte la p\xe1gina de Salud para obtener m\xe1s detalles.","troubleshootingOAuth":"Para los proveedores de OAuth, vuelva a autenticarse si los tokens caducan. Verifique el indicador de estado de la tarjeta del proveedor."},"legal":{"privacyPolicy":"Pol\xedtica de privacidad","termsOfService":"T\xe9rminos de servicio","providerConfigurations":"Configuraciones de proveedor","apiKeys":"Claves API","usageLogs":"Registros de uso","applicationSettings":"Configuraci\xf3n de la aplicaci\xf3n","viewExportAnalytics":"Ver y exportar an\xe1lisis de uso","clearHistory":"Borrar el historial de uso en cualquier momento","configureRetention":"Configurar pol\xedticas de retenci\xf3n de registros","backupRestore":"Haga una copia de seguridad y restaure su base de datos","privacyMetadataTitle":"Pol\xedtica de privacidad | OmniRuta","privacyMetadataDescription":"Pol\xedtica de privacidad para el enrutador proxy API OmniRoute AI.","termsMetadataTitle":"T\xe9rminos de servicio | OmniRuta","termsMetadataDescription":"T\xe9rminos de servicio para el enrutador proxy API OmniRoute AI.","backToHome":"De vuelta a casa","lastUpdated":"\xdaltima actualizaci\xf3n: {date}","policyLastUpdatedDate":"13 de febrero de 2026","listSeparator":"-","questionsVisit":"\xbfPreguntas? Visita nuestro","githubRepository":"repositorio de GitHub","privacySection1Title":"1. Arquitectura local primero","privacySection1Text":"OmniRoute est\xe1 dise\xf1ado como una aplicaci\xf3n local. Todo el procesamiento y almacenamiento de datos se realiza \xedntegramente en su m\xe1quina. No existe un servidor centralizado que recopile su informaci\xf3n.","privacySection2Title":"2. Datos que almacenamos","privacyDataStoredIn":"Los siguientes datos se almacenan localmente en","privacyDataProviderConfigurationsDesc":"URL de conexi\xf3n, tipos de proveedores y configuraci\xf3n de prioridad","privacyDataApiKeysDesc":"cifrado y almacenado localmente para autenticarse con proveedores de IA","privacyDataUsageLogsDesc":"recuentos de solicitudes, uso de tokens, nombres de modelos, marcas de tiempo y tiempos de respuesta","privacyDataApplicationSettingsDesc":"preferencias de tema, estrategia de enrutamiento y configuraciones combinadas","privacySection3Title":"3. Sin telemetr\xeda","privacySection3Text":"OmniRoute no recopila telemetr\xeda, an\xe1lisis ni informes de fallos. No se env\xedan datos a nosotros ni a ning\xfan tercero. Sus patrones de uso, llamadas API y configuraciones permanecen completamente privados.","privacySection4Title":"4. Proveedores de IA de terceros","privacySection4Text":"Cuando realiza llamadas API a trav\xe9s de OmniRoute, sus solicitudes se reenv\xedan a los proveedores de IA que haya configurado (por ejemplo: OpenAI, Anthropic, Google). Estos proveedores tienen sus propias pol\xedticas de privacidad que rigen c\xf3mo manejan sus datos. Por favor revise:","privacyOpenAiPolicy":"Pol\xedtica de privacidad de OpenAI","privacyAnthropicPolicy":"Pol\xedtica de privacidad antr\xf3pica","privacyGooglePolicy":"Pol\xedtica de privacidad de Google","privacySection5Title":"5. Sincronizaci\xf3n en la nube (opcional)","privacySection5Text":"Si habilita la funci\xf3n opcional de sincronizaci\xf3n en la nube, las configuraciones del proveedor y las claves API pueden transmitirse a un punto final en la nube configurado. Esta funci\xf3n est\xe1 deshabilitada de forma predeterminada y requiere una suscripci\xf3n expl\xedcita.","privacySection6Title":"6. Registro","privacyLoggingIntro":"Los registros de solicitudes se pueden configurar a trav\xe9s de la configuraci\xf3n del panel. Puedes:","privacySection7Title":"7. Tus derechos","privacySection7TextStart":"Dado que todos los datos se almacenan localmente, usted tiene control total. Puedes eliminar tus datos en cualquier momento eliminando el","privacySection7TextEnd":"directorio o utilizando las funciones de copia de seguridad y restauraci\xf3n de la base de datos en el panel.","termsSection1Title":"1. Descripci\xf3n general","termsSection1Text":"OmniRoute es un enrutador proxy API de IA local que funciona completamente en su m\xe1quina. Enruta solicitudes a m\xfaltiples proveedores de IA con equilibrio de carga, conmutaci\xf3n por error y seguimiento de uso.","termsSection2Title":"2. Responsabilidades del usuario","termsResponsibilityApiKeys":"Usted es el \xfanico responsable de administrar sus propias claves API y credenciales para proveedores de IA externos (OpenAI, Anthropic, Google, etc.).","termsResponsibilityCompliance":"Debe cumplir con los t\xe9rminos de servicio de cada proveedor de IA a cuya API acceda a trav\xe9s de OmniRoute.","termsResponsibilitySecurity":"Usted es responsable de la seguridad de su instalaci\xf3n local de OmniRoute, incluida la configuraci\xf3n de una contrase\xf1a y la restricci\xf3n del acceso a la red.","termsSection3Title":"3. C\xf3mo funciona","termsSection3Text":"OmniRoute act\xfaa como proxy intermediario. Las llamadas API enviadas a OmniRoute se traducen y reenv\xedan a sus proveedores de IA configurados. OmniRoute no modifica el contenido de sus solicitudes o respuestas m\xe1s all\xe1 de la traducci\xf3n del protocolo necesaria.","termsSection4Title":"4. Manejo de datos","termsDataStoredLocally":"Todos los datos se almacenan localmente en su m\xe1quina en una base de datos SQLite.","termsNoTransmission":"OmniRoute no transmite ning\xfan dato a servidores externos a menos que habilite expl\xedcitamente las funciones de sincronizaci\xf3n en la nube.","termsDataLocationText":"Los registros de uso, las claves API y la configuraci\xf3n se almacenan en","termsSection5Title":"5. Descargo de responsabilidad","termsSection5Text":"OmniRoute se proporciona \\"tal cual\\" sin garant\xeda de ning\xfan tipo. No somos responsables de los costos incurridos por el uso de API, interrupciones del servicio o p\xe9rdida de datos. Mantenga siempre copias de seguridad de su configuraci\xf3n.","termsSection6Title":"6. C\xf3digo abierto","termsSection6Text":"OmniRoute es un software de c\xf3digo abierto. Usted es libre de inspeccionarlo, modificarlo y distribuirlo seg\xfan los t\xe9rminos de su licencia."},"endpoints":{"tabProxy":"Endpoint Proxy","tabApiEndpoints":"Endpoints de API","apiEndpointsTitle":"Endpoints de API","apiEndpointsDescription":"Endpoints de API backend que pueden ser consumidos por otras aplicaciones y servicios.","comingSoon":"Pr\xf3ximamente","plannedFeatures":"Funciones Planeadas","featureRestApi":"Cat\xe1logo de endpoints REST API con documentaci\xf3n interactiva","featureWebhooks":"Configuraci\xf3n de webhooks y suscripciones de eventos","featureSwagger":"Generaci\xf3n autom\xe1tica de especificaciones OpenAPI / Swagger","featureAuth":"Gesti\xf3n de claves API y alcances OAuth por endpoint"},"agents":{"title":"CLI Agents","description":"Discover installed CLI agents on your system. Add custom agents for auto-detection.","refresh":"Refresh","installed":"Installed","notFound":"Not Found","builtIn":"Built-in","custom":"Custom","remove":"Remove","addCustomAgent":"Add Custom Agent","addCustomAgentDesc":"Register any CLI tool for detection. It will be scanned automatically on refresh.","agentName":"Agent Name","binaryName":"Binary Name","versionCommand":"Version Command","spawnArgs":"Spawn Args","addAgent":"Add Agent"},"autoCombo":{"title":"Auto-Combo Engine","statusNormal":"Normal","statusIncident":"Incident Mode","modePack":"Mode Pack","providerScores":"Provider Scores","noAutoCombo":"No auto-combo configured.","excludedProviders":"Excluded Providers","noExclusions":"No providers currently excluded.","factorQuota":"Quota","factorHealth":"Health","factorCost":"Cost","factorLatency":"Latency","factorTaskFit":"Task Fit","factorStability":"Stability","factorTierPriority":"Tier Priority","factorTierPriorityDesc":"Prefers accounts with higher quota tiers (Ultra/Pro over Free)","scoreFactorBreakdown":"Scoring Factors","modePackShipFast":"Ship Fast","modePackCostSaver":"Cost Saver","modePackQualityFirst":"Quality First","modePackOfflineFriendly":"Offline Friendly"}}')}};
|
|
1
|
+
"use strict";exports.id=7011,exports.ids=[7011],exports.modules={87011:a=>{a.exports=JSON.parse('{"common":{"save":"Guardar","cancel":"Cancelar","delete":"Eliminar","loading":"Cargando...","error":"Se produjo un error","success":"\xc9xito","confirm":"\xbfEst\xe1s seguro?","refresh":"Actualizar","close":"Cerrar","add":"A\xf1adir","edit":"Editar","search":"Buscar","back":"Atr\xe1s","next":"Siguiente","submit":"Enviar","reset":"Reiniciar","copy":"Copiar","copied":"\xa1Copiado!","enabled":"Habilitado","disabled":"Deshabilitado","active":"Activo","inactive":"Inactivo","noData":"No hay datos disponibles","configure":"Configurar","manage":"Administrar","name":"Nombre","actions":"Acciones","status":"Estado","type":"Tipo","model":"Modelo","models":"modelos","provider":"Proveedor","account":"Cuenta","time":"Hora","details":"Detalles","created":"Creado","lastUsed":"Usado por \xfaltima vez","loadMore":"Cargar m\xe1s","noResults":"No se encontraron resultados","reloadPage":"Recargar p\xe1gina","connected":"Conectado","disconnected":"desconectado","notConfigured":"No configurado","testConnection":"Conexi\xf3n de prueba","enable":"Habilitar","disable":"Desactivar","columns":"Columnas","newest":"M\xe1s reciente","oldest":"M\xe1s antiguo","all":"Todos","none":"Ninguno","yes":"S\xed","no":"No","warning":"Advertencia","note":"Nota","free":"Gratis","skipToContent":"Saltar al contenido"},"sidebar":{"home":"Inicio","dashboard":"Panel de control","providers":"Proveedores","combos":"Combos","usage":"Uso","analytics":"Anal\xedtica","costs":"Costos","health":"Salud","limits":"L\xedmites y cuotas","cliTools":"Herramientas CLI","media":"Multimedia","settings":"Configuraci\xf3n","translator":"Traductor","docs":"Documentaci\xf3n","issues":"Problemas","apiManager":"Gestor de API","logs":"Registros","auditLog":"Registro de auditor\xeda","shutdown":"Apagar","restart":"Reiniciar","shutdownConfirm":"\xbfCerrar OmniRoute?","restartConfirm":"\xbfReiniciar OmniRoute?","version":"v{version}","debug":"Depurar","system":"Sistema","help":"Ayuda","serverDisconnected":"Servidor desconectado","serverDisconnectedMsg":"El servidor proxy se ha detenido o se est\xe1 reiniciando.","expandSidebar":"Expandir barra lateral","collapseSidebar":"Contraer barra lateral","themes":"Temas","presetColors":"Colores populares","createTheme":"Crear tema","chooseColor":"Elige un color","themeCoral":"Coral","themeBlue":"Azul","themeRed":"Rojo","themeGreen":"Verde","themeViolet":"Violeta","themeOrange":"Naranja","themeCyan":"cian","endpoints":"Endpoints","playground":"Playground","agents":"Agentes","cliToolsShort":"Herramientas"},"themesPage":{"title":"Temas","description":"Elige un tema preestablecido o crea el tuyo propio con un solo color","presetColors":"Colores populares","customTheme":"Tema personalizado","customThemeDesc":"Haga clic en crear tema y elija un color","createTheme":"Crear tema","activePreset":"Tema activo"},"header":{"logout":"Cerrar sesi\xf3n","language":"Idioma","providers":"Proveedores","providerDescription":"Gestiona tus conexiones de proveedores de IA","combos":"Combos","comboDescription":"Combinaciones de modelos con fallback","usage":"Uso y an\xe1lisis","usageDescription":"Supervise el uso de su API, el consumo de tokens y los registros de solicitudes","analytics":"Anal\xedticas","analyticsDescription":"Gr\xe1ficos, tendencias y conocimientos de evaluaci\xf3n","cliTools":"Herramientas CLI","cliToolsDescription":"Configurar herramientas CLI","home":"Inicio","homeDescription":"Bienvenido a OmniRoute","endpoint":"Endpoints","endpointDescription":"Gestionar endpoints proxy, MCP, A2A y endpoints de API","settings":"Configuraci\xf3n","settingsDescription":"Gestiona tus preferencias","openaiCompatible":"Compatible con OpenAI","anthropicCompatible":"Compatible con Anthropic","media":"Medios de comunicaci\xf3n","mediaDescription":"Genera im\xe1genes, v\xeddeos y m\xfasica.","themes":"Temas","themesDescription":"Elija un tema de color para todo el panel del tablero","mcp":"MCP","mcpDescription":"Model Context Protocol server management and tools","a2a":"A2A","a2aDescription":"Agent-to-Agent protocol tasks and observability"},"home":{"quickStart":"Inicio r\xe1pido","quickStartDesc":"Empieza en 4 pasos. Conecta proveedores, enruta modelos y monitorea todo.","fullDocs":"Documentaci\xf3n completa","step1Title":"1. Crear clave API","step1Desc":"Ve a <endpoint>Endpoint</endpoint> -> Claves registradas. Genera una clave por entorno.","step2Title":"2. Conectar proveedores","step2Desc":"Agrega cuentas en <providers>Proveedores</providers>. Soporta OAuth, API Key y planes gratuitos.","step3Title":"3. Configura tu cliente","step3Desc":"Configura la URL base como {url} en tu IDE o cliente API.","step4Title":"4. Supervisar y optimizar","step4Desc":"Supervisa tokens, costos y errores en <logs>Registros</logs> y <analytics>Anal\xedticas</analytics>.","providersOverview":"Descripci\xf3n general de proveedores","configuredOf":"{configured} configurado de {total} proveedores disponibles","noModelsAvailable":"No hay modelos disponibles para este proveedor.","configureFirst":"Configure una conexi\xf3n primero en {providers}","configureProvider":"Configurar proveedor","modelAvailable":"Modelo {count} disponible","modelsAvailable":"{count} modelos disponibles","connectionsActive":"{count} conexi\xf3n activa","connectionsActivePlural":"{count} conexiones activas","copyModelName":"Copiar nombre del modelo","documentation":"Documentaci\xf3n","healthMonitor":"Monitor de salud","reportIssue":"Informar problema","activeError":"{active} activo \xb7 {errors} error","oauthLabel":"OAuth","apiKeyLabel":"Clave API","requestsShort":"{count} reqs","providerModelsTitle":"{provider} - Modelos","copiedModel":"Copiado: {model}","aliasLabel":"alias"},"analytics":{"title":"Anal\xedtica","overviewDescription":"Supervise sus patrones de uso de API, consumo de tokens, costos y tendencias de actividad en todos los proveedores y modelos.","evalsDescription":"Ejecute conjuntos de evaluaci\xf3n para probar y validar sus puntos finales de LLM. Compare la calidad del modelo, detecte regresiones y compare la latencia.","overview":"Descripci\xf3n general","evals":"evaluaciones"},"apiManager":{"title":"Claves API","createKey":"Crear clave API","key":"clave","revokeKey":"Revocar clave","revokeConfirm":"\xbfEst\xe1 seguro de que desea revocar esta clave API?","noKeys":"A\xfan no hay claves API","noKeysDesc":"Cree su primera clave API para autenticar solicitudes en su punto final","keyLabel":"Etiqueta clave","permissions":"Permisos","expiresAt":"Vence","never":"nunca","revoke":"Revocar","showKey":"Mostrar clave","hideKey":"Ocultar clave","copyKey":"Copiar clave API","allModels":"Todos los modelos","selectedModels":"Modelos seleccionados","readOnly":"S\xf3lo lectura","fullAccess":"Acceso completo","keyManagement":"Gesti\xf3n de claves API","keyManagementDesc":"Cree y administre claves API para autenticar solicitudes en su punto final","totalKeys":"Claves totales","restricted":"Restringido","totalRequests":"Solicitudes totales","modelsAvailable":"Modelos disponibles","registeredKeys":"Claves registradas","keysRegistered":"{count} claves registradas","keyRegistered":"{count} clave registrada","keysSecurityNote":"Cada clave a\xedsla el seguimiento de uso y se puede revocar de forma independiente. Las claves se enmascaran despu\xe9s de su creaci\xf3n por motivos de seguridad.","createFirstKey":"Crea tu primera clave","name":"Nombre","usage":"Uso","created":"Creado","actions":"Acciones","reqs":"requisitos","neverUsed":"Nunca usado","deleteConfirm":"\xbfEliminar esta clave API?","usageTips":"Consejos de uso","tipAuth":"Utilice claves API en el encabezado de Autorizaci\xf3n como Portador YOUR_KEY","tipSecure":"Las claves solo se muestran una vez durante la creaci\xf3n: gu\xe1rdelas de forma segura","tipSeparate":"Cree claves separadas para diferentes clientes o entornos","tipRestrict":"Restrinja las claves a modelos espec\xedficos para una mejor seguridad y control de costos","keyName":"Nombre clave","keyNamePlaceholder":"por ejemplo, clave de producci\xf3n, clave de desarrollo","keyNameDesc":"Elija un nombre descriptivo para identificar el prop\xf3sito de esta clave","keyCreated":"Clave API creada","keyCreatedSuccess":"\xa1Clave creada exitosamente!","keyCreatedNote":"Copie y almacene esta clave ahora; no se volver\xe1 a mostrar.","done":"hecho","savePermissions":"Guardar permisos","allowAll":"Permitir todo","restrict":"Restringir","allowAllInfo":"Esta clave puede acceder a todos los modelos disponibles.","restrictInfo":"Esta clave puede acceder a {selected} de {total} modelos.","selected":"{count} seleccionado","all":"Todos","clear":"Borrar","searchModels":"Buscar modelos por nombre o proveedor...","noModelsFound":"No se encontraron modelos","keyNameRequired":"El nombre de la clave es obligatorio","keyNameTooLong":"El nombre de la clave debe tener {max} caracteres o menos","keyNameInvalid":"El nombre de la clave solo puede contener letras, n\xfameros, espacios, guiones y guiones bajos.","invalidKeyName":"Nombre de clave no v\xe1lido","failedCreateKey":"No se pudo crear la clave","failedCreateKeyRetry":"No se pudo crear la clave. Por favor int\xe9ntalo de nuevo.","invalidKeyId":"ID de clave no v\xe1lida","failedDeleteKey":"No se pudo eliminar la clave","failedDeleteKeyRetry":"No se pudo eliminar la clave. Por favor int\xe9ntalo de nuevo.","invalidModelsSelection":"Selecci\xf3n de modelos no v\xe1lidos","cannotSelectMoreThanModels":"No se pueden seleccionar m\xe1s de {max} modelos","failedUpdatePermissions":"No se pudieron actualizar los permisos","failedUpdatePermissionsRetry":"No se pudieron actualizar los permisos. Por favor int\xe9ntalo de nuevo.","unknownProvider":"desconocido","copyMaskedKey":"Copiar clave enmascarada","modelsCount":"{count, plural, one {# model} other {# models}}","lastUsedOn":"\xdaltimo: {date}","editPermissions":"Editar permisos","deleteKey":"Eliminar clave","model":"{count} modelo","models":"{count} modelos","permissionsTitle":"Permisos: {name}","allowAllDesc":"Esta clave puede acceder a todos los modelos disponibles.","restrictDesc":"Esta clave puede acceder a {selectedCount} de {totalModels} modelos.","selectedCount":"{count} seleccionado"},"auditLog":{"title":"Registro de auditor\xeda","searchPlaceholder":"Acciones de b\xfasqueda...","action":"acci\xf3n","actor":"Actor","target":"Objetivo","ipAddress":"Direcci\xf3n IP","timestamp":"Marca de tiempo","noEntries":"No se encontraron entradas de auditor\xeda","filterByAction":"Filtrar por acci\xf3n...","filterByActor":"Filtrar por actor...","filterEntriesAria":"Filtrar entradas del registro de auditor\xeda","filterByActionTypeAria":"Filtrar por tipo de acci\xf3n","filterByActorAria":"Filtrar por actor","refreshAuditLogAria":"Actualizar el registro de auditor\xeda","tableAria":"Entradas del registro de auditor\xeda","failedFetchAuditLog":"No se pudo recuperar el registro de auditor\xeda","notAvailable":"—","description":"Acciones administrativas y eventos de seguridad.","showing":"Mostrando entradas {count} (desplazamiento {offset})","previous":"Anterior"},"media":{"title":"Zona multimedia","subtitle":"Genera im\xe1genes, videos y m\xfasica","model":"Model","prompt":"Prompt","generate":"Generar","generating":"Generating...","loadingModels":"Loading available models...","noModels":"No models available. Configure providers with media capabilities first.","error":"Generation Failed","result":"Result","imageDescription":"Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.","videoDescription":"Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.","musicDescription":"Compose music using Stable Audio Open or MusicGen via ComfyUI."},"cliTools":{"title":"Herramientas CLI","noActiveProviders":"No hay proveedores activos","noActiveProvidersDesc":"Primero agregue y conecte proveedores para configurar las herramientas CLI.","mapModels":"Modelos de mapas","testConnection":"Conexi\xf3n de prueba","connectionStatus":"Estado de conexi\xf3n","configureEndpoint":"Configurar punto final","instructions":"Instrucciones","modelMapping":"Mapeo de modelos","baseUrl":"URL b\xe1sica","apiKey":"Clave API","configured":"Configurado","notConfigured":"No configurado","notInstalled":"No instalado","custom":"personalizado","unknown":"Desconocido","lastSavedAt":"\xdaltimo guardado: {date}","never":"nunca","justNow":"justo ahora","minutesAgoShort":"Hace {count}m","hoursAgoShort":"Hace {count}h","daysAgoShort":"Hace {count}d","monthsAgoShort":"hace {count} mes","yearsAgoShort":"Hace {count}y","runtimeCheckFailed":"Error en la comprobaci\xf3n del tiempo de ejecuci\xf3n","yourApiKeyPlaceholder":"tu-clave-api","modelPlaceholder":"proveedor/id-modelo","configurationSaved":"Configuraci\xf3n guardada exitosamente.","failedToSave":"No se pudo guardar la configuraci\xf3n.","noApiKeysCreateOne":"Sin claves API: cree una en la p\xe1gina Claves","defaultOmnirouteKey":"sk_omniroute (predeterminado)","selectModel":"Seleccionar modelo","selectModelForAlias":"Seleccione modelo para {alias}","selectModelForTool":"Seleccione modelo para {tool}","select":"Seleccionar","clear":"Borrar","comingSoon":"Pr\xf3ximamente","checkingRuntime":"Comprobando el estado del tiempo de ejecuci\xf3n...","guideOnlyIntegration":"Integraci\xf3n solo con gu\xeda (no se requiere tiempo de ejecuci\xf3n local)","cliRuntimeDetected":"Tiempo de ejecuci\xf3n de CLI detectado y listo","cliFoundNotRunnable":"CLI encontrada pero no ejecutable{reason}","cliRuntimeNotDetected":"Tiempo de ejecuci\xf3n CLI no detectado","binary":"binario","configPath":"Ruta de configuraci\xf3n","configPathShort":"configuraci\xf3n","failedCheckRuntimeStatus":"No se pudo verificar el estado del tiempo de ejecuci\xf3n.","copy":"Copiar","copied":"Copiado","copyConfig":"Copiar configuraci\xf3n","saveConfig":"Guardar configuraci\xf3n","selectionSaved":"Selecci\xf3n guardada","guide":"Gu\xeda","detected":"Detectado","notReady":"No listo","active":"Activo","inactive":"Inactivo","startMitm":"Iniciar MITM","stopMitm":"Detener MITM","mitmStarted":"\xa1MITM comenz\xf3 con \xe9xito!","mitmStopped":"\xa1MITM se detuvo con \xe9xito!","failedStart":"No se pudo iniciar MITM","failedStop":"No se pudo detener MITM","saveMappings":"Guardar asignaciones","mappingsSaved":"\xa1Asignaciones guardadas!","failedSaveMappings":"No se pudieron guardar las asignaciones","howItWorks":"C\xf3mo funciona:","antigravityHowWorksDesc":"Antigravity env\xeda solicitudes al punto final de Google. MITM los intercepta y los redirige a OmniRoute.","antigravityStep1":"1. Inicie MITM para enrutar solicitudes a trav\xe9s de OmniRoute.","antigravityStep2Prefix":"2. Agregar","antigravityStep2Suffix":"a su archivo de hosts como 127.0.0.1.","antigravityStep3":"3. Abra Antigravity y las solicitudes se enviar\xe1n por proxy.","sudoPasswordRequiredTitle":"Se requiere contrase\xf1a de Sudo","sudoPasswordHint":"Se requiere una contrase\xf1a de administrador para modificar el archivo de hosts y la configuraci\xf3n del proxy del sistema.","enterSudoPassword":"Ingrese la contrase\xf1a de sudo","sudoPasswordRequiredError":"Se requiere contrase\xf1a de Sudo.","cancel":"Cancelar","confirm":"Confirmar","settingsApplied":"\xa1La configuraci\xf3n se aplic\xf3 correctamente!","failedApplySettings":"No se pudo aplicar la configuraci\xf3n","settingsReset":"\xa1La configuraci\xf3n se restableci\xf3 correctamente!","failedResetSettings":"No se pudo restablecer la configuraci\xf3n","backupRestored":"\xa1Copia de seguridad restaurada!","failedRestore":"No se pudo restaurar","checkingCli":"Comprobando {tool} CLI...","cliNotRunnable":"{tool} CLI instalada pero no ejecutable","cliNotInstalled":"{tool} CLI no instalado","cliNotDetected":"{tool} CLI no detectada","cliDetectedReady":"{tool} CLI detectada y lista","cliFoundFailedHealthcheck":"{tool} Se encontr\xf3 CLI pero fall\xf3 la verificaci\xf3n de estado del tiempo de ejecuci\xf3n{reason}.","installCliPrompt":"Instale {tool} CLI para utilizar esta funci\xf3n.","installCodexPrompt":"Instale Codex CLI para utilizar la funci\xf3n de aplicaci\xf3n autom\xe1tica.","hide":"Ocultar","howToInstall":"C\xf3mo instalar","installationGuide":"Gu\xeda de instalaci\xf3n","platforms":"Mac OS/Linux/Windows:","afterInstallationRun":"Despu\xe9s de la instalaci\xf3n, ejecute","toVerify":"para verificar.","current":"Actual","baseUrlPlaceholder":"https://.../v1","resetToDefault":"Restablecer los valores predeterminados","providerModelPlaceholder":"proveedor/id-modelo","apply":"Aplicar","reset":"Reiniciar","manualConfig":"Configuraci\xf3n manual","backups":"Copias de seguridad","configBackups":"Configurar copias de seguridad","noBackupsYet":"A\xfan no hay copias de seguridad. Las copias de seguridad se crean autom\xe1ticamente antes de cada aplicaci\xf3n o reinicio.","restore":"Restaurar","backupRestoredReloading":"\xa1Copia de seguridad restaurada! Estado de recarga...","failedRestoreBackup":"No se pudo restaurar la copia de seguridad","applied":"\xa1Aplicado!","failed":"Fallido","resetDone":"\xa1Reiniciar!","omnirouteConfiguredOpenAiCompatible":"OmniRoute est\xe1 configurado como proveedor compatible con OpenAI","provider":"Proveedor","model":"modelo","providers":"Proveedores","auth":"autenticaci\xf3n","noApiKeysAvailable":"No hay claves API disponibles","usingDefaultOmniroute":"Usando por defecto: sk_omniroute","updateConfig":"Actualizar configuraci\xf3n","applyConfig":"Aplicar configuraci\xf3n","noBackupsAvailable":"No hay copias de seguridad disponibles.","profileSaved":"\xa1Perfil \\"{name}\\" guardado!","failedSaveProfile":"No se pudo guardar el perfil","profileActivated":"\xa1Perfil activado!","failedActivateProfile":"No se pudo activar el perfil","profiles":"Perfiles","savedProfiles":"Perfiles guardados","noProfilesYet":"A\xfan no se han guardado perfiles. Guarde la configuraci\xf3n actual como perfil a continuaci\xf3n.","activate":"Activar","deleteProfile":"Eliminar perfil","profileNamePlaceholder":"Nombre del perfil (por ejemplo, cuenta personal)","saveCurrent":"Guardar actual","codexAuthNotePrefix":"Usos del c\xf3dice","codexAuthNoteMiddle":"con","codexAuthNoteSuffix":"Haga clic en \\"Aplicar\\" para configurar autom\xe1ticamente.","claudeManualConfiguration":"Claude CLI - Configuraci\xf3n manual","codexManualConfiguration":"CLI del Codex: configuraci\xf3n manual","droidManualConfiguration":"Droid de f\xe1brica - Configuraci\xf3n manual","openClawManualConfiguration":"Garra abierta - Configuraci\xf3n manual","clineManualConfiguration":"Configuraci\xf3n manual de l\xednea","kiloManualConfiguration":"Configuraci\xf3n manual del c\xf3digo Kilo","toolDescriptions":{"antigravity":"IDE antigravedad de Google con MITM","claude":"CLI del C\xf3digo Antr\xf3pico Claude","codex":"CLI del C\xf3dice OpenAI","droid":"Asistente de IA de droide de f\xe1brica","openclaw":"Asistente de IA Open Claw","cline":"CLI del asistente de codificaci\xf3n AI de Cline","kilo":"CLI del Asistente de Inteligencia Artificial de Kilo Code","cursor":"Editor de c\xf3digo AI del cursor","continue":"Continuar Asistente de IA","opencode":"OpenCode AI coding agent (Terminal)","kiro":"Amazon Kiro — AI-powered IDE"},"guides":{"cursor":{"notes":{"0":"Requiere una cuenta de Cursor Pro para utilizar esta funci\xf3n.","1":"El cursor enruta las solicitudes a trav\xe9s de su propio servidor, por lo que no se admite el punto final local. Habilite Cloud Endpoint en Configuraci\xf3n."},"steps":{"1":{"title":"Abrir configuraci\xf3n","desc":"Vaya a Configuraci\xf3n -> Modelos"},"2":{"title":"Habilitar la API OpenAI","desc":"Habilite la opci\xf3n \\"Clave API OpenAI\\""},"3":{"title":"URL b\xe1sica"},"4":{"title":"Clave API"},"5":{"title":"Agregar modelo personalizado","desc":"Haga clic en \\"Ver todos los modelos\\" -> \\"Agregar modelo personalizado\\""},"6":{"title":"Seleccionar modelo"}}},"continue":{"steps":{"1":{"title":"Abrir configuraci\xf3n","desc":"Abrir el archivo de configuraci\xf3n Continuar"},"2":{"title":"Clave API"},"3":{"title":"Seleccionar modelo"},"4":{"title":"Agregar configuraci\xf3n de modelo","desc":"Agregue la siguiente configuraci\xf3n a su matriz de modelos:"}}},"opencode":{"steps":{"1":{"title":"Install OpenCode","desc":"Install via npm: npm install -g opencode-ai"},"2":{"title":"API Key"},"3":{"title":"Set Base URL","desc":"opencode config set baseUrl {{baseUrl}}"},"4":{"title":"Select Model"}}},"kiro":{"steps":{"1":{"title":"Open Kiro Settings","desc":"Go to Settings → AI Provider"},"2":{"title":"Base URL","desc":"Paste your OmniRoute endpoint URL"},"3":{"title":"API Key"},"4":{"title":"Select Model"}}}}},"combos":{"title":"combos","description":"Cree combinaciones de modelos con enrutamiento ponderado y soporte alternativo","createCombo":"Crear combinaci\xf3n","editCombo":"Editar combinaci\xf3n","deleteCombo":"Eliminar combinaci\xf3n","noModels":"Sin modelos","noModelsYet":"A\xfan no se han agregado modelos","addModel":"Agregar modelo","addModelToCombo":"Agregar modelo al combo","routingStrategy":"Estrategia de enrutamiento","maxRetries":"Reintentos m\xe1ximos","timeout":"Tiempo de espera (ms)","healthcheck":"control de salud","priority":"Prioridad","fallback":"Respaldo","roundRobin":"Ronda Robin","random":"Aleatorio","leastLatency":"Menor latencia","comboName":"Nombre combinado","comboNamePlaceholder":"mi-combo","deleteConfirm":"\xbfEliminar esta combinaci\xf3n?","noCombosYet":"A\xfan no hay combinaciones","comboCreated":"Combo creado exitosamente","comboUpdated":"Combo actualizado exitosamente","comboDeleted":"Combinaci\xf3n eliminada","failedCreate":"No se pudo crear el combo","failedUpdate":"No se pudo actualizar el combo","errorCreating":"Error al crear combo","errorUpdating":"Error al actualizar el combo","errorDeleting":"Error al eliminar el combo","testFailed":"La solicitud de prueba fall\xf3","failedToggle":"No se pudo alternar el combo","testResults":"Resultados de la prueba: {name}","resolvedBy":"Resuelto por:","more":"+{count} m\xe1s","reqs":"requisitos","success":"\xe9xito","proxyConfigured":"Proxy configurado","copyComboName":"Copiar nombre combinado","enableCombo":"Habilitar combinaci\xf3n","disableCombo":"Desactivar combinaci\xf3n","testCombo":"combinaci\xf3n de prueba","duplicate":"Duplicar","proxyConfig":"Configuraci\xf3n de proxy","nameRequired":"El nombre es obligatorio","nameInvalid":"S\xf3lo letras, n\xfameros, -, _, / y . permitido","nameHint":"Letras, n\xfameros, -, _, / y . permitido","priorityDesc":"Retroceso secuencial: prueba primero el modelo 1, luego el 2, etc.","weightedDesc":"Distribuye el tr\xe1fico por porcentaje de peso con respaldo","roundRobinDesc":"Distribuci\xf3n circular: cada solicitud pasa al siguiente modelo en rotaci\xf3n","randomDesc":"Selecci\xf3n aleatoria uniforme y luego recurrir a los modelos restantes.","leastUsedDesc":"Elige el modelo con menos solicitudes y equilibra la carga a lo largo del tiempo.","costOptimizedDesc":"Rutas al modelo m\xe1s barato primero seg\xfan el precio","models":"Modelos","autoBalance":"Equilibrio autom\xe1tico","advancedSettings":"Configuraci\xf3n avanzada","retryDelay":"Retardo de reintento (ms)","concurrencyPerModel":"Concurrencia / Modelo","queueTimeout":"Tiempo de espera de cola (ms)","advancedHint":"D\xe9jelo vac\xedo para usar los valores predeterminados globales. Estos anulan la configuraci\xf3n por proveedor.","moveUp":"Subir","moveDown":"Bajar","removeModel":"Quitar","saving":"Guardando...","weighted":"ponderado","leastUsed":"Menos utilizado","costOpt":"Opci\xf3n de costo","strategyGuideTitle":"C\xf3mo utilizar esta estrategia","strategyGuideWhen":"cuando usar","strategyGuideAvoid":"evitar cuando","strategyGuideExample":"Ejemplo","strategyGuide":{"priority":{"when":"Tiene un modelo preferido y s\xf3lo desea recurrir al fracaso.","avoid":"Necesita distribuci\xf3n de solicitudes entre modelos.","example":"Modelo de codificaci\xf3n primaria con respaldo m\xe1s econ\xf3mico para cortes."},"weighted":{"when":"Necesita tr\xe1fico controlado dividido entre modelos.","avoid":"No se pueden mantener pesos precisos a lo largo del tiempo.","example":"80% de modelo estable + 20% de implementaci\xf3n de modelo canario."},"round-robin":{"when":"Quiere una distribuci\xf3n predecible y uniforme.","avoid":"Los modelos difieren demasiado en latencia o costo.","example":"Mismo modelo en varias cuentas para distribuir el rendimiento."},"random":{"when":"Quiere una distribuci\xf3n sencilla con una configuraci\xf3n m\xednima.","avoid":"Necesita estrictas garant\xedas de tr\xe1fico.","example":"Creaci\xf3n r\xe1pida de prototipos con modelos equivalentes."},"least-used":{"when":"Quiere un equilibrio adaptativo basado en la demanda en vivo.","avoid":"El tr\xe1fico es demasiado bajo para beneficiarse del equilibrio de uso.","example":"Cargas de trabajo mixtas en las que un modelo a menudo se sobrecarga."},"cost-optimized":{"when":"La reducci\xf3n de costos es su principal prioridad.","avoid":"Faltan datos de precios o est\xe1n desactualizados.","example":"Trabajos en segundo plano o por lotes donde se prefiere un menor costo."}},"advancedHelp":{"maxRetries":"Cu\xe1ntos reintentos se intentan antes de fallar una solicitud.","retryDelay":"Initial wait between retries. Higher values reduce burst pressure.","timeout":"Maximum request duration before aborting.","healthcheck":"Skips unhealthy models/providers from routing decisions.","concurrencyPerModel":"Max simultaneous requests allowed per model in round-robin.","queueTimeout":"How long a request can wait in queue before timing out."},"templatesTitle":"Quick templates","templatesDescription":"Apply a starting profile, then adjust models and config.","templateApply":"Apply template","templateHighAvailability":"High availability","templateHighAvailabilityDesc":"Priority routing with health checks and safe retries.","templateCostSaver":"Cost saver","templateCostSaverDesc":"Cost-optimized routing for budget-first workloads.","templateBalanced":"Balanced load","templateBalancedDesc":"Rutas menos utilizadas para distribuir la demanda a lo largo del tiempo.","usageGuideHide":"Esconder","usageGuideDontShowAgain":"No volver a mostrar","usageGuideShow":"mostrar gu\xeda","quickTestTitle":"Combo listo para validar","quickTestDescription":"Ejecute una prueba ahora para confirmar el comportamiento de reserva y latencia.","testNow":"Prueba ahora","pricingCoverage":"Cobertura de precios","pricingCoverageHint":"La optimizaci\xf3n de costos funciona mejor cuando todos los modelos combinados tienen precios.","pricingAvailable":"Precios disponibles","pricingMissing":"Sin precios","pricingAvailableShort":"carillo","pricingMissingShort":"sin precio","warningRoundRobinSingleModel":"El round-robin es m\xe1s \xfatil con al menos 2 modelos.","warningCostOptimizedPartialPricing":"Solo {priced} de los modelos {total} tienen precios. El enrutamiento puede tener en cuenta parcialmente los costos.","warningCostOptimizedNoPricing":"No se encontraron datos de precios para este combo. El costo optimizado puede enrutarse inesperadamente.","readinessTitle":"\xbfListo para guardar?","readinessDescription":"Revisa la lista de verificaci\xf3n antes de crear o actualizar este combo.","readinessCheckName":"El nombre del combo es v\xe1lido","readinessCheckModels":"Hay al menos un modelo seleccionado","readinessCheckWeights":"El total de pesos es 100%","readinessCheckWeightsOptional":"La regla de pesos no aplica","readinessCheckPricing":"Hay datos de precios disponibles","readinessCheckPricingOptional":"La regla de precios no aplica","saveBlockedTitle":"El guardado est\xe1 bloqueado hasta corregir estos puntos:","saveBlockName":"Define un nombre para el combo.","saveBlockModels":"A\xf1ade al menos un modelo.","saveBlockWeighted":"Ajusta los pesos a 100% (actual: {total}%).","saveBlockPricing":"A\xf1ade precios para al menos un modelo o elige otra estrategia.","recommendationsLabel":"Configuraci\xf3n recomendada","applyRecommendations":"Aplicar recomendaciones","recommendationsUpdated":"Recomendaciones actualizadas para {strategy}.","recommendationsApplied":"Se aplicaron recomendaciones a este combo.","strategyRecommendations":{"priority":{"title":"Base tolerante a fallos","description":"Usa un modelo principal y mant\xe9n una cadena de fallback corta y confiable.","tip1":"Coloca primero tu modelo m\xe1s confiable.","tip2":"Mant\xe9n 1-2 modelos de respaldo con calidad similar.","tip3":"Usa reintentos seguros para absorber fallos transitorios del proveedor."},"weighted":{"title":"Reparto de tr\xe1fico controlado","description":"Ideal para despliegues canary y migraciones graduales entre modelos.","tip1":"Empieza con una divisi\xf3n conservadora como 90/10.","tip2":"Mant\xe9n el total en 100% y autoequilibra tras cambios.","tip3":"Monitorea \xe9xito y latencia antes de subir el peso canary."},"round-robin":{"title":"Reparto de carga predecible","description":"Mejor cuando los modelos son equivalentes y necesitas distribuci\xf3n estable.","tip1":"Usa al menos 2 modelos.","tip2":"Define l\xedmites de concurrencia para evitar r\xe1fagas.","tip3":"Usa timeout de cola para fallar r\xe1pido bajo saturaci\xf3n."},"random":{"title":"Distribuci\xf3n r\xe1pida con poca configuraci\xf3n","description":"\xdasala cuando necesites reparto simple sin garant\xedas estrictas.","tip1":"Usa modelos con perfiles de latencia similares.","tip2":"Mant\xe9n reintentos activos para absorber fallos aleatorios.","tip3":"Prefi\xe9rela para experimentaci\xf3n, no para SLA estrictos."},"least-used":{"title":"Balanceo adaptativo","description":"Enruta a modelos menos usados para reducir cuellos de botella con el tiempo.","tip1":"Funciona mejor con tr\xe1fico continuo.","tip2":"Comb\xednala con health checks para un balanceo m\xe1s seguro.","tip3":"Sigue el uso por modelo para validar la distribuci\xf3n."},"cost-optimized":{"title":"Enrutamiento orientado a costo","description":"Enruta a modelos m\xe1s baratos cuando hay metadatos de precio disponibles.","tip1":"Asegura cobertura de precios para todos los modelos seleccionados.","tip2":"Mant\xe9n un fallback de calidad para prompts dif\xedciles.","tip3":"\xdasala en batch/tareas de fondo donde el costo sea el KPI principal."}},"templateFreeStack":"Free Stack ($0)","templateFreeStackDesc":"Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding."},"costs":{"title":"Costos","budget":"Presupuesto","totalCost":"Costo total","breakdown":"Desglose de costos","noData":"Sin datos de coste","byModel":"Por modelo","byProvider":"Por proveedor"},"endpoint":{"title":"Punto final API","available":"Puntos finales disponibles","cloudProxy":"Proxy en la nube","disableConfirm":"\xbfEst\xe1 seguro de que desea desactivar el proxy en la nube?","baseUrl":"URL b\xe1sica","apiKeyLabel":"Clave API","registeredKeys":"Claves registradas","chatCompletions":"Finalizaciones de chat","responses":"Respuestas","listModels":"Listar modelos","usingCloudProxy":"Usando el proxy en la nube","usingLocalServer":"Usando el servidor local","machineId":"ID de m\xe1quina: {id}...","disableCloud":"Deshabilitar la nube","enableCloud":"Habilitar la nube","modelsAcrossEndpoints":"{models} modelos en {endpoints} puntos finales","chatDesc":"Chat streaming y no streaming con todos los proveedores","embeddings":"Incrustaciones","embeddingsDesc":"Inserciones de texto para b\xfasqueda y canales RAG","imageGeneration":"Generaci\xf3n de im\xe1genes","imageDesc":"Generar im\xe1genes a partir de mensajes de texto","rerank":"Reclasificar","rerankDesc":"Reclasificar documentos por relevancia para una consulta","audioTranscription":"Transcripci\xf3n de audio","audioTranscriptionDesc":"Transcribir archivos de audio a texto (Whisper)","textToSpeech":"Texto a voz","textToSpeechDesc":"Convierta texto en voz con sonido natural","moderations":"Moderaciones","moderationsDesc":"Moderaci\xf3n de contenidos y clasificaci\xf3n de seguridad.","responsesDesc":"API Responses de OpenAI para Codex y flujos de trabajo ag\xe9nticos avanzados","listModelsDesc":"Listar todos los modelos disponibles en todos los proveedores conectados","settingsApiDesc":"Leer y modificar la configuraci\xf3n de OmniRoute a trav\xe9s de la API","settingsApi":"Settings API","categoryCore":"APIs Principales","categoryMedia":"Medios y Multi-Modal","categoryUtility":"Utilidades y Gesti\xf3n","enableCloudTitle":"Habilitar proxy en la nube","whatYouGet":"lo que obtendr\xe1s","cloudBenefitAccess":"Accede a tu API desde cualquier parte del mundo","cloudBenefitShare":"Comparta el punto final con su equipo f\xe1cilmente","cloudBenefitPorts":"No es necesario abrir puertos ni configurar el firewall","cloudBenefitEdge":"Red de borde global r\xe1pida","cloudSessionNote":"Cloud mantendr\xe1 su sesi\xf3n de autenticaci\xf3n durante 1 d\xeda. Si no se utiliza, se eliminar\xe1 autom\xe1ticamente.","cloudUnstableNote":"Actualmente, la nube es inestable con Claude Code OAuth en algunos casos.","cloudConnected":"\xa1Proxy en la nube conectado!","connectingToCloud":"Conect\xe1ndose a la nube...","verifyingConnection":"Verificando conexi\xf3n...","connecting":"Conectando...","verifying":"Verificando...","connected":"\xa1Conectado!","disableCloudTitle":"Deshabilitar el proxy en la nube","disableWarning":"Todas las sesiones de autenticaci\xf3n se eliminar\xe1n de la nube.","syncingData":"Sincronizando datos m\xe1s recientes...","disablingCloud":"Deshabilitando la nube...","syncing":"Sincronizando...","disabling":"Desactivando...","cloudConnectedVerified":"\xa1Cloud Proxy conectado y verificado!","connectedVerificationPending":"Conectado: verificaci\xf3n pendiente","connectedVerificationPendingWithError":"Conectado - verificaci\xf3n pendiente: {error}","cloudDisabledSuccess":"Nube deshabilitada exitosamente","syncedSuccess":"Sincronizado exitosamente","failedDisable":"No se pudo desactivar la nube","failedEnable":"No se pudo habilitar la nube","cloudRequestTimeout":"Tiempo de espera de solicitud de nube","cloudRequestFailed":"Error en la solicitud de nube","cloudWorkerUnreachable":"No se pudo comunicar con el trabajador de la nube. Aseg\xfarese de que el servicio en la nube se est\xe9 ejecutando (npm run dev en /cloud).","connectionFailed":"La conexi\xf3n fall\xf3","syncFailed":"No se pudieron sincronizar los datos de la nube","providerModelsTitle":"{provider} — Modelos","noModelsForProvider":"No hay modelos disponibles para este proveedor.","chat":"Charla","embedding":"incrustar","image":"Imagen","custom":"personalizado","modelsCount":"{count, plural, one {# model} other {# models}}","sectionTitle":"Superficie de integraci\xf3n","sectionDescription":"API compatibles con OpenAI y puntos finales de protocolo operativo","tabApis":"API compatibles con OpenAI","tabProtocols":"Protocolos","tabsAria":"Secciones de punto final","protocolsTitle":"Protocolos","protocolsDescription":"MCP y A2A son puntos finales de primera clase con observabilidad y controles dedicados.","mcpCardTitle":"Servidor MCP","mcpCardDescription":"Protocolo de contexto modelo sobre stdio","a2aCardTitle":"Servidor A2A","a2aCardDescription":"Punto final Agent2Agent JSON-RPC","protocolToolsLabel":"Herramientas","protocolTasksLabel":"Tareas","protocolActiveStreamsLabel":"Corrientes activas","protocolLastActivity":"\xdaltima actividad","quickStart":"Inicio r\xe1pido","openMcpDashboard":"Gesti\xf3n abierta de MCP","openA2aDashboard":"Gesti\xf3n A2A abierta","mcpQuickStartTitle":"Inicio r\xe1pido de MCP","mcpQuickStartStep1":"Ejecute el servidor MCP a trav\xe9s de `omniroute --mcp`.","mcpQuickStartStep2":"Configure su cliente MCP para conectarse a trav\xe9s del transporte est\xe1ndar.","mcpQuickStartStep3":"Invoca herramientas como `omniroute_get_health` y `omniroute_list_combos`.","a2aQuickStartTitle":"Inicio r\xe1pido de A2A","a2aQuickStartStep1":"Descubra la tarjeta de agente en `/.well-known/agent.json`.","a2aQuickStartStep2":"Env\xede solicitudes JSON-RPC a `POST /a2a` usando `message/send` o `message/stream`.","a2aQuickStartStep3":"Realice un seguimiento y controle las tareas utilizando `tasks/get` y `tasks/cancel`.","completionsLegacy":"Completions (Legacy)","completionsLegacyDesc":"Legacy OpenAI text completions — accepts both prompt string and messages array format"},"mcpDashboard":{"loading":"Cargando el panel de MCP...","activate":"activar","deactivate":"desactivar","confirmSwitchCombo":"\xbfConfirmar el combo {action} \\"{combo}\\"?","switchComboFailed":"No se pudo cambiar el estado combinado.","switchComboSuccess":"Combo \\"{combo}\\" actualizado.","confirmApplyProfile":"\xbfAplicar perfil de resiliencia \\"{profile}\\"?","applyProfileFailed":"No se pudo aplicar el perfil de resiliencia.","applyProfileSuccess":"Perfil \\"{profile}\\" aplicado.","confirmResetBreakers":"\xbfReiniciar todos los disyuntores?","resetBreakersFailed":"No se pudo restablecer los disyuntores.","resetBreakersSuccess":"Restablecimiento de los disyuntores.","processStatus":"Estado del proceso","online":"En l\xednea","offline":"Desconectado","pid":"PID","sessionUptime":"tiempo de actividad de la sesi\xf3n","lastHeartbeat":"\xfaltimo latido","activity24h":"Actividad (24h)","totalCalls":"Llamadas totales","successRate":"Tasa de \xe9xito","avgLatency":"Latencia promedio","topTools":"Herramientas superiores","noToolCalls24h":"No hubo llamadas de herramientas en las \xfaltimas 24 horas.","runtimeDetails":"Detalles del tiempo de ejecuci\xf3n","transport":"Transporte","scopesEnforced":"Alcances aplicados","yes":"S\xed","no":"No","lastCall":"\xfaltima llamada","heartbeatPath":"Camino del latido del coraz\xf3n","operationalControls":"Controles operativos","switchCombo":"Combinaci\xf3n de interruptores","inactive":"inactivo","active":"activo","activateCombo":"Activar combo","deactivateCombo":"Desactivar combo","applyResilienceProfile":"Aplicar perfil de resiliencia","profileAggressive":"agresivo","profileBalanced":"equilibrado","profileConservative":"conservador","applyProfile":"Aplicar perfil","resetCircuitBreakers":"Restablecer disyuntores","resetCircuitBreakersHelp":"Borra el estado actual del interruptor y los contadores de fallas para los proveedores.","resetAllBreakers":"Restablecer todos los interruptores","toolsAndScopes":"Herramientas y alcances","tableTool":"Herramienta","tableScopes":"Alcances","tablePhase":"Fase","tableAudit":"Auditor\xeda","auditLog":"Registro de auditor\xeda","auditSummary":"Llamadas: {total} | p\xe1gina {page} de {totalPages}","allTools":"Todas las herramientas","allResults":"Todos los resultados","success":"\xc9xito","failure":"Falla","apiKeyIdPlaceholder":"apiKeyId","loadingAuditEntries":"Loading audit entries...","noAuditEntriesForFilters":"No audit entries found for current filters.","tableTimestamp":"Timestamp","tableDuration":"Duration","tableResult":"Result","tableApiKey":"API key","failed":"failed","previous":"Previous","next":"Next"},"a2aDashboard":{"loading":"Loading A2A dashboard...","confirmCancelTask":"Cancel task {taskId}?","cancelTaskFailed":"No se pudo cancelar la tarea.","cancelTaskSuccess":"Tarea {taskId} cancelada.","smokeSendFailed":"message/send smoke test failed.","smokeSendSuccessWithTask":"message/send ok (task {taskId}).","smokeSendSuccess":"message/send ok.","smokeStreamFailed":"message/stream smoke test failed.","smokeStreamSuccessWithTask":"message/stream ok (task {taskId}{stateSuffix}).","smokeStreamNoTaskId":"message/stream finished without task id.","health":"Health","ok":"ok","totalTasks":"Total tasks","activeStreams":"Corrientes activas","lastTask":"Last task","taskStateOverview":"Task state overview","state":{"submitted":"submitted","working":"working","completed":"completed","failed":"failed","cancelled":"cancelado"},"agentCard":"tarjeta de agente","version":"Versi\xf3n","url":"URL","capabilities":"Capacidades","agentCardNotAvailable":"Tarjeta de agente no disponible.","quickValidation":"Validaci\xf3n r\xe1pida","quickValidationDescription":"Ejecuta llamadas de humo a trav\xe9s del punto final `/a2a` en vivo.","runMessageSend":"Run message/send","runMessageStream":"Run message/stream","taskManagement":"Task management","taskSummary":"{total} tasks | page {page} of {totalPages}","allStates":"all","allSkills":"all skills","loadingTasks":"Loading tasks...","noTasksForFilters":"No tasks found for current filters.","tableTask":"Task","tableSkill":"Skill","tableState":"State","tableUpdated":"Updated","tableActions":"Actions","view":"Vista","cancel":"Cancelar","previous":"Previous","next":"Next","taskDetail":"Detalle de la tarea","close":"Cerca","metadata":"Metadatos","events":"Eventos","artifacts":"Artefactos"},"health":{"title":"Estado del sistema","description":"Monitoreo en tiempo real de su instancia de OmniRoute","healthy":"saludable","degraded":"degradado","down":"abajo","uptime":"tiempo de actividad","memory":"Memoria","memoryRss":"Memoria (RSS)","heap":"mont\xf3n","cpu":"CPU","database":"Base de datos","version":"Versi\xf3n","lastCheck":"\xfaltimo cheque","providerHealth":"Salud del proveedor","systemMetrics":"M\xe9tricas del sistema","tokenHealth":"Salud del token","refreshAll":"Actualizar todo","checkNow":"Comprobar ahora","loadingHealth":"Cargando datos de salud...","failedToLoad":"No se pudieron cargar los datos de salud: {error}","retry":"Reintentar","allOperational":"Todos los sistemas operativos.","issuesDetected":"Problemas del sistema detectados","updatedAt":"Actualizado {time}","latency":"Latencia","latencyP50":"p50","latencyP95":"p95","latencyP99":"p99","millisecondsShort":"{value}ms","notAvailable":"—","totalRequests":"Solicitudes totales","noDataYet":"A\xfan no hay datos","promptCache":"Cach\xe9 de aviso","entries":"Entradas","hitRate":"Tasa de aciertos","hitsMisses":"Aciertos/fallos","signatureCache":"Cach\xe9 de firma","signatureDefaults":"Valores predeterminados","signatureTool":"Herramienta","signatureFamily":"familia","signatureSession":"Sesi\xf3n","recovering":"Recuperando","noCBData":"No hay datos de disyuntores disponibles. Primero haga algunas solicitudes.","providerHealthStatusAria":"Estado de salud del proveedor","issuesLabel":"Problemas detectados","operational":"Operacional","providers":"Proveedores","healthyCount":"{count} saludable","nodeVersion":"Nodo {version}","failures":"{count} error","failuresPlural":"{count} fallas","lastFailure":"\xfaltimo","rateLimitStatus":"Estado del l\xedmite de tarifa","activeLimiters":"{count} limitador activo","activeLimitersPlural":"{count} limitadores activos","queued":"En cola","queuedCount":"{count} en cola","running":"corriendo","runningCount":"{count} ejecut\xe1ndose","ok":"bien","activeLockouts":"Bloqueos activos","resetConfirm":"\xbfRestablecer todos los disyuntores a un estado saludable? Esto borrar\xe1 todos los recuentos de fallas y restaurar\xe1 todos los proveedores al estado operativo.","resetAllTitle":"Restablezca todos los disyuntores al estado saludable","resetting":"Restableciendo...","resetAll":"Restablecer todo","until":"Hasta {time}"},"limits":{"title":"L\xedmites y cuotas","rateLimit":"L\xedmite de tarifa","remaining":"restante","requestsPerMinute":"Solicitudes/min","tokensPerMinute":"Fichas/min","dailyLimit":"L\xedmite diario"},"logs":{"title":"Registros","requestLogs":"Solicitar registros","proxyLogs":"Registros de proxy","auditLog":"Registro de auditor\xeda","console":"Consola","auditLogDesc":"Acciones administrativas y eventos de seguridad.","loading":"Cargando...","refresh":"Actualizar","filterByAction":"Filtrar por acci\xf3n...","filterByActor":"Filtrar por actor...","filterEntriesAria":"Filtrar entradas del registro de auditor\xeda","filterByActionTypeAria":"Filtrar por tipo de acci\xf3n","filterByActorAria":"Filtrar por actor","refreshAuditLogAria":"Actualizar el registro de auditor\xeda","tableAria":"Entradas del registro de auditor\xeda","failedFetchAuditLog":"No se pudo recuperar el registro de auditor\xeda","showing":"Mostrando entradas {count} (desplazamiento {offset})","search":"Buscar","timestamp":"Marca de tiempo","action":"acci\xf3n","actor":"Actor","target":"Objetivo","details":"Detalles","ipAddress":"Direcci\xf3n IP","notAvailable":"—","noEntries":"No se encontraron entradas del registro de auditor\xeda","previous":"Anterior","next":"Siguiente"},"onboarding":{"welcome":"Bienvenido","security":"Seguridad","test":"prueba","ready":"\xa1Listo!","setPassword":"Establecer contrase\xf1a","addProvider":"A\xf1ade tu primer proveedor","getStarted":"Empezar","skip":"Saltar","skipWizard":"Saltar asistente por completo","skipPassword":"Saltar configuraci\xf3n de contrase\xf1a","skipAndContinue":"Saltar y continuar","passwordLabel":"Contrase\xf1a","confirmPassword":"Confirmar contrase\xf1a","enterPassword":"Introduce la contrase\xf1a","confirmPasswordPlaceholder":"Confirmar contrase\xf1a","passwordsMismatch":"Las contrase\xf1as no coinciden","setupComplete":"\xa1Configuraci\xf3n completa!","goToDashboard":"Ir al Panel →","welcomeDesc":"OmniRoute es su proxy API de IA local. Enruta solicitudes a m\xfaltiples proveedores de IA con equilibrio de carga, conmutaci\xf3n por error y seguimiento de uso.","multiProvider":"Multiproveedor","usageTracking":"Seguimiento de uso","apiKeyMgmt":"Gesti\xf3n de claves API","securityDesc":"Establezca una contrase\xf1a para proteger su panel u om\xedtala por ahora.","providerDesc":"Conecte su primer proveedor de IA. Puedes agregar m\xe1s m\xe1s tarde.","apiKeyRequired":"Clave API (obligatoria)","customUrlOptional":"URL personalizada (opcional)","testDesc":"Verifiquemos que la conexi\xf3n de su proveedor funcione.","runTest":"Ejecutar prueba de conexi\xf3n","testingConnection":"Probando conexi\xf3n...","connectionSuccessful":"\xa1Conexi\xf3n exitosa! Su proveedor est\xe1 listo.","noProviderFound":"No se encontr\xf3 ning\xfan proveedor. Puede agregar uno desde el panel m\xe1s tarde.","testFailed":"La prueba fall\xf3, pero puedes configurar esto m\xe1s tarde.","couldNotTest":"No se pudo realizar la prueba en este momento. Puedes probar desde el panel.","doneDesc":"\xa1Est\xe1s listo! Su instancia de OmniRoute est\xe1 configurada y lista para enviar solicitudes de IA.","yourEndpoint":"Su punto final:","continue":"Continuar","retry":"Reintentar","failedSetPassword":"No se pudo establecer la contrase\xf1a. Intentar otra vez.","failedAddProvider":"No se pudo agregar el proveedor. Intentar otra vez.","connectionError":"Error de conexi\xf3n. Por favor int\xe9ntalo de nuevo.","provider":"Proveedor"},"providers":{"title":"Proveedores","addProvider":"Agregar proveedor","editProvider":"Editar proveedor","deleteProvider":"Eliminar proveedor","noProviders":"No hay proveedores configurados","modelAvailability":"Disponibilidad del modelo","accounts":"Cuentas","newAccount":"Nueva cuenta","deleteConfirm":"\xbfEst\xe1 seguro de que desea eliminar este proveedor?","testing":"Probando...","testConnection":"Conexi\xf3n de prueba","testSuccess":"Conexi\xf3n exitosa","testFailed":"La conexi\xf3n fall\xf3","available":"Disponible","cooldown":"Enfriamiento","unavailable":"No disponible","unknown":"Desconocido","oauthLabel":"OAuth","compatibleLabel":"compatibles","chat":"Charla","responses":"Respuestas","messages":"Mensajes","oauthProviders":"Proveedores de OAuth","freeProviders":"Proveedores gratuitos","apiKeyProviders":"Proveedores de claves API","compatibleProviders":"Proveedores compatibles con claves API","testAll":"Probar todo","testAllOAuth":"Pruebe todas las conexiones OAuth","testAllFree":"Pruebe todas las conexiones gratuitas","testAllApiKey":"Pruebe todas las conexiones de clave API","testAllCompatible":"Pruebe todas las conexiones compatibles","connected":"{count} Conectado","errorCount":"{count} Error ({code})","errorCountNoCode":"{count} Error","noConnections":"Sin conexiones","disabled":"Discapacitado","enableProvider":"Habilitar proveedor","disableProvider":"Deshabilitar proveedor","testResults":"Resultados de la prueba","noCompatibleYet":"A\xfan no se han agregado proveedores compatibles","compatibleHint":"Utilice los botones de arriba para agregar puntos finales compatibles con OpenAI o Anthropic","addOpenAICompatible":"Agregar compatibilidad con OpenAI","addAnthropicCompatible":"A\xf1adir compatible antr\xf3pico","addNewProvider":"Agregar nuevo proveedor","backToProviders":"Volver a Proveedores","configureNewProvider":"Configure un nuevo proveedor de IA para usarlo con sus aplicaciones.","providerLabel":"Proveedor","selectProvider":"Seleccione un proveedor","selectedProvider":"Proveedor seleccionado","authMethod":"M\xe9todo de autenticaci\xf3n","apiKeyLabel":"Clave API","apiKeyRequired":"Se requiere clave API","selectProviderRequired":"Por favor seleccione un proveedor","enterApiKey":"Ingrese su clave API","apiKeySecure":"Su clave API se cifrar\xe1 y almacenar\xe1 de forma segura.","oauth2Connect":"Con\xe9ctate con OAuth2","oauth2Label":"OAuth2","oauth2Desc":"Conecte su cuenta mediante la autenticaci\xf3n OAuth2.","displayName":"Nombre para mostrar","displayNamePlaceholder":"por ejemplo, API de producci\xf3n, entorno de desarrollo","displayNameHint":"Opcional. Un nombre descriptivo para identificar esta configuraci\xf3n.","active":"Activo","activeDescription":"Habilite este proveedor para usarlo en sus aplicaciones","cancel":"Cancelar","createProvider":"Crear proveedor","failedCreate":"No se pudo crear el proveedor","errorOccurred":"Se produjo un error. Por favor int\xe9ntalo de nuevo.","modelStatus":"Estado del modelo","allModelsOperational":"Todos los modelos operativos.","modelsWithIssues":"{count} modelo(s) con problemas","allModelsNormal":"Todos los modelos est\xe1n respondiendo normalmente.","cooldownCleared":"Tiempo de reutilizaci\xf3n borrado para {model}","failedClearCooldown":"No se pudo borrar el tiempo de reutilizaci\xf3n","loadingAvailability":"Cargando disponibilidad de modelos...","clearCooldown":"Borrar","clearing":"Limpiando...","until":"Hasta {time}","providerTestFailed":"La prueba del proveedor fall\xf3","modeTest":"{mode} Prueba","passedCount":"{count} pas\xf3","failedCount":"{count} fall\xf3","testedCount":"{count} probado","millisecondsAbbr":"{value}ms","okShort":"bien","errorShort":"ERROR","noActiveConnectionsInGroup":"No se encontraron conexiones activas para este grupo.","allTestsPassed":"Todas las pruebas {total} pasaron","testSummary":"{passed}/{total} pas\xf3, {failed} fall\xf3","nameLabel":"Nombre","prefixLabel":"Prefijo","baseUrlLabel":"URL b\xe1sica","apiTypeLabel":"Tipo de API","prefixHint":"Requerido. Prefijo \xfanico para nombres de modelos.","nameHint":"Requerido. Una etiqueta amigable para este nodo.","baseUrlHint":"Requerido. URL base de la API del proveedor.","anthropicPrefixPlaceholder":"producto ac","openaiPrefixPlaceholder":"oc-prod","anthropicBaseUrlPlaceholder":"https://api.anthropic.com/v1","openaiBaseUrlPlaceholder":"https://api.openai.com/v1","validateConnection":"Validar conexi\xf3n","validating":"Validando...","connectionValid":"\xa1La conexi\xf3n es v\xe1lida!","connectionFailed":"La conexi\xf3n fall\xf3. Verifique la URL y la clave.","testKeyLabel":"Clave API de prueba","testKeyPlaceholder":"sk-... (solo para validaci\xf3n)","providerNotFound":"Proveedor no encontrado","deleteConnectionConfirm":"\xbfEliminar esta conexi\xf3n?","failedSetAlias":"No se pudo establecer el alias","failedSaveConnection":"No se pudo guardar la conexi\xf3n","failedSaveConnectionRetry":"No se pudo guardar la conexi\xf3n. Por favor int\xe9ntalo de nuevo.","failedRetestConnection":"No se pudo volver a probar la conexi\xf3n","deleteCompatibleNodeConfirm":"\xbfEliminar este {type} nodo compatible?","anthropicCompatibleDetails":"Detalles compatibles antr\xf3picos","openaiCompatibleDetails":"Detalles compatibles con OpenAI","messagesApi":"API de mensajes","responsesApi":"API de respuestas","chatCompletions":"Finalizaciones de chat","importingModels":"Importando...","importFromModels":"Importar desde /modelos","addConnectionToImport":"Agregue una conexi\xf3n para permitir la importaci\xf3n.","noModelsConfigured":"No hay modelos configurados","connectionCount":"{count} conexi\xf3n(es)","fetchingModels":"Recuperando modelos disponibles...","failedFetchModels":"No se pudieron recuperar los modelos","noModelsFound":"No se encontraron modelos","importFailed":"Importaci\xf3n fallida","noNewModelsAdded":"No se agregaron nuevos modelos.","adding":"A\xf1adiendo...","importingModelsTitle":"Importar modelos","copyModel":"Copiar modelo","removeModel":"Quitar modelo","rateLimitProtected":"Protegido","rateLimitUnprotected":"Desprotegido","enableRateLimitProtection":"Haga clic para habilitar la protecci\xf3n del l\xedmite de velocidad","disableRateLimitProtection":"Haga clic para desactivar la protecci\xf3n del l\xedmite de velocidad","productionKey":"Clave de producci\xf3n","enterNewApiKey":"Ingrese la nueva clave API","optional":"Opcional","anthropicCompatibleName":"Compatible antr\xf3pico","openaiCompatibleName":"Compatible con OpenAI","failedImportModels":"No se pudieron importar modelos","noModelsReturnedFromEndpoint":"No se devolvieron modelos desde el punto final /models.","importingModelsProgress":"Importando {current} de {total} modelos...","foundModelsStartingImport":"Se encontraron {count} modelos. Iniciando importaci\xf3n...","importingModelById":"Importando {modelId}...","importSuccessCount":"\xa1Importado exitosamente {count, plural, one {# model} other {# models}}!","noNewModelsAddedExisting":"No se agregaron nuevos modelos (todos ya existen).","importDoneCount":"✓ \xa1Listo! {count, plural, one {# model imported.} other {# models imported.}}","unexpectedErrorOccurred":"Ocurri\xf3 un error inesperado","connectionCountLabel":"{count, plural, one {# connection} other {# connections}}","messagesPath":"mensajes","responsesPath":"respuestas","chatCompletionsPath":"chat/finalizaciones","add":"A\xf1adir","edit":"Editar","delete":"Eliminar","anthropic":"antr\xf3pico","openai":"AbiertoAI","singleConnectionPerCompatible":"S\xf3lo se permite una conexi\xf3n por nodo compatible. Agregue otro nodo si necesita m\xe1s conexiones.","connections":"Conexiones","providerProxyTitleConfigured":"Proxy del proveedor: {host}","configured":"configurado","providerProxyConfigureHint":"Configurar proxy para todas las conexiones de este proveedor","providerProxy":"Proxy del proveedor","noConnectionsYet":"A\xfan no hay conexiones","addFirstConnectionHint":"Agregue su primera conexi\xf3n para comenzar","addConnection":"Agregar conexi\xf3n","availableModels":"Modelos disponibles","pageAutoRefresh":"La p\xe1gina se actualizar\xe1 autom\xe1ticamente...","statusDisabled":"discapacitado","statusConnected":"conectado","statusRuntimeIssue":"problema de tiempo de ejecuci\xf3n","statusAuthFailed":"autenticaci\xf3n fallida","statusRateLimited":"tarifa limitada","statusNetworkIssue":"problema de red","statusTestUnsupported":"prueba no compatible","statusUnavailable":"no disponible","statusFailed":"fall\xf3","statusError":"error","oauthAccount":"Cuenta OAuth","errorTypeRuntime":"Tiempo de ejecuci\xf3n local","errorTypeUpstreamAuth":"autenticaci\xf3n ascendente","errorTypeMissingCredential":"credencial faltante","errorTypeRefreshFailed":"Error al actualizar","errorTypeTokenExpired":"Token caducado","errorTypeRateLimited":"Tarifa limitada","errorTypeUpstreamUnavailable":"Upstream no disponible","errorTypeNetworkError":"error de red","errorTypeTestUnsupported":"Prueba no compatible","errorTypeUpstreamError":"Error ascendente","proxySourceGlobal":"Mundial","proxySourceProvider":"Proveedor","proxySourceKey":"clave","proxyConfiguredBySource":"Proxy ({source}): {host}","autoPriority":"Autom\xe1tico: {priority}","proxy":"apoderado","retestAuthentication":"Volver a probar la autenticaci\xf3n","retest":"Volver a probar","disableConnection":"Desactivar conexi\xf3n","enableConnection":"Habilitar conexi\xf3n","reauthenticateConnection":"Volver a autenticar esta conexi\xf3n","proxyConfig":"Configuraci\xf3n de proxy","aliasExistsAlert":"El alias \\"{alias}\\" ya existe. Utilice un modelo diferente o edite el alias existente.","openRouterAnyModelHint":"OpenRouter admite cualquier modelo. Agregue modelos y cree alias para un acceso r\xe1pido.","modelIdFromOpenRouter":"ID del modelo (de OpenRouter)","openRouterModelPlaceholder":"antr\xf3pico/claude-3-opus","customModels":"Modelos personalizados","customModelsHint":"Agregue ID de modelo que no est\xe9n en la lista predeterminada. Estos estar\xe1n disponibles para enrutamiento.","modelId":"ID del modelo","customModelPlaceholder":"por ej. gpt-4.5-turbo","loading":"Cargando...","removeCustomModel":"Eliminar modelo personalizado","noCustomModels":"A\xfan no se han agregado modelos personalizados.","allSuggestedAliasesExist":"Todos los alias sugeridos ya existen. Elija un modelo diferente o elimine los alias conflictivos.","failedSaveCustomModel":"No se pudo guardar el modelo personalizado","modelAddedSuccess":"Modelo {modelId} agregado exitosamente","failedAddModelTryAgain":"No se pudo agregar el modelo. Por favor int\xe9ntalo de nuevo.","failedSaveImportedModel":"No se pudo guardar el modelo importado en la base de datos personalizada","failedImportModelsTryAgain":"No se pudieron importar modelos. Por favor int\xe9ntalo de nuevo.","failedRemoveModelFromDatabase":"No se pudo eliminar el modelo de la base de datos","modelRemovedSuccess":"Modelo eliminado correctamente","failedDeleteModelTryAgain":"No se pudo eliminar el modelo. Por favor int\xe9ntalo de nuevo.","compatibleModelsDescription":"Agregue modelos compatibles con {type} manualmente o imp\xf3rtelos desde el punto final /models.","anthropicCompatibleModelPlaceholder":"claude-3-opus-20240229","openaiCompatibleModelPlaceholder":"gpt-4o","apiKeyValidationFailed":"La validaci\xf3n de la clave API fall\xf3. Por favor verifique su clave e int\xe9ntelo nuevamente.","addProviderApiKeyTitle":"Agregar clave API {provider}","checking":"Comprobando...","check":"comprobar","valid":"V\xe1lido","invalid":"Inv\xe1lido","creating":"Creando...","validationChecksAnthropicCompatible":"La validaci\xf3n verifica {provider} verificando la clave API.","validationChecksOpenAiCompatible":"La validaci\xf3n verifica {provider} a trav\xe9s de /models en su URL base.","priorityLabel":"Prioridad","saving":"Guardando...","save":"Guardar","editConnection":"Editar conexi\xf3n","accountName":"Nombre de cuenta","email":"Correo electr\xf3nico","healthCheckMinutes":"Control de salud (min)","healthCheckHint":"Intervalo de actualizaci\xf3n de token proactivo. 0 = deshabilitado.","failedTestConnection":"No se pudo probar la conexi\xf3n","failed":"Fallido","leaveBlankKeepCurrentApiKey":"D\xe9jelo en blanco para conservar la clave API actual.","editCompatibleTitle":"Editar {type} Compatible","compatibleBaseUrlHint":"Utilice la URL base (que termina en /v1) para su API compatible con {type}.","apiKeyForCheck":"Clave API (para verificaci\xf3n)","compatibleProdPlaceholder":"{type} Compatible (Prod.)","providerTestTimeout":"Provider test timed out — too many connections to test at once"},"settings":{"title":"Configuraci\xf3n","general":"generales","security":"Seguridad","appearance":"Apariencia","routing":"Enrutamiento","cache":"cach\xe9","resilience":"Resiliencia","systemPrompt":"Aviso del sistema","thinkingBudget":"Pensando en el presupuesto","proxy":"apoderado","pricing":"Precios","storage":"Almacenamiento","policies":"Pol\xedticas","ipFilter":"Filtro IP","comboDefaults":"Valores predeterminados combinados","fallbackChains":"Cadenas de respaldo","changePassword":"Cambiar contrase\xf1a","enablePassword":"Habilitar contrase\xf1a","darkMode":"Modo oscuro","lightMode":"Modo de luz","systemTheme":"Tema del sistema","enableCache":"Habilitar cach\xe9","cacheTTL":"TTL de cach\xe9","maxCacheSize":"Tama\xf1o m\xe1ximo de cach\xe9","clearCache":"Borrar cach\xe9","cacheHits":"Visitas de cach\xe9","cacheMisses":"Errores de cach\xe9","hitRate":"Tasa de aciertos","cacheEntries":"Entradas de cach\xe9","circuitBreaker":"Disyuntor","retryPolicy":"Pol\xedtica de reintento","maxRetries":"Reintentos m\xe1ximos","retryDelay":"Retardo de reintento","timeoutMs":"Tiempo de espera (ms)","enableSystemPrompt":"Habilitar mensaje del sistema","systemPromptText":"Texto de aviso del sistema","enableThinking":"Habilitar el pensamiento","maxThinkingTokens":"Fichas de pensamiento m\xe1ximo","enableProxy":"Habilitar proxy","proxyUrl":"URL de proxy","pricingRates":"Formato de tarifas de precios","currentPricing":"Resumen de precios actuales","loadingPricing":"Cargando datos de precios...","noPricing":"No hay datos de precios disponibles","input":"Entrada","output":"Salida","cached":"En cach\xe9","reasoning":"Razonamiento","cacheCreation":"Creaci\xf3n de cach\xe9","customPricing":"Precios personalizados","databaseSize":"Tama\xf1o de la base de datos","backupDb":"Base de datos de respaldo","restoreDb":"Restaurar base de datos","exportData":"Exportar datos","importData":"Importar datos","clearData":"Borrar todos los datos","clearDataConfirm":"Esto eliminar\xe1 permanentemente todos los datos. \xbfEst\xe1 seguro?","enableRequestLogs":"Habilitar registros de solicitudes","logRetention":"Retenci\xf3n de registros","ipWhitelist":"Lista blanca de IP","ipBlacklist":"Lista negra de IP","addIP":"Agregar IP","savedSuccessfully":"Configuraci\xf3n guardada exitosamente","ai":"IA","advanced":"Avanzado","localMode":"Modo local: todos los datos almacenados en su m\xe1quina","settingsSectionsAria":"Secciones de configuraci\xf3n","switchThemes":"Cambiar entre temas claros y oscuros","themeSelectionAria":"Selecci\xf3n de tema","themeLight":"Luz","themeDark":"oscuro","themeSystem":"Sistema","hideHealthLogs":"Ocultar registros de verificaci\xf3n de estado","hideHealthLogsDesc":"Cuando est\xe1 activado, suprime los mensajes [HealthCheck] en la consola del servidor","themeAccent":"Color del tema","themeAccentDesc":"Elige un color predefinido o crea tu propio tema con un solo color","themeCreate":"Crear tema","themeCustom":"Tema personalizado","themeBlue":"Azul","themeRed":"Rojo","themeGreen":"Verde","themeViolet":"Violeta","themeOrange":"Naranja","themeCyan":"Cian","promptCache":"Cach\xe9 de aviso","flushCache":"Vaciar cach\xe9","flushing":"Sonroj\xe1ndose…","size":"Tama\xf1o","hits":"Visitas","evictions":"Desalojos","loadingCacheStats":"Cargando estad\xedsticas de cach\xe9…","globalProxy":"Proxy global","globalProxyDesc":"Configure un proxy saliente global para todas las llamadas API. Los proveedores individuales, los combos y las claves pueden anular esto.","noGlobalProxy":"No hay ning\xfan proxy global configurado","globalLabel":"Mundial","configure":"Configurar","globalSystemPrompt":"Aviso del sistema global","systemPromptDesc":"Inyectado en todas las solicitudes a nivel de proxy","saved":"Guardado","systemPromptPlaceholder":"Ingrese el mensaje del sistema para inyectar en todas las solicitudes...","systemPromptHint":"Este mensaje se antepone al mensaje del sistema de cada solicitud. \xdaselo para instrucciones globales, pautas de seguridad o reglas de formato de respuesta.","chars":"{count} caracteres","thinkingBudgetTitle":"Pensando en el presupuesto","thinkingBudgetDesc":"Controle el uso del token de razonamiento de IA en todas las solicitudes","passthrough":"Paso a trav\xe9s","passthroughDesc":"Sin cambios: el cliente controla el presupuesto pensando en","auto":"Autom\xe1tico","autoDesc":"Elimine toda configuraci\xf3n de pensamiento: deje que el proveedor decida","custom":"personalizado","customDesc":"Establecer un presupuesto de token fijo para todas las solicitudes","adaptive":"Adaptativo","adaptiveDesc":"Escale el presupuesto seg\xfan la complejidad de la solicitud","effortNone":"Ninguno (0 fichas)","effortLow":"Bajo (1K tokens)","effortMedium":"Medio (10.000 tokens)","effortHigh":"Alto (128.000 tokens)","tokenBudget":"Presupuesto simb\xf3lico","tokens":"fichas","baseEffortLevel":"Nivel de esfuerzo base","adaptiveHint":"El modo adaptable escala desde este nivel base seg\xfan el recuento de mensajes, el uso de herramientas y la duraci\xf3n del mensaje.","requireLogin":"Requerir inicio de sesi\xf3n","requireLoginDesc":"Cuando est\xe1 activado, el panel requiere contrase\xf1a. Cuando est\xe9 APAGADO, acceda sin iniciar sesi\xf3n.","currentPassword":"Contrase\xf1a actual","enterCurrentPassword":"Ingrese la contrase\xf1a actual","newPassword":"Nueva contrase\xf1a","enterNewPassword":"Ingrese una nueva contrase\xf1a","confirmPassword":"Confirmar nueva contrase\xf1a","confirmPasswordPlaceholder":"Confirmar nueva contrase\xf1a","passwordsNoMatch":"Las contrase\xf1as no coinciden","passwordUpdated":"Contrase\xf1a actualizada exitosamente","failedUpdatePassword":"No se pudo actualizar la contrase\xf1a","errorOccurred":"Se produjo un error","updatePassword":"Actualizar contrase\xf1a","setPassword":"Establecer contrase\xf1a","apiEndpointProtection":"Protecci\xf3n de terminales API","requireAuthModels":"Requerir clave API para /models","requireAuthModelsDesc":"Cuando est\xe1 activado, el punto final /v1/models devuelve 404 para solicitudes no autenticadas. Impide el descubrimiento del modelo por parte de usuarios no autorizados.","blockedProviders":"Proveedores bloqueados","blockedProvidersDesc":"Oculte proveedores espec\xedficos de la respuesta /v1/models. Los proveedores bloqueados no aparecer\xe1n en los listados de modelos.","providersBlocked":"{count} proveedor(es) bloqueado(s) en /models","blockProviderTitle":"Bloquear {provider}","unblockProviderTitle":"Desbloquear {provider}","routingStrategy":"Estrategia de enrutamiento","fillFirst":"Llenar primero","fillFirstDesc":"Utilice cuentas en orden de prioridad","roundRobin":"Ronda Robin","roundRobinDesc":"Recorrer todas las cuentas","p2c":"P2C","p2cDesc":"Elige 2 al azar, usa el m\xe1s saludable.","random":"Aleatorio","randomDesc":"Cuenta aleatoria cada solicitud","leastUsed":"Menos usado","leastUsedDesc":"Elija la cuenta utilizada menos recientemente","costOpt":"Opci\xf3n de costo","costOptDesc":"Prefiere la cuenta m\xe1s barata disponible","stickyLimit":"L\xedmite fijo","stickyLimitDesc":"Llamadas por cuenta antes de cambiar","modelAliases":"Alias de modelo","modelAliasesTitle":"Aliases de Modelo","modelAliasesDesc":"Patrones comod\xedn para reasignar nombres de modelos • Utilice * y ?","addCustomAlias":"Agregar Alias Personalizado","deprecatedModelId":"ID del modelo obsoleto","newModelId":"Nuevo ID del modelo","customAliases":"Aliases Personalizados","builtInAliases":"Aliases Integrados","backgroundDegradationTitle":"Degradaci\xf3n de Tareas en Segundo Plano","backgroundDegradationDesc":"Detecta autom\xe1ticamente tareas en segundo plano (t\xedtulos, res\xfamenes) y redirige a modelos m\xe1s baratos","enableDegradation":"Activar Degradaci\xf3n en Segundo Plano","enableDegradationHint":"Cuando est\xe1 activado, las tareas en segundo plano como generaci\xf3n de t\xedtulos y res\xfamenes se redirigen autom\xe1ticamente a modelos m\xe1s baratos","tasksDetected":"Tareas detectadas","degradationMap":"Mapa de Degradaci\xf3n de Modelos","premiumModel":"Modelo premium","cheapModel":"Modelo econ\xf3mico","detectionPatterns":"Patrones de Detecci\xf3n","newPattern":"ej: \\"generar un t\xedtulo\\"","aliasPatternPlaceholder":"claude-soneto-*","aliasTargetPlaceholder":"claude-soneto-4-20250514","pattern":"Patr\xf3n","targetModel":"Modelo objetivo","add":"+ Agregar","session":"Sesi\xf3n","sessionDetailsAria":"Detalles de la sesi\xf3n","status":"Estado","authenticated":"Autenticado","guest":"Invitado","loginTime":"Hora de inicio de sesi\xf3n","sessionAge":"Edad de la sesi\xf3n","browser":"Navegador","clearLocalData":"Borrar datos locales","logout":"Cerrar sesi\xf3n","clearLocalDataConfirm":"\xbfBorrar todos los datos locales? Esto restablecer\xe1 sus preferencias.","unknown":"Desconocido","systemActor":"sistema","ipAccessControl":"Control de acceso IP","ipAccessControlDesc":"Bloquear o permitir direcciones IP espec\xedficas","ipModeDisabled":"Discapacitado","ipModeBlacklist":"Lista negra","ipModeWhitelist":"Lista blanca","ipModeWhitelistPriority":"Prioridad WL","addIpAddress":"Agregar direcci\xf3n IP","ipAddressPlaceholder":"192.168.1.0/24 o 10.0.*.*","block":"+ Bloquear","allow":"+ Permitir","blocked":"Bloqueado ({count})","allowed":"Permitido ({count})","temporaryBans":"Prohibiciones temporales ({count})","minLeft":"{min}m restantes","auditLog":"Registro de auditor\xeda","searchAuditLogs":"Buscar registros de auditor\xeda...","failedLoadAuditLog":"No se pudo cargar el registro de auditor\xeda","noAuditEvents":"No se encontraron eventos de auditor\xeda","action":"acci\xf3n","actor":"Actor","details":"Detalles","time":"tiempo","fallbackChainsTitle":"Cadenas de respaldo","fallbackChainsDesc":"Definir el orden de reserva del proveedor por modelo","addChain":"+ Agregar cadena","modelName":"Nombre del modelo","modelNamePlaceholder":"claude-soneto-4-20250514","providersCommaSeparated":"Proveedores (separados por comas, en orden de prioridad)","providersCommaSeparatedPlaceholder":"antr\xf3pico, openai, g\xe9minis","createChain":"Crear cadena","noFallbackChains":"Sin cadenas de respaldo","noFallbackChainsDesc":"Cree una cadena para definir el orden de reserva del proveedor para un modelo.","loadingFallbackChains":"Cargando cadenas de reserva...","deleteChainConfirm":"\xbfEliminar la cadena alternativa para \\"{model}\\"?","chainCreated":"Cadena creada para {model}","chainDeleted":"Cadena eliminada para {model}","failedCreateChain":"No se pudo crear la cadena","failedDeleteChain":"No se pudo eliminar la cadena","deleteChain":"Eliminar cadena","fillModelAndProviders":"Por favor complete el nombre del modelo y los proveedores","addAtLeastOneProvider":"A\xf1ade al menos un proveedor","comboDefaultsTitle":"Valores predeterminados combinados","globalComboConfig":"Configuraci\xf3n combinada global","defaultStrategy":"Estrategia predeterminada","defaultStrategyDesc":"Aplicado a nuevos combos sin estrategia expl\xedcita.","comboStrategyAria":"estrategia combinada","priority":"Prioridad","weighted":"ponderado","maxRetriesLabel":"Reintentos m\xe1ximos","retryDelayLabel":"Retardo de reintento (ms)","timeoutLabel":"Tiempo de espera (ms)","healthCheck":"Control de salud","healthCheckDesc":"Verificar previamente la disponibilidad del proveedor","trackMetrics":"Seguimiento de m\xe9tricas","trackMetricsDesc":"Registre m\xe9tricas de solicitudes por combo","providerOverrides":"Anulaciones de proveedores","providerOverridesDesc":"Anule el tiempo de espera y los reintentos por proveedor. La configuraci\xf3n del proveedor anula los valores predeterminados globales.","providerMaxRetriesAria":"{provider} reintentos m\xe1ximos","providerTimeoutAria":"{provider} tiempo de espera ms","removeProviderOverrideAria":"Eliminar la anulaci\xf3n de {provider}","newProviderNamePlaceholder":"por ej. google, openai...","newProviderNameAria":"Nuevo nombre del proveedor","retries":"reintentos","ms":"se\xf1ora","saveComboDefaults":"Guardar valores predeterminados combinados","maxNestingDepth":"Profundidad m\xe1xima de anidamiento","concurrencyPerModel":"Concurrencia / Modelo","queueTimeout":"Tiempo de espera de cola (ms)","providerProfiles":"Perfiles de proveedores","providerProfilesDesc":"Configuraciones de resiliencia separadas para proveedores de OAuth (basado en sesiones) y de clave API (medidas). Los proveedores de OAuth tienen umbrales m\xe1s estrictos debido a l\xedmites de tarifas m\xe1s bajos.","oauthProviders":"Proveedores de OAuth","apiKeyProviders":"Proveedores de claves API","transientCooldown":"Enfriamiento transitorio","rateLimitCooldown":"Enfriamiento del l\xedmite de velocidad","maxBackoffLevel":"Nivel m\xe1ximo de retroceso","cbThreshold":"Umbral CB","cbResetTime":"Tiempo de reinicio del CB","rateLimiting":"Limitaci\xf3n de tasa","rateLimitingDesc":"Los proveedores de claves API tienen una velocidad limitada autom\xe1ticamente con valores predeterminados seguros. Los l\xedmites se aprenden de los encabezados de respuesta y se adaptan con el tiempo.","defaultSafetyNet":"Red de seguridad predeterminada","rpm":"RPM","minGap":"Brecha m\xednima","maxConcurrent":"M\xe1ximo concurrente","activeLimiters":"Limitadores activos","noActiveLimiters":"A\xfan no hay limitadores de tarifas activos.","reservoir":"dep\xf3sito","running":"corriendo","queued":"En cola","circuitBreakers":"Disyuntores","breakerStateClosed":"Cerrado","breakerStateOpen":"Abierto","breakerStateHalfOpen":"Medio abierto","tripped":"{count} se dispar\xf3","healthy":"{count} saludable","resetAll":"Restablecer todo","noCircuitBreakers":"A\xfan no hay disyuntores activos. Se crean autom\xe1ticamente cuando las solicitudes fluyen a trav\xe9s del canal combinado.","failures":"{count} falla(s)","policiesLocked":"Pol\xedticas e identificadores bloqueados","allOperational":"Todos los sistemas operativos: sin bloqueos ni disyuntores disparados","loadingPolicies":"Cargando pol\xedticas...","lockedIdentifiers":"Identificadores bloqueados","unlockedIdentifier":"Desbloqueado: {identifier}","sinceDate":"desde {date}","forceUnlock":"Forzar desbloqueo","unlocking":"Desbloqueando...","failedUnlock":"No se pudo desbloquear","failedLoadWithStatus":"No se pudo cargar: {status}","failedLoadResilience":"No se pudo cargar el estado de resiliencia","saveFailed":"Error al guardar","resetFailed":"Error al restablecer","loadingResilience":"Cargando estado de resiliencia...","retry":"Reintentar","systemStorage":"Sistema y almacenamiento","allDataLocal":"Todos los datos almacenados localmente en su m\xe1quina","databasePath":"Ruta de la base de datos","exportDatabase":"Exportar base de datos","exportAll":"Exportar todo (.tar.gz)","importDatabase":"Importar base de datos","confirmDbImport":"Confirmar la importaci\xf3n de la base de datos","confirmDbImportDesc":"Esto reemplazar\xe1 todos los datos actuales con el contenido de {file}. Se crear\xe1 una copia de seguridad autom\xe1ticamente antes de la importaci\xf3n.","yesImport":"Si, importar","lastBackup":"\xdaltima copia de seguridad","noBackupYet":"A\xfan no hay copia de seguridad","backupNow":"Copia de seguridad ahora","backupRestore":"Copia de seguridad y restauraci\xf3n","viewBackups":"Ver copias de seguridad","hide":"Ocultar","backupRetentionDesc":"Las instant\xe1neas de la base de datos se crean autom\xe1ticamente antes de la restauraci\xf3n y cada 15 minutos cuando cambian los datos. Retenci\xf3n: 24 horas + 30 respaldos diarios con rotaci\xf3n inteligente.","loadingBackups":"Cargando copias de seguridad...","noBackupsYet":"A\xfan no hay copias de seguridad disponibles. Las copias de seguridad se crear\xe1n autom\xe1ticamente cuando cambien los datos.","backupsAvailable":"{count} copias de seguridad disponibles","refresh":"Actualizar","confirm":"\xbfConfirmar?","yes":"si","no":"No","restore":"Restaurar","invalidFileType":"Tipo de archivo no v\xe1lido. S\xf3lo se aceptan archivos .sqlite.","exportFailed":"Exportaci\xf3n fallida","exportFailedWithError":"Error al exportar: {error}","fullExportFailedWithError":"Error en la exportaci\xf3n completa: {error}","backupCreated":"Copia de seguridad creada: {file}","restoreSuccess":"\xa1Restaurado! {connections} conexiones, {nodes} nodos, {combos} combos, {apiKeys} claves API.","importSuccess":"\xa1Base de datos importada! {connections} conexiones, {nodes} nodos, {combos} combos, {apiKeys} claves API.","justNow":"justo ahora","minutesAgo":"Hace {count}m","hoursAgo":"Hace {count}h","daysAgo":"Hace {count}d","backupReasonManual":"manuales","backupReasonPreRestore":"pre-restauraci\xf3n","connectionsCount":"{count, plural, one {# connection} other {# connections}}","noChangesSinceBackup":"No hay cambios desde la \xfaltima copia de seguridad","backupFailed":"Error en la copia de seguridad","restoreFailed":"Restauraci\xf3n fallida","importFailed":"Importaci\xf3n fallida","errorDuringRestore":"Se produjo un error durante la restauraci\xf3n.","errorDuringImport":"Se produjo un error durante la importaci\xf3n.","modelPricing":"Precios del modelo","modelPricingDesc":"Configurar tarifas de costo por modelo • Todas las tarifas en tokens de $/1 mill\xf3n","providers":"Proveedores","registry":"Registro","priced":"Precio","searchProvidersModels":"Buscar proveedores o modelos...","showAll":"Mostrar todo","noProvidersMatch":"Ning\xfan proveedor coincide con su b\xfasqueda.","howPricingWorks":"C\xf3mo funcionan los precios","cacheWrite":"Escritura en cach\xe9","unsaved":"no salvo","resetDefaults":"Restablecer valores predeterminados","saveProvider":"Guardar proveedor","saving":"Guardando...","model":"modelo","models":"modelos","moreProviders":"{count} m\xe1s proveedores","withPricing":"con precios configurados","policiesCircuitBreakers":"Pol\xedticas y disyuntores","activeIssuesDetected":"Problemas activos detectados","off":"Apagado","resetPricingConfirm":"\xbfRestablecer todos los precios de {provider} a los valores predeterminados?","pricingDescInput":"Entrada: tokens enviados al modelo.","pricingDescOutput":"Salida: tokens generados","pricingDescCached":"En cach\xe9: entrada reutilizada (~50% de la tasa de entrada)","pricingDescReasoning":"Razonamiento: tokens de pensamiento (vuelve a Salida)","pricingDescCacheWrite":"Escritura de cach\xe9: creaci\xf3n de entradas de cach\xe9 (recurre a Entrada)","pricingDescFormula":"Costo = (entrada \xd7 tasa_entrada) + (salida \xd7 tasa_salida) + (almacenado en cach\xe9 \xd7 tasa_almacenamiento) por mill\xf3n de tokens.","pricingSettingsTitle":"Configuraci\xf3n de precios","totalModels":"Modelos totales","active":"Activo","costCalculation":"C\xe1lculo de costos","costCalculationDesc":"Los costos se calculan en funci\xf3n del uso de tokens y las tarifas de precios configuradas para cada modelo.","pricingFormat":"Formato de precios","pricingFormatDesc":"Todas las tarifas est\xe1n en tokens de $/1 mill\xf3n (d\xf3lares por mill\xf3n de tokens).","tokenTypes":"Tipos de tokens","inputTokenDesc":"Fichas de aviso est\xe1ndar","outputTokenDesc":"Fichas de finalizaci\xf3n/respuesta","cachedTokenDesc":"Tokens de entrada almacenados en cach\xe9 (normalmente el 50 % de la tasa de entrada)","reasoningTokenDesc":"Fichas especiales de razonamiento/pensamiento (retroceso a la tasa de producci\xf3n)","cacheCreationTokenDesc":"Tokens utilizados para crear entradas de cach\xe9 (retroceso a la tasa de entrada)","customPricingNote":"Puede anular los precios predeterminados para modelos espec\xedficos. Las anulaciones personalizadas tienen prioridad sobre los precios detectados autom\xe1ticamente.","editPricing":"Editar precios","viewFullDetails":"Ver todos los detalles","themeCoral":"Coral","cliFingerprint":"CLI Fingerprint Matching","cliFingerprintDesc":"Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.","cliFingerprintEnabled":"{count} provider(s) with CLI fingerprint active","enableFingerprintTitle":"Enable fingerprint for {provider}","disableFingerprintTitle":"Disable fingerprint for {provider}"},"translator":{"title":"Traductor","metaTitle":"Patio de juegos del traductor | OmniRuta","metaDescription":"Depurar, probar y visualizar traducciones de formatos API entre proveedores","playgroundTitle":"Patio de juegos del traductor","playground":"Zona de juegos","realtime":"Actividad de traducci\xf3n en tiempo real","chatTester":"Probador de chat","testBench":"Banco de pruebas","liveMonitor":"Monitor en vivo","modeDescriptionPlayground":"Pegue cualquier cuerpo de solicitud de API y vea c\xf3mo OmniRoute lo traduce entre formatos de proveedores (OpenAI ↔ Claude ↔ Gemini ↔ API de respuestas)","modeDescriptionChatTester":"Env\xede solicitudes de chat reales a trav\xe9s de OmniRoute e inspeccione el recorrido completo: entrada, solicitud traducida, respuesta del proveedor y salida traducida.","modeDescriptionTestBench":"Ejecute escenarios predefinidos y compare la compatibilidad entre proveedores y modelos.","modeDescriptionLiveMonitor":"Vea los eventos de traducci\xf3n en tiempo real a medida que las solicitudes fluyen a trav\xe9s de OmniRoute.","modeDescriptionFallback":"Depure, pruebe y visualice c\xf3mo OmniRoute traduce las solicitudes de API entre proveedores.","recentTranslations":"Traducciones recientes","noTranslations":"A\xfan no hay traducciones","source":"Fuente","target":"Objetivo","time":"tiempo","model":"modelo","status":"Estado","latency":"Latencia","totalTranslations":"Traducciones totales","successful":"Exitoso","errors":"Errores","avgLatency":"Latencia promedio","millisecondsShort":"{value}ms","notAvailableSymbol":"—","liveAutoRefreshing":"En vivo: actualizaci\xf3n autom\xe1tica","paused":"En pausa","eventsAppearHint":"Los eventos de traducci\xf3n aparecen aqu\xed a medida que las solicitudes fluyen a trav\xe9s de OmniRoute. Utilice cualquiera de estos m\xe9todos para generar eventos:","chatTesterTab":"Pesta\xf1a Probador de chat","testBenchTab":"Pesta\xf1a Banco de pruebas","externalApiCalls":"Llamadas API externas","ideCliIntegrations":"Integraciones IDE/CLI","inMemoryNote":"Nota: Los eventos se almacenan en la memoria y se restablecen cuando se reinicia el servidor.","ok":"bien","errorShort":"ERROR","formatConverter":"Convertidor de formato","formatConverterDescription":"Pegue o escriba un cuerpo de solicitud JSON. El traductor detectar\xe1 autom\xe1ticamente el formato de origen y lo convertir\xe1 al formato de destino. Utilice esto para depurar c\xf3mo OmniRoute traduce solicitudes entre formatos (OpenAI ↔ Claude ↔ Gemini ↔ API de respuestas).","input":"Entrada","output":"Salida","auto":"Autom\xe1tico","swapFormats":"Intercambiar formatos","translateAction":"Traducir","clear":"Borrar","inputPlaceholder":"Pegue el cuerpo de una solicitud aqu\xed o seleccione una plantilla a continuaci\xf3n...","exampleTemplates":"Plantillas de ejemplo","exampleTemplatesHint":"— Haga clic para cargar","templateLoadHint":"La plantilla carga la solicitud en formato {format}. Cambie el formato de origen para cargar en un formato diferente.","compatibilityTester":"Probador de compatibilidad","compatibilityReport":"Informe de compatibilidad","testBenchDescription":"Ejecute escenarios predefinidos (chat simple, llamadas de herramientas, etc.) para verificar la traducci\xf3n y la compatibilidad del proveedor. Seleccione un formato de origen y un proveedor de destino, luego ejecute todas las pruebas para ver un porcentaje de compatibilidad. Utilice esto para encontrar qu\xe9 funciones funcionan en todos los proveedores.","targetProvider":"Proveedor objetivo","runAllTests":"Ejecutar todas las pruebas","runTest":"Ejecutar prueba","reRun":"Volver a ejecutar","running":"Corriendo...","passed":"pas\xf3","failed":"fall\xf3","passedIconLabel":"✅ Aprobado","chunks":"trozos","scenarioSimpleChat":"Charla sencilla","scenarioToolCalling":"Llamada de herramientas","scenarioMultiTurn":"multivuelta","scenarioThinking":"Pensando","scenarioSystemPrompt":"Aviso del sistema","scenarioStreaming":"Transmisi\xf3n","templateNames":{"simple-chat":"Charla sencilla","tool-calling":"Llamada de herramientas","multi-turn":"multivuelta","thinking":"Pensando","system-prompt":"Aviso del sistema","streaming":"Transmisi\xf3n"},"templateDescriptions":{"simple-chat":"Mensaje de texto b\xe1sico","tool-calling":"Invocaci\xf3n de funci\xf3n/herramienta","multi-turn":"Conversaci\xf3n con la historia.","thinking":"Pensamiento/razonamiento extendido","system-prompt":"Instrucciones complejas del sistema","streaming":"Solicitud de transmisi\xf3n SSE"},"templatePayloads":{"simpleChat":{"system":"Eres un asistente \xfatil.","userGreeting":"\xa1Hola! \xbfC\xf3mo est\xe1s hoy?"},"toolCalling":{"userWeather":"\xbfCu\xe1l es el clima en S\xe3o Paulo?","toolDescription":"Obtener el clima actual para una ubicaci\xf3n","cityNameDescription":"Nombre de la ciudad"},"multiTurn":{"system":"Eres un asistente de codificaci\xf3n.","userInitial":"Escriba una funci\xf3n para ordenar una matriz en Python.","assistantExample":"Aqu\xed hay una funci\xf3n de clasificaci\xf3n simple:\\n\\n```pit\xf3n\\ndef sort_array(arr):\\n devolver ordenado(arr)\\n```","userFollowUp":"Ahora haz que se clasifique en orden descendente."},"thinking":{"question":"\xbfCu\xe1l es la suma de los primeros 100 n\xfameros primos?"},"systemPrompt":{"systemInstruction":"Eres un ingeniero de software senior especializado en sistemas distribuidos. Responda preguntas de manera concisa utilizando las mejores pr\xe1cticas de la industria. Proporcione siempre ejemplos de c\xf3digo cuando sea relevante. Formatee sus respuestas usando Markdown.","question":"\xbfC\xf3mo implemento un patr\xf3n de disyuntor?"},"streaming":{"prompt":"Cu\xe9ntame una historia corta sobre un robot que aprende a pintar."}},"openaiCompatibleLabel":"Compatible con OpenAI","anthropicCompatibleLabel":"Compatible antr\xf3pico","noTemplateForFormat":"No hay plantilla para este formato","translationFailed":"Error de traducci\xf3n: {error}","pipelineDebugger":"Depurador de canalizaci\xf3n","translationPipeline":"Canal de traducci\xf3n","pipelineVisualization":"Visualizaci\xf3n de tuber\xedas","pipelineVisualizationHint":"Env\xede un mensaje para ver c\xf3mo fluye su solicitud a trav\xe9s de detecci\xf3n → traducci\xf3n → llamada al proveedor.","chatTesterDescription":"Env\xede mensajes en un formato de cliente espec\xedfico e inspeccione cada paso del proceso de traducci\xf3n.","chatTesterFlow":"Solicitud de cliente → Detecci\xf3n de formato → OpenAI Intermedio → Formato de proveedor → Respuesta","clickStepToInspect":"Haga clic en cualquier paso para inspeccionar los datos en esa etapa.","clientFormat":"Formato de cliente","provider":"Proveedor","modelPlaceholder":"Seleccione o escriba un nombre de modelo...","sendMessageToSeePipeline":"Env\xede un mensaje para ver el proceso de traducci\xf3n","chatMessageHintPrefix":"Su mensaje tendr\xe1 el formato de","chatMessageHintSuffix":"solicitud, traducida a trav\xe9s del proceso y enviada al proveedor seleccionado.","youWithFormat":"T\xfa ({format})","assistant":"asistente","typeMessage":"Escribe un mensaje...","send":"enviar","clientRequest":"Solicitud de cliente","clientRequestDescription":"El cuerpo de la solicitud como lo enviar\xeda su cliente.","formatDetected":"Formato detectado","formatDetectedDescription":"OmniRoute auto-detects the API format from the request structure","openaiIntermediate":"Intermedio OpenAI","openaiIntermediateDescription":"All formats are first normalized to OpenAI format (the universal bridge)","providerFormat":"Formato del proveedor","providerFormatDescription":"OpenAI format is translated to the provider\'s native format","providerResponse":"Respuesta del proveedor","providerResponseRawDescription":"La respuesta cruda de la API del proveedor","providerResponseSseDescription":"El flujo SSE sin procesar de la API del proveedor","unexpectedError":"Ocurri\xf3 un error inesperado","error":"error","errorMessage":"Error: {message}","requestFailed":"Solicitud fallida","noTextExtracted":"(No se extrae texto)","liveMonitorDescriptionPrefix":"Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). uso","liveMonitorDescriptionSuffix":"o llamadas API externas para generar eventos."},"usage":{"title":"Uso","loggerTab":"registrador","proxyTab":"apoderado","budgetManagement":"Gesti\xf3n Presupuestaria","budgetSaved":"L\xedmites de presupuesto guardados","budgetSaveFailed":"No se pudo guardar el presupuesto","loadingBudgetData":"Cargando datos de presupuesto...","noApiKeysTitle":"Sin claves API","noApiKeysDescription":"Primero agregue claves API para configurar l\xedmites de presupuesto.","apiKey":"Clave API","todaysSpend":"Gasto de hoy","thisMonth":"este mes","setLimits":"Establecer l\xedmites","dailyLimitUsd":"L\xedmite diario (USD)","monthlyLimitUsd":"L\xedmite mensual (USD)","warningThresholdPercent":"Umbral de advertencia (%)","dailyLimitPlaceholder":"por ej. 5.00","monthlyLimitPlaceholder":"por ej. 50.00","warningThresholdPlaceholder":"80","saveLimits":"Guardar l\xedmites","budgetOk":"Presupuesto correcto: {remaining} restante","budgetExceeded":"Presupuesto excedido: las solicitudes pueden bloquearse","totalRequests":"Solicitudes totales","noDataYet":"A\xfan no hay datos","latency":"Latencia","latencyP50":"p50","latencyP95":"p95","latencyP99":"p99","promptCache":"Cach\xe9 de aviso","systemHealth":"Estado del sistema","entries":"Entradas","activeCount":"{count} activo","openCircuitBreakersDetected":"Se detectaron disyuntores abiertos","hitRate":"Tasa de aciertos","hitsMisses":"Aciertos/fallos","circuitBreakers":"Disyuntores","lockedIPs":"IP bloqueadas","lockoutsAutoRefreshHint":"Bloqueos de l\xedmite de velocidad por modelo • Actualizaci\xf3n autom\xe1tica 10 s","lockedCount":"{count, plural, one {# locked} other {# locked}}","timeLeft":"{time} izquierda","howItWorks":"C\xf3mo funciona","howItWorksSubtitle":"Learn how evaluations validate your LLM responses","define":"Definir","defineStepDescription":"Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.","run":"correr","runStepDescription":"Execute test cases against your LLM endpoints through OmniRoute. Cada caso se env\xeda como una solicitud API real.","evaluate":"evaluar","evaluateStepDescription":"Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.","evalSuites":"Suites de evaluaci\xf3n","evalSuitesHint":"Click a suite to view test cases, then run to evaluate your LLM endpoints","evalsLoading":"Cargando suites de evaluaci\xf3n...","noEvalSuitesFound":"No se encontraron suites Eval","noEvalSuitesDescription":"Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.","columnCase":"caso","columnStatus":"Estado","columnLatency":"Latencia","columnDetails":"Detalles","columnModel":"modelo","columnStrategy":"Estrategia","columnExpected":"esperado","statsSuites":"Suites","statsTestCases":"Casos de prueba","statsModels":"Modelos","statsCoverage":"Cobertura","statsStrategiesCount":"{count} estrategias","evaluationStrategies":"Estrategias de evaluaci\xf3n","modelsUnderTest":"Modelos bajo prueba","searchSuitesPlaceholder":"Conjuntos de b\xfasqueda...","passSuffix":"pasar","casesCount":"{count, plural, one {# case} other {# cases}}","runEval":"Ejecutar evaluaci\xf3n","runningProgress":"Ejecutando {current}/{total}...","passRate":"tasa de aprobaci\xf3n","summaryBreakdown":"{passed} aprobado \xb7 {failed} fallido \xb7 {total} total","passedIconLabel":"✅ Aprobado","failedIconLabel":"❌ Fallido","detailsContains":"Contiene: \\"{term}\\"","detailsRegex":"Expresi\xf3n regular: {pattern}","detailsExpected":"Se esperaba: \\"{expected}\\"","noResultsYet":"A\xfan no hay resultados","testCasesCount":"Casos de prueba ({count})","noTestCasesDefined":"No hay casos de prueba definidos","runEvalHint":"Haga clic en \\"Ejecutar evaluaci\xf3n\\" para ejecutar todos los casos en su punto final LLM. Cada prueba env\xeda una solicitud real a trav\xe9s de OmniRoute.","notifyNoTestCases":"No hay casos de prueba definidos para esta suite","notifyAllCasesPassed":"Todos los {total} casos pasados ✅","notifySomeCasesFailed":"{passed}/{total} pas\xf3, {failed} fall\xf3","notifyEvalRunFailed":"La ejecuci\xf3n de evaluaci\xf3n fall\xf3","notifyEvalTitle":"Evaluaci\xf3n: {name}","modelEvals":"Evaluaciones de modelos","evalsHeroDescription":"Pruebe y valide sus puntos finales de LLM ejecutando conjuntos de evaluaci\xf3n predefinidos. Cada conjunto contiene casos de prueba que env\xedan indicaciones reales a trav\xe9s de OmniRoute y comparan respuestas con criterios esperados, lo que le ayuda a detectar regresiones, comparar modelos y garantizar la calidad de las respuestas entre proveedores.","qualityValidation":"Validaci\xf3n de calidad","modelComparison":"Comparaci\xf3n de modelos","regressionDetection":"Detecci\xf3n de regresi\xf3n","latencyBenchmarks":"Puntos de referencia de latencia","modelLockouts":"Bloqueos de modelos","noLockouts":"No hay modelos bloqueados actualmente","activeSessions":"Sesiones activas","noSessions":"No hay sesiones activas","sessionsHint":"Las sesiones aparecen a medida que las solicitudes fluyen a trav\xe9s del proxy.","sessionsTrackedHint":"Seguimiento mediante solicitud de huellas dactilares • Actualizaci\xf3n autom\xe1tica 5s","session":"Sesi\xf3n","age":"edad","requests":"Solicitudes","connection":"Conexi\xf3n","durationMillisecondsShort":"{value}ms","durationSecondsShort":"{value}s","durationMinutesShort":"{value}m","durationHoursShort":"{value}h","reasonSeparator":" - ","notAvailableSymbol":"-","providerLimits":"L\xedmites del proveedor","noProviders":"No hay proveedores conectados","connectProvidersForQuota":"Con\xe9ctese con proveedores con OAuth para realizar un seguimiento de los l\xedmites y el uso de su cuota de API.","accountsCount":"{count, plural, one {# account} other {# accounts}}","filteredFromCount":"(filtrado de {count})","autoRefresh":"Actualizaci\xf3n autom\xe1tica","refreshAll":"Actualizar todo","loadingQuotas":"Cargando...","account":"cuenta","modelQuotas":"Cuotas modelo","lastUsed":"Usado por \xfaltima vez","actions":"Acciones","refreshQuota":"Actualizar cuota","today":"hoy","tomorrow":"ma\xf1ana","dayTimeFormat":"{day}, {time}","inDuration":"en {duration}","notApplicable":"N/A","rawPlanWithValue":"Plan sin formato: {plan}","noPlanFromProvider":"Sin plan del proveedor","noQuotaData":"Sin datos de cuota","noQuotaDataAvailable":"No hay datos de cuota disponibles","noAccountsForTierFilter":"No se encontraron cuentas para el filtro de niveles","tierAll":"Todos","tierEnterprise":"Empresa","tierTeam":"equipo","tierBusiness":"Negocios","tierUltra":"Ultra","tierPro":"profesional","tierPlus":"M\xe1s","tierFree":"Gratis","tierUnknown":"Desconocido"},"modals":{"waitingAuth":"Esperando autorizaci\xf3n","verificationUrl":"URL de verificaci\xf3n","yourCode":"Tu c\xf3digo","remoteAccess":"Acceso remoto:","connectedSuccess":"\xa1Conectado exitosamente!","connectionFailed":"Conexi\xf3n fallida","chooseAuthMethod":"Elija su m\xe9todo de autenticaci\xf3n:","awsBuilderId":"ID del creador de AWS","awsIamIdentity":"Centro de identidad de AWS IAM","googleAccount":"Cuenta de Google","githubAccount":"Cuenta GitHub","importToken":"Importar token","pasteToken":"Pegue el token de actualizaci\xf3n de Kiro IDE.","awsRegion":"Regi\xf3n de AWS","autoDetecting":"Tokens de detecci\xf3n autom\xe1tica...","readingFromCache":"Lectura de la cach\xe9 de AWS SSO","readingFromCursor":"Lectura de la base de datos Cursor IDE","initializing":"Inicializando...","pricingConfig":"Configuraci\xf3n de precios","loadingPricing":"Cargando datos de precios...","pricingRatesFormat":"Formato de tarifas de precios","noPricingData":"No hay datos de precios disponibles","noModelsFound":"No se encontraron modelos"},"loggers":{"allProviders":"Todos los proveedores","allModels":"Todos los modelos","allAccounts":"Todas las cuentas","allApiKeys":"Todas las claves API","allTypes":"Todos los tipos","allLevels":"Todos los niveles","modelAZ":"Modelo A-Z","modelZA":"Modelo Z-A","loadingLogs":"Cargando registros...","loadingProxyLogs":"Cargando registros de proxy...","noLogEntries":"No se encontraron entradas de registro","noPayloadData":"No hay datos de carga disponibles para esta entrada de registro.","proxyEvent":"Evento de proxy","proxy":"apoderado","level":"Nivel","directNative":"Directo (nativo)","combo":"combinado","inputTokens":"Yo:","outputTokens":"Oh:"},"stats":{"usageOverview":"Descripci\xf3n general de uso","outputTokens":"Fichas de salida","totalCost":"Costo total","usageByModel":"Uso por modelo","usageByAccount":"Uso por cuenta","failedToLoad":"No se pudieron cargar las estad\xedsticas de uso.","tokenHealth":"Salud del token","totalOAuth":"OAuth total","healthy":"saludable","warning":"Advertencia","errored":"Error","lastCheck":"\xfaltimo control","noData":"Sin datos","share":"Compartir","unableToLoad":"No se pueden cargar las m\xe9tricas del sistema","product":"Producto","resources":"Recursos","company":"Empresa"},"auth":{"welcome":"Bienvenido","signIn":"Iniciar sesi\xf3n","enterPassword":"Ingresa tu contrase\xf1a para continuar","password":"Contrase\xf1a","unifiedProxy":"Proxy de API de IA unificado","unifiedAiApiProxy":"Proxy de API de IA unificado","unifiedAiApiProxyDesc":"Enrute solicitudes a m\xfaltiples proveedores de IA a trav\xe9s de un \xfanico punto final. Equilibrio de carga, conmutaci\xf3n por error y seguimiento de uso integrados.","passwordNotEnabled":"La protecci\xf3n con contrase\xf1a no est\xe1 habilitada","loading":"Cargando...","invalidPassword":"Contrase\xf1a no v\xe1lida","errorOccurredRetry":"Se produjo un error. Por favor int\xe9ntalo de nuevo.","configureInstance":"Configuremos su instancia de OmniRoute","runOnboardingWizard":"Ejecuta el asistente de onboarding para configurar tu contrase\xf1a y conectar tu primer proveedor de IA.","startOnboarding":"Iniciar la incorporaci\xf3n","secureYourInstance":"Asegure su instancia","setPasswordDescription":"Establezca una contrase\xf1a para proteger su panel y proteger sus puntos finales API contra accesos no autorizados.","configurePassword":"Configurar contrase\xf1a","continue":"Continuar","windowWillClose":"Esta ventana se cerrar\xe1 autom\xe1ticamente...","closeTabNow":"Puedes cerrar esta pesta\xf1a ahora.","copyUrlManual":"Copia la URL de la barra de direcciones y p\xe9gala en la aplicaci\xf3n.","accessDeniedDescription":"No tienes permiso para acceder a este recurso. Verifique su clave API o comun\xedquese con el administrador.","goToDashboard":"Ir al panel","featureMultiProviderTitle":"Multiproveedor","featureMultiProviderDesc":"OpenAI, Anthropic, Google y m\xe1s","featureLoadBalancingTitle":"Equilibrio de carga","featureLoadBalancingDesc":"Distribuya las solicitudes de forma inteligente","featureUsageTrackingTitle":"Seguimiento de uso","featureUsageTrackingDesc":"Monitorear costos y tokens","resetPassword":"Restablecer contrase\xf1a","resetDescription":"Elija un m\xe9todo para recuperar el acceso a su panel","stopServer":"Det\xe9n el servidor OmniRoute","processing":"Procesando...","pleaseWait":"Espere mientras completamos la autorizaci\xf3n.","authSuccess":"\xa1Autorizaci\xf3n exitosa!","copyUrl":"Copia esta URL","accessDenied":"Acceso denegado","methodCliTitle":"M\xe9todo 1: reinicio de CLI","methodCliDescription":"Ejecute el siguiente comando en el servidor donde se ejecuta OmniRoute:","methodCliHint":"Esto le pedir\xe1 que establezca una nueva contrase\xf1a. Primero se debe detener el servidor.","methodManualTitle":"M\xe9todo 2: reinicio manual","methodManualDescription":"Elimina la contrase\xf1a de la base de datos y configura una nueva al iniciar:","setPasswordInYour":"Define una nueva contrase\xf1a en tu","fileLabelSuffix":"archivo:","newPasswordPlaceholder":"tu_nueva_contrase\xf1a","deleteSettingsFile":"Eliminar","orRemovePasswordHashField":"o eliminar el campo contrase\xf1aHash","restartServerWithNewPassword":"Reinicia el servidor; usar\xe1 la nueva contrase\xf1a","backToLogin":"Volver a iniciar sesi\xf3n","forgotPassword":"\xbfOlvidaste tu contrase\xf1a?"},"landing":{"brandName":"OmniRuta","navigateHome":"Navegar a casa","toggleMenu":"Alternar men\xfa","featuresLink":"Caracter\xedsticas","docsLink":"Documentos","github":"GitHub","versionLive":"v1.0 ya est\xe1 disponible","oneEndpoint":"Un punto final para","allProviders":"Todos los proveedores de IA","heroDescription":"Proxy de punto final de IA con panel web: un puerto JavaScript de CLIProxyAPI. Funciona a la perfecci\xf3n con Claude Code, OpenAI Codex, Cline, RooCode y otras herramientas CLI.","getStarted":"Empezar","viewOnGithub":"Ver en GitHub","powerfulFeatures":"Funciones potentes","featuresSubtitle":"Todo lo que necesita para administrar su infraestructura de IA en un solo lugar, dise\xf1ado para escalar.","featureUnifiedEndpointTitle":"Punto final unificado","featureUnifiedEndpointDesc":"Acceda a todos los proveedores a trav\xe9s de una \xfanica URL API est\xe1ndar.","featureEasySetupTitle":"F\xe1cil configuraci\xf3n","featureEasySetupDesc":"P\xf3ngase en funcionamiento en minutos con el comando npx.","featureModelFallbackTitle":"Modelo de reserva","featureModelFallbackDesc":"Cambie autom\xe1ticamente de proveedor en caso de falla o alta latencia.","featureUsageTrackingTitle":"Seguimiento de uso","featureUsageTrackingDesc":"An\xe1lisis detallados y seguimiento de costes en todos los modelos.","featureOAuthApiKeysTitle":"Claves OAuth y API","featureOAuthApiKeysDesc":"Administre de forma segura las credenciales en una b\xf3veda.","featureCloudSyncTitle":"Sincronizaci\xf3n en la nube","featureCloudSyncDesc":"Sincronice sus configuraciones entre dispositivos al instante.","featureCliSupportTitle":"Soporte CLI","featureCliSupportDesc":"Funciona con Claude Code, Codex, Cline, Cursor y m\xe1s.","featureDashboardTitle":"Panel de control","featureDashboardDesc":"Panel visual para an\xe1lisis de tr\xe1fico en tiempo real.","howItWorks":"C\xf3mo funciona OmniRoute","howItWorksDescription":"Los datos fluyen sin problemas desde su aplicaci\xf3n a trav\xe9s de nuestra capa de enrutamiento inteligente hasta el mejor proveedor para el trabajo.","howItWorksStep1Title":"1. CLI y SDK","howItWorksStep1Description":"Sus solicitudes comienzan desde sus herramientas favoritas o nuestro SDK unificado. Simplemente cambie la URL base.","howItWorksStep2Title":"2. Centro OmniRoute","howItWorksStep2Description":"Nuestro motor analiza el aviso, verifica el estado del proveedor y las rutas para obtener la latencia o el costo m\xe1s bajo.","howItWorksStep3Title":"3. Proveedores de IA","howItWorksStep3Description":"OpenAI, Anthropic, Gemini u otros cumplen la solicitud al instante.","getStartedIn30Seconds":"Comience en 30 segundos","getStartedDescription":"Instale OmniRoute, configure sus proveedores a trav\xe9s del panel web y comience a enrutar solicitudes de IA.","installOmniRoute":"Instalar OmniRoute","installStepDescription":"Ejecute el comando npx para iniciar el servidor al instante","openDashboard":"Abrir panel","openDashboardStepDescription":"Configure proveedores y claves API a trav\xe9s de la interfaz web","routeRequests":"Solicitudes de ruta","routeRequestsStepDescription":"Apunte sus herramientas CLI a {endpoint}","terminal":"terminales","copy":"Copiar","copied":"✓ Copiado","startingOmniRoute":"Iniciando OmniRoute...","serverRunningOnLabel":"Servidor ejecut\xe1ndose en","dashboardLabel":"Panel de control","readyToRoute":"\xa1Listo para la ruta! ✓","configureProvidersNote":"\uD83D\uDCDD Configure proveedores en el panel o use variables de entorno","dataLocation":"Ubicaci\xf3n de datos:","dataLocationMacLinux":" MacOS/Linux:","dataLocationWindows":" Ventanas:","product":"Producto","dashboardLink":"Panel de control","changelog":"Registro de cambios","resources":"Recursos","documentation":"Documentaci\xf3n","npm":"MNP","legal":"Legales","mitLicense":"Licencia MIT","footerTagline":"El punto final unificado para la generaci\xf3n de IA. Conecte, enrute y administre sus proveedores de IA con facilidad.","copyright":"\xa9 {year} OmniRoute. Reservados todos los derechos.","flowToolClaudeCode":"C\xf3digo Claude","flowToolOpenAICodex":"C\xf3dice OpenAI","flowToolCline":"Clina","flowToolCursor":"Cursor","flowProviderOpenAI":"AbiertoAI","flowProviderAnthropic":"antr\xf3pico","flowProviderGemini":"G\xe9minis","flowProviderGithubCopilot":"Copiloto de GitHub","interactiveDiagram":"Diagrama interactivo visible en el escritorio.","ctaTitle":"\xbfListo para simplificar su infraestructura de IA?","ctaDescription":"\xdanase a los desarrolladores que est\xe1n optimizando sus integraciones de IA con OmniRoute. C\xf3digo abierto y gratuito para comenzar.","startFree":"Comience gratis","readDocumentation":"Leer documentaci\xf3n"},"docs":{"title":"Documentaci\xf3n","quickStart":"Inicio r\xe1pido","features":"Caracter\xedsticas","supportedProviders":"Proveedores compatibles","supportedProvidersToc":"Proveedores","commonUseCases":"Casos de uso comunes","clientCompatibility":"Compatibilidad del cliente","protocolsToc":"Protocolos","apiReference":"Referencia de API","method":"M\xe9todo","path":"Camino","notes":"Notas","modelPrefixes":"Prefijos de modelo","prefix":"Prefijo","troubleshooting":"Soluci\xf3n de problemas","supportsChat":"Admite puntos finales de chat y respuestas.","oauthAutoRefresh":"Conexi\xf3n OAuth con actualizaci\xf3n autom\xe1tica de token.","fullStreaming":"Soporte completo de transmisi\xf3n para todos los modelos.","docsLabel":"Documentos","docsHeroDescription":"Puerta de enlace de IA para LLM de m\xfaltiples proveedores. Un punto final para OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor y m\xe1s de 20 proveedores.","openDashboard":"Abrir panel","endpointPage":"P\xe1gina de punto final","github":"GitHub","reportIssue":"Informar problema","onThisPage":"En esta p\xe1gina","documentationVersion":"Documentaci\xf3n: v{version}","quickStartStep1Title":"1. Instalar y ejecutar","quickStartStep1Prefix":"correr","quickStartStep1Middle":"o clonar desde GitHub y ejecutar","quickStartStep2Title":"2. Crear clave API","quickStartStep2Text":"Vaya a Punto final -> Claves registradas. Genere una clave por entorno.","quickStartStep3Title":"3. Conectar proveedores","quickStartStep3Text":"Agregue cuentas de proveedor mediante el inicio de sesi\xf3n de OAuth, la clave API o la conexi\xf3n autom\xe1tica de nivel gratuito.","quickStartStep4Title":"4. Establecer la URL de la base de clientes","quickStartStep4Prefix":"Apunte su cliente IDE o API a","quickStartStep4Suffix":"Utilice el prefijo del proveedor, por ejemplo","featureRoutingTitle":"Enrutamiento multiproveedor","featureRoutingText":"Enrute solicitudes a m\xe1s de 30 proveedores de IA a trav\xe9s de un \xfanico punto final compatible con OpenAI. Admite API de chat, respuestas, audio e im\xe1genes.","featureCombosTitle":"Combos y equilibrio","featureCombosText":"Cree combinaciones de modelos con cadenas de respaldo y estrategias de equilibrio: round-robin, prioridad, aleatorio, menos utilizado y de costo optimizado.","featureUsageTitle":"Seguimiento de uso y costos","featureUsageText":"Recuento de tokens en tiempo real, c\xe1lculo de costos por proveedor/modelo y desglose detallado del uso por clave API y cuenta.","featureAnalyticsTitle":"Panel de an\xe1lisis","featureAnalyticsText":"An\xe1lisis visual con gr\xe1ficos de solicitudes, tokens, errores, latencia, costos y popularidad del modelo a lo largo del tiempo.","featureHealthTitle":"Monitoreo de salud","featureHealthText":"Comprobaciones de estado en vivo, estado del proveedor, estados de los disyuntores y detecci\xf3n autom\xe1tica del l\xedmite de velocidad con retroceso exponencial.","featureCliTitle":"Herramientas CLI","featureCliText":"Administre configuraciones de IDE, exporte/importe copias de seguridad, descubra perfiles de c\xf3dice y configure ajustes desde el panel.","featureSecurityTitle":"Seguridad y pol\xedticas","featureSecurityText":"Autenticaci\xf3n de clave API, filtrado de IP, protecci\xf3n contra inyecci\xf3n r\xe1pida, pol\xedticas de dominio, gesti\xf3n de sesiones y registro de auditor\xeda.","featureCloudSyncTitle":"Sincronizaci\xf3n en la nube","featureCloudSyncText":"Sincronice su configuraci\xf3n con Cloudflare Workers para obtener acceso remoto con credenciales cifradas y conmutaci\xf3n por error autom\xe1tica.","providersAcrossConnectionTypes":"{count} proveedores en tres tipos de conexi\xf3n.","manageProviders":"Administrar proveedores","providersCount":"{count} proveedores","providerTypeFree":"Nivel gratuito","providerTypeOAuth":"OAuth","providerTypeApiKey":"Clave API","useCaseSingleEndpointTitle":"Punto final \xfanico para muchos proveedores","useCaseSingleEndpointText":"Dirija a los clientes a una URL base y enr\xfatelos por prefijo de modelo (por ejemplo: gh/, cc/, kr/, openai/).","useCaseFallbackTitle":"Retroceso y cambio de modelo con combos","useCaseFallbackText":"Cree modelos combinados en el Panel y mantenga estable la configuraci\xf3n del cliente mientras los proveedores rotan internamente.","useCaseUsageVisibilityTitle":"Visibilidad de uso, costo y depuraci\xf3n","useCaseUsageVisibilityText":"Realice un seguimiento de los tokens y el costo por proveedor, cuenta y clave API en las pesta\xf1as Uso y An\xe1lisis.","clientCherryStudioTitle":"estudio de cereza","baseUrlLabel":"URL b\xe1sica","chatEndpointLabel":"Punto final del chat","modelRecommendationLabel":"Recomendaci\xf3n del modelo: prefijo expl\xedcito","clientCodexTitle":"Modelos de copiloto Codex/GitHub","clientCodexBullet1":"Utilice ID de modelo con","clientCodexBullet2":"Los modelos de la familia Codex se enrutan autom\xe1ticamente a","clientCodexBullet3":"Los modelos que no pertenecen al Codex contin\xfaan","clientCursorTitle":"Cursor IDE","clientCursorBullet1":"uso","clientCursorBullet1Suffix":"Prefijo para modelos de cursor.","clientCursorBullet2":"Conexi\xf3n OAuth: inicie sesi\xf3n desde la p\xe1gina de Proveedores.","clientClaudeTitle":"C\xf3digo Claude / Antigravedad","clientClaudeBullet1Prefix":"uso","clientClaudeBullet1Middle":"(Claude) o","clientClaudeBullet1Suffix":"Prefijo (antigravedad).","protocolsTitle":"Protocolos: MCP y A2A","protocolsDescription":"OmniRoute expone dos protocolos operativos adem\xe1s de las API compatibles con OpenAI: MCP para la ejecuci\xf3n de herramientas y A2A para flujos de trabajo de agente a agente.","protocolMcpTitle":"MCP (Protocolo de contexto modelo)","protocolMcpDesc":"Utilice MCP sobre stdio para permitir que los clientes descubran y llamen a las herramientas OmniRoute con visibilidad de auditor\xeda.","protocolMcpStep1":"Inicie el transporte MCP con `omniroute --mcp`.","protocolMcpStep2":"Apunte su cliente MCP al transporte stdio.","protocolMcpStep3":"Llame a `omniroute_get_health` y `omniroute_list_combos` para validar la conectividad.","protocolA2aTitle":"A2A (Agente2Agente)","protocolA2aDesc":"Utilice A2A JSON-RPC para enviar tareas de forma sincr\xf3nica o mediante transmisi\xf3n SSE.","protocolA2aStep1":"Lea `/.well-known/agent.json` para descubrir agentes.","protocolA2aStep2":"Env\xede solicitudes `message/send` o `message/stream` a `POST /a2a`.","protocolA2aStep3":"Administre el ciclo de vida de las tareas con `tasks/get` y `tasks/cancel`.","protocolTroubleshootingTitle":"Soluci\xf3n de problemas de protocolo","protocolTroubleshooting1":"Si el estado de MCP est\xe1 fuera de l\xednea, verifique que el proceso stdio se est\xe9 ejecutando y que el archivo de latido se est\xe9 actualizando.","protocolTroubleshooting2":"Si las tareas A2A permanecen en `working`, inspeccione `/api/a2a/tasks/:id` y transmita eventos para ver el estado terminal.","protocolTroubleshooting3":"Utilice `/dashboard/mcp` y `/dashboard/a2a` para controles operativos y visibilidad de auditor\xeda.","endpointChatNote":"Punto final de chat compatible con OpenAI (predeterminado).","endpointResponsesNote":"Punto final de API de respuestas (Codex, o-series).","endpointModelsNote":"Cat\xe1logo de modelos para todos los proveedores conectados.","endpointAudioNote":"Transcripci\xf3n de audio (Deepgram, AssemblyAI).","endpointImagesNote":"Generaci\xf3n de im\xe1genes (NanoBanana).","endpointRewriteChatNote":"Reescribir el asistente para clientes sin /v1.","endpointRewriteResponsesNote":"Reescriba el asistente para respuestas sin /v1.","endpointRewriteModelsNote":"Reescriba el asistente para el descubrimiento de modelos sin /v1.","modelPrefixesDescriptionStart":"Utilice el prefijo del proveedor antes del nombre del modelo para enrutar a un proveedor espec\xedfico. Ejemplo:","modelPrefixesDescriptionEnd":"rutas al copiloto de GitHub.","provider":"Proveedor","type":"Tipo","troubleshootingModelRouting":"Si el cliente falla con el enrutamiento del modelo, utilice proveedor/modelo expl\xedcito (por ejemplo: gh/gpt-5.1-codex).","troubleshootingAmbiguousModels":"Si recibe errores de modelo ambiguos, elija un prefijo de proveedor en lugar de una identificaci\xf3n de modelo simple.","troubleshootingCodexFamily":"Para los modelos de la familia GitHub Codex, mantenga el modelo como gh/codex-model; El enrutador selecciona/respuestas autom\xe1ticamente.","troubleshootingTestConnection":"Utilice Panel > Proveedores > Probar conexi\xf3n antes de realizar pruebas desde IDE o clientes externos.","troubleshootingCircuitBreaker":"Si un proveedor muestra el disyuntor abierto, espere el tiempo de reutilizaci\xf3n o consulte la p\xe1gina de Salud para obtener m\xe1s detalles.","troubleshootingOAuth":"Para los proveedores de OAuth, vuelva a autenticarse si los tokens caducan. Verifique el indicador de estado de la tarjeta del proveedor."},"legal":{"privacyPolicy":"Pol\xedtica de privacidad","termsOfService":"T\xe9rminos de servicio","providerConfigurations":"Configuraciones de proveedor","apiKeys":"Claves API","usageLogs":"Registros de uso","applicationSettings":"Configuraci\xf3n de la aplicaci\xf3n","viewExportAnalytics":"Ver y exportar an\xe1lisis de uso","clearHistory":"Borrar el historial de uso en cualquier momento","configureRetention":"Configurar pol\xedticas de retenci\xf3n de registros","backupRestore":"Haga una copia de seguridad y restaure su base de datos","privacyMetadataTitle":"Pol\xedtica de privacidad | OmniRuta","privacyMetadataDescription":"Pol\xedtica de privacidad para el enrutador proxy API OmniRoute AI.","termsMetadataTitle":"T\xe9rminos de servicio | OmniRuta","termsMetadataDescription":"T\xe9rminos de servicio para el enrutador proxy API OmniRoute AI.","backToHome":"De vuelta a casa","lastUpdated":"\xdaltima actualizaci\xf3n: {date}","policyLastUpdatedDate":"13 de febrero de 2026","listSeparator":"-","questionsVisit":"\xbfPreguntas? Visita nuestro","githubRepository":"repositorio de GitHub","privacySection1Title":"1. Arquitectura local primero","privacySection1Text":"OmniRoute est\xe1 dise\xf1ado como una aplicaci\xf3n local. Todo el procesamiento y almacenamiento de datos se realiza \xedntegramente en su m\xe1quina. No existe un servidor centralizado que recopile su informaci\xf3n.","privacySection2Title":"2. Datos que almacenamos","privacyDataStoredIn":"Los siguientes datos se almacenan localmente en","privacyDataProviderConfigurationsDesc":"URL de conexi\xf3n, tipos de proveedores y configuraci\xf3n de prioridad","privacyDataApiKeysDesc":"cifrado y almacenado localmente para autenticarse con proveedores de IA","privacyDataUsageLogsDesc":"recuentos de solicitudes, uso de tokens, nombres de modelos, marcas de tiempo y tiempos de respuesta","privacyDataApplicationSettingsDesc":"preferencias de tema, estrategia de enrutamiento y configuraciones combinadas","privacySection3Title":"3. Sin telemetr\xeda","privacySection3Text":"OmniRoute no recopila telemetr\xeda, an\xe1lisis ni informes de fallos. No se env\xedan datos a nosotros ni a ning\xfan tercero. Sus patrones de uso, llamadas API y configuraciones permanecen completamente privados.","privacySection4Title":"4. Proveedores de IA de terceros","privacySection4Text":"Cuando realiza llamadas API a trav\xe9s de OmniRoute, sus solicitudes se reenv\xedan a los proveedores de IA que haya configurado (por ejemplo: OpenAI, Anthropic, Google). Estos proveedores tienen sus propias pol\xedticas de privacidad que rigen c\xf3mo manejan sus datos. Por favor revise:","privacyOpenAiPolicy":"Pol\xedtica de privacidad de OpenAI","privacyAnthropicPolicy":"Pol\xedtica de privacidad antr\xf3pica","privacyGooglePolicy":"Pol\xedtica de privacidad de Google","privacySection5Title":"5. Sincronizaci\xf3n en la nube (opcional)","privacySection5Text":"Si habilita la funci\xf3n opcional de sincronizaci\xf3n en la nube, las configuraciones del proveedor y las claves API pueden transmitirse a un punto final en la nube configurado. Esta funci\xf3n est\xe1 deshabilitada de forma predeterminada y requiere una suscripci\xf3n expl\xedcita.","privacySection6Title":"6. Registro","privacyLoggingIntro":"Los registros de solicitudes se pueden configurar a trav\xe9s de la configuraci\xf3n del panel. Puedes:","privacySection7Title":"7. Tus derechos","privacySection7TextStart":"Dado que todos los datos se almacenan localmente, usted tiene control total. Puedes eliminar tus datos en cualquier momento eliminando el","privacySection7TextEnd":"directorio o utilizando las funciones de copia de seguridad y restauraci\xf3n de la base de datos en el panel.","termsSection1Title":"1. Descripci\xf3n general","termsSection1Text":"OmniRoute es un enrutador proxy API de IA local que funciona completamente en su m\xe1quina. Enruta solicitudes a m\xfaltiples proveedores de IA con equilibrio de carga, conmutaci\xf3n por error y seguimiento de uso.","termsSection2Title":"2. Responsabilidades del usuario","termsResponsibilityApiKeys":"Usted es el \xfanico responsable de administrar sus propias claves API y credenciales para proveedores de IA externos (OpenAI, Anthropic, Google, etc.).","termsResponsibilityCompliance":"Debe cumplir con los t\xe9rminos de servicio de cada proveedor de IA a cuya API acceda a trav\xe9s de OmniRoute.","termsResponsibilitySecurity":"Usted es responsable de la seguridad de su instalaci\xf3n local de OmniRoute, incluida la configuraci\xf3n de una contrase\xf1a y la restricci\xf3n del acceso a la red.","termsSection3Title":"3. C\xf3mo funciona","termsSection3Text":"OmniRoute act\xfaa como proxy intermediario. Las llamadas API enviadas a OmniRoute se traducen y reenv\xedan a sus proveedores de IA configurados. OmniRoute no modifica el contenido de sus solicitudes o respuestas m\xe1s all\xe1 de la traducci\xf3n del protocolo necesaria.","termsSection4Title":"4. Manejo de datos","termsDataStoredLocally":"Todos los datos se almacenan localmente en su m\xe1quina en una base de datos SQLite.","termsNoTransmission":"OmniRoute no transmite ning\xfan dato a servidores externos a menos que habilite expl\xedcitamente las funciones de sincronizaci\xf3n en la nube.","termsDataLocationText":"Los registros de uso, las claves API y la configuraci\xf3n se almacenan en","termsSection5Title":"5. Descargo de responsabilidad","termsSection5Text":"OmniRoute se proporciona \\"tal cual\\" sin garant\xeda de ning\xfan tipo. No somos responsables de los costos incurridos por el uso de API, interrupciones del servicio o p\xe9rdida de datos. Mantenga siempre copias de seguridad de su configuraci\xf3n.","termsSection6Title":"6. C\xf3digo abierto","termsSection6Text":"OmniRoute es un software de c\xf3digo abierto. Usted es libre de inspeccionarlo, modificarlo y distribuirlo seg\xfan los t\xe9rminos de su licencia."},"endpoints":{"tabProxy":"Endpoint Proxy","tabApiEndpoints":"Endpoints de API","apiEndpointsTitle":"Endpoints de API","apiEndpointsDescription":"Endpoints de API backend que pueden ser consumidos por otras aplicaciones y servicios.","comingSoon":"Pr\xf3ximamente","plannedFeatures":"Funciones Planeadas","featureRestApi":"Cat\xe1logo de endpoints REST API con documentaci\xf3n interactiva","featureWebhooks":"Configuraci\xf3n de webhooks y suscripciones de eventos","featureSwagger":"Generaci\xf3n autom\xe1tica de especificaciones OpenAPI / Swagger","featureAuth":"Gesti\xf3n de claves API y alcances OAuth por endpoint"},"agents":{"title":"CLI Agents","description":"Discover installed CLI agents on your system. Add custom agents for auto-detection.","refresh":"Refresh","installed":"Installed","notFound":"Not Found","builtIn":"Built-in","custom":"Custom","remove":"Remove","addCustomAgent":"Add Custom Agent","addCustomAgentDesc":"Register any CLI tool for detection. It will be scanned automatically on refresh.","agentName":"Agent Name","binaryName":"Binary Name","versionCommand":"Version Command","spawnArgs":"Spawn Args","addAgent":"Add Agent"},"autoCombo":{"title":"Auto-Combo Engine","statusNormal":"Normal","statusIncident":"Incident Mode","modePack":"Mode Pack","providerScores":"Provider Scores","noAutoCombo":"No auto-combo configured.","excludedProviders":"Excluded Providers","noExclusions":"No providers currently excluded.","factorQuota":"Quota","factorHealth":"Health","factorCost":"Cost","factorLatency":"Latency","factorTaskFit":"Task Fit","factorStability":"Stability","factorTierPriority":"Tier Priority","factorTierPriorityDesc":"Prefers accounts with higher quota tiers (Ultra/Pro over Free)","scoreFactorBreakdown":"Scoring Factors","modePackShipFast":"Ship Fast","modePackCostSaver":"Cost Saver","modePackQualityFirst":"Quality First","modePackOfflineFriendly":"Offline Friendly"}}')}};
|