@srouterhq/server 0.0.0-stage → 0.9.0
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/LICENSE +21 -0
- package/client/dist/assets/am-TQ7Jmdqe.js +1 -0
- package/client/dist/assets/ar-Bf5a7yfC.js +1 -0
- package/client/dist/assets/az-CrosE1xH.js +1 -0
- package/client/dist/assets/bg-BvWnmcUz.js +1 -0
- package/client/dist/assets/bn-ams5TsJp.js +1 -0
- package/client/dist/assets/cs-Dh67CaJ_.js +1 -0
- package/client/dist/assets/da-9WlT8Iq7.js +1 -0
- package/client/dist/assets/de-lWhJJzz7.js +1 -0
- package/client/dist/assets/el-Cu7_GhNq.js +1 -0
- package/client/dist/assets/es-BZuzsBcP.js +1 -0
- package/client/dist/assets/fa-Dwdn-jKS.js +1 -0
- package/client/dist/assets/fi-BFrFyOTy.js +1 -0
- package/client/dist/assets/fr-XhbtmPpj.js +1 -0
- package/client/dist/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/client/dist/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/client/dist/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/client/dist/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
- package/client/dist/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
- package/client/dist/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
- package/client/dist/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/client/dist/assets/gu-D0uhLUB8.js +1 -0
- package/client/dist/assets/ha-CVlm9pqp.js +1 -0
- package/client/dist/assets/he-CMIFeoWr.js +1 -0
- package/client/dist/assets/hi-ENTwhBpn.js +1 -0
- package/client/dist/assets/hr-fc03vMy_.js +1 -0
- package/client/dist/assets/hu-YBo2BIYt.js +1 -0
- package/client/dist/assets/id-BEWXYX69.js +1 -0
- package/client/dist/assets/ig-BKLZFKka.js +1 -0
- package/client/dist/assets/index-D9I4KtvR.js +145 -0
- package/client/dist/assets/index-txhEmCdb.css +2 -0
- package/client/dist/assets/it-Bzmei1Y2.js +1 -0
- package/client/dist/assets/ja-BfcpuqEl.js +1 -0
- package/client/dist/assets/ka-CnWjRgLo.js +1 -0
- package/client/dist/assets/km-BAjPR3Qj.js +1 -0
- package/client/dist/assets/kn-B15WKU5m.js +1 -0
- package/client/dist/assets/ko-C61fAB-w.js +1 -0
- package/client/dist/assets/lt-CYTr4_YW.js +1 -0
- package/client/dist/assets/ml-CtqxgyH3.js +1 -0
- package/client/dist/assets/mr-X5TMY7aR.js +1 -0
- package/client/dist/assets/ms-DSg8RqPS.js +1 -0
- package/client/dist/assets/my-D7RqR8uE.js +1 -0
- package/client/dist/assets/ne-DaflxkDj.js +1 -0
- package/client/dist/assets/nl-BOqqtsC8.js +1 -0
- package/client/dist/assets/no-BSHp_StB.js +1 -0
- package/client/dist/assets/or-BkLR9Vub.js +1 -0
- package/client/dist/assets/pa-CarJ2XgI.js +1 -0
- package/client/dist/assets/pl-C2n0V-0k.js +1 -0
- package/client/dist/assets/pt-BR-CqJdNhg2.js +1 -0
- package/client/dist/assets/pt-PT-C_HpMyKz.js +1 -0
- package/client/dist/assets/ro-DVRZqSAS.js +1 -0
- package/client/dist/assets/ru-DwAJG7VC.js +1 -0
- package/client/dist/assets/si-BxUezXm0.js +1 -0
- package/client/dist/assets/sk-eI1VcIfY.js +1 -0
- package/client/dist/assets/sr-CJF3auCr.js +1 -0
- package/client/dist/assets/srouter-logo-C6ZfjGIi.svg +14 -0
- package/client/dist/assets/sv-nqvwHAq_.js +1 -0
- package/client/dist/assets/sw-DWynE2pW.js +1 -0
- package/client/dist/assets/ta-BVM12knC.js +1 -0
- package/client/dist/assets/te-oyzEkF7_.js +1 -0
- package/client/dist/assets/th-COVeE0ZQ.js +1 -0
- package/client/dist/assets/tl-DsJANnQz.js +1 -0
- package/client/dist/assets/tr-B-Fl-urO.js +1 -0
- package/client/dist/assets/uk-C5qketAO.js +1 -0
- package/client/dist/assets/ur-QU9KugfV.js +1 -0
- package/client/dist/assets/uz-DL9cG_mY.js +1 -0
- package/client/dist/assets/vi-CQiVy3Pu.js +1 -0
- package/client/dist/assets/yo-DqazMdrZ.js +1 -0
- package/client/dist/assets/zh-CN-DnYL_Kio.js +1 -0
- package/client/dist/assets/zh-TW-5bdbosKj.js +1 -0
- package/client/dist/favicon.svg +14 -0
- package/client/dist/icons.svg +24 -0
- package/client/dist/index.html +37 -0
- package/dist/app.d.ts +4 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +372 -0
- package/dist/app.js.map +1 -0
- package/dist/db/index.d.ts +49 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +203 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrate/TEMPLATE.d.ts +4 -0
- package/dist/db/migrate/TEMPLATE.d.ts.map +1 -0
- package/dist/db/migrate/TEMPLATE.js +18 -0
- package/dist/db/migrate/TEMPLATE.js.map +1 -0
- package/dist/db/migrate/cli.d.ts +2 -0
- package/dist/db/migrate/cli.d.ts.map +1 -0
- package/dist/db/migrate/cli.js +177 -0
- package/dist/db/migrate/cli.js.map +1 -0
- package/dist/db/migrate/defaults.d.ts +52 -0
- package/dist/db/migrate/defaults.d.ts.map +1 -0
- package/dist/db/migrate/defaults.js +126 -0
- package/dist/db/migrate/defaults.js.map +1 -0
- package/dist/db/migrate/runner.d.ts +16 -0
- package/dist/db/migrate/runner.d.ts.map +1 -0
- package/dist/db/migrate/runner.js +178 -0
- package/dist/db/migrate/runner.js.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts +4 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js +2240 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts +4 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js +27 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts +4 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js +30 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts +6 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js +104 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts +9 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js +22 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts +4 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js +30 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts +17 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js +20 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts +12 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js +45 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts +5 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js +16 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js +38 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts +4 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js +43 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js +80 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts +4 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js +34 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts +4 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js +31 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts +4 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js +29 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts +4 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js +41 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts +12 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js +37 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts +4 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js +145 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts +6 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js +52 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts +6 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js +17 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts +4 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js +33 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts +4 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js +33 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts +4 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js +19 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts +4 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js +47 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts +4 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.js +53 -0
- package/dist/db/migrations/20260823_000001_server_logs.js.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts +8 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.js +22 -0
- package/dist/db/migrations/20260823_000002_backups_table.js.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts +19 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js +28 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts +14 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js +25 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts +4 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js +46 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts +4 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js +37 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts +4 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.js +27 -0
- package/dist/db/migrations/20260901_000003_request_caller.js.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts +4 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js +35 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts +4 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js +37 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts +4 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.js +53 -0
- package/dist/db/migrations/20260903_000002_response_cache.js.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts +13 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js +35 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts +4 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js +68 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts +5 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js +37 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts +4 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js +28 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts +4 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js +25 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts +10 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js +78 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts +21 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js +41 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js.map +1 -0
- package/dist/db/model-pricing.d.ts +39 -0
- package/dist/db/model-pricing.d.ts.map +1 -0
- package/dist/db/model-pricing.js +274 -0
- package/dist/db/model-pricing.js.map +1 -0
- package/dist/db/node-sqlite.d.ts +9 -0
- package/dist/db/node-sqlite.d.ts.map +1 -0
- package/dist/db/node-sqlite.js +87 -0
- package/dist/db/node-sqlite.js.map +1 -0
- package/dist/db/types.d.ts +22 -0
- package/dist/db/types.d.ts.map +1 -0
- package/dist/db/types.js +2 -0
- package/dist/db/types.js.map +1 -0
- package/dist/docs/docs-page.d.ts +2 -0
- package/dist/docs/docs-page.d.ts.map +1 -0
- package/dist/docs/docs-page.js +319 -0
- package/dist/docs/docs-page.js.map +1 -0
- package/dist/docs/openapi.d.ts +1896 -0
- package/dist/docs/openapi.d.ts.map +1 -0
- package/dist/docs/openapi.js +1096 -0
- package/dist/docs/openapi.js.map +1 -0
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +9 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +144 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/anthropic-documents.d.ts +41 -0
- package/dist/lib/anthropic-documents.d.ts.map +1 -0
- package/dist/lib/anthropic-documents.js +132 -0
- package/dist/lib/anthropic-documents.js.map +1 -0
- package/dist/lib/app-version.d.ts +5 -0
- package/dist/lib/app-version.d.ts.map +1 -0
- package/dist/lib/app-version.js +61 -0
- package/dist/lib/app-version.js.map +1 -0
- package/dist/lib/attempt-trace.d.ts +23 -0
- package/dist/lib/attempt-trace.d.ts.map +1 -0
- package/dist/lib/attempt-trace.js +32 -0
- package/dist/lib/attempt-trace.js.map +1 -0
- package/dist/lib/budget.d.ts +6 -0
- package/dist/lib/budget.d.ts.map +1 -0
- package/dist/lib/budget.js +40 -0
- package/dist/lib/budget.js.map +1 -0
- package/dist/lib/client-classifier.d.ts +10 -0
- package/dist/lib/client-classifier.d.ts.map +1 -0
- package/dist/lib/client-classifier.js +126 -0
- package/dist/lib/client-classifier.js.map +1 -0
- package/dist/lib/client-context.d.ts +10 -0
- package/dist/lib/client-context.d.ts.map +1 -0
- package/dist/lib/client-context.js +39 -0
- package/dist/lib/client-context.js.map +1 -0
- package/dist/lib/config.d.ts +33 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +94 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/content.d.ts +33 -0
- package/dist/lib/content.d.ts.map +1 -0
- package/dist/lib/content.js +201 -0
- package/dist/lib/content.js.map +1 -0
- package/dist/lib/credential.d.ts +11 -0
- package/dist/lib/credential.d.ts.map +1 -0
- package/dist/lib/credential.js +18 -0
- package/dist/lib/credential.js.map +1 -0
- package/dist/lib/crypto.d.ts +31 -0
- package/dist/lib/crypto.d.ts.map +1 -0
- package/dist/lib/crypto.js +206 -0
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/custom-provider-cleanup.d.ts +13 -0
- package/dist/lib/custom-provider-cleanup.d.ts.map +1 -0
- package/dist/lib/custom-provider-cleanup.js +43 -0
- package/dist/lib/custom-provider-cleanup.js.map +1 -0
- package/dist/lib/db-backup.d.ts +31 -0
- package/dist/lib/db-backup.d.ts.map +1 -0
- package/dist/lib/db-backup.js +255 -0
- package/dist/lib/db-backup.js.map +1 -0
- package/dist/lib/endpoint-scope.d.ts +42 -0
- package/dist/lib/endpoint-scope.d.ts.map +1 -0
- package/dist/lib/endpoint-scope.js +95 -0
- package/dist/lib/endpoint-scope.js.map +1 -0
- package/dist/lib/env-drift.d.ts +17 -0
- package/dist/lib/env-drift.d.ts.map +1 -0
- package/dist/lib/env-drift.js +108 -0
- package/dist/lib/env-drift.js.map +1 -0
- package/dist/lib/error-classify.d.ts +40 -0
- package/dist/lib/error-classify.d.ts.map +1 -0
- package/dist/lib/error-classify.js +687 -0
- package/dist/lib/error-classify.js.map +1 -0
- package/dist/lib/error-redaction.d.ts +8 -0
- package/dist/lib/error-redaction.d.ts.map +1 -0
- package/dist/lib/error-redaction.js +45 -0
- package/dist/lib/error-redaction.js.map +1 -0
- package/dist/lib/fallback-loop.d.ts +306 -0
- package/dist/lib/fallback-loop.d.ts.map +1 -0
- package/dist/lib/fallback-loop.js +1336 -0
- package/dist/lib/fallback-loop.js.map +1 -0
- package/dist/lib/file-permissions.d.ts +98 -0
- package/dist/lib/file-permissions.d.ts.map +1 -0
- package/dist/lib/file-permissions.js +159 -0
- package/dist/lib/file-permissions.js.map +1 -0
- package/dist/lib/gemini-wire.d.ts +76 -0
- package/dist/lib/gemini-wire.d.ts.map +1 -0
- package/dist/lib/gemini-wire.js +392 -0
- package/dist/lib/gemini-wire.js.map +1 -0
- package/dist/lib/guardrails.d.ts +37 -0
- package/dist/lib/guardrails.d.ts.map +1 -0
- package/dist/lib/guardrails.js +106 -0
- package/dist/lib/guardrails.js.map +1 -0
- package/dist/lib/header-value.d.ts +8 -0
- package/dist/lib/header-value.d.ts.map +1 -0
- package/dist/lib/header-value.js +55 -0
- package/dist/lib/header-value.js.map +1 -0
- package/dist/lib/image-normalize.d.ts +21 -0
- package/dist/lib/image-normalize.d.ts.map +1 -0
- package/dist/lib/image-normalize.js +218 -0
- package/dist/lib/image-normalize.js.map +1 -0
- package/dist/lib/inbound-chat.d.ts +48 -0
- package/dist/lib/inbound-chat.d.ts.map +1 -0
- package/dist/lib/inbound-chat.js +406 -0
- package/dist/lib/inbound-chat.js.map +1 -0
- package/dist/lib/key-parser.d.ts +79 -0
- package/dist/lib/key-parser.d.ts.map +1 -0
- package/dist/lib/key-parser.js +701 -0
- package/dist/lib/key-parser.js.map +1 -0
- package/dist/lib/key-proxy.d.ts +49 -0
- package/dist/lib/key-proxy.d.ts.map +1 -0
- package/dist/lib/key-proxy.js +92 -0
- package/dist/lib/key-proxy.js.map +1 -0
- package/dist/lib/log-redaction.d.ts +28 -0
- package/dist/lib/log-redaction.d.ts.map +1 -0
- package/dist/lib/log-redaction.js +166 -0
- package/dist/lib/log-redaction.js.map +1 -0
- package/dist/lib/model-scope.d.ts +9 -0
- package/dist/lib/model-scope.d.ts.map +1 -0
- package/dist/lib/model-scope.js +29 -0
- package/dist/lib/model-scope.js.map +1 -0
- package/dist/lib/one-time-code.d.ts +15 -0
- package/dist/lib/one-time-code.d.ts.map +1 -0
- package/dist/lib/one-time-code.js +41 -0
- package/dist/lib/one-time-code.js.map +1 -0
- package/dist/lib/output-cap.d.ts +24 -0
- package/dist/lib/output-cap.d.ts.map +1 -0
- package/dist/lib/output-cap.js +80 -0
- package/dist/lib/output-cap.js.map +1 -0
- package/dist/lib/password.d.ts +3 -0
- package/dist/lib/password.d.ts.map +1 -0
- package/dist/lib/password.js +27 -0
- package/dist/lib/password.js.map +1 -0
- package/dist/lib/process-safety-net.d.ts +32 -0
- package/dist/lib/process-safety-net.d.ts.map +1 -0
- package/dist/lib/process-safety-net.js +123 -0
- package/dist/lib/process-safety-net.js.map +1 -0
- package/dist/lib/provider-identity.d.ts +37 -0
- package/dist/lib/provider-identity.d.ts.map +1 -0
- package/dist/lib/provider-identity.js +110 -0
- package/dist/lib/provider-identity.js.map +1 -0
- package/dist/lib/provider-size-parser.d.ts +6 -0
- package/dist/lib/provider-size-parser.d.ts.map +1 -0
- package/dist/lib/provider-size-parser.js +72 -0
- package/dist/lib/provider-size-parser.js.map +1 -0
- package/dist/lib/provider-timeout.d.ts +17 -0
- package/dist/lib/provider-timeout.d.ts.map +1 -0
- package/dist/lib/provider-timeout.js +70 -0
- package/dist/lib/provider-timeout.js.map +1 -0
- package/dist/lib/proxy.d.ts +180 -0
- package/dist/lib/proxy.d.ts.map +1 -0
- package/dist/lib/proxy.js +1002 -0
- package/dist/lib/proxy.js.map +1 -0
- package/dist/lib/request-log.d.ts +4 -0
- package/dist/lib/request-log.d.ts.map +1 -0
- package/dist/lib/request-log.js +161 -0
- package/dist/lib/request-log.js.map +1 -0
- package/dist/lib/reset-code.d.ts +5 -0
- package/dist/lib/reset-code.d.ts.map +1 -0
- package/dist/lib/reset-code.js +39 -0
- package/dist/lib/reset-code.js.map +1 -0
- package/dist/lib/retry-hint.d.ts +14 -0
- package/dist/lib/retry-hint.d.ts.map +1 -0
- package/dist/lib/retry-hint.js +36 -0
- package/dist/lib/retry-hint.js.map +1 -0
- package/dist/lib/route-live.d.ts +29 -0
- package/dist/lib/route-live.d.ts.map +1 -0
- package/dist/lib/route-live.js +97 -0
- package/dist/lib/route-live.js.map +1 -0
- package/dist/lib/sampling-params.d.ts +183 -0
- package/dist/lib/sampling-params.d.ts.map +1 -0
- package/dist/lib/sampling-params.js +386 -0
- package/dist/lib/sampling-params.js.map +1 -0
- package/dist/lib/scheduler.d.ts +13 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +11 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/served-model.d.ts +16 -0
- package/dist/lib/served-model.d.ts.map +1 -0
- package/dist/lib/served-model.js +0 -0
- package/dist/lib/served-model.js.map +1 -0
- package/dist/lib/server-logs.d.ts +132 -0
- package/dist/lib/server-logs.d.ts.map +1 -0
- package/dist/lib/server-logs.js +473 -0
- package/dist/lib/server-logs.js.map +1 -0
- package/dist/lib/setup-code.d.ts +5 -0
- package/dist/lib/setup-code.d.ts.map +1 -0
- package/dist/lib/setup-code.js +35 -0
- package/dist/lib/setup-code.js.map +1 -0
- package/dist/lib/structured-output.d.ts +9 -0
- package/dist/lib/structured-output.d.ts.map +1 -0
- package/dist/lib/structured-output.js +72 -0
- package/dist/lib/structured-output.js.map +1 -0
- package/dist/lib/system-prompt.d.ts +30 -0
- package/dist/lib/system-prompt.d.ts.map +1 -0
- package/dist/lib/system-prompt.js +66 -0
- package/dist/lib/system-prompt.js.map +1 -0
- package/dist/lib/task-type.d.ts +18 -0
- package/dist/lib/task-type.d.ts.map +1 -0
- package/dist/lib/task-type.js +92 -0
- package/dist/lib/task-type.js.map +1 -0
- package/dist/lib/think-tags.d.ts +37 -0
- package/dist/lib/think-tags.d.ts.map +1 -0
- package/dist/lib/think-tags.js +203 -0
- package/dist/lib/think-tags.js.map +1 -0
- package/dist/lib/tool-args.d.ts +36 -0
- package/dist/lib/tool-args.d.ts.map +1 -0
- package/dist/lib/tool-args.js +190 -0
- package/dist/lib/tool-args.js.map +1 -0
- package/dist/lib/tool-call-rescue.d.ts +62 -0
- package/dist/lib/tool-call-rescue.d.ts.map +1 -0
- package/dist/lib/tool-call-rescue.js +258 -0
- package/dist/lib/tool-call-rescue.js.map +1 -0
- package/dist/lib/tool-capability.d.ts +13 -0
- package/dist/lib/tool-capability.d.ts.map +1 -0
- package/dist/lib/tool-capability.js +70 -0
- package/dist/lib/tool-capability.js.map +1 -0
- package/dist/lib/tool-validate.d.ts +44 -0
- package/dist/lib/tool-validate.d.ts.map +1 -0
- package/dist/lib/tool-validate.js +165 -0
- package/dist/lib/tool-validate.js.map +1 -0
- package/dist/lib/ttfb-budget.d.ts +13 -0
- package/dist/lib/ttfb-budget.d.ts.map +1 -0
- package/dist/lib/ttfb-budget.js +153 -0
- package/dist/lib/ttfb-budget.js.map +1 -0
- package/dist/lib/url-guard.d.ts +47 -0
- package/dist/lib/url-guard.d.ts.map +1 -0
- package/dist/lib/url-guard.js +229 -0
- package/dist/lib/url-guard.js.map +1 -0
- package/dist/lib/wake-detect.d.ts +12 -0
- package/dist/lib/wake-detect.d.ts.map +1 -0
- package/dist/lib/wake-detect.js +99 -0
- package/dist/lib/wake-detect.js.map +1 -0
- package/dist/middleware/errorHandler.d.ts +3 -0
- package/dist/middleware/errorHandler.d.ts.map +1 -0
- package/dist/middleware/errorHandler.js +45 -0
- package/dist/middleware/errorHandler.js.map +1 -0
- package/dist/middleware/rateLimit.d.ts +4 -0
- package/dist/middleware/rateLimit.d.ts.map +1 -0
- package/dist/middleware/rateLimit.js +125 -0
- package/dist/middleware/rateLimit.js.map +1 -0
- package/dist/middleware/requireAuth.d.ts +3 -0
- package/dist/middleware/requireAuth.d.ts.map +1 -0
- package/dist/middleware/requireAuth.js +17 -0
- package/dist/middleware/requireAuth.js.map +1 -0
- package/dist/providers/aclide.d.ts +18 -0
- package/dist/providers/aclide.d.ts.map +1 -0
- package/dist/providers/aclide.js +174 -0
- package/dist/providers/aclide.js.map +1 -0
- package/dist/providers/aihorde.d.ts +42 -0
- package/dist/providers/aihorde.d.ts.map +1 -0
- package/dist/providers/aihorde.js +192 -0
- package/dist/providers/aihorde.js.map +1 -0
- package/dist/providers/airforce.d.ts +11 -0
- package/dist/providers/airforce.d.ts.map +1 -0
- package/dist/providers/airforce.js +32 -0
- package/dist/providers/airforce.js.map +1 -0
- package/dist/providers/base.d.ts +177 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +354 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/blaze.d.ts +11 -0
- package/dist/providers/blaze.d.ts.map +1 -0
- package/dist/providers/blaze.js +33 -0
- package/dist/providers/blaze.js.map +1 -0
- package/dist/providers/blockrun.d.ts +14 -0
- package/dist/providers/blockrun.d.ts.map +1 -0
- package/dist/providers/blockrun.js +36 -0
- package/dist/providers/blockrun.js.map +1 -0
- package/dist/providers/clod.d.ts +11 -0
- package/dist/providers/clod.d.ts.map +1 -0
- package/dist/providers/clod.js +39 -0
- package/dist/providers/clod.js.map +1 -0
- package/dist/providers/cloudflare.d.ts +15 -0
- package/dist/providers/cloudflare.d.ts.map +1 -0
- package/dist/providers/cloudflare.js +175 -0
- package/dist/providers/cloudflare.js.map +1 -0
- package/dist/providers/cohere.d.ts +11 -0
- package/dist/providers/cohere.d.ts.map +1 -0
- package/dist/providers/cohere.js +117 -0
- package/dist/providers/cohere.js.map +1 -0
- package/dist/providers/dreamprompting.d.ts +11 -0
- package/dist/providers/dreamprompting.d.ts.map +1 -0
- package/dist/providers/dreamprompting.js +41 -0
- package/dist/providers/dreamprompting.js.map +1 -0
- package/dist/providers/electronhub.d.ts +10 -0
- package/dist/providers/electronhub.d.ts.map +1 -0
- package/dist/providers/electronhub.js +56 -0
- package/dist/providers/electronhub.js.map +1 -0
- package/dist/providers/experiential.d.ts +10 -0
- package/dist/providers/experiential.d.ts.map +1 -0
- package/dist/providers/experiential.js +33 -0
- package/dist/providers/experiential.js.map +1 -0
- package/dist/providers/gizmo.d.ts +15 -0
- package/dist/providers/gizmo.d.ts.map +1 -0
- package/dist/providers/gizmo.js +54 -0
- package/dist/providers/gizmo.js.map +1 -0
- package/dist/providers/google.d.ts +30 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +766 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +561 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/llmtr.d.ts +15 -0
- package/dist/providers/llmtr.d.ts.map +1 -0
- package/dist/providers/llmtr.js +51 -0
- package/dist/providers/llmtr.js.map +1 -0
- package/dist/providers/logfare.d.ts +11 -0
- package/dist/providers/logfare.d.ts.map +1 -0
- package/dist/providers/logfare.js +33 -0
- package/dist/providers/logfare.js.map +1 -0
- package/dist/providers/lucidity.d.ts +11 -0
- package/dist/providers/lucidity.d.ts.map +1 -0
- package/dist/providers/lucidity.js +37 -0
- package/dist/providers/lucidity.js.map +1 -0
- package/dist/providers/modelscope.d.ts +50 -0
- package/dist/providers/modelscope.d.ts.map +1 -0
- package/dist/providers/modelscope.js +143 -0
- package/dist/providers/modelscope.js.map +1 -0
- package/dist/providers/moondream.d.ts +17 -0
- package/dist/providers/moondream.d.ts.map +1 -0
- package/dist/providers/moondream.js +140 -0
- package/dist/providers/moondream.js.map +1 -0
- package/dist/providers/openai-compat.d.ts +140 -0
- package/dist/providers/openai-compat.d.ts.map +1 -0
- package/dist/providers/openai-compat.js +537 -0
- package/dist/providers/openai-compat.js.map +1 -0
- package/dist/providers/opencode-free.d.ts +24 -0
- package/dist/providers/opencode-free.d.ts.map +1 -0
- package/dist/providers/opencode-free.js +262 -0
- package/dist/providers/opencode-free.js.map +1 -0
- package/dist/providers/pollinations.d.ts +32 -0
- package/dist/providers/pollinations.d.ts.map +1 -0
- package/dist/providers/pollinations.js +65 -0
- package/dist/providers/pollinations.js.map +1 -0
- package/dist/providers/router9.d.ts +16 -0
- package/dist/providers/router9.d.ts.map +1 -0
- package/dist/providers/router9.js +42 -0
- package/dist/providers/router9.js.map +1 -0
- package/dist/providers/sail.d.ts +44 -0
- package/dist/providers/sail.d.ts.map +1 -0
- package/dist/providers/sail.js +302 -0
- package/dist/providers/sail.js.map +1 -0
- package/dist/providers/septor.d.ts +10 -0
- package/dist/providers/septor.d.ts.map +1 -0
- package/dist/providers/septor.js +36 -0
- package/dist/providers/septor.js.map +1 -0
- package/dist/providers/speechify.d.ts +14 -0
- package/dist/providers/speechify.d.ts.map +1 -0
- package/dist/providers/speechify.js +28 -0
- package/dist/providers/speechify.js.map +1 -0
- package/dist/providers/speka.d.ts +12 -0
- package/dist/providers/speka.d.ts.map +1 -0
- package/dist/providers/speka.js +37 -0
- package/dist/providers/speka.js.map +1 -0
- package/dist/providers/waterfall.d.ts +11 -0
- package/dist/providers/waterfall.d.ts.map +1 -0
- package/dist/providers/waterfall.js +33 -0
- package/dist/providers/waterfall.js.map +1 -0
- package/dist/providers/xkiro.d.ts +71 -0
- package/dist/providers/xkiro.d.ts.map +1 -0
- package/dist/providers/xkiro.js +119 -0
- package/dist/providers/xkiro.js.map +1 -0
- package/dist/providers/zhipu.d.ts +43 -0
- package/dist/providers/zhipu.d.ts.map +1 -0
- package/dist/providers/zhipu.js +95 -0
- package/dist/providers/zhipu.js.map +1 -0
- package/dist/routes/analytics.d.ts +2 -0
- package/dist/routes/analytics.d.ts.map +1 -0
- package/dist/routes/analytics.js +738 -0
- package/dist/routes/analytics.js.map +1 -0
- package/dist/routes/anthropic.d.ts +7 -0
- package/dist/routes/anthropic.d.ts.map +1 -0
- package/dist/routes/anthropic.js +1076 -0
- package/dist/routes/anthropic.js.map +1 -0
- package/dist/routes/auth.d.ts +2 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +310 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/backups.d.ts +2 -0
- package/dist/routes/backups.d.ts.map +1 -0
- package/dist/routes/backups.js +127 -0
- package/dist/routes/backups.js.map +1 -0
- package/dist/routes/cache.d.ts +2 -0
- package/dist/routes/cache.d.ts.map +1 -0
- package/dist/routes/cache.js +40 -0
- package/dist/routes/cache.js.map +1 -0
- package/dist/routes/client-profiles.d.ts +2 -0
- package/dist/routes/client-profiles.d.ts.map +1 -0
- package/dist/routes/client-profiles.js +128 -0
- package/dist/routes/client-profiles.js.map +1 -0
- package/dist/routes/compression.d.ts +2 -0
- package/dist/routes/compression.d.ts.map +1 -0
- package/dist/routes/compression.js +82 -0
- package/dist/routes/compression.js.map +1 -0
- package/dist/routes/conversations.d.ts +3 -0
- package/dist/routes/conversations.d.ts.map +1 -0
- package/dist/routes/conversations.js +215 -0
- package/dist/routes/conversations.js.map +1 -0
- package/dist/routes/docs.d.ts +2 -0
- package/dist/routes/docs.d.ts.map +1 -0
- package/dist/routes/docs.js +21 -0
- package/dist/routes/docs.js.map +1 -0
- package/dist/routes/embeddings.d.ts +2 -0
- package/dist/routes/embeddings.d.ts.map +1 -0
- package/dist/routes/embeddings.js +255 -0
- package/dist/routes/embeddings.js.map +1 -0
- package/dist/routes/fallback.d.ts +2 -0
- package/dist/routes/fallback.d.ts.map +1 -0
- package/dist/routes/fallback.js +631 -0
- package/dist/routes/fallback.js.map +1 -0
- package/dist/routes/free-tier.d.ts +22 -0
- package/dist/routes/free-tier.d.ts.map +1 -0
- package/dist/routes/free-tier.js +175 -0
- package/dist/routes/free-tier.js.map +1 -0
- package/dist/routes/gemini.d.ts +2 -0
- package/dist/routes/gemini.d.ts.map +1 -0
- package/dist/routes/gemini.js +218 -0
- package/dist/routes/gemini.js.map +1 -0
- package/dist/routes/health.d.ts +2 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +72 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/keys.d.ts +17 -0
- package/dist/routes/keys.d.ts.map +1 -0
- package/dist/routes/keys.js +1787 -0
- package/dist/routes/keys.js.map +1 -0
- package/dist/routes/logs.d.ts +2 -0
- package/dist/routes/logs.d.ts.map +1 -0
- package/dist/routes/logs.js +88 -0
- package/dist/routes/logs.js.map +1 -0
- package/dist/routes/mcp.d.ts +4 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +563 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/media.d.ts +2 -0
- package/dist/routes/media.d.ts.map +1 -0
- package/dist/routes/media.js +180 -0
- package/dist/routes/media.js.map +1 -0
- package/dist/routes/models.d.ts +2 -0
- package/dist/routes/models.d.ts.map +1 -0
- package/dist/routes/models.js +439 -0
- package/dist/routes/models.js.map +1 -0
- package/dist/routes/ollama.d.ts +7 -0
- package/dist/routes/ollama.d.ts.map +1 -0
- package/dist/routes/ollama.js +595 -0
- package/dist/routes/ollama.js.map +1 -0
- package/dist/routes/profiles.d.ts +3 -0
- package/dist/routes/profiles.d.ts.map +1 -0
- package/dist/routes/profiles.js +431 -0
- package/dist/routes/profiles.js.map +1 -0
- package/dist/routes/proxy.d.ts +32 -0
- package/dist/routes/proxy.d.ts.map +1 -0
- package/dist/routes/proxy.js +2793 -0
- package/dist/routes/proxy.js.map +1 -0
- package/dist/routes/responses.d.ts +1161 -0
- package/dist/routes/responses.d.ts.map +1 -0
- package/dist/routes/responses.js +1521 -0
- package/dist/routes/responses.js.map +1 -0
- package/dist/routes/settings.d.ts +2 -0
- package/dist/routes/settings.d.ts.map +1 -0
- package/dist/routes/settings.js +549 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/status.d.ts +3 -0
- package/dist/routes/status.d.ts.map +1 -0
- package/dist/routes/status.js +214 -0
- package/dist/routes/status.js.map +1 -0
- package/dist/routes/update.d.ts +31 -0
- package/dist/routes/update.d.ts.map +1 -0
- package/dist/routes/update.js +536 -0
- package/dist/routes/update.js.map +1 -0
- package/dist/routes/url-tokens.d.ts +2 -0
- package/dist/routes/url-tokens.d.ts.map +1 -0
- package/dist/routes/url-tokens.js +31 -0
- package/dist/routes/url-tokens.js.map +1 -0
- package/dist/scripts/export-catalog.d.ts +2 -0
- package/dist/scripts/export-catalog.d.ts.map +1 -0
- package/dist/scripts/export-catalog.js +114 -0
- package/dist/scripts/export-catalog.js.map +1 -0
- package/dist/scripts/rotate-encryption-key.d.ts +81 -0
- package/dist/scripts/rotate-encryption-key.d.ts.map +1 -0
- package/dist/scripts/rotate-encryption-key.js +232 -0
- package/dist/scripts/rotate-encryption-key.js.map +1 -0
- package/dist/scripts/routing-sim.d.ts +2 -0
- package/dist/scripts/routing-sim.d.ts.map +1 -0
- package/dist/scripts/routing-sim.js +130 -0
- package/dist/scripts/routing-sim.js.map +1 -0
- package/dist/scripts/test-all-models.d.ts +2 -0
- package/dist/scripts/test-all-models.d.ts.map +1 -0
- package/dist/scripts/test-all-models.js +56 -0
- package/dist/scripts/test-all-models.js.map +1 -0
- package/dist/services/anthropic-map.d.ts +39 -0
- package/dist/services/anthropic-map.d.ts.map +1 -0
- package/dist/services/anthropic-map.js +138 -0
- package/dist/services/anthropic-map.js.map +1 -0
- package/dist/services/auth.d.ts +30 -0
- package/dist/services/auth.d.ts.map +1 -0
- package/dist/services/auth.js +124 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/auto-discover.d.ts +77 -0
- package/dist/services/auto-discover.d.ts.map +1 -0
- package/dist/services/auto-discover.js +1047 -0
- package/dist/services/auto-discover.js.map +1 -0
- package/dist/services/backups.d.ts +67 -0
- package/dist/services/backups.d.ts.map +1 -0
- package/dist/services/backups.js +444 -0
- package/dist/services/backups.js.map +1 -0
- package/dist/services/builtin-model-discovery.d.ts +107 -0
- package/dist/services/builtin-model-discovery.d.ts.map +1 -0
- package/dist/services/builtin-model-discovery.js +296 -0
- package/dist/services/builtin-model-discovery.js.map +1 -0
- package/dist/services/cache.d.ts +190 -0
- package/dist/services/cache.d.ts.map +1 -0
- package/dist/services/cache.js +617 -0
- package/dist/services/cache.js.map +1 -0
- package/dist/services/catalog-sync.d.ts +257 -0
- package/dist/services/catalog-sync.d.ts.map +1 -0
- package/dist/services/catalog-sync.js +1041 -0
- package/dist/services/catalog-sync.js.map +1 -0
- package/dist/services/compression/config.d.ts +33 -0
- package/dist/services/compression/config.d.ts.map +1 -0
- package/dist/services/compression/config.js +158 -0
- package/dist/services/compression/config.js.map +1 -0
- package/dist/services/compression/engines/aging.d.ts +2 -0
- package/dist/services/compression/engines/aging.d.ts.map +1 -0
- package/dist/services/compression/engines/aging.js +53 -0
- package/dist/services/compression/engines/aging.js.map +1 -0
- package/dist/services/compression/engines/custom-filters.d.ts +4 -0
- package/dist/services/compression/engines/custom-filters.d.ts.map +1 -0
- package/dist/services/compression/engines/custom-filters.js +49 -0
- package/dist/services/compression/engines/custom-filters.js.map +1 -0
- package/dist/services/compression/engines/dedup.d.ts +2 -0
- package/dist/services/compression/engines/dedup.d.ts.map +1 -0
- package/dist/services/compression/engines/dedup.js +61 -0
- package/dist/services/compression/engines/dedup.js.map +1 -0
- package/dist/services/compression/engines/filter-definitions.d.ts +75 -0
- package/dist/services/compression/engines/filter-definitions.d.ts.map +1 -0
- package/dist/services/compression/engines/filter-definitions.js +45 -0
- package/dist/services/compression/engines/filter-definitions.js.map +1 -0
- package/dist/services/compression/engines/hard-budget.d.ts +2 -0
- package/dist/services/compression/engines/hard-budget.d.ts.map +1 -0
- package/dist/services/compression/engines/hard-budget.js +52 -0
- package/dist/services/compression/engines/hard-budget.js.map +1 -0
- package/dist/services/compression/engines/index.d.ts +9 -0
- package/dist/services/compression/engines/index.d.ts.map +1 -0
- package/dist/services/compression/engines/index.js +9 -0
- package/dist/services/compression/engines/index.js.map +1 -0
- package/dist/services/compression/engines/jsoncompact.d.ts +3 -0
- package/dist/services/compression/engines/jsoncompact.d.ts.map +1 -0
- package/dist/services/compression/engines/jsoncompact.js +145 -0
- package/dist/services/compression/engines/jsoncompact.js.map +1 -0
- package/dist/services/compression/engines/lite.d.ts +2 -0
- package/dist/services/compression/engines/lite.d.ts.map +1 -0
- package/dist/services/compression/engines/lite.js +34 -0
- package/dist/services/compression/engines/lite.js.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts +2 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.js +70 -0
- package/dist/services/compression/engines/read-lifecycle.js.map +1 -0
- package/dist/services/compression/engines/relevance.d.ts +2 -0
- package/dist/services/compression/engines/relevance.d.ts.map +1 -0
- package/dist/services/compression/engines/relevance.js +74 -0
- package/dist/services/compression/engines/relevance.js.map +1 -0
- package/dist/services/compression/engines/toolfilter.d.ts +2 -0
- package/dist/services/compression/engines/toolfilter.d.ts.map +1 -0
- package/dist/services/compression/engines/toolfilter.js +195 -0
- package/dist/services/compression/engines/toolfilter.js.map +1 -0
- package/dist/services/compression/fidelity-gate.d.ts +12 -0
- package/dist/services/compression/fidelity-gate.d.ts.map +1 -0
- package/dist/services/compression/fidelity-gate.js +90 -0
- package/dist/services/compression/fidelity-gate.js.map +1 -0
- package/dist/services/compression/helpers.d.ts +9 -0
- package/dist/services/compression/helpers.d.ts.map +1 -0
- package/dist/services/compression/helpers.js +52 -0
- package/dist/services/compression/helpers.js.map +1 -0
- package/dist/services/compression/pipeline.d.ts +7 -0
- package/dist/services/compression/pipeline.d.ts.map +1 -0
- package/dist/services/compression/pipeline.js +245 -0
- package/dist/services/compression/pipeline.js.map +1 -0
- package/dist/services/compression/preservation.d.ts +27 -0
- package/dist/services/compression/preservation.d.ts.map +1 -0
- package/dist/services/compression/preservation.js +109 -0
- package/dist/services/compression/preservation.js.map +1 -0
- package/dist/services/compression/registry.d.ts +6 -0
- package/dist/services/compression/registry.d.ts.map +1 -0
- package/dist/services/compression/registry.js +16 -0
- package/dist/services/compression/registry.js.map +1 -0
- package/dist/services/compression/stats.d.ts +29 -0
- package/dist/services/compression/stats.d.ts.map +1 -0
- package/dist/services/compression/stats.js +55 -0
- package/dist/services/compression/stats.js.map +1 -0
- package/dist/services/compression/types.d.ts +90 -0
- package/dist/services/compression/types.d.ts.map +1 -0
- package/dist/services/compression/types.js +2 -0
- package/dist/services/compression/types.js.map +1 -0
- package/dist/services/context-handoff.d.ts +22 -0
- package/dist/services/context-handoff.d.ts.map +1 -0
- package/dist/services/context-handoff.js +164 -0
- package/dist/services/context-handoff.js.map +1 -0
- package/dist/services/cooldown-probe.d.ts +24 -0
- package/dist/services/cooldown-probe.d.ts.map +1 -0
- package/dist/services/cooldown-probe.js +181 -0
- package/dist/services/cooldown-probe.js.map +1 -0
- package/dist/services/custom-endpoint.d.ts +58 -0
- package/dist/services/custom-endpoint.d.ts.map +1 -0
- package/dist/services/custom-endpoint.js +167 -0
- package/dist/services/custom-endpoint.js.map +1 -0
- package/dist/services/custom-media-register.d.ts +22 -0
- package/dist/services/custom-media-register.d.ts.map +1 -0
- package/dist/services/custom-media-register.js +45 -0
- package/dist/services/custom-media-register.js.map +1 -0
- package/dist/services/custom-model-register.d.ts +50 -0
- package/dist/services/custom-model-register.d.ts.map +1 -0
- package/dist/services/custom-model-register.js +103 -0
- package/dist/services/custom-model-register.js.map +1 -0
- package/dist/services/custom-model-seed.d.ts +18 -0
- package/dist/services/custom-model-seed.d.ts.map +1 -0
- package/dist/services/custom-model-seed.js +42 -0
- package/dist/services/custom-model-seed.js.map +1 -0
- package/dist/services/custom-model-sync.d.ts +37 -0
- package/dist/services/custom-model-sync.d.ts.map +1 -0
- package/dist/services/custom-model-sync.js +118 -0
- package/dist/services/custom-model-sync.js.map +1 -0
- package/dist/services/custom-model-tombstone.d.ts +5 -0
- package/dist/services/custom-model-tombstone.d.ts.map +1 -0
- package/dist/services/custom-model-tombstone.js +30 -0
- package/dist/services/custom-model-tombstone.js.map +1 -0
- package/dist/services/declarative-config.d.ts +356 -0
- package/dist/services/declarative-config.d.ts.map +1 -0
- package/dist/services/declarative-config.js +427 -0
- package/dist/services/declarative-config.js.map +1 -0
- package/dist/services/degradation.d.ts +40 -0
- package/dist/services/degradation.d.ts.map +1 -0
- package/dist/services/degradation.js +119 -0
- package/dist/services/degradation.js.map +1 -0
- package/dist/services/embeddings.d.ts +76 -0
- package/dist/services/embeddings.d.ts.map +1 -0
- package/dist/services/embeddings.js +319 -0
- package/dist/services/embeddings.js.map +1 -0
- package/dist/services/fusion.d.ts +162 -0
- package/dist/services/fusion.d.ts.map +1 -0
- package/dist/services/fusion.js +789 -0
- package/dist/services/fusion.js.map +1 -0
- package/dist/services/gemini-map.d.ts +14 -0
- package/dist/services/gemini-map.d.ts.map +1 -0
- package/dist/services/gemini-map.js +78 -0
- package/dist/services/gemini-map.js.map +1 -0
- package/dist/services/health.d.ts +52 -0
- package/dist/services/health.d.ts.map +1 -0
- package/dist/services/health.js +352 -0
- package/dist/services/health.js.map +1 -0
- package/dist/services/idempotency.d.ts +49 -0
- package/dist/services/idempotency.d.ts.map +1 -0
- package/dist/services/idempotency.js +140 -0
- package/dist/services/idempotency.js.map +1 -0
- package/dist/services/key-budget.d.ts +74 -0
- package/dist/services/key-budget.d.ts.map +1 -0
- package/dist/services/key-budget.js +200 -0
- package/dist/services/key-budget.js.map +1 -0
- package/dist/services/media.d.ts +123 -0
- package/dist/services/media.d.ts.map +1 -0
- package/dist/services/media.js +954 -0
- package/dist/services/media.js.map +1 -0
- package/dist/services/model-discovery.d.ts +126 -0
- package/dist/services/model-discovery.d.ts.map +1 -0
- package/dist/services/model-discovery.js +662 -0
- package/dist/services/model-discovery.js.map +1 -0
- package/dist/services/model-groups.d.ts +149 -0
- package/dist/services/model-groups.d.ts.map +1 -0
- package/dist/services/model-groups.js +314 -0
- package/dist/services/model-groups.js.map +1 -0
- package/dist/services/model-listing.d.ts +18 -0
- package/dist/services/model-listing.d.ts.map +1 -0
- package/dist/services/model-listing.js +94 -0
- package/dist/services/model-listing.js.map +1 -0
- package/dist/services/model-retirement.d.ts +29 -0
- package/dist/services/model-retirement.d.ts.map +1 -0
- package/dist/services/model-retirement.js +86 -0
- package/dist/services/model-retirement.js.map +1 -0
- package/dist/services/model-state.d.ts +90 -0
- package/dist/services/model-state.d.ts.map +1 -0
- package/dist/services/model-state.js +342 -0
- package/dist/services/model-state.js.map +1 -0
- package/dist/services/model-weight-overrides.d.ts +48 -0
- package/dist/services/model-weight-overrides.d.ts.map +1 -0
- package/dist/services/model-weight-overrides.js +127 -0
- package/dist/services/model-weight-overrides.js.map +1 -0
- package/dist/services/notification-emitter.d.ts +50 -0
- package/dist/services/notification-emitter.d.ts.map +1 -0
- package/dist/services/notification-emitter.js +177 -0
- package/dist/services/notification-emitter.js.map +1 -0
- package/dist/services/opencode-free-sync.d.ts +29 -0
- package/dist/services/opencode-free-sync.d.ts.map +1 -0
- package/dist/services/opencode-free-sync.js +206 -0
- package/dist/services/opencode-free-sync.js.map +1 -0
- package/dist/services/penalty-inspector.d.ts +56 -0
- package/dist/services/penalty-inspector.d.ts.map +1 -0
- package/dist/services/penalty-inspector.js +167 -0
- package/dist/services/penalty-inspector.js.map +1 -0
- package/dist/services/profile-models.d.ts +5 -0
- package/dist/services/profile-models.d.ts.map +1 -0
- package/dist/services/profile-models.js +62 -0
- package/dist/services/profile-models.js.map +1 -0
- package/dist/services/provider-credential.d.ts +19 -0
- package/dist/services/provider-credential.d.ts.map +1 -0
- package/dist/services/provider-credential.js +51 -0
- package/dist/services/provider-credential.js.map +1 -0
- package/dist/services/provider-quota.d.ts +64 -0
- package/dist/services/provider-quota.d.ts.map +1 -0
- package/dist/services/provider-quota.js +563 -0
- package/dist/services/provider-quota.js.map +1 -0
- package/dist/services/quirks.d.ts +0 -0
- package/dist/services/quirks.d.ts.map +1 -0
- package/dist/services/quirks.js +0 -0
- package/dist/services/quirks.js.map +1 -0
- package/dist/services/quota-forecast.d.ts +50 -0
- package/dist/services/quota-forecast.d.ts.map +1 -0
- package/dist/services/quota-forecast.js +150 -0
- package/dist/services/quota-forecast.js.map +1 -0
- package/dist/services/quota-outlook.d.ts +4 -0
- package/dist/services/quota-outlook.d.ts.map +1 -0
- package/dist/services/quota-outlook.js +92 -0
- package/dist/services/quota-outlook.js.map +1 -0
- package/dist/services/ratelimit.d.ts +249 -0
- package/dist/services/ratelimit.d.ts.map +1 -0
- package/dist/services/ratelimit.js +1182 -0
- package/dist/services/ratelimit.js.map +1 -0
- package/dist/services/request-retention.d.ts +60 -0
- package/dist/services/request-retention.d.ts.map +1 -0
- package/dist/services/request-retention.js +229 -0
- package/dist/services/request-retention.js.map +1 -0
- package/dist/services/router.d.ts +384 -0
- package/dist/services/router.d.ts.map +1 -0
- package/dist/services/router.js +1986 -0
- package/dist/services/router.js.map +1 -0
- package/dist/services/scoring.d.ts +156 -0
- package/dist/services/scoring.d.ts.map +1 -0
- package/dist/services/scoring.js +435 -0
- package/dist/services/scoring.js.map +1 -0
- package/dist/services/url-tokens.d.ts +15 -0
- package/dist/services/url-tokens.d.ts.map +1 -0
- package/dist/services/url-tokens.js +55 -0
- package/dist/services/url-tokens.js.map +1 -0
- package/package.json +77 -4
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={nav:{models:`Modely`,playground:`Hřiště`,keys:`Klíče`,analytics:`Analytika`,premium:`Prémiové`,upgrade:`Upgrade`,settings:`Nastavení`,signOut:`Odhlásit se`,openMenu:`Otevřete navigační menu`,switchLight:`Přepnout na lehké téma`,switchDark:`Přepnout na temné téma`,switchToChinese:`Přechod na čínštinu`,switchToEnglish:`Přechod na angličtinu`,modelsMenu:`Procházet typy modelů`,agents:`Agenti`,logs:`Logy`,analyticsMenu:`Stránky analytiky`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Vytvořte si účet`,signIn:`Přihlásit se`,email:`E-mail`,password:`Heslo`,emailPlaceholder:`you@example.com`,passwordPlaceholderSetup:`alespoň 8 znaků`,passwordPlaceholderLogin:`Vaše heslo`,setupDescription:`Nastavte e-mail a heslo, které tento dashboard ochrání.`,loginDescription:`Přihlaste se, abyste spravovali klíče, směrování a analytiku.`,createAccount:`Vytvořit účet`,creating:`Vytvářející...`,signingIn:`Přihlašování...`,loading:`Načítám...`,newPasswordAutoComplete:`new-password`,currentPasswordAutoComplete:`current-password`,serverUnreachableBefore:`Nemohu se dostat na server. Ujistěte se, že backend běží (`,serverUnreachableAfter:`).`,setupCode:`Kód nastavení`,setupCodePlaceholder:`kód ze serverových logů`,setupCodeHint:`Nastavení z jiného zařízení vyžaduje jednorázový kód vytištěný v serverových logech při startu.`,changePassword:`Změnit heslo`,changeEmail:`Změnit e-mail`,forgotPassword:`Zapomněli jste heslo?`,currentPassword:`Současné heslo`,newPassword:`Nové heslo`,newEmail:`Nový e-mail`,resetCode:`Kód pro reset`,resetCodePlaceholder:`kód ze serverových logů`,resetCodeHint:`Kód je v logu serveru. E-mailem se nikdy neposílá.`,forgotPasswordDescription:`Kliknutím na tlačítko níže vygenerujete kód pro reset. Kód se zapíše do logu serveru, e-mailem se nikdy neposílá. Zadejte jej zde a nastavte nové heslo.`,requestResetCode:`Odeslat kód`,requestingResetCode:`Odesílání…`,resetPassword:`Resetovat heslo`,resettingPassword:`Resetování…`,changingPassword:`Změna…`,changingEmail:`Změna…`,backToLogin:`Zpět k přihlášení`,passwordChanged:`Heslo bylo změněno.`,emailChanged:`E-mail byl změněn.`,passwordReset:`Heslo bylo resetováno. Přihlaste se.`,resetCodeDockerHint:`Používáte Docker? Kód je v logu kontejneru: docker logs <container>.`,desktopSessionFailed:`Řídicí panel se nedokázal přihlásit k místnímu serveru. Ukončete SRouter a spusťte jej znovu.`},common:{save:`Uložit`,saving:`Ukládám...`,cancel:`Zrušit`,discard:`Vyřazení`,delete:`Smazat`,confirm:`Potvrďte`,copy:`Rozumím`,copied:`Zkopírováno`,copyFailed:`Nepodařilo se zkopírovat — označte text a zkopírujte ho ručně`,show:`Pořad`,hide:`Schovej se`,apply:`Přihlaste se`,applied:`Aplikace`,applying:`Přihlašování...`,active:`Aktivní`,inactive:`Neaktivní`,never:`Nikdy`,loading:`Načítám...`,error:`Chyba`,noData:`Zatím žádná data`,unsavedChanges:`Neuložené změny`,saveChanges:`Změny ukládání`,remove:`Odstranit`,unknownError:`Neznámá chyba`,model:`Model`,provider:`Poskytovatel`,success:`Úspěch`,failures:`Neúspěchy`,dismiss:`Rozchod`,status:`Stav`},settings:{title:`Nastavení`,language:`Jazyk`,theme:`Motiv`,themeSystem:`Systém`,themeLight:`Světlý`,themeDark:`Tmavý`,searchLanguage:`Hledat jazyky…`,noLanguages:`Nenalezeny žádné jazyky`,sections:`Sekce nastavení`,sectionGeneral:`Obecné`,sectionCompression:`Komprese`,sectionAdvanced:`Pokročilé`,sectionPreview:`Náhled`,generalDescription:`Jazyk a vzhled tohoto panelu.`,advancedDescription:`Prahové hodnoty a pojistky kompresního řetězce.`,compressionTitle:`Komprese promptů`,compressionDescription:`Zmenšete velikost požadavku před směrováním se zachováním kódu, chyb, cest, čísel a definic nástrojů.`,compressionHelp:`Přepíše každý požadavek před odesláním poskytovateli tak, aby spotřeboval méně žetonů. Kód, chyby, cesty k souborům a čísla jsou chráněné a každé přepsání, které je poškodí, se zahodí.`,compressionMode:`Režim`,compressionModeHelp:`„Vypnuto“ odesílá požadavky beze změny. „Bezeztrátová“ odstraní jen zdvojený a zbytečný text. „Standardní“ navíc zkracuje výstup nástrojů. „Agresivní“ ještě zhušťuje starší repliky.`,compressionOff:`Vypnuto`,compressionLossless:`Bezeztrátová`,compressionStandard:`Standardní`,compressionAggressive:`Agresivní`,compressionLossy:`Ztrátová`,compressionEngines:`Moduly`,compressionEnginesHelp:`Každý modul je jeden krok přepisu. Režim určuje, které moduly běží; modul vypnutý zde se neuplatní v žádném režimu.`,engineDedup:`Opakující se bloky`,engineDedupHelp:`Nahradí blok textu, který se v konverzaci již dříve objevil, krátkým odkazem na něj.`,engineLite:`Úklid bílých znaků`,engineLiteHelp:`Ořízne mezery na koncích řádků, sloučí opakované prázdné řádky a zahodí zdvojené systémové zprávy.`,engineReadLifecycle:`Překonaná čtení souborů`,engineReadLifecycleHelp:`Nahradí dřívější čtení souboru poznámkou, jakmile je tentýž soubor později znovu načten nebo upraven.`,engineToolfilter:`Filtr výstupu nástrojů`,engineToolfilterHelp:`Zkracuje výstup příkazů a nástrojů, jako jsou sestavení, testy a instalace. Řádky s chybami a výpisy zásobníku zůstanou vždy.`,engineJsoncompact:`Tabulky JSON`,engineJsoncompactHelp:`Překóduje dlouhá pole JSON se shodnou sadou klíčů do kompaktní tabulky. Je to vratné, takže se nic neztratí.`,engineRelevance:`Filtr relevance`,engineRelevanceHelp:`Jakmile zpráva překročí svůj rozpočet velikosti, zahodí věty nejméně související s poslední zprávou.`,engineAging:`Starší repliky`,engineAgingHelp:`Zhustí repliky starší než několik posledních do krátkého shrnutí, které zachová cesty, chyby a rozhodnutí.`,engineHardBudget:`Strop žetonů`,engineHardBudgetHelp:`Odebírá nejméně hodnotné řádky, dokud se požadavek nevejde do cílového počtu žetonů.`,compressionAutoTrigger:`Automaticky spustit nad odhadovaným počtem žetonů`,compressionAutoTriggerHelp:`Požadavky s odhadem nad tímto počtem žetonů se automaticky přepnou na agresivní režim. Ponechte prázdné pro vypnutí.`,compressionPrefixFreeze:`Zmrazit opakující se prefixy promptů`,compressionPrefixFreezeHelp:`Ponechá systémový prompt beze změny, jakmile se tentýž text objeví potřetí, aby dál fungovalo ukládání promptů do mezipaměti na straně poskytovatele.`,compressionTrustProjectFilters:`Důvěřovat filtrovacím souborům projektu`,compressionTrustProjectFiltersHelp:`Načítá filtry výstupu nástrojů také z pracovního adresáře. Ve výchozím stavu vypnuto, protože repozitář by tak mohl skrývat výstup před modelem.`,compressionStats:`Ušetřená velikost`,compressionEstimatedTokensSaved:`Odhadem ušetřené žetony`,compressionPreview:`Živý náhled`,compressionPreviewDescription:`Pošlete tělo požadavku zpracovacím řetězcem a uvidíte, co by obdržel poskytovatel.`,compressionPreviewPlaceholder:`Vložte JSON požadavku nebo prostý text`,compressionRunPreview:`Spustit náhled`,updatesTitle:`Aktualizace`,checkForUpdates:`Sledujte aktualizace`,lastChecked:`Naposledy kontrolováno: {when}`,currentVersion:`Aktuální sestavení:`,updateAvailable:`Je dostupná aktualizace`,changelog:`Co se změnilo`,upToDate:`Vše je aktuální`,buildAhead:`Toto sestavení je před oficiální větví main.`,buildDiverged:`Toto sestavení se odchýlilo od oficiální větve main.`,buildUnknown:`Toto vlastní sestavení nelze porovnat s oficiální větví main.`,notGitInstall:`Tato instalace neobsahuje informace o commitu.`,checkFailed:`Aktualizace se nepodařilo zkontrolovat.`,contactsGithub:`Kontroly se spouštějí ručně a kontaktují GitHub.`,autoUpdateCheck:`Automatická kontrola aktualizací`,autoUpdateCheckHelp:`Jednou denně zkontroluje na GitHubu novou verzi a zobrazí připomenutí. Ve výchozím nastavení vypnuto.`,openReleases:`Otevřít vydání na GitHubu`,restartAfterUpdate:`Po dokončení sestavení restartujte SRouter.`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`Modely`,chatModelsTab:`Chatové modely`,fusionTab:`Fúze`,embeddingsTab:`Vložení`,imageTab:`Obrázek`,videoTab:`Video`,audioTab:`Audio`,imageDesc:`Modely generování textu na obraz.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Modely převodu textu na řeč a převodu řeči na text.`,mediaHint:`Generujte přes`,mediaEmpty:`Modely zatím nejsou. Synchronizují se z katalogu.`,ttsHeading:`Převod textu na řeč`,sttHeading:`Převod řeči na text`,sttHint:`Přepis přes`,sttEmpty:`Modely převodu řeči na text zatím neexistují. Synchronizují se z katalogu.`,newBadge:`Nové`,monthlyTokenBudget:`Měsíční rozpočet žetonů`,remaining:`Zbývající`,used:`Používané`,usedScopeHint:`Chat requests only, since the start of this calendar month, summed over every model in the active chain — custom endpoints included. Traffic you send to a provider outside SRouter is not counted.`,legendRemainingTitle:`Remaining / monthly budget for {name} ({platform})`,noPublishedQuota:`+{count} with no published quota`,noPublishedQuotaTitle:`These models have no documented monthly token budget, so there is no remaining figure to show.`,of:`z`,showAllModels:`Zobrazit všechny {count} modely`,showLess:`Zobrazit méně`,vision:`Vize`,visionTitle:`Přijímá vstup obrazu`,tools:`Nástroje`,toolsTitle:`Vysílá strukturované volání nástrojů, takže je způsobilý pro požadavky na nosiče nástroje`,retired:`Vyřazeno`,penalty:`−{value} trest`,obs:`{count} OBS`,tokPerMonth:`{count} tok/měsíc`,rpmLimit:`{count} otáčky`,rpdLimit:`{count} rpd`,noKey:`Bez klíče`,dragToReorder:`Tah pro přeuspořádání`,dragToReorderGroup:`Tah pro přeuspořádání modelu`,moveToRank:`Přejít na pozici`,providerCount:`{count} poskytovatelé`,servedBy:`Obsluhováno {providers}`,viewProviders:`Zobrazit poskytovatele`,backToModels:`Zpět k modelům`,providersHeading:`Poskytovatelé obsluhující tento model`,codeSnippetHeading:`Použijte tento model`,modelNotFound:`Tento model není dostupný nebo nemá nakonfigurované poskytovatele.`,providerIdsHeading:`Provider model ids`,providerIdsHint:`Pošlete jednotné model id k failoveru u každého poskytovatele, nebo specifické ID pro připnutí jednoho poskytovatele.`,copyModelName:`Kopírovat název modelu`,settingsHeading:`Nastavení poskytovatele`,settingsHint:`Lokální úpravy katalogových modelů jsou uchovávány napříč synchronizacemi katalogu. Smazané katalogové modely zůstávají smazané, dokud je znovu nepřidáte přes konfiguraci.`,catalogModel:`Katalog`,customModel:`Zvyk`,discoveredModel:`nalezený`,localOverride:`Místní přepsání`,displayName:`Zobrazovací název`,sizeLabel:`Úroveň schopností`,sizeLabelHint:`Frontier/Large/Medium/Small určují osu zpravodajství: vyšší úroveň vždy překoná nižší a v rámci jedné úrovně pořadí zpravodajství skóre stále posouvá. Model bez rozpoznané úrovně má na této ose nejnižší skóre, ale zpravodajství je jen jedna ze tří os — s dobrou spolehlivostí a rychlostí může být zvolen i tak.`,sizeLabelNone:`Žádná (nejnižší skóre zpravodajství)`,contextWindow:`Kontext`,inFallback:`V řetězci`,saveModelSettings:`Uložit nastavení modelu`,aggregateBudget:`{count} měsíc`,aggregateBudgetTitle:`Celkový počet bezplatných tokenů měsíčně u poskytovatelů tohoto modelu`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Omezení sazeb — žádný pevný měsíční rozpočet tokenů`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Využití limitu rychlosti v časovém okně (využito / limit) u poskytovatele s největší rezervou`,splitOut:`Neslučujte tuto kopii`,splitOutHint:`Dejte kopii tohoto poskytovatele vlastní samostatnou položku místo toho, abyste ji slučovali do jednotného modelu. Můžete jej sloučit zpět z vlastní stránky kopie.`,splitUndo:`Sloučit zpět`,splitUndoHint:`Tato kopie je uchovávána odděleně od jejího jednotného modelu. Sloučte jej zpět, abyste znovu převzali selhání u všech svých poskytovatelů.`,splitBadge:`držena odděleně`,noData:`žádná data`,noDataTitle:`Dosud nebyly zaznamenány žádné požadavky — spolehlivost a rychlost nejsou u tohoto poskytovatele změřeny.`,bestOfN:`to nejlepší ze {count}`,perProviderScores:`Skóre podle poskytovatele: {list}`,columnModel:`Model`,columnOn:`Na`,noModelsBefore:`Žádné modely nejsou k dispozici. Přidejte API klávesy na`,keysPageLink:`Stránka s klíči`,noModelsAfter:`První.`,hiddenNoKeys:`Skryté (bez klíčů): {platforms}`,searchPlaceholder:`Vyhledávací modely nebo poskytovatelé...`,clearSearch:`Čisté vyhledávání`,ctxAny:`Jakýkoli kontext`,ctxBadge:`{size} CTX`,ctxTitle:`Kontextové okno`,copyModelId:`Kopírovat model id`,showingCount:`{shown} {total} modelů`,clearFilters:`Průhledné filtry`,noMatches:`Žádný model neodpovídá vašim filtrům.`,noModelsTitle:`Žádné modely nejsou konfigurovány`,intelligenceRank:`Zpravodajství`,speedRank:`Rychlost`,rankHint:`Pořadí v katalogu — 1 je nejlepší.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Požadavky za minutu. Ponechte prázdné pro žádný limit.`,limitRpdHint:`Požadavky za den. Ponechte prázdné pro žádný limit.`,limitTpmHint:`Žetony za minutu. Ponechte prázdné pro žádný limit.`,limitTpdHint:`Žetony za den. Ponechte prázdné pro žádný limit.`,usageThisMonth:`Měsíční spotřeba`,usageEmpty:`Tento měsíc zatím žádné požadavky.`,usageRequestsMonth:`{count} pož. tento měsíc`,aliasMergeHeading:`Merge model aliases`,aliasMergeHint:`Requests for the unified model id are also served through these custom-provider aliases (e.g. custom:my-alias).`,aliasMergeAdd:`Add`,aliasMergeRemove:`Remove`,bulkToggle:`Enable or disable every shown model`,enableAll:`Enable all`,disableAll:`Disable all`,enableAllHint:`Turn on every model shown, then Save`,disableAllHint:`Turn off every model shown, then Save`,enabledOfShown:`{enabled} of {shown} shown models are in the chain`},strategies:{explore:`Prozkoumávat nezměřené modely`,exploreHint:`Give models with no reliability or speed data a 10% chance to go first so they build a track record. Your real request is what gets sent, so it may be answered by an untested model. For a custom endpoint, use Probe endpoint on the Keys page to test it without live traffic.`,keySelection:`Výběr klíče`,keySelectionAuto:`Automaticky`,keySelectionLeastRemaining:`Nejméně zbývá`,keySelectionHint:`Jak se vybírá mezi několika klíči téhož poskytovatele. Automaticky zachová stávající střídání; Nejméně zbývá seřadí klíče podle zjištěné kvóty a nejdřív zkusí ten, kterému zbývá nejvíc.`,cooldownCeiling:`Nejdelší automatické ochlazení`,cooldownCeilingHint:`Omezuje, jak dlouho smí vlastní odhady směrovače odstavit selhávající dvojici klíče a modelu. Žebřík běžně stoupá 2 min, 10 min, 1 h, 24 h a chyby kreditu nebo úrovně odstaví na den. Časy opakování uvedené poskytovatelem se nikdy nezkracují.`,cooldownCeilingDefault:`Výchozí (až 24 h)`,cooldownCeiling10m:`10 minut`,cooldownCeiling1h:`1 hodina`,cooldownCeiling6h:`6 hodin`,moreOptions:`Další možnosti`,peakActive:`(špička)`,peakActiveHint:`Úprava pro špičku je právě aktivní, takže tohle nejsou váhy samotné předvolby: 60 % váhy rychlosti se přesunulo na spolehlivost.`,peakAdjust:`Úprava pro špičku`,peakAdjustHint:`Ve výchozím stavu vypnuto. V okně níže přesune 60 % váhy rychlosti na spolehlivost — bezplatné relaye jsou v té době nejvytíženější, takže spolehlivost předpovídá úspěch lépe než čistá propustnost. „Nejrychlejší“ a „Nejspolehlivější“ zůstávají beze změny.`,peakFrom:`Od`,peakTo:`do`,peakTimezoneLabel:`Časové pásmo`,peakUseBrowserTimezone:`Použít časové pásmo prohlížeče`,peakTimezoneInvalid:`Neznámé časové pásmo.`,peakExemptNote:`Tato předvolba zůstává beze změny — už leží na jednom konci kompromisu rychlost/spolehlivost.`,title:`Strategie směrování`,description:`Vyberte strategii směrování. V manuálním režimu přetahujete pro nastavení pořadí; Ostatní strategie se podle živého skóre zaměřují na spolehlivost, rychlost a inteligenci.`,weightsSummary:`spolehlivost {reliability} % · rychlost {speed} % · inteligence {intelligence} %`,guardrails:`Svodidla`,guardrailsTooltip:`Vždy na místě: volná kvóta × živý trest za omezení sazeb. Pod 1.0 je model zdržován.`,scoreTooltip:`Konečné skóre vedení = vážený průměr tří os, vynásobený svodidly. Nejdřív vyšší cesty.`,modeManualHint:`Manuální režim: požadavky se řídí následujícím pořadím, odshora dolů. Přetáhni pro přeobjednaní.`,modeScoreHint:`Skóre se aktualizuje podle živého provozu. Pořadí níže ukazuje, jak jsou požadavky právě teď směrovány.`,manual:`Manuál`,manualBlurb:`Trasujte přesně v pořadí, které jste nastavili níže. Přetáhni rukojeti pro přeuspořádání pořadí. Žádné bodování; řetěz se sleduje odshora dolů.`,balanced:`Vyvážené`,balancedBlurb:`Spolehlivost vede (50 %), přičemž rychlost a inteligence jsou vyváženy stejně (25 %). Rozumný univerzální výchozí stav.`,smartest:`Nejchytřejší`,smartestBlurb:`Raději preferuji nejvýkonnější model, který stále funguje. Inteligence 55 %, spolehlivost 35 %, rychlost 10 %.`,fastest:`Nejrychlejší`,fastestBlurb:`Raději nejrychlejší model, který stále funguje. Rychlost 55 %, spolehlivost 35 %, inteligence 10 %.`,reliable:`Nejspolehlivější`,reliableBlurb:`Maximalizujte především úspěšnost. Spolehlivost 70 %, rychlost a inteligence 15 % každý.`,custom:`Zvyk`,customBlurb:`Nastavte si vlastní rovnováhu spolehlivosti, rychlosti a inteligence pomocí posuvníků. Stejný engine jako přednastavení, jen váhy.`,adjust:`Upravit`,customWeights:`Vlastní závaží`,customWeightsHelp:`Slidery jsou nezávislé; Akcie se automaticky vyrovnávají na 100 %.`,weightReliability:`Spolehlivost`,weightSpeed:`Rychlost`,weightIntelligence:`Zpravodajství`,weightRequired:`Alespoň jedno závaží musí být nad nulou.`,scoreColumn:`Hudba`},penaltyInspector:{title:`Tlak frézky`,subtitle:`Tresty, cooldowny a neúspěchy z posledních {minutes} minut`,rowCount:`{count} aktivní`,offChain:`Mimo řetězec`,penaltyValue:`Penalta {value}`,factor:`skóre x{factor}`,noCooldown:`Žádný cooldown`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Vymazat vše`,clearAllHint:`Okamžitě zruší všechna ochlazení, penalizace a série selhání. Tlak se znovu vytvoří z dalších skutečných výsledků.`,errorsHeading:`{count} nedávné chyby`,noRecentErrors:`Žádné nedávné chyby`,noKey:`Bez klíče`,reasons:{penalty:`Penalizován`,cooldown:`Cooldown`,recent_errors:`Neúspěch`}},keys:JSON.parse(`{"pageTitle":"Klíče","pageDescription":"Přihlašovací údaje poskytovatele a jednotný klíč API se kterými se vaše aplikace připojují.","tabProviders":"Poskytovatelé","checklistSummary":"Nastaveno {configured} z {total} poskytovatelů","checklistKeyless":"klíč není potřeba","checklistNoKeyTip":"Zatím nebyl přidán žádný klíč. Kliknutím jej přidáte.","checklistSignupLink":"Otevřete {provider} pro vytvoření účtu a získání klíče","checklistKeylessTip":"Funguje bez klíče.","tabQuotaSignals":"Kvótové signály","tabApiKey":"Sjednocený API klíč","tabAnthropic":"Anthropic","unifiedKey":"Váš sjednocený API klíč","regenerate":"Regenerace","showKey":"Pořad","hideKey":"Schovej se","copyKey":"Rozumím","copyFullKey":"Kopírovat celý klíč","copiedKey":"Zkopírováno","baseUrl":"Základní URL","endpointChat":"Chat","endpointResponses":"Reakce","endpointEmbeddings":"Vložení","endpointEmbeddingsHint":"model: \\"auto\\" nebo rodina z záložky Embeddings","endpointMessages":"Zprávy","endpointMessagesHint":"Anthropic-kompatibilní (Claude)","quickStart":"Quick start","quickStartDesc":"Use auto for your active routing chain, or auto:fast to prioritize speed across enabled models. Replace $YOUR_KEY with your unified API key.","exampleAuto":"Auto mode (use the active chain)","exampleFast":"Fast mode (prioritize speed)","anthropicTitle":"Claude (Anthropic) modely","anthropicDesc":"Zaměřte na tento server klienta Claude nebo Anthropic SDK. Anthropic klienti posílají Claude názvy modelů — namapujte každý na Auto (router vybere volný model) nebo připněte konkrétní model.","anthropicBaseUrl":"Základní URL","anthropicAuth":"Authová hlavička","anthropicAuto":"Auto — router vybírá nejlepší model","anthropicSave":"Mapování ukládání","anthropicSaved":"Zachráněno","anthropicNote":"Anthropic klienti si ponechají vestavěná Claude modelová jména; Výše uvedené mapování určuje, jak každý z nich směruje do vašeho poolu.","familyDefault":"Výchozí stav","familyOpus":"Opus","familySonnet":"Sonet","familyHaiku":"Haiku","selectPlatform":"Vyberte poskytovatele","addKey":"Přidat klíč","keyAdded":"Klíč přidán","endpointKeysShareModels":"Klíče stejného endpointu sdílejí jeho modely.","export":"Export","exportAll":"Všechny tóniny","exportHealthy":"Pouze zdravé","exportKeys":"Exportní API klíče","exportFormat":"Formát","exportHealthyOnly":"Pouze zdravé tóniny","exportHealthyOnlyDesc":"Vylučte klíče, které aktuálně neprocházejí zdravotními kontrolami","exportWillExport":"Bude exportovat","exportKey":"Klíč","exportKeys plural":"Klíče","exporting":"Export...","exportDownload":"Stáhnout","exportSuccess":"Exportované klíče {count}","adding":"Přidávám...","selectProvider":"Vyberte poskytovatele...","accountId":"ID účtu","label":"Vydavatelství","noKeyNeeded":"(klíč není potřeba)","outboundProxy":"Odchozí proxy","outboundProxyDescription":"Směrujte odchozí LLM požadavky přes proxy. Podporuje SOCKS5, HTTP a HTTPS.","proxyUrl":"Proxy URL","saveProxy":"Uložit","savingProxy":"Ukládám...","proxyLoadFailed":"Nepodařilo se načíst nastavení proxy.","proxyMode":"Mode","proxyModeForward":"Forward proxy","proxyModeFetchRelay":"Fetch relay","relayToken":"Relay token","relayTokenConfigured":"Configured. Leave unchanged to keep.","relayTokenPlaceholder":"Relay bearer token (optional)","relayHeadersHint":"The relay reads the destination and its own credential from","addCustom":"Přidejte vlastní model kompatibilní s OpenAI","addCustomDescription":"Pointchat, embedding, image nebo audio modely na jakémkoli OpenAI kompatibilním koncovém bodu. Klíč API je volitelný pro lokální servery.","customType":"Typ","customTypeChat":"Chat","customTypeEmbedding":"Vložení","customTypeImage":"Obrázek","customTypeAudio":"Audio","customTypeTranscription":"Transcription","customBaseUrl":"Základní URL","customModels":"Modely","customModel":"Model","customDisplayName":"Zobrazovací název","customDisplayNamePerModel":"Na model","customDisplayNameOptional":"volitelné","customFamily":"Rodina","customFamilyPlaceholder":"výchozí nastavení na model id","customApiKey":"API klíč","customCapabilities":"Schopnosti","addModel":"Přidat model","modelAdded":"Model přidán","addModels":"Přidejte {count} modely","addEmbeddingModel":"Přidání vložení","addImageModel":"Přidat model obrazu","addAudioModel":"Přidat audio model","addTranscriptionModel":"Add transcription model","addingCustom":"Přidávám...","discoverModels":"Načíst modely","probeNow":"Otestovat endpoint","probeConfirm":"Odeslat až 3 testovací požadavky?","probeCapabilities":"uvažování: {reasoning} · nástroje: {tools}","probeCapYes":"ano","probeCapNo":"ne","probeCapUnknown":"neznámo","probeSuccess":"Model {model} otestován za {latency} ms","probeFailed":"Test se nezdařil: {reason}","discoverTitle":"Modely na tomto endpointu","discoverHint":"Vyberte modely k registraci. Již přidané zůstávají uzamčené.","discoverEmpty":"Tento endpoint nevrátil žádné modely.","discoverAlreadyAdded":"Přidáno","discoverSelectAll":"Vybrat vše","modelsAdded":"Přidáno modelů: {count}","getApiKey":"Získejte API klíč","deleteKeyConfirm":"Smazat tento klíč? To už nelze vzít zpět.","checkAll":"Vše zkontrolovat","checking":"Kontroluji...","editLabel":"Edit label","saveLabel":"Uložit štítek","unifiedKeyDescBefore":"Použijte to jako svůj OpenAI","unifiedKeyDescAfter":"; Autentizuje požadavky na tento proxy.","serverUnreachableBefore":"Nemohu se dovolat na server","serverUnreachableAfter":". Ujistěte se, že backend běží. NPM spuštěný vývojář spouští oba a serverové logy se tisknou pod serverovým prefixem.","paneProviderKey":"Klíč poskytovatele","paneImportFile":"Importní soubor","paneCustomEndpoint":"Vlastní koncový bod","platform":"Platforma","hideAdded":"Skrýt přidané poskytovatele","apiToken":"API žeton","keyOptionalPlaceholder":"Volitelné","bearerTokenPlaceholder":"Token na doručitele","pasteKeyPlaceholder":"Vložte zde klíč","pasteSeveral":"Vložit více","keyOptionalHint":"Volitelné: nechte prázdné pro anonymní bezplatnou úroveň (omezení na IP), nebo vložte vlastní klíč a použijte svůj účet.","enable":"Povolit","noProviderKeys":"Klíče od poskytovatele zatím neexistují. Přidejte jeden výše, abyste mohli začít směrovat.","filterPlaceholder":"Poskytovatelé filtrů nebo klíče","filterAll":"Všichni","filterHealthy":"Zdravý","filterIssues":"Problémy","filterDisabled":"Neaktivní","noFilterMatch":"Žádní poskytovatelé neodpovídají vašim filtrům.","providerCountSummary":"{providers} poskytovatelé · {keys} klíče","summaryHealthy":"{count} zdravý","summaryIssueOne":"{count} problém","summaryIssueOther":"{count} problémy","providerActions":"Akce poskytovatele","routeViaProxy":"Trasa přes zástupce","checkNow":"Zkontrolujte to teď","syncModels":"Sync models with upstream","syncModelsResult":"Model list synced: {added} added, {total} live","syncModelsFailed":"Model sync failed: {reason}","syncAllModels":"Sync all providers","syncAllPending":"Syncing…","syncAllResult":"Synced {count} provider(s): {registered} model(s) registered","syncAllFailed":"Sync all failed: {reason}","syncAllNoChanges":"All provider rosters are already up to date","syncAllDialogTitle":"Sync Results","syncAllDialogSummary":"Changes detected in {changed} of {total} providers","syncAllNew":"+{count} new","syncAllUpdated":"{count} updated","syncAllRetired":"{count} retired","syncAllNewModels":"New models","syncAllUpdatedModels":"Updated models","syncAllRetiredModels":"Retired models","syncAllDialogClose":"Done","proxyEnvHintBefore":"Také konfigurovatelné přes","proxyEnvHintAfter":"proměnné prostředí (má přednost). Nechte prázdné pro deaktivaci. Příklady:","importKeys":"Importovat klíče poskytovatele","importKeysDescription":"Nahrávejte .env, JSON, JSONC, CSV, Markdown nebo textové soubory.","importFiles":"Soubory","importFileCount":"{count} vybrán","previewFiles":"Náhled","previewing":"Ukázka...","selected":"Výběr","provider":"Poskytovatel","keyName":"Název klíče","keyValue":"Klíčová hodnota","chooseProvider":"Vyberte poskytovatele","noPreviewKeys":"V těch souborech nebyly nalezeny žádné klíče.","skippedItems":"Přeskočeno:","moreItems":"+{count} víc","importSelected":"Importní {count}","importing":"Dovoz...","noImportSelection":"Vyberte alespoň jeden řádek u poskytovatele.","duplicate":"Duplikát","duplicatesFound":"{count} detekované duplicity — už existují a budou přeskočeny.","importResult":"Dovážené {imported}; neuspěl {failed}.","importModelCount":"+{count} modelů","importResultWithModels":"Dovážené {imported}; zaregistrováno {models} modelů; neuspěl {failed}.","confirmRemove":"Potvrdit?","quotaSignalsTitle":"Kvótové signály","quotaSignalsEmptyTitle":"Zatím žádná pozorování kvót","quotaSignalsEmptyDesc":"To se doplňuje poté, co poskytovatelé vrátí hlavičky s limitem rychlosti, chyby kvót nebo validační signály.","quotaKeyRef":"Klíčové #{id}","quotaPoolRef":"Bazénová {pool}","quotaLimit":"Limit","quotaRemaining":"Zbývající","quotaReset":"Reset","quotaObserved":"Pozorováno","tabAgents":"Agenti","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Mapování modelů Gemini","geminiDesc":"Namapujte názvy Gemini Pro, Flash a Flash-Lite na Auto nebo konkrétní model z katalogu.","compatibilityTitle":"Kompatibilita agentů","compatibilityDesc":"Ovládejte volitelné vrstvy kompatibility a zjišťování modelů pro Claude Code.","ollamaMode":"Emulace Ollama","ollamaModeHint":"Otevřený loopback nikdy nepřijímá neověřený provoz z LAN.","ollamaOff":"Vypnuto","ollamaLoopback":"Otevřeno na loopbacku","ollamaKeyRequired":"Vyžadován API klíč","claudeAliases":"Aliasy zjišťování pro Claude Code","claudeAliasesHint":"Zpřístupněte aliasy claude/<model>, aby výběr modelů brány mohl vypsat katalog.","mcpServer":"Server MCP","mcpServerHint":"Zpřístupní endpoint /mcp agentním klientům. Nové instalace začínají vypnuté.","urlTokensTitle":"Odvolatelné URL tokeny","urlTokensDesc":"Pouze pro klienty bez hlaviček. URL tokeny mohou uniknout do historie a logů, proto je odvolejte, jakmile je nepotřebujete.","urlTokenLabel":"Popisek tokenu","createUrlToken":"Vytvořit token","urlTokenOnce":"Zkopírujte tento token nyní. Znovu se již nezobrazí.","revoked":"Odvoláno","revoke":"Odvolat","modelScope":"Rozsah modelů","modelScopeDesc":"Omezte tento klíč na konkrétní ID modelů. Pro jakýkoli jiný model router tento klíč přeskočí.","modelScopeAdd":"Zadejte ID modelu a stiskněte Enter","modelScopeEmpty":"Rozsah není nastaven — tento klíč obsluhuje všechny modely svého poskytovatele.","modelScopeClear":"Vymazat rozsah","modelScopeBadgeOne":"omezený · 1 model","modelScopeBadgeOther":"omezený · {count} modelů","modelPicker":{"title":"Které modely má tento klíč obsluhovat?","hint":"Váš klíč {provider} byl přidán a nyní obsluhuje všechny modely níže. Odškrtněte ty, které tento klíč nesmí používat — router jej pro ně přeskočí.","count":"Vybráno {selected} z {total}","allNote":"Vybráno vše — nic se neukládá a modely přidané do katalogu později budou tento klíč používat také.","subsetNote":"Tento klíč bude omezen na vybrané modely. Změnit to můžete později v řádku klíče.","skip":"Teď ne","scopedOne":"Klíč omezen na 1 model","scopedOther":"Klíč omezen na {count} modelů","allSaved":"Key serves every catalog model"},"cpTitle":"Profily klientů","cpDesc":"Samostatné API klíče pro každého klienta, každý se systémovým promptem, který server vždy použije.","cpEmpty":"Zatím žádné profily klientů.","cpNameLabel":"Název","cpNamePlaceholder":"např. Bot podpory","cpPromptLabel":"Systémový prompt (volitelné)","cpPromptPlaceholder":"Pokyny, které server přidá před každý požadavek provedený tímto klíčem.","cpCreate":"Vytvořit profil","cpRotate":"Obměnit klíč","cpKeyOnce":"Zkopírujte tento klíč hned — už se znovu nezobrazí.","cpEnabledAria":"Profil povolen","selectKey":"Vybrat tento klíč","bulkSelected":"{count} vybráno","bulkEnable":"Povolit vše","bulkDisable":"Zakázat vše","bulkDelete":"Smazat vše","bulkDeleteConfirm":"Smazat {count}?","bulkResult":"Aktualizováno {done}; neúspěšné {failed}.","bulkDeleteResult":"Smazáno {done}; neúspěšné {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Upravit klíč","editPlatformLocked":"Poskytovatel a koncový bod se po vytvoření nedají změnit.","editCredentialHint":"Chcete-li zachovat aktuální klíč, ponechte pole prázdné.","editCredentialPartsRequired":"Zadejte ID účtu i token API.","editModels":"Upravit modely","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"Přidat vlastní model","modelId":"ID modelu","modelIdRequired":"ID modelu je povinné","modelDisplayName":"Zobrazovaný název","modelContextWindow":"Kontextové okno (tokeny)","modelRateLimits":"Limity zpráv (volitelné)","modelSupportsTools":"Podporuje volání nástrojů","modelSupportsToolsHint":"Povolte, pokud tento model podporuje volání funkcí a nástrojů","modelSupportsVision":"Podporuje vidění","modelSupportsVisionHint":"Povolte, pokud tento model přijímá obrazový vstup","createModel":"Vytvořit model","modelAddedSuccess":"Vlastní model byl úspěšně přidán","modelAddFailed":"Přidání vlastního modelu selhalo","testModel":"Testovat","testingModel":"Testování…","testPassedShort":"Úspěch","testFailedShort":"Selhalo","testPassed":"Test modelu proběhl úspěšně za {latency}ms","testFailed":"Test modelu selhal","testThrottled":"Před dalším testem tohoto modelu počkejte {seconds} s.","noModelsForProvider":"Pro tohoto poskytovatele nejsou nakonfigurovány žádné modely.","testModels":"Otestovat modely","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"Neomezeno","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} požadavků, {tokens} tokenů tento měsíc","monthlyUsageRequests":"{requests} requests","monthlyUsageTokens":"{tokens} tokens","monthlyUsageRequestsRelative":"{used} / {cap} ({remaining} left) requests","monthlyUsageTokensRelative":"{used} / {cap} ({remaining} left) tokens","monthlyUsageReset":"reset {date}"}`),backups:{title:`Backups`,description:`Save the routing data to a .sql file beside the database, and restore it later.`,excludedNote:`A backup carries your providers, models, routing settings and request history. Accounts, sessions and URL tokens are never included, so a dump holds no password hashes or login tokens and restoring one cannot log you out. Provider keys stay encrypted with this server's ENCRYPTION_KEY: a backup can only be restored on a server that still holds that key.`,selectHint:`Back up everything, or pick the tables you need.`,selectAll:`Select all`,deselectAll:`Clear`,fullBackup:`Full backup`,backupSelected:`Back up selected ({count})`,created:`Backup written to {filename}`,list:`Backups on disk`,empty:`No backups yet`,full:`All tables`,tablesCount:`{count} tables`,manual:`Manual`,scheduled:`Scheduled`,preRestore:`Pre-restore`,download:`Download`,restore:`Restore`,confirmRestore:`Replace data?`,restored:`Restored. The previous data was saved as {filename}.`,delete:`Delete backup`,prevPage:`Previous`,nextPage:`Next`,autoTitle:`Automatic backups`,autoHint:`The server writes a full backup on this cadence.`,time:`Time (HH:mm)`,intervalDays:`Every N days`,path:`Folder`,pathPlaceholder:`backups`,pathHint:`Relative to the database directory. Backups cannot be written outside it.`,save:`Save schedule`,saved:`Saved`},status:{healthy:`zdravé`,rateLimited:`Omezené rychlosti`,invalid:`neplatné`,error:`chyba`,unchecked:`nekontrolované`},analytics:{title:`Analytika`,description:`Objem požadavků, latence, využití tokenů a selhání.`,range24h:`24h`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`Požadavky`,successRate:`Úspěšnost`,inputTokens:`Vstupní tokeny`,outputTokens:`Výstupní tokeny`,avgLatency:`Průměrná latence`,p95Latency:`Latence P95`,avgTtft:`Průměrná TTFT`,estSavings:`Odhadované úspory`,requestsByProvider:`Požadavky poskytovatele`,avgLatencyByProvider:`Průměrná latence podle poskytovatele`,ttftByProvider:`Čas prvního tokenu podle poskytovatele`,ttftEmpty:`Ještě není čas na první zaznamenání žetonu.`,requestsOverTime:`Požadavky v průběhu času`,tokensOverTime:`Tokeny v průběhu času`,byModel:`Podle modelu`,byPlatform:`Podle platformy`,errors:`Chyby`,errorDistribution:`Distribuce chyb`,pinnedRequests:`Připnuté žádosti`,pinnedHonored:`Ocenění`,fallbackAttempts:`Záložní pokusy`,savingsHint:"Ve skutečnosti jsi za poslední {range} ušetřil ${actual}. To je cena, kterou by stejné tokeny stály na placených API, oceněné podle modelu. Zobrazené číslo promítá vaše tempo od posledního {span} dat na plných 30 dní.",savingsHintExact:"Ve skutečnosti jsi za poslední {range} ušetřil ${actual}. To je cena, kterou by stejné tokeny stály na placených API, oceněné podle modelu. Zobrazené číslo je váš skutečný 30denní součet.",requestsHintPinned:`{pinned} z těchto požadavků připnuly konkrétní model jménem. {honored} obsluhoval model s připnutým kolíkem; {failed} přešel na jiný. Ostatní byly automaticky směrovány.`,requestsHintAuto:`Všechny požadavky v tomto období byly automaticky směrovány; žádný klient nepřipnul konkrétní model jménem.`,requestsHintTypes:`{chat} chat a {embedding} žádosti o vložení.`,rangeLabel24h:`24 hodin`,rangeLabel7d:`7 dní`,rangeLabel30d:`30 dní`,rangeLabel90d:`90 dní`,spanDays:`{count} dní`,spanHours:`{count} hodin`,latencyMs:`Latence (ms)`,latency:`Latence`,pinned:`Připnutý`,inTokens:`V žetonech`,outTokens:`Ven žetony`,saved:`Zachráněno`,message:`Zpráva`,time:`Čas`,perModelBreakdown:`Rozpis jednotlivých modelů`,usageByKey:`Použití podle klíče`,keyColumn:`Klíč`,keyLabelFallback:`Klíčové #{id}`,errorsByProvider:`Chyby podle poskytovatele`,recentErrors:`Nedávné chyby`,noErrors:`Žádné chyby`,recentCalls:`Nedávné výzvy`,clientIp:`Klientská IP`,clientAgent:`Klientská aplikace`,requestedModelHint:`Požadovaný {model}, sloužen záložní variantou`,attempts:`Pokusy`,filterAll:`Všichni`,filterCanceled:`Zrušené`,providerBreakdown:`Rozdělení podle poskytovatele`,tokensPerSec:`Tok/s`,allProviders:`Všichni poskytovatelé`,requestDetailTitle:`Žádost #{id}`,failoverLadder:`Žebřík failover`,failoverLadderHint:`Každý skok tohoto požadavku procházel záložním řetězcem, v pořadí.`,noAttemptTrace:`Nebyl zaznamenán žádný pokus o vystopování této žádosti.`,keyOrdinal:`Klíčové #{n}`,keyBadge:`Klíč #{n}`,attemptTimingHint:`Začít offset od začátku požadavku · Doba trvání pokusu`,requestedModel:`Požadovaný model`,ttft:`TTFT`,requestsByAgent:`Požadavky podle agenta`,sortBy:`Seřadit podle: {column}`,sortHint:`Řazení se vztahuje na {count} načtených řádků`,cacheHitRate:`Úspěšnost cache`,cacheSavedTokens:`Ušetřeno {tokens} tokenů`,cacheHitRateHint:`{hits} zásahů proti {misses} minutím od spuštění serveru · ušetřeno {requests} volání poskytovatele`},logs:{title:`Logy`,description:`Živý log serveru. Nové záznamy přibývají, dokud je stránka otevřená.`,pause:`Pozastavit`,resume:`Pokračovat`,clear:`Vymazat logy`,cleared:`Log serveru vymazán`,levelFilter:`Úrovně logování`,levels:{debug:`Debug`,info:`Info`,warn:`Varování`,error:`Chyba`},countsHint:`Počty se vztahují k celé vyrovnávací paměti logu na serveru, ne jen k záznamům odpovídajícím těmto filtrům.`,searchPlaceholder:`Hledat ve zprávách logu…`,jumpToLatest:`Přejít na nejnovější`,showMore:`Zobrazit více`,showLess:`Zobrazit méně`,buffered:`Zobrazeno {count} z maximálně {max} uložených záznamů`,emptyTitle:`Zatím žádné záznamy v logu`,emptyDescription:`Záznamy se zde objeví, jakmile je server zapíše. Pokud jste čekali výstup, rozšiřte filtry úrovně, poskytovatele nebo hledání.`,noLevelsTitle:`Není vybrána žádná úroveň`,noLevelsDescription:`Zapněte alespoň jednu úroveň, abyste viděli výstup logu.`,loadFailed:`Log serveru se nepodařilo načíst.`},playground:{title:`Hřiště`,description:`Pošlete dokončení chatu přes router a zjistěte, který poskytovatel ho obsluhuje.`,autoModel:`Auto (záložní řetězec)`,fusionModel:`Fúze (syntéza více modelů)`,selectModel:`Vybrat model`,searchModels:`Vyhledávací modely...`,noModelsFound:`Nenalezeny žádné modely`,send:`Odesílat`,sending:`Posílám...`,clear:`Čisté`,inputPlaceholder:`Napiš vzkaz... (⏎ odeslat, ⇧⏎ pro novou linku)`,emptyTitle:`Pošlete zprávu a začněte.`,emptyDescription:`Používám {model}. Modely spínačů v seznamu výše.`,noModels:`Modely zatím nejsou. Přidejte API klíč na stránku Klíče, aby se tento seznam vyplnil.`,copyReply:`Zkopíruji odpověď`,fallback:`Záložní plán`,fallbacks:`Záložní plány`,fusionPanel:`Panel`,fusionJudge:`Soudce`,fusionTrace:`{count} modelové odpovědi`,fusionFailed:`Žádná odpověď`,fusionJudgeSynth:`syntetizoval konečnou odpověď`,errorPrefix:`Chyba:`,systemPromptLabel:`Systémový prompt`,systemPromptPlaceholder:`Volitelné. Odesláno jako systémová zpráva před vaším chatem.`,showSettings:`Zobrazit nastavení`,hideSettings:`Skrýt nastavení`,samplingHeading:`Vzorkování`,samplingHelp:`Když je vypnuté, použije se výchozí hodnota samotného poskytovatele. Odesílají se jen ovládací prvky, které zapnete.`,samplingDefault:`Výchozí`,temperature:`Teplota`,topP:`Top P`,maxTokens:`Max. tokenů`,errorTitle:`Žádost neúspěšná`,attach:`Připojit soubory`,attachTooMany:`Ke zprávě můžete připojit až {count} souborů.`,attachTooLarge:`{name} je příliš velký. Limit je {max}.`,attachUnsupported:`{name} není podporován. Připojte obrázky (PNG, JPEG, WebP, GIF) nebo textové soubory (TXT, MD, CSV, JSON, LOG).`,attachFailed:`Soubor {name} se nepodařilo přečíst.`,noVisionBadge:`Bez obrázků`,visionWarning:`{model} nepřijímá obrázky. Zvolte model podporující obrázky nebo Auto.`,dictate:`Diktovat`,dictationStop:`Zastavit nahrávání`,dictationTranscribing:`Přepisuje se…`,dictationUnavailable:`Přidejte poskytovatele audio modelů, abyste mohli diktovat.`,dictationModel:`Model diktování`,dictationFailed:`Přepis se nezdařil: {reason}`,artifactOpen:`Otevřít náhled`,artifactPreview:`Náhled`,artifactCode:`Kód`,artifactClose:`Zavřít náhled`,artifactDownload:`Stáhnout`,artifactReload:`Obnovit náhled`,artifactHtml:`HTML stránka`,artifactSvg:`SVG obrázek`,artifactLines:`řádků`,artifactResize:`Změnit velikost náhledu`},playgroundSessions:{heading:`Konverzace`,newConversation:`Nová konverzace`,showSidebar:`Zobrazit konverzace`,hideSidebar:`Skrýt konverzace`,empty:`Zatím žádné uložené konverzace.`,untitled:`Konverzace bez názvu`,rename:`Přejmenovat`,renamePlaceholder:`Název konverzace`,messageCount:`{count} zpráv`,justNow:`právě teď`,minutesAgo:`před {count} min`,hoursAgo:`před {count} h`,daysAgo:`před {count} dny`,loadFailed:`Konverzaci se nepodařilo otevřít.`,renameFailed:`Konverzaci se nepodařilo přejmenovat.`,deleteFailed:`Konverzaci se nepodařilo smazat.`,actions:`Akce konverzace`,newChat:`Nový chat`},embeddings:{title:`Modely`,description:`Embeddingy se přenášejí pouze v rámci rodiny: stejný model obsluhovaný jiným poskytovatelem. Vektory z různých modelů jsou nekompatibilní, takže router vám nikdy nevymění modely.`,defaultBadge:`Výchozí · Auto`,makeDefault:`Nastavit výchozí nastavení`,moveUp:`Posuň se nahoru`,moveDown:`Jděte dolů`,usageToday:`{count} požadavek dnes`,usageMonth:`{count} tok tento měsíc`,autoDescription:`model: "auto" na POST /v1/embeddings trasy do výchozí rodiny. Pojmenování rodiny (nebo ID modelu poskytovatele) tuto rodinu připne; Poskytovatelé uvnitř jsou vyzkoušeni v pořadí.`,unsavedChanges:`Neuložené změny`,saveChanges:`Změny ukládání`,savingChanges:`Ukládám...`,tokMax:`{tokens} tok max`,emptyTitle:`Modely zatím nejsou žádné embedding`,emptyDesc:`Embedding families se zde objeví, jakmile přidáte klíč poskytovatele, který embeddingy podporuje.`,dragToReorder:`Poskytovatel přetahování pro přeobjednaní`},fusion:{title:`Fúze`,description:`Panel modelů odpovídá paralelně, poté rozhodčí syntetizuje jednu silnější odpověď. Použijte to tak, že API s modelem zavoláte "fusion".`,panelSource:`Zdroj panelu`,panelSourceHelp:`Odkud pocházejí panelové modely, když požadavek nespecifikuje svůj vlastní.`,mode:{auto:`Auto (záložní řetěz)`,autoHelp:`Vyberte si rozmanitou sadu modelů ze svého Záložního řetězce, seřazenou podle vaší aktivní strategie směrování.`,explicit:`Explicitní panel`,explicitHelp:`Vždy používejte konkrétní modely, které si níže vyberete.`},panelModels:`Panelové modely`,selectedCount:`{count} {max} vybraných`,noModels:`Žádné modely zatím nejsou propojené. Přidejte klíč API a pak povolte modely v Fallback Chain.`,panelSize:`Velikost panelu`,panelSizeHelp:`Kolik různých modelů vybrat automaticky (1–{max}).`,judge:`Model soudce`,judgeHelp:`Model, který syntetizuje odpovědi panelu do jedné. Auto používá váš nejlépe hodnocený dostupný model.`,judgeAuto:`Auto (dostupné nejlépe hodnocené)`,strategy:`Strategie`,strategySynthesize:`Syntetizovat — spojit panel do jedné odpovědi`,strategyBestOf:`Nejlepší z — vraťte nejsilnější odpověď (bez rozhodnutí soudce)`,strategySynthesizeShort:`Syntetizace`,strategyBestOfShort:`To nejlepší z`,exposePanel:`Detaily panelů expozice`,exposePanelHelp:`Přiložte odpověď každého modelu a metadata soudce pod x_fusion pole v odpovědi.`,howToUse:`Jak používat`,howToUseHelp:`Pošlete běžný chat s modelem "fusion". Tato nastavení jsou výchozí; Jakýkoli požadavek je může přepsat polem "fúze".`,unsavedChanges:`Neuložené změny`,save:`Uložit`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Prémiové`,description:`Katalog živých modelů, na každém zařízení.`,loading:`Načítám...`,checkForUpdates:`Sledujte aktualizace`,syncing:`Synchronizace...`,catalogFeed:`Katalogový feed`,liveFeed:`Živý přenos`,monthlySnapshot:`Měsíční přehled`,lastChecked:`Naposledy kontrolováno: {when}`,liveDescription:`Nové bezplatné modely, změny kvót a opravy zvláštností sem přicházejí během několika hodin po odeslání. Aplikace kontroluje automaticky dvakrát denně; Není co dělat.`,snapshotDescription:`Bezplatná úroveň: katalog se obnovuje z měsíčního snapshotu, který se automaticky kontroluje dvakrát denně. Premium to přepíná na živý přenos, který se aktualizuje každé 2-3 dny.`,lastSyncProblem:`Problém s poslední synchronizací: {error}`,license:`Licence`,planAnnual:`Prémiový ročenec`,planLifetime:`Životnost pojistného`,expired:`Expirace`,inactive:`Neaktivní`,lifetimeNote:`Doživotní licence: nikdy nevyprší.`,renewsOn:`Obnovuje se {date}.`,willNotRenew:`Neobnovím to. Premium do {date}, pak se tato instalace vrací zpět do bezplatného měsíčního katalogu.`,keyInactive:`Tento klíč již není aktivní. Aplikace stále pracuje na bezplatném měsíčním katalogu.`,manageSubscription:`Spravovat předplatné`,openingPortal:`Otevírání...`,removeKey:`Vyjměte klíč z tohoto zařízení`,manageHint:`Spravovat předplatné otevírá fakturační portál Stripe: zrušit, aktualizovat kartu nebo stáhnout faktury. Vyjmutí klíče pouze deaktivuje toto zařízení; Váš nákup zůstává nedotčený.`,licenseKey:`Licenční klíč`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Aktivovat`,activating:`Aktivuji...`,keyHint:`Klíč je v e-mailu k nákupu a na stránce po dokončení objednávky. Ztratil jsi to?`,recoverKey:`Obnovte ho na webu`,upsellTitle:`Jděte živě za 19 dolarů ročně`,upsellDescription:`Nové bezplatné modely hned, jak vzniknou, místo 30 dní poté. Jeden klíč, každé zařízení. Zrušit kdykoliv; Router zůstává navždy volný.`,goPremium:`Go Premium`,bundled:`Svazek`,planGeneric:`Prémiové`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`Něco se pokazilo`,boundaryDescription:`Palubní deska narazila na nečekanou chybu. Vaše data jsou v bezpečí. Zkuste to znovu nebo se vraťte na stránku modelů.`,tryAgain:`Zkus to znovu`,goHome:`Zpět k modelům`},notFound:{title:`Stránka nenalezena`,description:`Tato stránka neexistuje nebo mohla být přesunuta.`},setup:{title:`Začínáme`,subtitle:`Tři kroky k nasměrování vaší první žádosti.`,progress:`{done} of {total}`,step1Title:`Přidejte klíč poskytovatele`,step1Desc:`Připojte alespoň jeden účet poskytovatele. Zdarma klíče fungují.`,step1Cta:`Přidat klíče`,step2Title:`Pošlete požadavek na test`,step2Desc:`Vyberte si jakýkoli model na Playground a pozdravte ho.`,step2Cta:`Otevřené hřiště`,step3Title:`Připojte svou aplikaci`,step3Desc:`Použijte svůj sjednocený API klíč s jakýmkoli klientem kompatibilním s OpenAI.`,copyKey:`Rozumím API klíč`,copyUrl:`Kopírovat základní URL`,copiedKey:`API klávesa zkopírovaná do schránky`,copiedUrl:`Základní URL zkopírované do schránky`},palette:{title:`Příkazová paleta`,placeholder:`Hledejte stránky, modely, akce...`,empty:`Žádné výsledky`,groupPages:`Stránky`,groupActions:`Akce`,groupModels:`Modely`,toggleTheme:`Přepnout tmavý režim`},validation:{required:`Povinné`,url:`Zadejte platný URL začínající na http:// nebo https://`,email:`Zadejte platnou e-mailovou adresu`,passwordMin:`Alespoň {min} postavy`},agents:{title:`Agenti pro kódování`,description:`Připojte kódovací nástroje k jedné bráně bezplatných modelů s generovanou konfigurací a bezpečným zálohováním.`,apiKey:`API klíč`,quickstartTitle:`Rychlý start`,quickstart:`Nejrychlejší cesta: nakonfigurujte Claude Code z živého katalogu.`,currentKey:`Aktuální jednotný klíč:`,seenRecently:`Nedávno aktivní`,setupLabel:`Automatické nastavení`,setupHint:`Zapíše za vás konfigurační soubor tohoto nástroje s odkazem na tuto bránu.`,setupGuideHint:`Vypíše kroky nastavení tohoto nástroje; žádný soubor se nezapisuje.`,manualLabel:`Ruční připojení`,manualHint:`Základní URL a klíč k zadání do vlastního nastavení nástroje.`,endpoint:`Endpoint`,documentation:`Dokumentace`,descriptions:{claude:`Anthropic's terminal agent: it plans, edits files, and runs commands in your repo.`,codex:`OpenAI's terminal agent, which runs your task in a local sandbox first.`,cline:`A VS Code extension that asks you to approve every edit and command.`,continue:`A VS Code and JetBrains extension for inline autocomplete and chat while you type.`,aider:`A command-line pair programmer that turns each change into its own git commit.`,opencode:`A provider-agnostic terminal agent with a full-screen text interface.`,goose:`Block's local agent, extended with MCP servers to reach past your code.`,qwen:`A Gemini CLI fork tuned for Qwen models and large repositories.`,roo:`A VS Code extension with switchable modes: architect, coder, debugger.`,kilo:`A VS Code extension merging Roo and Cline, with an orchestrator that splits up work.`,crush:`Charm's terminal agent, written in Go, with one session per project.`,dsh:`DeepSeek's harness, which keeps every provider as a route you can switch between.`,mimo:`Xiaomi's terminal agent, an OpenCode fork that takes any OpenAI-compatible provider.`,cursor:`The AI-first editor; it calls through Cursor's cloud, so it needs a public URL.`,generic:`Anything else that speaks the OpenAI API, set up by hand from a base URL and key.`,atomcode:`AtomGit's terminal agent, written in Rust, that takes any OpenAI-compatible endpoint.`,openclaw:`Osobní asistent, který je neustále k dispozici a z vašeho vlastního počítače odpovídá v aplikacích WhatsApp, Telegram, Discord a dalších.`,hermes:`Samozdokonalující se agent od Nous Research s trvalou pamětí a dovednostmi, v terminálu nebo v chatovacích aplikacích.`,pi:`Minimalistický terminálový agent, který si přizpůsobíte vlastními rozšířeními, dovednostmi a šablonami promptů.`}},update:{available:`New version available`,whatsNew:`What's new in v{version}`,publishedOn:`Published {date}`,noNotes:`No release notes were published for this version.`,openRelease:`Open release page`,dismissVersion:`Dismiss this version`,dismiss:`Dismiss`},freeTier:{poolsToggle:`Free-tier pools ({count})`,poolsToggleBare:`Free-tier pools`,summary:`{pools} pools · {budget} tokens/mo counted once per pool · {credits} credits-based · {unpublished} unpublished`,pool:`Pool`,models:`Models`,budget:`Monthly budget`,kind:`Kind`,kindDocumented:`Documented`,kindCredits:`Credits`,kindUnpublished:`Unpublished`,remaining:`Remaining`,resetAt:`Resets at`,disabledModels:`({count} off)`,metricTokens:`tokens`,metricRequests:`requests`,metricCredits:`credits`,metricNeurons:`neurons`,metricOther:`units`,empty:`No enabled models with free-tier budget data.`,poolLabel:`{platform} · shared {scope} pool`,poolLabelBare:`{platform} · shared pool`,poolModels:`{count} models`,poolBudget:`{budget}/mo`,poolBudgetTitle:`One monthly allowance for the whole pool, scaled by the {count} usable keys on this platform. Every model listed under it draws from the same budget.`,poolNoQuota:`no published quota`,poolResets:`resets {time}`,independentBudgets:`independent budgets`},chains:{title:`Fallback chains`,description:`Named chains, each callable as auto:<name> in /v1/models.`,count:`{count} chains`,active:`Active`,default:`Default`,activate:`Activate`,activateHint:`Make this the chain the table below edits and the one auto routes through`,deleteHint:`Delete this chain`,deleteConfirm:`Delete chain "{name}"?`,create:`Create`,createPlaceholder:`Chain name`,createFailed:`Could not create the chain.`,nameRules:`Up to 20 characters: letters, digits, hyphens and underscores.`,startEmpty:`Start empty`,startEmptyHint:`Create the chain with no models in it, and keep new catalog models out of it. Unchecked, it starts as a copy of the default chain.`,curated:`Curated`,curatedHint:`New catalog models are not added to this chain automatically.`,renameHint:`Přejmenovat tento řetězec`,renameConfirm:`Přejmenovat řetězec "{oldName}" na "{name}"? Klienti volající auto:{oldName} musí přejít na auto:{name}.`,renamePlaceholder:`Nový název řetězce`,renameFailed:`Řetězec se nepodařilo přejmenovat.`},notifications:{catalogAdded:`{count} new models added from catalog`,catalogAddedFrom:`{count} new models added for {provider}`,catalogRemoved:`{count} models removed from catalog`,catalogRemovedFrom:`{count} models removed for {provider}`,catalogUpdated:`{count} models updated from latest catalog`,catalogUpdatedFrom:`{count} models updated for {provider}`,discoverAdded:`{count} new models from provider {provider}`,discoverRemoved:`{count} models removed from provider {provider}`,degraded:`Degraded mode active — only {healthy}/{total} providers healthy ({pct}%)`,updateAvailable:`Update available: v{version}`},routingStrip:{canceled:`Canceled`,title:`Live routing`,mode:`Mode`,processing:`Processing…`,idle:`Waiting for a request…`,failed:`Failed`,afterAttempts:`Success after {n} attempts`,activeCount:`{n} active`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={nav:{models:`Modeller`,playground:`Legeplads`,keys:`Nøgler`,analytics:`Analyse`,premium:`Premium`,upgrade:`Opgradering`,settings:`Indstillinger`,signOut:`Log ud`,openMenu:`Åbn navigationsmenu`,switchLight:`Skift til lystema`,switchDark:`Skift til mørkt tema`,switchToChinese:`Skift til kinesisk`,switchToEnglish:`Skift til engelsk`,modelsMenu:`Gennemse modeltyper`,agents:`Agenter`,logs:`Log`,analyticsMenu:`Analysesider`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Opret din konto`,signIn:`Log ind`,email:`E-mail`,password:`Adgangskode`,emailPlaceholder:`you@example.com`,passwordPlaceholderSetup:`mindst 8 tegn`,passwordPlaceholderLogin:`dit kodeord`,setupDescription:`Indsæt e-mail og adgangskode, der beskytter dette dashboard.`,loginDescription:`Log ind for at administrere dine nøgler, routing og analyser.`,createAccount:`Opret konto`,creating:`Skaber...`,signingIn:`Skriver ind...`,loading:`Indlæser...`,newPasswordAutoComplete:`ny-adgangskode`,currentPasswordAutoComplete:`Current-password`,serverUnreachableBefore:`Kan ikke nå serveren. Sørg for, at backenden kører :(`,serverUnreachableAfter:`).`,setupCode:`Opsætningskode`,setupCodePlaceholder:`kode fra serverloggene`,setupCodeHint:`Opsætning fra en anden enhed kræver engangskoden trykt i serverloggene ved opstart.`,changePassword:`Skift adgangskode`,changeEmail:`Skift e-mail`,forgotPassword:`Glemt adgangskode?`,currentPassword:`Nuværende adgangskode`,newPassword:`Ny adgangskode`,newEmail:`Ny e-mail`,resetCode:`Nulstillingskode`,resetCodePlaceholder:`kode fra serverloggene`,resetCodeHint:`Koden står i serverloggen. Den sendes aldrig på e-mail.`,forgotPasswordDescription:`Klik på knappen nedenfor for at generere en nulstillingskode. Koden skrives til serverloggen og sendes aldrig på e-mail. Indtast den her for at vælge en ny adgangskode.`,requestResetCode:`Send kode`,requestingResetCode:`Sender…`,resetPassword:`Nulstil adgangskode`,resettingPassword:`Nulstiller…`,changingPassword:`Skifter…`,changingEmail:`Skifter…`,backToLogin:`Tilbage til login`,passwordChanged:`Adgangskoden er skiftet.`,emailChanged:`E-mailen er skiftet.`,passwordReset:`Adgangskoden er nulstillet. Log ind.`,resetCodeDockerHint:`Kører du i Docker? Koden står i containerloggen: docker logs <container>.`,desktopSessionFailed:`Dashboardet kunne ikke logge ind på den lokale server. Afslut SRouter, og åbn det igen.`},common:{save:`Gem`,saving:`At redde...`,cancel:`Annuller`,discard:`Kasser`,delete:`Slet`,confirm:`Bekræft`,copy:`Modtaget`,copied:`Kopieret`,copyFailed:`Kunne ikke kopiere — markér teksten, og kopiér manuelt`,show:`Show`,hide:`Gem dig`,apply:`Ansøg`,applied:`Anvendt`,applying:`Ansøgning...`,active:`Aktiv`,inactive:`Inaktiv`,never:`Aldrig`,loading:`Indlæser...`,error:`Fejl`,noData:`Ingen data endnu`,unsavedChanges:`Ændringer uden gemte`,saveChanges:`Gemmeændringer`,remove:`Fjern`,unknownError:`Ukendt fejl`,model:`Model`,provider:`Udbyder`,success:`Succes`,failures:`Fejl`,dismiss:`Afvist`,status:`Status`},settings:{title:`Indstillinger`,language:`Sprog`,theme:`Tema`,themeSystem:`System`,themeLight:`Lys`,themeDark:`Mørk`,searchLanguage:`Søg efter sprog…`,noLanguages:`Ingen sprog fundet`,sections:`Indstillingsafsnit`,sectionGeneral:`Generelt`,sectionCompression:`Komprimering`,sectionAdvanced:`Avanceret`,sectionPreview:`Forhåndsvisning`,generalDescription:`Sprog og udseende for dette dashboard.`,advancedDescription:`Tærskler og sikkerhedskontakter for komprimeringspipelinen.`,compressionTitle:`Promptkomprimering`,compressionDescription:`Reducer forespørgslens størrelse før routing, mens kode, fejl, stier, tal og værktøjsdefinitioner bevares.`,compressionHelp:`Omskriver hver forespørgsel, før den sendes til en udbyder, så den bruger færre tokens. Kode, fejl, filstier og tal er beskyttet, og enhver omskrivning, der beskadiger dem, kasseres.`,compressionMode:`Tilstand`,compressionModeHelp:`Fra sender forespørgsler uændret. Tabsfri fjerner kun gentaget og overflødig tekst. Standard forkorter også værktøjsoutput. Aggressiv fortætter desuden ældre replikker.`,compressionOff:`Fra`,compressionLossless:`Tabsfri`,compressionStandard:`Standard`,compressionAggressive:`Aggressiv`,compressionLossy:`Med tab`,compressionEngines:`Motorer`,compressionEnginesHelp:`Hver motor er ét omskrivningstrin. Tilstanden afgør, hvilke motorer der kører; slår du en fra her, holdes den ude af alle tilstande.`,engineDedup:`Gentagne blokke`,engineDedupHelp:`Erstatter en tekstblok, der allerede er optrådt tidligere i samtalen, med en kort henvisning til den.`,engineLite:`Oprydning af mellemrum`,engineLiteHelp:`Fjerner mellemrum i slutningen af linjer, samler gentagne tomme linjer og dropper duplikerede systembeskeder.`,engineReadLifecycle:`Forældede fillæsninger`,engineReadLifecycleHelp:`Erstatter en tidligere fillæsning med en note, når den samme fil læses eller redigeres igen senere.`,engineToolfilter:`Filter for værktøjsoutput`,engineToolfilterHelp:`Forkorter output fra kommandoer og værktøjer såsom builds, tests og installationer. Fejl- og stacktrace-linjer bevares altid.`,engineJsoncompact:`JSON-tabeller`,engineJsoncompactHelp:`Omkoder lange JSON-arrays med de samme felter som en kompakt tabel. Kan gendannes, så intet går tabt.`,engineRelevance:`Relevansfilter`,engineRelevanceHelp:`Fjerner de sætninger, der har mindst med den seneste besked at gøre, når en besked overskrider sit størrelsesbudget.`,engineAging:`Ældre replikker`,engineAgingHelp:`Fortætter replikker ud over de seneste få til et kort resumé, der bevarer stier, fejl og beslutninger.`,engineHardBudget:`Tokenloft`,engineHardBudgetHelp:`Fjerner de mindst værdifulde linjer, indtil forespørgslen passer til tokenmålet.`,compressionAutoTrigger:`Aktivér automatisk over estimerede tokens`,compressionAutoTriggerHelp:`Forespørgsler, der estimeres over dette antal tokens, skifter automatisk til Aggressiv. Lad feltet stå tomt for at slå det fra.`,compressionPrefixFreeze:`Frys tilbagevendende promptpræfikser`,compressionPrefixFreezeHelp:`Lader en systemprompt være uændret, når den samme tekst er set tre gange, så udbyderens prompt-caching bliver ved med at virke.`,compressionTrustProjectFilters:`Stol på projektets filterfiler`,compressionTrustProjectFiltersHelp:`Indlæser også filtre for værktøjsoutput fra arbejdsmappen. Slået fra som standard, fordi et repository kunne bruge det til at skjule output for modellen.`,compressionStats:`Størrelse sparet`,compressionEstimatedTokensSaved:`Estimerede tokens sparet`,compressionPreview:`Live-forhåndsvisning`,compressionPreviewDescription:`Send indholdet af en forespørgsel gennem pipelinen for at se, hvad en udbyder ville modtage.`,compressionPreviewPlaceholder:`Indsæt forespørgsels-JSON eller almindelig tekst`,compressionRunPreview:`Kør forhåndsvisning`,updatesTitle:`Opdateringer`,checkForUpdates:`Tjek for opdateringer`,lastChecked:`Sidst tjekket: {when}`,currentVersion:`Nuværende build:`,updateAvailable:`Opdatering tilgængelig`,changelog:`Hvad er ændret`,upToDate:`Opdateret`,buildAhead:`Denne build er foran den officielle main-gren.`,buildDiverged:`Denne build er divergeret fra den officielle main-gren.`,buildUnknown:`Denne tilpassede build kan ikke sammenlignes med den officielle main-gren.`,notGitInstall:`Denne installation indeholder ikke commit-oplysninger.`,checkFailed:`Det var ikke muligt at søge efter opdateringer.`,contactsGithub:`Tjek udføres manuelt og kontakter GitHub.`,autoUpdateCheck:`Automatisk opdateringstjek`,autoUpdateCheckHelp:`Tjekker GitHub én gang om dagen for en ny udgivelse og viser en påmindelse. Slået fra som standard.`,openReleases:`Åbn GitHub-udgivelser`,restartAfterUpdate:`Genstart SRouter, når buildet er færdigt.`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`Modeller`,chatModelsTab:`Chatmodeller`,fusionTab:`Fusion`,embeddingsTab:`Indlejringer`,imageTab:`Billede`,videoTab:`Video`,audioTab:`Lyd`,imageDesc:`Modeller til generering af tekst til billede.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Tekst-til-tale og tale-til-tekst-modeller.`,mediaHint:`Generer via`,mediaEmpty:`Ingen modeller endnu. De synkroniserer fra kataloget.`,ttsHeading:`Tekst-til-tale`,sttHeading:`Tale til tekst`,sttHint:`Transskribér via`,sttEmpty:`Ingen tale-til-tekst-modeller endnu. De synkroniserer fra kataloget.`,newBadge:`Ny`,monthlyTokenBudget:`Månedligt token-budget`,remaining:`Resten`,used:`Brugt`,usedScopeHint:`Chat requests only, since the start of this calendar month, summed over every model in the active chain — custom endpoints included. Traffic you send to a provider outside SRouter is not counted.`,legendRemainingTitle:`Remaining / monthly budget for {name} ({platform})`,noPublishedQuota:`+{count} with no published quota`,noPublishedQuotaTitle:`These models have no documented monthly token budget, so there is no remaining figure to show.`,of:`af`,showAllModels:`Vis alle {count} modeller`,showLess:`Vis mindre`,vision:`Vision`,visionTitle:`Accepterer billedinput`,tools:`Værktøjer`,toolsTitle:`Udsender strukturerede værktøjskald, så den er berettiget til værktøjsbærende anmodninger`,retired:`Udgået`,penalty:`−{value} straf`,obs:`{count} observationer`,tokPerMonth:`{count} tok/mo`,rpmLimit:`{count} omdrejninger`,rpdLimit:`{count} RPD`,noKey:`Ingen nøgle`,dragToReorder:`Træk for at omorganisere`,dragToReorderGroup:`Træk for at omarrangere modellen`,moveToRank:`Hop til rang`,providerCount:`{count} udbydere`,servedBy:`Betjent af {providers}`,viewProviders:`Se udbydere`,backToModels:`Tilbage til modellerne`,providersHeading:`Udbydere, der understøtter denne model`,codeSnippetHeading:`Brug denne model`,modelNotFound:`Denne model er ikke tilgængelig, eller også har den ingen konfigurerede udbydere.`,providerIdsHeading:`Udbydermodel-id'er`,providerIdsHint:`Send det samlede model-id til failover på tværs af alle udbydere, eller et udbyderspecifikt id til at fastgøre én udbyder.`,copyModelName:`Kopier modelnavn`,settingsHeading:`Udbyderindstillinger`,settingsHint:`Lokale redigeringer af katalogmodeller gemmes på tværs af katalogsynkroniseringer. Slettede katalogmodeller forbliver slettede, indtil du tilføjer dem igen via konfigurationen.`,catalogModel:`Katalog`,customModel:`skik`,discoveredModel:`fundet`,localOverride:`Lokal overstyring`,displayName:`Visningsnavn`,sizeLabel:`Kapacitetsniveau`,sizeLabelHint:`Frontier/Large/Medium/Small fastsætter intelligens-aksen: et højere niveau slår altid et lavere, og inden for et niveau flytter intelligensrangeringen stadig scoren. En model uden et genkendt niveau får den laveste score på denne akse, men intelligens er kun én af tre akser — høj pålidelighed og hastighed kan stadig vinde den en rute.`,sizeLabelNone:`Ingen (laveste intelligensscore)`,contextWindow:`Kontekst`,inFallback:`I kæde`,saveModelSettings:`Gem modelindstillinger`,aggregateBudget:`{count}/mo`,aggregateBudgetTitle:`Samlede gratis tokens pr. måned hos denne models udbydere`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Rentebegrænset — intet fast månedligt token-budget`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Forbrug af hastighedsgrænse i tidsvinduet (brugt / grænse) for udbyderen med mest plads tilbage`,splitOut:`Flet ikke denne kopi`,splitOutHint:`Giv denne udbyders kopi sin egen separate post i stedet for at flette den ind i den forenede model. Du kan flette den tilbage fra kopiens egen side.`,splitUndo:`Flet tilbage`,splitUndoHint:`Denne kopi holdes adskilt fra dens samlede model. Flet det tilbage for at mislykkes på tværs af alle dets udbydere igen.`,splitBadge:`holdes adskilt`,noData:`ingen data`,noDataTitle:`Ingen anmodninger registreret endnu - pålidelighed og hastighed er umålt for denne udbyder.`,bestOfN:`bedste af {count}`,perProviderScores:`Score pr. udbyder: {list}`,columnModel:`Model`,columnOn:`På`,noModelsBefore:`Ingen modeller tilgængelige. Tilføj API taster på`,keysPageLink:`Nøgleside`,noModelsAfter:`først.`,hiddenNoKeys:`Skjult (ingen nøgler): {platforms}`,searchPlaceholder:`Søg modeller eller udbydere...`,clearSearch:`Ryd søgning`,ctxAny:`Enhver kontekst`,ctxBadge:`{size} ctx`,ctxTitle:`Kontekstvindue`,copyModelId:`Kopier model-id`,showingCount:`{shown} af {total} modeller`,clearFilters:`Klare filtre`,noMatches:`Ingen modeller matcher dine filtre.`,noModelsTitle:`Ingen modeller konfigureret`,intelligenceRank:`Intelligens`,speedRank:`Hastighed`,rankHint:`Rangering i kataloget — 1 er bedst.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Anmodninger pr. minut. Lad stå tomt for ingen grænse.`,limitRpdHint:`Anmodninger pr. dag. Lad stå tomt for ingen grænse.`,limitTpmHint:`Tokens pr. minut. Lad stå tomt for ingen grænse.`,limitTpdHint:`Tokens pr. dag. Lad stå tomt for ingen grænse.`,usageThisMonth:`Månedligt forbrug`,usageEmpty:`Ingen anmodninger denne måned endnu.`,usageRequestsMonth:`{count} anmodn. denne måned`,aliasMergeHeading:`Merge model aliases`,aliasMergeHint:`Requests for the unified model id are also served through these custom-provider aliases (e.g. custom:my-alias).`,aliasMergeAdd:`Add`,aliasMergeRemove:`Remove`,bulkToggle:`Enable or disable every shown model`,enableAll:`Enable all`,disableAll:`Disable all`,enableAllHint:`Turn on every model shown, then Save`,disableAllHint:`Turn off every model shown, then Save`,enabledOfShown:`{enabled} of {shown} shown models are in the chain`},strategies:{explore:`Udforsk umålte modeller`,exploreHint:`Give models with no reliability or speed data a 10% chance to go first so they build a track record. Your real request is what gets sent, so it may be answered by an untested model. For a custom endpoint, use Probe endpoint on the Keys page to test it without live traffic.`,keySelection:`Nøglevalg`,keySelectionAuto:`Automatisk`,keySelectionLeastRemaining:`Mindst tilbage`,keySelectionHint:`Hvordan der vælges mellem flere nøgler hos samme udbyder. Automatisk beholder den nuværende rotation; Mindst tilbage rangordner nøglerne efter observeret kvote og prøver først den, der har mest tilbage.`,cooldownCeiling:`Længste automatiske nedkøling`,cooldownCeilingHint:`Begrænser, hvor længe routerens egne gæt må bænke et fejlende nøgle- og modelpar. Stigen vokser normalt 2 min, 10 min, 1 t, 24 t, og kredit- eller niveaufejl bænker en dag. Ventetider oplyst af udbyderen forkortes aldrig.`,cooldownCeilingDefault:`Standard (op til 24 t)`,cooldownCeiling10m:`10 minutter`,cooldownCeiling1h:`1 time`,cooldownCeiling6h:`6 timer`,moreOptions:`Flere valgmuligheder`,peakActive:`(spidsbelastning)`,peakActiveHint:`Justeringen for spidsbelastning er aktiv lige nu, så det er ikke forudindstillingens egne vægte: 60 % af hastighedsvægten er flyttet til pålidelighed.`,peakAdjust:`Justering for spidsbelastning`,peakAdjustHint:`Slået fra som standard. Inden for vinduet nedenfor flyttes 60 % af hastighedsvægten til pålidelighed — gratis relæer er mest belastede da, så pålidelighed forudsiger succes bedre end rå gennemstrømning. Hurtigst og Mest pålidelig røres ikke.`,peakFrom:`Fra`,peakTo:`til`,peakTimezoneLabel:`Tidszone`,peakUseBrowserTimezone:`Brug browserens tidszone`,peakTimezoneInvalid:`Ukendt tidszone.`,peakExemptNote:`Denne forudindstilling røres ikke — den ligger allerede i den ene ende af afvejningen mellem hastighed og pålidelighed.`,title:`Routingstrategi`,description:`Vælg en routing-strategi. I manuel tilstand trækker du for at sætte rækkefølgen; De andre strategier følger live score på tværs af pålidelighed, hastighed og intelligens.`,weightsSummary:`Pålidelighed {reliability}% · hastighed {speed}% · intelligens {intelligence}%`,guardrails:`Rækværk`,guardrailsTooltip:`Altid-på-sikkerhedsforanstaltninger: gratis kvote-headroom × live prisbegrænsningsstraf. Under 1,0 betyder, at modellen holdes tilbage.`,scoreTooltip:`Endelig routingscore = vægtet gennemsnit af de tre akser, ganget med rækværket. Højere ruter først.`,modeManualHint:`Manuel tilstand: anmodninger følger rækkefølgen nedenfor, fra top til bund. Træk for at omorganisere.`,modeScoreHint:`Resultater opdateres fra live trafik. Rækkefølgen nedenfor viser, hvordan anmodninger bliver videresendt lige nu.`,manual:`Manual`,manualBlurb:`Rute i den præcise rækkefølge, du har angivet nedenfor. Træk håndtagene for at omarrangere. Ingen scoring; kæden følges fra top til bund.`,balanced:`Balanceret`,balancedBlurb:`Pålidelighed fører (50 %), hvor hastighed og intelligens vægtes lige meget (25 % hver). En fornuftig allround-standard.`,smartest:`Smartest`,smartestBlurb:`Foretrækker den mest kapable model, der stadig virker. Intelligens 55%, pålidelighed 35%, hastighed 10%.`,fastest:`Hurtigste`,fastestBlurb:`Foretrækker den hurtigste model, der stadig virker. Hastighed 55%, pålidelighed 35%, intelligens 10%.`,reliable:`Mest pålidelig`,reliableBlurb:`Maksimer succesraten frem for alt. Pålidelighed 70%, hastighed og intelligens 15% hver.`,custom:`Skik`,customBlurb:`Sæt din egen balance mellem pålidelighed, hastighed og intelligens med skydere. Samme motor som presets, bare dine vægte.`,adjust:`Juster`,customWeights:`Specialvægte`,customWeightsHelp:`Sliders er uafhængige; Aktierne balancerer automatisk til 100%.`,weightReliability:`Pålidelighed`,weightSpeed:`Hastighed`,weightIntelligence:`Intelligens`,weightRequired:`Mindst én vægt skal være over nul.`,scoreColumn:`Score`},penaltyInspector:{title:`Fræsertryk`,subtitle:`Straffe, cooldowns og fejl fra de sidste {minutes} minutter`,rowCount:`{count} aktive`,offChain:`Off chain`,penaltyValue:`Straf {value}`,factor:`score x{factor}`,noCooldown:`Ingen cooldown`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Ryd alt`,clearAllHint:`Ophæver straks alle nedkølinger, straffe og fejlserier. Presset genopbygges ud fra de næste rigtige resultater.`,errorsHeading:`{count} nylige fejl`,noRecentErrors:`Ingen nylige fejl`,noKey:`Ingen nøgle`,reasons:{penalty:`Straffet`,cooldown:`Cooldown`,recent_errors:`fejler`}},keys:JSON.parse(`{"pageTitle":"Nøgler","pageDescription":"Udbyderoplysninger og den samlede API nøgle, som dine apps forbinder med.","tabProviders":"Udbydere","checklistSummary":"{configured} af {total} udbydere er konfigureret","checklistKeyless":"ingen nøgle påkrævet","checklistNoKeyTip":"Der er endnu ikke tilføjet en nøgle. Klik for at tilføje en.","checklistSignupLink":"Åbn {provider} for at oprette en konto og få en nøgle","checklistKeylessTip":"Virker uden nøgle.","tabQuotaSignals":"Kvotesignaler","tabApiKey":"Unified API nøgle","tabAnthropic":"Anthropic","unifiedKey":"Din samlede API-nøgle","regenerate":"Regenerer","showKey":"Show","hideKey":"Gem dig","copyKey":"Modtaget","copyFullKey":"Kopiér hele nøglen","copiedKey":"Kopieret","baseUrl":"Base URL","endpointChat":"Chat","endpointResponses":"Svar","endpointEmbeddings":"Indlejringer","endpointEmbeddingsHint":"model: \\"auto\\" eller en familie fra fanen Embeddings","endpointMessages":"Beskeder","endpointMessagesHint":"Anthropic-kompatibel (Claude)","quickStart":"Quick start","quickStartDesc":"Use auto for your active routing chain, or auto:fast to prioritize speed across enabled models. Replace $YOUR_KEY with your unified API key.","exampleAuto":"Auto mode (use the active chain)","exampleFast":"Fast mode (prioritize speed)","anthropicTitle":"Claude (Anthropic) modeller","anthropicDesc":"Peg på en Claude eller Anthropic SDK-klient mod denne server. Anthropic klienter sender Claude modelnavne — mapper hver til Auto (routeren vælger en gratis model) eller pinner en specifik.","anthropicBaseUrl":"Base URL","anthropicAuth":"Auth-overskrift","anthropicAuto":"Auto — fræseren vælger den bedste model","anthropicSave":"Gem kortlægning","anthropicSaved":"Reddet","anthropicNote":"Anthropic kunder beholder deres indbyggede Claude modelnavne; Kortlægningen ovenfor afgør, hvordan hver enkelt føres ind i din pool.","familyDefault":"Default","familyOpus":"Opus","familySonnet":"Sonet","familyHaiku":"Haiku","selectPlatform":"Vælg en udbyder","addKey":"Tilføj nøgle","keyAdded":"Nøgle tilføjet","endpointKeysShareModels":"Nøgler til det samme endpoint deler dets modeller.","export":"Eksport","exportAll":"Alle nøgler","exportHealthy":"Kun sundt","exportKeys":"Eksport API nøgler","exportFormat":"Format","exportHealthyOnly":"Kun sunde nøgler","exportHealthyOnlyDesc":"Udeluk nøgler, der i øjeblikket fejler sundhedstjek","exportWillExport":"Vil eksportere","exportKey":"Nøgle","exportKeys plural":"Nøgler","exporting":"Eksport...","exportDownload":"Download","exportSuccess":"Eksporterede {count} nøgler","adding":"Tilføjer...","selectProvider":"Vælg en udbyder...","accountId":"Konto-ID","label":"Label","noKeyNeeded":"(ingen nøgle nødvendig)","outboundProxy":"Udgående proxy","outboundProxyDescription":"Rut udgående LLM-forespørgsler gennem en proxy. Understøtter SOCKS5, HTTP og HTTPS.","proxyUrl":"Proxy URL","saveProxy":"Gem","savingProxy":"At redde...","proxyLoadFailed":"Kunne ikke indlæse proxy-indstillingerne.","proxyMode":"Mode","proxyModeForward":"Forward proxy","proxyModeFetchRelay":"Fetch relay","relayToken":"Relay token","relayTokenConfigured":"Configured. Leave unchanged to keep.","relayTokenPlaceholder":"Relay bearer token (optional)","relayHeadersHint":"The relay reads the destination and its own credential from","addCustom":"Tilføj en specialtilpasset OpenAI-kompatibel model","addCustomDescription":"Peg chat-, embedding-, billed- eller lydmodeller på ethvert OpenAI-kompatibelt endpoint. API-nøglen er valgfri for lokale servere.","customType":"Type","customTypeChat":"Chat","customTypeEmbedding":"Indlejring","customTypeImage":"Billede","customTypeAudio":"Lyd","customTypeTranscription":"Transcription","customBaseUrl":"Base URL","customModels":"Modeller","customModel":"Model","customDisplayName":"Visningsnavn","customDisplayNamePerModel":"Per-model","customDisplayNameOptional":"valgfrit","customFamily":"Familie","customFamilyPlaceholder":"standard til model-id","customApiKey":"API nøgle","customCapabilities":"Kapaciteter","addModel":"Tilføj model","modelAdded":"Model tilføjet","addModels":"Tilføj {count} modeller","addEmbeddingModel":"Tilføj indlejring","addImageModel":"Tilføj billedmodel","addAudioModel":"Tilføj lydmodel","addTranscriptionModel":"Add transcription model","addingCustom":"Tilføjer...","discoverModels":"Hent modeller","probeNow":"Test endpointet","probeConfirm":"Send op til 3 testanmodninger?","probeCapabilities":"ræsonnement: {reasoning} · værktøjer: {tools}","probeCapYes":"ja","probeCapNo":"nej","probeCapUnknown":"ukendt","probeSuccess":"Testede {model} på {latency} ms","probeFailed":"Testen mislykkedes: {reason}","discoverTitle":"Modeller på dette endpoint","discoverHint":"Vælg de modeller, der skal registreres. Allerede tilføjede forbliver låst.","discoverEmpty":"Dette endpoint returnerede ingen modeller.","discoverAlreadyAdded":"Tilføjet","discoverSelectAll":"Vælg alle","modelsAdded":"{count} modeller tilføjet","getApiKey":"Få API nøgle","deleteKeyConfirm":"Slette denne nøgle? Det kan ikke gøres om.","checkAll":"Tjek alle","checking":"Tjekker...","editLabel":"Rediger etikett","saveLabel":"Gem label","unifiedKeyDescBefore":"Brug dette som din OpenAI","unifiedKeyDescAfter":"; Den autentificerer anmodninger til denne proxy.","serverUnreachableBefore":"Kan ikke nå serveren på","serverUnreachableAfter":". Sørg for, at backenden kører. NPM Run Dev starter begge, og serverloggene udskrives under serverpræfikset.","paneProviderKey":"Udbydernøgle","paneImportFile":"Importer fil","paneCustomEndpoint":"Brugerdefineret endpoint","platform":"Platform","hideAdded":"Skjul tilføjede udbydere","apiToken":"API token","keyOptionalPlaceholder":"Valgfri","bearerTokenPlaceholder":"Bærertoken","pasteKeyPlaceholder":"Afsæt nøgle her","pasteSeveral":"Indsæt flere","keyOptionalHint":"Valgfri: lad feltet stå tomt for det anonyme gratisniveau (begrænset pr. IP), eller indsæt din egen nøgle for at bruge din konto.","enable":"Enable","noProviderKeys":"Ingen udbydernøgler endnu. Tilføj en ovenfor for at starte ruten.","filterPlaceholder":"Filterudbydere eller nøgler","filterAll":"Alle","filterHealthy":"Sundt","filterIssues":"Problemer","filterDisabled":"Handicappet","noFilterMatch":"Ingen udbydere matcher dine filtre.","providerCountSummary":"{providers} udbydere · {keys} nøgler","summaryHealthy":"{count} sund","summaryIssueOne":"{count} problem","summaryIssueOther":"{count} problemer","providerActions":"Udbyderhandlinger","routeViaProxy":"Rute via proxy","checkNow":"Tjek nu","syncModels":"Sync models with upstream","syncModelsResult":"Model list synced: {added} added, {total} live","syncModelsFailed":"Model sync failed: {reason}","syncAllModels":"Sync all providers","syncAllPending":"Syncing…","syncAllResult":"Synced {count} provider(s): {registered} model(s) registered","syncAllFailed":"Sync all failed: {reason}","syncAllNoChanges":"All provider rosters are already up to date","syncAllDialogTitle":"Sync Results","syncAllDialogSummary":"Changes detected in {changed} of {total} providers","syncAllNew":"+{count} new","syncAllUpdated":"{count} updated","syncAllRetired":"{count} retired","syncAllNewModels":"New models","syncAllUpdatedModels":"Updated models","syncAllRetiredModels":"Retired models","syncAllDialogClose":"Done","proxyEnvHintBefore":"Også konfigurerbar via","proxyEnvHintAfter":"miljøvariabel (har forrang). Lad det stå tomt for at deaktivere. Eksempler:","importKeys":"Import af udbydernøgler","importKeysDescription":"Upload .env, JSON, JSONC, CSV, Markdown eller tekstfiler.","importFiles":"Filer","importFileCount":"{count} udvalgt","previewFiles":"Forhåndsvisning","previewing":"Forhåndsvisning...","selected":"Udvalgte","provider":"Udbyder","keyName":"Nøglenavn","keyValue":"Nøgleværdi","chooseProvider":"Vælg udbyder","noPreviewKeys":"Ingen nøgler fundet i de filer.","skippedItems":"Sprunget over:","moreItems":"+{count} mere","importSelected":"Importer {count}","importing":"Importerer...","noImportSelection":"Vælg mindst én række hos en udbyder.","duplicate":"Duplikat","duplicatesFound":"{count} dublat opdaget — eksisterer allerede og vil blive sprunget over.","importResult":"Importerede {imported}; fejlede {failed}.","importModelCount":"+{count} modeller","importResultWithModels":"Importerede {imported}; registrerede {models} modeller; fejlede {failed}.","confirmRemove":"Bekræfte?","quotaSignalsTitle":"Kvotesignaler","quotaSignalsEmptyTitle":"Ingen kvoteobservationer endnu","quotaSignalsEmptyDesc":"Dette udfylder efter udbydere returnerer rate-limit-headers, kvotefejl eller valideringssignaler.","quotaKeyRef":"Nøgle #{id}","quotaPoolRef":"Pool {pool}","quotaLimit":"Grænse","quotaRemaining":"Resterende","quotaReset":"Nulstil","quotaObserved":"Observeret","tabAgents":"Agenter","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Gemini-modelmapping","geminiDesc":"Map Gemini Pro-, Flash- og Flash-Lite-navne til Auto eller en bestemt katalogmodel.","compatibilityTitle":"Agentkompatibilitet","compatibilityDesc":"Styr tilvalgte kompatibilitetsflader og Claude Codes modelopdagelse.","ollamaMode":"Ollama-emulering","ollamaModeHint":"Åben loopback accepterer aldrig uautentificeret LAN-trafik.","ollamaOff":"Fra","ollamaLoopback":"Åben på loopback","ollamaKeyRequired":"API-nøgle påkrævet","claudeAliases":"Claude Code-opdagelsesaliasser","claudeAliasesHint":"Eksponér claude/<model>-aliasser, så gatewayens modelvælger kan vise kataloget.","mcpServer":"MCP-server","mcpServerHint":"Eksponerer /mcp-endpointet for agentklienter. Nye installationer starter slået fra.","urlTokensTitle":"Tilbagekaldelige URL-tokens","urlTokensDesc":"Kun til klienter uden headers. URL-tokens kan lække til historik og logs, så tilbagekald dem, når de ikke længere er nødvendige.","urlTokenLabel":"Token-etiket","createUrlToken":"Opret token","urlTokenOnce":"Kopiér dette token nu. Det vises ikke igen.","revoked":"Tilbagekaldt","revoke":"Tilbagekald","modelScope":"Modelomfang","modelScopeDesc":"Begræns denne nøgle til bestemte model-ID'er. For alle andre modeller springer routeren nøglen over.","modelScopeAdd":"Indtast et model-ID og tryk Enter","modelScopeEmpty":"Intet omfang angivet — nøglen betjener alle modeller hos sin udbyder.","modelScopeClear":"Ryd omfang","modelScopeBadgeOne":"begrænset · 1 model","modelScopeBadgeOther":"begrænset · {count} modeller","modelPicker":{"title":"Hvilke modeller skal denne nøgle betjene?","hint":"Din {provider}-nøgle er tilføjet og betjener i øjeblikket alle modeller nedenfor. Fjern fluebenet ved de modeller, nøglen ikke må bruges til — routeren springer den så over for dem.","count":"{selected} af {total} valgt","allNote":"Alt er valgt — der gemmes ikke noget, og modeller, der senere føjes til kataloget, vil også bruge denne nøgle.","subsetNote":"Nøglen begrænses til de valgte modeller. Du kan ændre det senere fra nøglens række.","skip":"Ikke nu","scopedOne":"Nøgle begrænset til 1 model","scopedOther":"Nøgle begrænset til {count} modeller","allSaved":"Key serves every catalog model"},"cpTitle":"Klientprofiler","cpDesc":"API-nøgler pr. klient, hver med en systemprompt som serveren altid anvender.","cpEmpty":"Ingen klientprofiler endnu.","cpNameLabel":"Navn","cpNamePlaceholder":"f.eks. Supportbot","cpPromptLabel":"Systemprompt (valgfri)","cpPromptPlaceholder":"Instruktioner som serveren indsætter før hver forespørgsel med denne nøgle.","cpCreate":"Opret profil","cpRotate":"Rotér nøgle","cpKeyOnce":"Kopiér denne nøgle nu — den vises ikke igen.","cpEnabledAria":"Profil aktiveret","selectKey":"Vælg denne nøgle","bulkSelected":"{count} valgt","bulkEnable":"Aktivér alle","bulkDisable":"Deaktivér alle","bulkDelete":"Slet alle","bulkDeleteConfirm":"Slet {count}?","bulkResult":"Opdaterede {done}; fejlede {failed}.","bulkDeleteResult":"Slettede {done}; fejlede {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Redigér nøgle","editPlatformLocked":"Udbyder og endpoint kan ikke ændres efter oprettelsen.","editCredentialHint":"Lad feltet stå tomt for at beholde den aktuelle nøgle.","editCredentialPartsRequired":"Indtast både konto-ID og API-token.","editModels":"Redigér modeller","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"Tilføj brugerdefineret model","modelId":"Model-ID","modelIdRequired":"Model-ID er påkrævet","modelDisplayName":"Vist navn","modelContextWindow":"Kontekstvindue (tokens)","modelRateLimits":"Hastighedsgrænser (valgfrit)","modelSupportsTools":"Understøtter værktøjskald","modelSupportsToolsHint":"Aktiver hvis denne model kan udføre funktioner og værktøjskald","modelSupportsVision":"Understøtter vision","modelSupportsVisionHint":"Aktiver hvis denne model accepterer billedinput","createModel":"Opret model","modelAddedSuccess":"Brugerdefineret model tilføjet","modelAddFailed":"Kunne ikke tilføje brugerdefineret model","testModel":"Test","testingModel":"Tester…","testPassedShort":"Bestået","testFailedShort":"Fejlet","testPassed":"Modeltest bestået på {latency}ms","testFailed":"Modeltest fejlede","testThrottled":"Vent venligst {seconds}s, før du tester denne model igen.","noModelsForProvider":"Ingen modeller konfigureret for denne udbyder.","testModels":"Test modeller","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"Ubegrænset","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} anmodninger, {tokens} tokens denne måned","monthlyUsageRequests":"{requests} requests","monthlyUsageTokens":"{tokens} tokens","monthlyUsageRequestsRelative":"{used} / {cap} ({remaining} left) requests","monthlyUsageTokensRelative":"{used} / {cap} ({remaining} left) tokens","monthlyUsageReset":"reset {date}"}`),backups:{title:`Backups`,description:`Save the routing data to a .sql file beside the database, and restore it later.`,excludedNote:`A backup carries your providers, models, routing settings and request history. Accounts, sessions and URL tokens are never included, so a dump holds no password hashes or login tokens and restoring one cannot log you out. Provider keys stay encrypted with this server's ENCRYPTION_KEY: a backup can only be restored on a server that still holds that key.`,selectHint:`Back up everything, or pick the tables you need.`,selectAll:`Select all`,deselectAll:`Clear`,fullBackup:`Full backup`,backupSelected:`Back up selected ({count})`,created:`Backup written to {filename}`,list:`Backups on disk`,empty:`No backups yet`,full:`All tables`,tablesCount:`{count} tables`,manual:`Manual`,scheduled:`Scheduled`,preRestore:`Pre-restore`,download:`Download`,restore:`Restore`,confirmRestore:`Replace data?`,restored:`Restored. The previous data was saved as {filename}.`,delete:`Delete backup`,prevPage:`Previous`,nextPage:`Next`,autoTitle:`Automatic backups`,autoHint:`The server writes a full backup on this cadence.`,time:`Time (HH:mm)`,intervalDays:`Every N days`,path:`Folder`,pathPlaceholder:`backups`,pathHint:`Relative to the database directory. Backups cannot be written outside it.`,save:`Save schedule`,saved:`Saved`},status:{healthy:`sundt`,rateLimited:`Takstbegrænset`,invalid:`ugyldig`,error:`fejl`,unchecked:`Ukontrolleret`},analytics:{title:`Analyse`,description:`Anmodningsvolumen, latenstid, tokenbrug og fejl.`,range24h:`24 timer`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`Anmodninger`,successRate:`Succesrate`,inputTokens:`Inputtokens`,outputTokens:`Output-tokens`,avgLatency:`Gennemsnitlig latenstid`,p95Latency:`P95-latenstid`,avgTtft:`Gennemsnitligt TTFT`,estSavings:`Estimeret opsparing`,requestsByProvider:`Anmodninger fra udbyder`,avgLatencyByProvider:`Gennemsnitlig latenstid efter udbyder`,ttftByProvider:`Tid til første token efter udbyder`,ttftEmpty:`Ingen tid til at registrere tokenet første gang endnu.`,requestsOverTime:`Anmodninger over tid`,tokensOverTime:`Tokens over tid`,byModel:`Efter model`,byPlatform:`Efter perron`,errors:`Fejl`,errorDistribution:`Fejlfordeling`,pinnedRequests:`Fastgjorte anmodninger`,pinnedHonored:`Hædret`,fallbackAttempts:`Forsøg på at falde tilbage`,savingsHint:"Du har faktisk gemt ${actual} over de sidste {range}. Det er, hvad de samme tokens ville have kostet på betalte API'er, prissat pr. model. Det viste tal projicerer dit tempo fra de sidste {span} data til hele 30 dage.",savingsHintExact:"Du har faktisk gemt ${actual} over de sidste {range}. Det er, hvad de samme tokens ville have kostet på betalte API'er, prissat pr. model. Det viste tal er dit reelle 30-dages gennemsnit.",requestsHintPinned:`{pinned} af disse anmodninger fastgjorde en bestemt model ved navn. {honored} blev betjent af den fastlåste model; {failed} fejlede over til en anden. Resten blev automatisk rutet.`,requestsHintAuto:`Alle anmodninger i denne periode blev automatisk videresendt; Ingen kunde har fastgjort en bestemt model ved navn.`,requestsHintTypes:`{chat} chat og {embedding} indlejringsanmodninger.`,rangeLabel24h:`24 timer`,rangeLabel7d:`7 dage`,rangeLabel30d:`30 dage`,rangeLabel90d:`90 dage`,spanDays:`{count} dage`,spanHours:`{count} timer`,latencyMs:`Latenstid (ms)`,latency:`Latens`,pinned:`Nålet`,inTokens:`I tokens`,outTokens:`Ud-tokens`,saved:`Reddet`,message:`Besked`,time:`Tidspunkt`,perModelBreakdown:`Per-model opdeling`,usageByKey:`Brug efter nøgle`,keyColumn:`Nøgle`,keyLabelFallback:`Nøgle#{id}`,errorsByProvider:`Fejl efter udbyder`,recentErrors:`Nylige fejl`,noErrors:`Ingen fejl`,recentCalls:`Seneste opkald`,clientIp:`Klient-IP`,clientAgent:`Klientapp`,requestedModelHint:`Anmodede {model}, betjent via fallback`,attempts:`Forsøg`,filterAll:`Alle`,filterCanceled:`Annullerede`,providerBreakdown:`Opdeling pr. udbyder`,tokensPerSec:`Tok/s`,allProviders:`Alle udbydere`,requestDetailTitle:`Anmodning #{id}`,failoverLadder:`Failover-stige`,failoverLadderHint:`Hver gang denne anmodning gik gennem fallback-kæden, i rækkefølge.`,noAttemptTrace:`Der blev ikke registreret nogen sporing af forsøg på denne anmodning.`,keyOrdinal:`Nøgle #{n}`,keyBadge:`Nøgle #{n}`,attemptTimingHint:`Startforskydning fra anmodningsstart · Forsøgsvarighed`,requestedModel:`Efterspurgt model`,ttft:`TTFT`,requestsByAgent:`Anmodninger pr. agent`,sortBy:`Sortér efter {column}`,sortHint:`Sorteringen gælder de {count} indlæste rækker`,cacheHitRate:`Cache-hitrate`,cacheSavedTokens:`{tokens} tokens sparet`,cacheHitRateHint:`{hits} hits mod {misses} misses siden serveren startede · {requests} udbyderkald undgået`},logs:{title:`Log`,description:`Live serverlog. Nye poster strømmer ind, mens siden er åben.`,pause:`Sæt på pause`,resume:`Fortsæt`,clear:`Ryd loggen`,cleared:`Serverloggen er ryddet`,levelFilter:`Logniveauer`,levels:{debug:`Debug`,info:`Info`,warn:`Advarsel`,error:`Fejl`},countsHint:`Tallene dækker hele logbufferen på serveren, ikke kun de poster, der matcher disse filtre.`,searchPlaceholder:`Søg i logbeskeder…`,jumpToLatest:`Gå til nyeste`,showMore:`Vis mere`,showLess:`Vis mindre`,buffered:`Viser {count} af op til {max} poster i bufferen`,emptyTitle:`Ingen logposter endnu`,emptyDescription:`Poster vises her, efterhånden som serveren skriver dem. Udvid filtrene for niveau, udbyder eller søgning, hvis du forventede output.`,noLevelsTitle:`Ingen niveauer valgt`,noLevelsDescription:`Slå mindst ét niveau til for at se logoutput.`,loadFailed:`Kunne ikke indlæse serverloggen.`},playground:{title:`Legeplads`,description:`Send en chat-fuldførelse gennem routeren og se, hvilken udbyder der servicerer den.`,autoModel:`Auto (nødkæde)`,fusionModel:`Fusion (multi-model syntese)`,selectModel:`Vælg model`,searchModels:`Søg modeller...`,noModelsFound:`Ingen modeller fundet`,send:`Send`,sending:`Sender...`,clear:`Klart`,inputPlaceholder:`Skriv en besked... (⏎ for at sende, ⇧⏎ for nyhedslinje)`,emptyTitle:`Send en besked for at komme i gang.`,emptyDescription:`Bruger {model}. Skift modeller i vælgeren ovenfor.`,noModels:`Ingen modeller endnu. Tilføj en API-nøgle på siden Nøgler for at udfylde denne liste.`,copyReply:`Kopier svar`,fallback:`Tilbagefald`,fallbacks:`Tilbagefald`,fusionPanel:`Panel`,fusionJudge:`Dommer`,fusionTrace:`{count} modelresponser`,fusionFailed:`Intet svar`,fusionJudgeSynth:`syntetiserede det endelige svar`,errorPrefix:`Fejl:`,systemPromptLabel:`Systemprompt`,systemPromptPlaceholder:`Valgfrit. Sendt som en systembesked før din chat.`,showSettings:`Vis indstillinger`,hideSettings:`Skjul indstillinger`,samplingHeading:`Sampling`,samplingHelp:`Når den er slået fra, gælder udbyderens egen standard. Kun de kontroller, du slår til, sendes med.`,samplingDefault:`Default`,temperature:`Temperatur`,topP:`Top P`,maxTokens:`Maks. tokens`,errorTitle:`Anmodningen mislykkedes`,attach:`Vedhæft filer`,attachTooMany:`Du kan vedhæfte op til {count} filer pr. besked.`,attachTooLarge:`{name} er for stor. Grænsen er {max}.`,attachUnsupported:`{name} understøttes ikke. Vedhæft billeder (PNG, JPEG, WebP, GIF) eller tekstfiler (TXT, MD, CSV, JSON, LOG).`,attachFailed:`Kunne ikke læse {name}.`,noVisionBadge:`Ingen billeder`,visionWarning:`{model} accepterer ikke billeder. Vælg en model med billedinput eller Auto.`,dictate:`Dikter`,dictationStop:`Stop optagelse`,dictationTranscribing:`Transskriberer…`,dictationUnavailable:`Tilføj udbydere af lydmodeller for at kunne diktere.`,dictationModel:`Dikteringsmodel`,dictationFailed:`Transskription mislykkedes: {reason}`,artifactOpen:`Åbn forhåndsvisning`,artifactPreview:`Forhåndsvisning`,artifactCode:`Kode`,artifactClose:`Luk forhåndsvisning`,artifactDownload:`Download`,artifactReload:`Genindlæs forhåndsvisning`,artifactHtml:`HTML-side`,artifactSvg:`SVG-billede`,artifactLines:`linjer`,artifactResize:`Tilpas forhåndsvisningens størrelse`},playgroundSessions:{heading:`Samtaler`,newConversation:`Ny samtale`,showSidebar:`Vis samtaler`,hideSidebar:`Skjul samtaler`,empty:`Ingen gemte samtaler endnu.`,untitled:`Unavngivet samtale`,rename:`Omdøb`,renamePlaceholder:`Samtalens navn`,messageCount:`{count} beskeder`,justNow:`lige nu`,minutesAgo:`for {count} min. siden`,hoursAgo:`for {count} t. siden`,daysAgo:`for {count} d. siden`,loadFailed:`Kunne ikke åbne den samtale.`,renameFailed:`Kunne ikke omdøbe den samtale.`,deleteFailed:`Kunne ikke slette den samtale.`,actions:`Samtalehandlinger`,newChat:`Ny chat`},embeddings:{title:`Modeller`,description:`Embeddings failover kun inden for en familie: samme model som en anden udbyder. Vektorer fra forskellige modeller er inkompatible, så routeren skifter aldrig model på dig.`,defaultBadge:`Standard · Auto`,makeDefault:`Lav standarden`,moveUp:`Ryk op`,moveDown:`Flyt dig ned`,usageToday:`{count} krav i dag`,usageMonth:`{count} denne måned`,autoDescription:`model: "auto" på POST /v1/embeddings ruter til standardfamilien. At navngive en familie (eller et udbydermodel-id) stifter den familie; Udbydere inden for det bliver prøvet i rækkefølge.`,unsavedChanges:`Ændringer uden gemte`,saveChanges:`Gemmeændringer`,savingChanges:`At redde...`,tokMax:`{tokens} tok max`,emptyTitle:`Ingen embedding-modeller endnu`,emptyDesc:`Embedding-familier vises her, når du tilføjer en provider-nøgle, der understøtter embeddings.`,dragToReorder:`Træk for at ombestille udbyder`},fusion:{title:`Fusion`,description:`Et panel af modeller svarer parallelt, hvorefter en dommer syntetiserer et stærkere svar. Brug det ved at kalde API med modellen "fusion".`,panelSource:`Panelkilde`,panelSourceHelp:`Hvor panelmodellerne kommer fra, når en anmodning ikke specificerer sin egen.`,mode:{auto:`Auto (Fallback-kæde)`,autoHelp:`Vælg et varieret sæt modeller fra din Fallback Chain, rangeret efter din aktive routingstrategi.`,explicit:`Eksplicit panel`,explicitHelp:`Brug altid de specifikke modeller, du vælger nedenfor.`},panelModels:`Panelmodeller`,selectedCount:`{count} af {max} udvalgt`,noModels:`Der er endnu ikke forbundet nogen modeller. Tilføj en API-nøgle, og aktivér derefter modeller i Fallback-kæden.`,panelSize:`Panelstørrelse`,panelSizeHelp:`Hvor mange forskellige modeller skal man automatisk vælge (1–{max}).`,judge:`Dommermodel`,judgeHelp:`Modellen, der syntetiserer panelets svar til ét. Auto bruger din topplacerede model.`,judgeAuto:`Auto (topplaceret tilgængelig)`,strategy:`Strategi`,strategySynthesize:`Syntetiser — sammensæt panelet til ét svar`,strategyBestOf:`Det bedste — giv det stærkeste svar tilbage (ingen dommerafgørelse)`,strategySynthesizeShort:`Syntese`,strategyBestOfShort:`Bedst af`,exposePanel:`Detaljer om eksponeringspanelet`,exposePanelHelp:`Vedhæft hver models svar og dommerens metadata under et x_fusion felt i svaret.`,howToUse:`Sådan bruger du`,howToUseHelp:`Send en normal chatanmodning med modellen "fusion". Disse indstillinger er standard; enhver anmodning kan tilsidesætte dem med et "fusion"-felt.`,unsavedChanges:`Ændringer uden gemte`,save:`Gem`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premium`,description:`Live modelkataloget, på alle enheder.`,loading:`Indlæser...`,checkForUpdates:`Tjek for opdateringer`,syncing:`Synkronisering...`,catalogFeed:`Katalogfeed`,liveFeed:`Live-feed`,monthlySnapshot:`Månedligt øjebliksbillede`,lastChecked:`Sidst tjekket: {when}`,liveDescription:`Nye gratis modeller, kvoteændringer og quirk-rettelser lander her inden for få timer efter forsendelsen. Appen tjekker automatisk to gange om dagen; Intet at lave.`,snapshotDescription:`Gratis niveau: kataloget opdateres fra et månedligt øjebliksbillede, som tjekkes automatisk to gange dagligt. Premium skifter dette til live-feedet, som opdateres hver 2.-3. dag.`,lastSyncProblem:`Sidste synkroniseringsproblem: {error}`,license:`Licens`,planAnnual:`Præmieårlig`,planLifetime:`Premium Levetid`,expired:`Udløbet`,inactive:`Inaktiv`,lifetimeNote:`Livstidslicens: udløber aldrig.`,renewsOn:`Forny den {date}.`,willNotRenew:`Vil ikke fornye. Premium indtil {date}, så falder denne installation tilbage til det gratis månedlige katalog.`,keyInactive:`Denne nøgle er ikke længere aktiv. Appen fortsætter med at arbejde på den gratis månedlige katalog.`,manageSubscription:`Administrer abonnement`,openingPortal:`Åbner...`,removeKey:`Fjern nøglen fra denne enhed`,manageHint:`Administrer abonnementet åbner Stripe faktureringsportal: annuller, opdater dit kort eller download fakturaer. Fjernelse af nøglen deaktiverer kun denne enhed; Dit køb er uberørt.`,licenseKey:`Licensnøgle`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Aktiver`,activating:`Aktiverer...`,keyHint:`Din nøgle er i din købsmail og på post-checkout-siden. Mistet den?`,recoverKey:`Genopret den på hjemmesiden`,upsellTitle:`Gå live for 19 dollars om året`,upsellDescription:`Nye gratis modeller i det øjeblik, de eksisterer, i stedet for 30 dage senere. Én nøgle, hver enhed. Annuller når som helst; Routeren forbliver fri for evigt.`,goPremium:`Vælg Premium`,bundled:`bundtet`,planGeneric:`Premium`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`Noget gik galt`,boundaryDescription:`Dashboardet fik en uventet fejl. Dine data er sikre. Prøv igen eller gå tilbage til modelsiden.`,tryAgain:`Prøv igen`,goHome:`Tilbage til modellerne`},notFound:{title:`Side ikke fundet`,description:`Denne side eksisterer ikke eller kan være flyttet.`},setup:{title:`At komme i gang`,subtitle:`Tre trin til at viderestille din første anmodning.`,progress:`{done} af {total}`,step1Title:`Tilføj en leverandørnøgle`,step1Desc:`Forbind mindst én udbyderkonto. Gratis nøgler virker.`,step1Cta:`Tilføj nøgler`,step2Title:`Send en testanmodning`,step2Desc:`Vælg en hvilken som helst model i Playground og sig hej.`,step2Cta:`Åben legeplads`,step3Title:`Forbind din app`,step3Desc:`Brug din samlede API-nøgle med enhver OpenAI-kompatibel klient.`,copyKey:`Kopier API nøgle`,copyUrl:`Kopier base URL`,copiedKey:`API tast kopieret til clipboard`,copiedUrl:`Base URL kopieret til clipboard`},palette:{title:`Kommando-palette`,placeholder:`Søgesider, modeller, handlinger...`,empty:`Ingen resultater`,groupPages:`Sider`,groupActions:`Handlinger`,groupModels:`Modeller`,toggleTheme:`Skift mørk tilstand`},validation:{required:`Påkrævet`,url:`Indtast en gyldig URL, der starter med http:// eller https://`,email:`Indtast en gyldig e-mailadresse`,passwordMin:`I det mindste {min} karakterer`},agents:{title:`Kodningsagenter`,description:`Forbind kodningsværktøjer til én gateway for gratis modeller med genereret, backup-sikker konfiguration.`,apiKey:`API-nøgle`,quickstartTitle:`Hurtig start`,quickstart:`Hurtigste vej: konfigurér Claude Code fra live-kataloget.`,currentKey:`Nuværende samlede nøgle:`,seenRecently:`Set for nylig`,setupLabel:`Automatisk opsætning`,setupHint:`Skriver værktøjets konfigurationsfil for dig, rettet mod denne gateway.`,setupGuideHint:`Viser værktøjets opsætningstrin; der skrives ingen filer.`,manualLabel:`Manuel forbindelse`,manualHint:`Basis-URL og nøgle til værktøjets egne indstillinger.`,endpoint:`Endpoint`,documentation:`Dokumentation`,descriptions:{claude:`Anthropic's terminal agent: it plans, edits files, and runs commands in your repo.`,codex:`OpenAI's terminal agent, which runs your task in a local sandbox first.`,cline:`A VS Code extension that asks you to approve every edit and command.`,continue:`A VS Code and JetBrains extension for inline autocomplete and chat while you type.`,aider:`A command-line pair programmer that turns each change into its own git commit.`,opencode:`A provider-agnostic terminal agent with a full-screen text interface.`,goose:`Block's local agent, extended with MCP servers to reach past your code.`,qwen:`A Gemini CLI fork tuned for Qwen models and large repositories.`,roo:`A VS Code extension with switchable modes: architect, coder, debugger.`,kilo:`A VS Code extension merging Roo and Cline, with an orchestrator that splits up work.`,crush:`Charm's terminal agent, written in Go, with one session per project.`,dsh:`DeepSeek's harness, which keeps every provider as a route you can switch between.`,mimo:`Xiaomi's terminal agent, an OpenCode fork that takes any OpenAI-compatible provider.`,cursor:`The AI-first editor; it calls through Cursor's cloud, so it needs a public URL.`,generic:`Anything else that speaks the OpenAI API, set up by hand from a base URL and key.`,atomcode:`AtomGit's terminal agent, written in Rust, that takes any OpenAI-compatible endpoint.`,openclaw:`En altid tilgængelig personlig assistent, der svarer på WhatsApp, Telegram, Discord og mere fra din egen maskine.`,hermes:`Nous Researchs selvforbedrende agent med vedvarende hukommelse og færdigheder, i terminalen eller i chat-apps.`,pi:`En minimal terminalagent, du former med dine egne udvidelser, færdigheder og prompt-skabeloner.`}},update:{available:`New version available`,whatsNew:`What's new in v{version}`,publishedOn:`Published {date}`,noNotes:`No release notes were published for this version.`,openRelease:`Open release page`,dismissVersion:`Dismiss this version`,dismiss:`Dismiss`},freeTier:{poolsToggle:`Free-tier pools ({count})`,poolsToggleBare:`Free-tier pools`,summary:`{pools} pools · {budget} tokens/mo counted once per pool · {credits} credits-based · {unpublished} unpublished`,pool:`Pool`,models:`Models`,budget:`Monthly budget`,kind:`Kind`,kindDocumented:`Documented`,kindCredits:`Credits`,kindUnpublished:`Unpublished`,remaining:`Remaining`,resetAt:`Resets at`,disabledModels:`({count} off)`,metricTokens:`tokens`,metricRequests:`requests`,metricCredits:`credits`,metricNeurons:`neurons`,metricOther:`units`,empty:`No enabled models with free-tier budget data.`,poolLabel:`{platform} · shared {scope} pool`,poolLabelBare:`{platform} · shared pool`,poolModels:`{count} models`,poolBudget:`{budget}/mo`,poolBudgetTitle:`One monthly allowance for the whole pool, scaled by the {count} usable keys on this platform. Every model listed under it draws from the same budget.`,poolNoQuota:`no published quota`,poolResets:`resets {time}`,independentBudgets:`independent budgets`},chains:{title:`Fallback chains`,description:`Named chains, each callable as auto:<name> in /v1/models.`,count:`{count} chains`,active:`Active`,default:`Default`,activate:`Activate`,activateHint:`Make this the chain the table below edits and the one auto routes through`,deleteHint:`Delete this chain`,deleteConfirm:`Delete chain "{name}"?`,create:`Create`,createPlaceholder:`Chain name`,createFailed:`Could not create the chain.`,nameRules:`Up to 20 characters: letters, digits, hyphens and underscores.`,startEmpty:`Start empty`,startEmptyHint:`Create the chain with no models in it, and keep new catalog models out of it. Unchecked, it starts as a copy of the default chain.`,curated:`Curated`,curatedHint:`New catalog models are not added to this chain automatically.`,renameHint:`Omdøb denne kæde`,renameConfirm:`Omdøb kæden "{oldName}" til "{name}"? Klients, der kalder auto:{oldName}, skal skifte til auto:{name}.`,renamePlaceholder:`Nyt kædenavn`,renameFailed:`Kæden kunne ikke omdøbes.`},notifications:{catalogAdded:`{count} new models added from catalog`,catalogAddedFrom:`{count} new models added for {provider}`,catalogRemoved:`{count} models removed from catalog`,catalogRemovedFrom:`{count} models removed for {provider}`,catalogUpdated:`{count} models updated from latest catalog`,catalogUpdatedFrom:`{count} models updated for {provider}`,discoverAdded:`{count} new models from provider {provider}`,discoverRemoved:`{count} models removed from provider {provider}`,degraded:`Degraded mode active — only {healthy}/{total} providers healthy ({pct}%)`,updateAvailable:`Update available: v{version}`},routingStrip:{canceled:`Canceled`,title:`Live routing`,mode:`Mode`,processing:`Processing…`,idle:`Waiting for a request…`,failed:`Failed`,afterAttempts:`Success after {n} attempts`,activeCount:`{n} active`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={nav:{models:`Modelle`,playground:`Spielplatz`,keys:`Schlüssel`,analytics:`Analytik`,premium:`Premium`,upgrade:`Upgrade`,settings:`Einstellungen`,signOut:`Abmelden`,openMenu:`Navigationsmenü öffnen`,switchLight:`Wechseln Sie zum Lichtthema`,switchDark:`Wechseln Sie zum dunklen Thema`,switchToChinese:`Wechseln Sie zu Chinesisch`,switchToEnglish:`Wechseln Sie zu Englisch`,modelsMenu:`Durchsuchen Sie Modelltypen`,agents:`Agenten`,logs:`Protokoll`,analyticsMenu:`Analytik-Seiten`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Erstellen Sie Ihr Konto`,signIn:`Melden Sie sich an`,email:`E-Mail`,password:`Passwort`,emailPlaceholder:`you@example.com`,passwordPlaceholderSetup:`mindestens 8 Zeichen`,passwordPlaceholderLogin:`Ihr Passwort`,setupDescription:`Legen Sie die E-Mail-Adresse und das Passwort fest, die dieses Dashboard schützen.`,loginDescription:`Melden Sie sich an, um Ihre Schlüssel, Routing und Analysen zu verwalten.`,createAccount:`Konto erstellen`,creating:`Erstellen…`,signingIn:`Anmelden…`,loading:`Laden…`,newPasswordAutoComplete:`neues-passwort`,currentPasswordAutoComplete:`aktuelles-passwort`,serverUnreachableBefore:`Der Server kann nicht erreicht werden. Stellen Sie sicher, dass das Backend ausgeführt wird (`,serverUnreachableAfter:`).`,setupCode:`Setup-Code`,setupCodePlaceholder:`Code aus den Serverprotokollen`,setupCodeHint:`Für die Einrichtung von einem anderen Gerät aus ist der beim Start in den Serverprotokollen abgedruckte Einmalcode erforderlich.`,changePassword:`Passwort ändern`,changeEmail:`E-Mail ändern`,forgotPassword:`Passwort vergessen?`,currentPassword:`Aktuelles Passwort`,newPassword:`Neues Passwort`,newEmail:`Neue E-Mail`,resetCode:`Reset-Code`,resetCodePlaceholder:`Code aus den Server-Logs`,resetCodeHint:`Der Code steht im Server-Log. Er wird nie per E-Mail verschickt.`,forgotPasswordDescription:`Klicken Sie unten, um einen Reset-Code zu erzeugen. Der Code wird ins Server-Log geschrieben und nie per E-Mail verschickt. Geben Sie ihn hier ein, um ein neues Passwort zu setzen.`,requestResetCode:`Reset-Code senden`,requestingResetCode:`Wird gesendet…`,resetPassword:`Passwort zurücksetzen`,resettingPassword:`Wird zurückgesetzt…`,changingPassword:`Wird geändert…`,changingEmail:`Wird geändert…`,backToLogin:`Zurück zur Anmeldung`,passwordChanged:`Passwort erfolgreich geändert.`,emailChanged:`E-Mail erfolgreich geändert.`,passwordReset:`Passwort zurückgesetzt. Bitte melden Sie sich an.`,resetCodeDockerHint:`Läuft der Server in Docker? Der Code steht im Container-Log: docker logs <container>.`,desktopSessionFailed:`Das Dashboard konnte sich nicht am lokalen Server anmelden. Beenden Sie SRouter und öffnen Sie es erneut.`},common:{save:`Speichern`,saving:`Sparen…`,cancel:`Abbrechen`,discard:`Verwerfen`,delete:`Löschen`,confirm:`Bestätigen`,copy:`Kopieren`,copied:`Kopiert`,copyFailed:`Kopieren fehlgeschlagen — Text markieren und manuell kopieren`,show:`Zeigen`,hide:`Verstecken`,apply:`Bewerben`,applied:`Angewendet`,applying:`Bewerben…`,active:`Aktiv`,inactive:`Inaktiv`,never:`niemals`,loading:`Laden…`,error:`Fehler`,noData:`Noch keine Daten`,unsavedChanges:`Nicht gespeicherte Änderungen`,saveChanges:`Änderungen speichern`,remove:`Entfernen`,unknownError:`Unbekannter Fehler`,model:`Modell`,provider:`Anbieter`,success:`Erfolg`,failures:`Misserfolge`,dismiss:`Entlassen`,status:`Status`},settings:{title:`Einstellungen`,language:`Sprache`,theme:`Thema`,themeSystem:`System`,themeLight:`Hell`,themeDark:`Dunkel`,searchLanguage:`Sprachen suchen…`,noLanguages:`Keine Sprachen gefunden`,sections:`Einstellungsbereiche`,sectionGeneral:`Allgemein`,sectionCompression:`Komprimierung`,sectionAdvanced:`Erweitert`,sectionPreview:`Vorschau`,generalDescription:`Sprache und Erscheinungsbild dieses Dashboards.`,advancedDescription:`Schwellenwerte und Sicherheitsschalter für die Komprimierungs-Pipeline.`,compressionTitle:`Prompt-Komprimierung`,compressionDescription:`Reduziert die Anfragegröße vor dem Routing und bewahrt dabei Code, Fehler, Pfade, Zahlen und Tool-Definitionen.`,compressionHelp:`Schreibt jede Anfrage um, bevor sie an einen Anbieter gesendet wird, damit sie weniger Tokens verbraucht. Code, Fehler, Dateipfade und Zahlen sind geschützt, und jede Umschreibung, die sie beschädigt, wird verworfen.`,compressionMode:`Modus`,compressionModeHelp:`Aus sendet Anfragen unverändert. Verlustfrei entfernt nur doppelten und überflüssigen Text. Standard kürzt zusätzlich die Tool-Ausgabe. Aggressiv fasst darüber hinaus ältere Gesprächsrunden zusammen.`,compressionOff:`Aus`,compressionLossless:`Verlustfrei`,compressionStandard:`Standard`,compressionAggressive:`Aggressiv`,compressionLossy:`Verlustbehaftet`,compressionEngines:`Engines`,compressionEnginesHelp:`Jede Engine ist ein Umschreibungsschritt. Der Modus bestimmt, welche Engines laufen; wird eine hier ausgeschaltet, bleibt sie in jedem Modus deaktiviert.`,engineDedup:`Wiederholte Blöcke`,engineDedupHelp:`Ersetzt einen Textblock, der bereits früher im Gespräch vorkam, durch einen kurzen Verweis darauf.`,engineLite:`Leerraum-Bereinigung`,engineLiteHelp:`Entfernt Leerzeichen am Zeilenende, fasst wiederholte Leerzeilen zusammen und verwirft doppelte Systemnachrichten.`,engineReadLifecycle:`Überholte Datei-Lesevorgänge`,engineReadLifecycleHelp:`Ersetzt einen früheren Lesevorgang durch einen Hinweis, sobald dieselbe Datei später erneut gelesen oder bearbeitet wird.`,engineToolfilter:`Tool-Ausgabefilter`,engineToolfilterHelp:`Kürzt Befehls- und Tool-Ausgaben wie Builds, Tests und Installationen. Fehler- und Stacktrace-Zeilen bleiben immer erhalten.`,engineJsoncompact:`JSON-Tabellen`,engineJsoncompactHelp:`Kodiert lange JSON-Arrays mit denselben Feldern als kompakte Tabelle neu. Umkehrbar, es geht also nichts verloren.`,engineRelevance:`Relevanzfilter`,engineRelevanceHelp:`Verwirft die Sätze mit dem geringsten Bezug zur neuesten Nachricht, sobald eine Nachricht ihr Größenbudget überschreitet.`,engineAging:`Ältere Gesprächsrunden`,engineAgingHelp:`Fasst alle Gesprächsrunden außer den letzten zu einer kurzen Zusammenfassung zusammen, die Pfade, Fehler und Entscheidungen erhält.`,engineHardBudget:`Token-Obergrenze`,engineHardBudgetHelp:`Entfernt die am wenigsten wertvollen Zeilen, bis die Anfrage in das Token-Ziel passt.`,compressionAutoTrigger:`Automatisch auslösen ab geschätzter Token-Anzahl`,compressionAutoTriggerHelp:`Anfragen, die über dieser geschätzten Token-Anzahl liegen, wechseln automatisch zu Aggressiv. Leer lassen, um das zu deaktivieren.`,compressionPrefixFreeze:`Wiederkehrende Prompt-Präfixe einfrieren`,compressionPrefixFreezeHelp:`Lässt einen System-Prompt unverändert, sobald derselbe Text dreimal aufgetreten ist, damit das Prompt-Caching auf Anbieterseite weiter funktioniert.`,compressionTrustProjectFilters:`Projekt-Filterdateien vertrauen`,compressionTrustProjectFiltersHelp:`Lädt Tool-Ausgabefilter auch aus dem Arbeitsverzeichnis. Standardmäßig aus, weil ein Repository damit Ausgaben vor dem Modell verbergen könnte.`,compressionStats:`Größe eingespart`,compressionEstimatedTokensSaved:`Geschätzte eingesparte Tokens`,compressionPreview:`Live-Vorschau`,compressionPreviewDescription:`Schicken Sie einen Anfragetext durch die Pipeline, um zu sehen, was ein Anbieter erhalten würde.`,compressionPreviewPlaceholder:`Anfrage-JSON oder einfachen Text einfügen`,compressionRunPreview:`Vorschau ausführen`,updatesTitle:`Aktualisierungen`,checkForUpdates:`Suchen Sie nach Updates`,lastChecked:`Zuletzt überprüft: {when}`,currentVersion:`Aktueller Build:`,updateAvailable:`Aktualisierung verfügbar`,changelog:`Was ist neu`,upToDate:`Auf dem neuesten Stand`,buildAhead:`Dieser Build ist dem offiziellen main-Branch voraus.`,buildDiverged:`Dieser Build ist vom offiziellen main-Branch abgewichen.`,buildUnknown:`Dieser benutzerdefinierte Build kann nicht mit dem offiziellen main-Branch verglichen werden.`,notGitInstall:`Diese Installation enthält keine Commit-Informationen.`,checkFailed:`Aktualisierungen konnten nicht geprüft werden.`,contactsGithub:`Prüfungen erfolgen manuell und stellen eine Verbindung zu GitHub her.`,autoUpdateCheck:`Automatische Updateprüfung`,autoUpdateCheckHelp:`Prüft einmal täglich auf GitHub, ob es eine neue Version gibt, und zeigt eine Erinnerung an. Standardmäßig deaktiviert.`,openReleases:`GitHub-Releases öffnen`,restartAfterUpdate:`SRouter nach Abschluss des Builds neu starten.`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`Modelle`,chatModelsTab:`Chat-Modelle`,fusionTab:`Fusion`,embeddingsTab:`Einbettungen`,imageTab:`Bild`,videoTab:`Video`,audioTab:`Audio`,imageDesc:`Modelle zur Text-zu-Bild-Generierung.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Text-to-Speech- und Speech-to-Text-Modelle.`,mediaHint:`Generieren über`,mediaEmpty:`Noch keine Modelle. Sie werden aus dem Katalog synchronisiert.`,ttsHeading:`Text-to-Speech`,sttHeading:`Rede zu Text`,sttHint:`Transkribieren über`,sttEmpty:`Noch keine Speech-to-Text-Modelle. Sie werden aus dem Katalog synchronisiert.`,newBadge:`Neu`,monthlyTokenBudget:`Monatliches Token-Budget`,remaining:`verbleibend`,used:`verwendet`,usedScopeHint:`Nur Chat-Anfragen, seit Beginn dieses Kalendermonats, über alle Modelle der aktiven Kette summiert – benutzerdefinierte Endpunkte eingeschlossen. Datenverkehr, den Sie außerhalb von SRouter an einen Anbieter senden, wird nicht gezählt.`,legendRemainingTitle:`Verbleibend / Monatsbudget von {name} ({platform})`,noPublishedQuota:`+{count} ohne veröffentlichtes Kontingent`,noPublishedQuotaTitle:`Für diese Modelle ist kein monatliches Token-Budget dokumentiert, daher gibt es keinen Restwert anzuzeigen.`,of:`von`,showAllModels:`Alle {count}-Modelle anzeigen`,showLess:`Weniger anzeigen`,vision:`Vision`,visionTitle:`Akzeptiert Bildeingaben`,tools:`Werkzeuge`,toolsTitle:`Gibt strukturierte Werkzeugaufrufe aus und ist daher für werkzeugtragende Anforderungen geeignet`,retired:`Eingestellt`,penalty:`−{value} Strafe`,obs:`{count} obs`,tokPerMonth:`{count} Tok/Mo`,rpmLimit:`{count} U/min`,rpdLimit:`{count} rpd`,noKey:`kein Schlüssel`,dragToReorder:`Zum Neuanordnen ziehen`,dragToReorderGroup:`Ziehen Sie, um das Modell neu anzuordnen`,moveToRank:`Zu Rang springen`,providerCount:`{count}-Anbieter`,servedBy:`Bereitgestellt von {providers}`,viewProviders:`Anbieter anzeigen`,backToModels:`Zurück zu den Modellen`,providersHeading:`Anbieter, die dieses Modell anbieten`,codeSnippetHeading:`Nutzen Sie dieses Modell`,modelNotFound:`Dieses Modell ist nicht verfügbar oder es sind keine Anbieter konfiguriert.`,providerIdsHeading:`Anbietermodell-IDs`,providerIdsHint:`Senden Sie die einheitliche Modell-ID, um ein Failover über alle Anbieter hinweg durchzuführen, oder eine anbieterspezifische ID, um einen Anbieter anzuheften.`,copyModelName:`Modellnamen kopieren`,settingsHeading:`Anbietereinstellungen`,settingsHint:`Lokale Änderungen an Katalogmodellen bleiben bei allen Katalogsynchronisierungen erhalten. Gelöschte Katalogmodelle bleiben gelöscht, bis Sie sie über die Konfiguration erneut hinzufügen.`,catalogModel:`Katalog`,customModel:`Brauch`,discoveredModel:`entdeckt`,localOverride:`lokale Überschreibung`,displayName:`Anzeigename`,sizeLabel:`Fähigkeitsstufe`,sizeLabelHint:`Frontier/Large/Medium/Small bestimmen die Intelligenz-Achse: eine höhere Stufe schlägt immer eine niedrigere, und innerhalb einer Stufe verschiebt der Intelligenz-Rang die Wertung weiterhin. Ein Modell ohne erkannte Stufe erhält auf dieser Achse die niedrigste Wertung, doch Intelligenz ist nur eine von drei Achsen — mit starker Zuverlässigkeit und Geschwindigkeit kann es trotzdem geroutet werden.`,sizeLabelNone:`Keine (niedrigste Intelligenz-Wertung)`,contextWindow:`Kontext`,inFallback:`In Kette`,saveModelSettings:`Modelleinstellungen speichern`,aggregateBudget:`{count}/Mo`,aggregateBudgetTitle:`Insgesamt kostenlose Token pro Monat bei den Anbietern dieses Modells`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Begrenzte Rate – kein festes monatliches Token-Budget`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Ratenlimit-Nutzung im Zeitfenster (genutzt / Limit) beim Anbieter mit dem meisten Spielraum`,splitOut:`Führen Sie diese Kopie nicht zusammen`,splitOutHint:`Geben Sie der Kopie dieses Anbieters einen eigenen separaten Eintrag, anstatt sie im einheitlichen Modell zusammenzuführen. Sie können es von der eigenen Seite der Kopie aus wieder zusammenführen.`,splitUndo:`Zurück verschmelzen`,splitUndoHint:`Diese Kopie wird von ihrem einheitlichen Modell getrennt gehalten. Führen Sie es wieder zusammen, um erneut ein Failover für alle seine Anbieter durchzuführen.`,splitBadge:`getrennt gehalten`,noData:`keine Daten`,noDataTitle:`Es wurden noch keine Anfragen registriert – Zuverlässigkeit und Geschwindigkeit sind für diesen Anbieter unerreicht.`,bestOfN:`Das Beste von {count}`,perProviderScores:`Punkte pro Anbieter: {list}`,columnModel:`Modell`,columnOn:`Auf`,noModelsBefore:`Keine Modelle verfügbar. Fügen Sie API-Schlüssel hinzu`,keysPageLink:`Schlüsselseite`,noModelsAfter:`zuerst.`,hiddenNoKeys:`Versteckt (keine Schlüssel): {platforms}`,searchPlaceholder:`Nach Modellen oder Anbietern suchen…`,clearSearch:`Suche löschen`,ctxAny:`Jeder Kontext`,ctxBadge:`{size} ctx`,ctxTitle:`Kontextfenster`,copyModelId:`Modell-ID kopieren`,showingCount:`{shown} der {total}-Modelle`,clearFilters:`Filter löschen`,noMatches:`Kein Modell entspricht Ihren Filtern.`,noModelsTitle:`Keine Modelle konfiguriert`,intelligenceRank:`Intelligenz`,speedRank:`Geschwindigkeit`,rankHint:`Rang im Katalog — 1 ist am besten.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Anfragen pro Minute. Leer lassen für kein Limit.`,limitRpdHint:`Anfragen pro Tag. Leer lassen für kein Limit.`,limitTpmHint:`Tokens pro Minute. Leer lassen für kein Limit.`,limitTpdHint:`Tokens pro Tag. Leer lassen für kein Limit.`,usageThisMonth:`Monatliche Nutzung`,usageEmpty:`Diesen Monat noch keine Anfragen.`,usageRequestsMonth:`{count} Anfr. diesen Monat`,aliasMergeHeading:`Merge model aliases`,aliasMergeHint:`Requests for the unified model id are also served through these custom-provider aliases (e.g. custom:my-alias).`,aliasMergeAdd:`Add`,aliasMergeRemove:`Remove`,bulkToggle:`Alle angezeigten Modelle ein- oder ausschalten`,enableAll:`Alle einschalten`,disableAll:`Alle ausschalten`,enableAllHint:`Alle angezeigten Modelle einschalten, dann speichern`,disableAllHint:`Alle angezeigten Modelle ausschalten, dann speichern`,enabledOfShown:`{enabled} von {shown} angezeigten Modellen sind in der Kette`},strategies:{explore:`Unvermessene Modelle erkunden`,exploreHint:`Gibt Modellen ohne Zuverlässigkeits- oder Geschwindigkeitsdaten eine Chance von 10 %, zuerst versucht zu werden, damit sie Messwerte sammeln. Gesendet wird Ihre echte Anfrage – sie kann also von einem ungetesteten Modell beantwortet werden. Einen benutzerdefinierten Endpunkt prüfen Sie stattdessen auf der Seite „Schlüssel“ mit „Endpunkt testen“, ganz ohne echten Datenverkehr.`,keySelection:`Schlüsselauswahl`,keySelectionAuto:`Automatisch`,keySelectionLeastRemaining:`Geringstes Restkontingent`,keySelectionHint:`Wie zwischen mehreren Schlüsseln desselben Anbieters gewählt wird. Automatisch behält die bisherige Rotation bei; Geringstes Restkontingent sortiert die Schlüssel nach beobachtetem Kontingent und probiert zuerst den mit dem meisten Rest.`,cooldownCeiling:`Längste automatische Abkühlung`,cooldownCeilingHint:`Begrenzt, wie lange die eigenen Schätzungen des Routers ein fehlschlagendes Schlüssel-Modell-Paar sperren dürfen. Die Stufen steigen normalerweise auf 2 Min, 10 Min, 1 h, 24 h, und Guthaben- oder Stufenfehler sperren einen Tag. Vom Anbieter genannte Wartezeiten werden nie verkürzt.`,cooldownCeilingDefault:`Standard (bis zu 24 h)`,cooldownCeiling10m:`10 Minuten`,cooldownCeiling1h:`1 Stunde`,cooldownCeiling6h:`6 Stunden`,moreOptions:`Weitere Optionen`,peakActive:`(Stoßzeiten)`,peakActiveHint:`Die Stoßzeiten-Anpassung ist gerade aktiv, das sind also nicht die Gewichte des Presets selbst: 60 % des Geschwindigkeitsgewichts sind auf Zuverlässigkeit verschoben.`,peakAdjust:`Stoßzeiten-Anpassung`,peakAdjustHint:`Standardmäßig aus. Im Zeitfenster unten werden 60 % des Geschwindigkeitsgewichts auf Zuverlässigkeit verschoben — kostenlose Relays sind dann am stärksten ausgelastet, und Zuverlässigkeit sagt Erfolg dann besser voraus als roher Durchsatz. Schnellste und Zuverlässigste bleiben unberührt.`,peakFrom:`Von`,peakTo:`bis`,peakTimezoneLabel:`Zeitzone`,peakUseBrowserTimezone:`Zeitzone des Browsers verwenden`,peakTimezoneInvalid:`Unbekannte Zeitzone.`,peakExemptNote:`Dieses Preset bleibt unberührt — es liegt bereits an einem Ende des Kompromisses zwischen Tempo und Zuverlässigkeit.`,title:`Routing-Strategie`,description:`Wählen Sie eine Routing-Strategie. Im manuellen Modus können Sie durch Ziehen die Reihenfolge festlegen. Die anderen Strategien orientieren sich am Live-Score hinsichtlich Zuverlässigkeit, Geschwindigkeit und Intelligenz.`,weightsSummary:`Zuverlässigkeit {reliability}% · Geschwindigkeit {speed}% · Intelligenz {intelligence}%`,guardrails:`Leitplanken`,guardrailsTooltip:`Stets gültige Leitplanken: Spielraum bei freier Quote × Live-Ratenlimit-Strafe. Unter 1,0 bedeutet, dass das Modell zurückgehalten wird.`,scoreTooltip:`Endgültige Routing-Bewertung = gewichteter Durchschnitt der drei Achsen, multipliziert mit den Leitplanken. Höhere Routen zuerst.`,modeManualHint:`Manueller Modus: Anfragen folgen der unten angegebenen Reihenfolge von oben nach unten. Zum Neuanordnen ziehen.`,modeScoreHint:`Ergebnisaktualisierung durch Live-Verkehr. Die folgende Reihenfolge gibt an, wie Anfragen derzeit weitergeleitet werden.`,manual:`Handbuch`,manualBlurb:`Führen Sie die Route in der genauen Reihenfolge durch, die Sie unten festgelegt haben. Ziehen Sie die Griffe, um sie neu anzuordnen. Keine Wertung; Die Kette wird von oben nach unten verfolgt.`,balanced:`Ausgewogen`,balancedBlurb:`Zuverlässigkeit führt (50 %), wobei Geschwindigkeit und Intelligenz gleichermaßen gewichtet werden (jeweils 25 %). Eine sinnvolle Allround-Vorgabe.`,smartest:`Am klügsten`,smartestBlurb:`Bevorzugen Sie das leistungsfähigste Modell, das noch funktioniert. Intelligenz 55 %, Zuverlässigkeit 35 %, Geschwindigkeit 10 %.`,fastest:`Am schnellsten`,fastestBlurb:`Bevorzugen Sie das schnellste Modell, das noch funktioniert. Geschwindigkeit 55 %, Zuverlässigkeit 35 %, Intelligenz 10 %.`,reliable:`Am zuverlässigsten`,reliableBlurb:`Maximieren Sie vor allem die Erfolgsquote. Zuverlässigkeit 70 %, Geschwindigkeit und Intelligenz jeweils 15 %.`,custom:`Benutzerdefiniert`,customBlurb:`Stellen Sie mit Schiebereglern Ihr eigenes Gleichgewicht zwischen Zuverlässigkeit, Geschwindigkeit und Intelligenz ein. Gleicher Motor wie die Voreinstellungen, nur Ihre Gewichte.`,adjust:`Anpassen`,customWeights:`Benutzerdefinierte Gewichte`,customWeightsHelp:`Schieberegler sind unabhängig; Aktien werden automatisch auf 100 % ausgeglichen.`,weightReliability:`Zuverlässigkeit`,weightSpeed:`Geschwindigkeit`,weightIntelligence:`Intelligenz`,weightRequired:`Mindestens ein Gewicht muss über Null liegen.`,scoreColumn:`Punktzahl`},penaltyInspector:{title:`Router-Druck`,subtitle:`Strafen, Abklingzeiten und Fehlschläge der letzten {minutes} Min`,rowCount:`{count} aktiv`,offChain:`außerhalb der Kette`,penaltyValue:`Strafe {value}`,factor:`Ergebnis x{factor}`,noCooldown:`Keine Abklingzeit`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Alles zurücksetzen`,clearAllHint:`Hebt sofort alle Abkühlungen, Strafen und Fehlerserien auf. Der Druck baut sich aus den nächsten echten Ergebnissen neu auf.`,errorsHeading:`{count} aktuelle Fehler`,noRecentErrors:`Keine aktuellen Fehler`,noKey:`kein Schlüssel`,reasons:{penalty:`bestraft`,cooldown:`Abklingzeit`,recent_errors:`scheitern`}},keys:JSON.parse(`{"pageTitle":"Schlüssel","pageDescription":"Anbieteranmeldeinformationen und der einheitliche API-Schlüssel, mit dem Ihre Apps eine Verbindung herstellen.","tabProviders":"Anbieter","checklistSummary":"{configured} von {total} Anbietern eingerichtet","checklistKeyless":"kein Schlüssel nötig","checklistNoKeyTip":"Noch kein Schlüssel hinzugefügt. Zum Hinzufügen klicken.","checklistSignupLink":"{provider} öffnen, um ein Konto zu erstellen und einen Schlüssel zu erhalten","checklistKeylessTip":"Funktioniert ohne Schlüssel.","tabQuotaSignals":"Quotensignale","tabApiKey":"Einheitlicher API-Schlüssel","tabAnthropic":"Anthropic","unifiedKey":"Ihr einheitlicher API-Schlüssel","regenerate":"Regenerieren","showKey":"Zeigen","hideKey":"Verstecken","copyKey":"Kopieren","copyFullKey":"Vollständigen Schlüssel kopieren","copiedKey":"Kopiert","baseUrl":"Basis URL","endpointChat":"Chatten","endpointResponses":"Antworten","endpointEmbeddings":"Einbettungen","endpointEmbeddingsHint":"model: \\"auto\\" oder eine Familie aus der Registerkarte Einbettungen","endpointMessages":"Nachrichten","endpointMessagesHint":"Anthropic-kompatibel (Claude)","quickStart":"Quick start","quickStartDesc":"Use auto for your active routing chain, or auto:fast to prioritize speed across enabled models. Replace $YOUR_KEY with your unified API key.","exampleAuto":"Auto mode (use the active chain)","exampleFast":"Fast mode (prioritize speed)","anthropicTitle":"Modelle Claude (Anthropic).","anthropicDesc":"Richten Sie einen SDK-Client Claude oder Anthropic auf diesen Server. Anthropic-Clients senden Claude-Modellnamen – ordnen Sie sie jeweils „Auto“ zu (der Router wählt ein kostenloses Modell aus) oder heften Sie ein bestimmtes Modell an.","anthropicBaseUrl":"Basis URL","anthropicAuth":"Auth-Header","anthropicAuto":"Automatisch – der Router wählt das beste Modell aus","anthropicSave":"Zuordnung speichern","anthropicSaved":"Gespeichert","anthropicNote":"Anthropic-Clients behalten ihre integrierten Claude-Modellnamen; Die obige Zuordnung bestimmt, wie jeder einzelne in Ihren Pool geleitet wird.","familyDefault":"Standard","familyOpus":"Opus","familySonnet":"Sonett","familyHaiku":"Haiku","selectPlatform":"Wählen Sie einen Anbieter aus","addKey":"Schlüssel hinzufügen","keyAdded":"Schlüssel hinzugefügt","endpointKeysShareModels":"Schlüssel desselben Endpunkts teilen sich dessen Modelle.","export":"Exportieren","exportAll":"Alle Schlüssel","exportHealthy":"Nur gesund","exportKeys":"Exportieren Sie API-Schlüssel","exportFormat":"Formatieren","exportHealthyOnly":"Nur gesunde Schlüssel","exportHealthyOnlyDesc":"Schließen Sie Schlüssel aus, die derzeit die Integritätsprüfungen nicht bestehen","exportWillExport":"Wird exportiert","exportKey":"Schlüssel","exportKeys plural":"Schlüssel","exporting":"Exportieren…","exportDownload":"Herunterladen","exportSuccess":"Exportierte {count}-Schlüssel","adding":"Hinzufügen…","selectProvider":"Wählen Sie einen Anbieter aus…","accountId":"Konto-ID","label":"Etikett","noKeyNeeded":"(kein Schlüssel erforderlich)","outboundProxy":"Ausgehender Proxy","outboundProxyDescription":"Leiten Sie ausgehende LLM-Anfragen über einen Proxy weiter. Unterstützt SOCKS5, HTTP und HTTPS.","proxyUrl":"Proxy URL","saveProxy":"Speichern","savingProxy":"Sparen…","proxyLoadFailed":"Die Proxy-Einstellungen konnten nicht geladen werden.","proxyMode":"Mode","proxyModeForward":"Forward proxy","proxyModeFetchRelay":"Fetch relay","relayToken":"Relay token","relayTokenConfigured":"Configured. Leave unchanged to keep.","relayTokenPlaceholder":"Relay bearer token (optional)","relayHeadersHint":"The relay reads the destination and its own credential from","addCustom":"Fügen Sie ein benutzerdefiniertes OpenAI-kompatibles Modell hinzu","addCustomDescription":"Zeigen Sie Chat-, Einbettungs-, Bild- oder Audiomodelle an jedem OpenAI-kompatiblen Endpunkt an. Der Schlüssel API ist für lokale Server optional.","customType":"Typ","customTypeChat":"Chatten","customTypeEmbedding":"Einbetten","customTypeImage":"Bild","customTypeAudio":"Audio","customTypeTranscription":"Transcription","customBaseUrl":"Basis URL","customModels":"Modelle","customModel":"Modell","customDisplayName":"Anzeigename","customDisplayNamePerModel":"pro Modell","customDisplayNameOptional":"optional","customFamily":"Familie","customFamilyPlaceholder":"Standardmäßig wird die Modell-ID verwendet","customApiKey":"API-Schlüssel","customCapabilities":"Fähigkeiten","addModel":"Modell hinzufügen","modelAdded":"Modell hinzugefügt","addModels":"Fügen Sie {count}-Modelle hinzu","addEmbeddingModel":"Einbettung hinzufügen","addImageModel":"Bildmodell hinzufügen","addAudioModel":"Audiomodell hinzufügen","addTranscriptionModel":"Add transcription model","addingCustom":"Hinzufügen…","discoverModels":"Modelle abrufen","probeNow":"Endpunkt testen","probeConfirm":"Bis zu 3 Testanfragen senden?","probeCapabilities":"Schlussfolgern: {reasoning} · Tools: {tools}","probeCapYes":"ja","probeCapNo":"nein","probeCapUnknown":"unbekannt","probeSuccess":"{model} in {latency} ms getestet","probeFailed":"Test fehlgeschlagen: {reason}","discoverTitle":"Modelle an diesem Endpunkt","discoverHint":"Wähle die Modelle zum Registrieren. Bereits hinzugefügte bleiben gesperrt.","discoverEmpty":"Dieser Endpunkt hat keine Modelle geliefert.","discoverAlreadyAdded":"Hinzugefügt","discoverSelectAll":"Alle auswählen","modelsAdded":"{count} Modelle hinzugefügt","getApiKey":"Holen Sie sich den API-Schlüssel","deleteKeyConfirm":"Diesen Schlüssel löschen? Dies kann nicht rückgängig gemacht werden.","checkAll":"Überprüfen Sie alles","checking":"Überprüfen…","editLabel":"Etikett bearbeiten","saveLabel":"Etikett speichern","unifiedKeyDescBefore":"Verwenden Sie dies als Ihren OpenAI","unifiedKeyDescAfter":"; Es authentifiziert Anfragen an diesen Proxy.","serverUnreachableBefore":"Der Server kann nicht erreicht werden","serverUnreachableAfter":". Stellen Sie sicher, dass das Backend ausgeführt wird. npm run dev startet beide und die Serverprotokolle werden unter dem Serverpräfix gedruckt.","paneProviderKey":"Anbieterschlüssel","paneImportFile":"Datei importieren","paneCustomEndpoint":"Benutzerdefinierter Endpunkt","platform":"Plattform","hideAdded":"Hinzugefügte Anbieter ausblenden","apiToken":"API-Token","keyOptionalPlaceholder":"Optional","bearerTokenPlaceholder":"Inhabertoken","pasteKeyPlaceholder":"Schlüssel hier einfügen","pasteSeveral":"Mehrere einfügen","keyOptionalHint":"Optional: Leer lassen für das anonyme Gratiskontingent (Ratenbegrenzung pro IP) oder eigenen Schlüssel einfügen, um Ihr Konto zu nutzen.","enable":"Aktivieren","noProviderKeys":"Noch keine Anbieterschlüssel. Fügen Sie oben eines hinzu, um mit dem Routing zu beginnen.","filterPlaceholder":"Filtern Sie Anbieter oder Schlüssel","filterAll":"Alle","filterHealthy":"Gesund","filterIssues":"Probleme","filterDisabled":"Deaktiviert","noFilterMatch":"Kein Anbieter entspricht Ihren Filtern.","providerCountSummary":"{providers}-Anbieter · {keys}-Schlüssel","summaryHealthy":"{count} gesund","summaryIssueOne":"{count}-Problem","summaryIssueOther":"{count}-Probleme","providerActions":"Anbieteraktionen","routeViaProxy":"Route über Proxy","checkNow":"Jetzt prüfen","syncModels":"Sync models with upstream","syncModelsResult":"Model list synced: {added} added, {total} live","syncModelsFailed":"Model sync failed: {reason}","syncAllModels":"Sync all providers","syncAllPending":"Syncing…","syncAllResult":"Synced {count} provider(s): {registered} model(s) registered","syncAllFailed":"Sync all failed: {reason}","syncAllNoChanges":"All provider rosters are already up to date","syncAllDialogTitle":"Sync Results","syncAllDialogSummary":"Changes detected in {changed} of {total} providers","syncAllNew":"+{count} new","syncAllUpdated":"{count} updated","syncAllRetired":"{count} retired","syncAllNewModels":"New models","syncAllUpdatedModels":"Updated models","syncAllRetiredModels":"Retired models","syncAllDialogClose":"Done","proxyEnvHintBefore":"Auch konfigurierbar über die","proxyEnvHintAfter":"Umgebungsvariable (hat Vorrang). Zum Deaktivieren leer lassen. Beispiele:","importKeys":"Anbieterschlüssel importieren","importKeysDescription":"Laden Sie .env, JSON, JSONC, CSV, Markdown oder Textdateien hoch.","importFiles":"Dateien","importFileCount":"{count} ausgewählt","previewFiles":"Vorschau","previewing":"Vorschau...","selected":"Ausgewählt","provider":"Anbieter","keyName":"Schlüsselname","keyValue":"Schlüsselwert","chooseProvider":"Anbieter auswählen","noPreviewKeys":"In diesen Dateien wurden keine Schlüssel gefunden.","skippedItems":"Übersprungen:","moreItems":"+{count} mehr","importSelected":"Importieren Sie {count}","importing":"Importieren…","noImportSelection":"Wählen Sie mindestens eine Zeile mit einem Anbieter aus.","duplicate":"Duplizieren","duplicatesFound":"{count} Duplikat(e) erkannt – sind bereits vorhanden und werden übersprungen.","importResult":"Importiert {imported}; fehlgeschlagen {failed}.","importModelCount":"+{count} Modelle","importResultWithModels":"Importiert {imported}; {models} Modelle registriert; fehlgeschlagen {failed}.","confirmRemove":"Bestätigen?","quotaSignalsTitle":"Quotensignale","quotaSignalsEmptyTitle":"Noch keine Quotenbeobachtungen","quotaSignalsEmptyDesc":"Dies wird ausgefüllt, nachdem Anbieter Ratenbegrenzungsheader, Kontingentfehler oder Validierungssignale zurückgegeben haben.","quotaKeyRef":"Schlüssel #{id}","quotaPoolRef":"Pool {pool}","quotaLimit":"Begrenzen","quotaRemaining":"Übrig","quotaReset":"Zurücksetzen","quotaObserved":"Beobachtet","tabAgents":"Agenten","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Gemini-Modell-Zuordnung","geminiDesc":"Ordnen Sie die Namen Gemini Pro, Flash und Flash-Lite Auto oder einem bestimmten Katalogmodell zu.","compatibilityTitle":"Agent-Kompatibilität","compatibilityDesc":"Steuern Sie optionale Kompatibilitätsschnittstellen und die Modellerkennung von Claude Code.","ollamaMode":"Ollama-Emulation","ollamaModeHint":"Open-Loopback akzeptiert niemals nicht authentifizierten LAN-Verkehr.","ollamaOff":"Aus","ollamaLoopback":"Offen auf Loopback","ollamaKeyRequired":"API-Schlüssel erforderlich","claudeAliases":"Claude-Code-Erkennungsaliase","claudeAliasesHint":"Stellen Sie claude/<model>-Aliase bereit, damit die Modellauswahl des Gateways den Katalog auflisten kann.","mcpServer":"MCP-Server","mcpServerHint":"Stellt den /mcp-Endpunkt für Agent-Clients bereit. Neue Installationen starten deaktiviert.","urlTokensTitle":"Widerrufbare URL-Tokens","urlTokensDesc":"Nur für Clients ohne Header. URL-Tokens können in Verlauf und Protokolle gelangen. Widerrufen Sie sie daher, wenn sie nicht mehr benötigt werden.","urlTokenLabel":"Token-Bezeichnung","createUrlToken":"Token erstellen","urlTokenOnce":"Kopieren Sie dieses Token jetzt. Es wird nicht erneut angezeigt.","revoked":"Widerrufen","revoke":"Widerrufen","modelScope":"Modell-Bereich","modelScopeDesc":"Beschränkt diesen Schlüssel auf bestimmte Modell-IDs. Für alle anderen Modelle überspringt der Router diesen Schlüssel.","modelScopeAdd":"Modell-ID eingeben und Enter drücken","modelScopeEmpty":"Kein Bereich gesetzt — dieser Schlüssel bedient alle Modelle seines Anbieters.","modelScopeClear":"Bereich löschen","modelScopeBadgeOne":"begrenzt · 1 Modell","modelScopeBadgeOther":"begrenzt · {count} Modelle","modelPicker":{"title":"Welche Modelle soll dieser Schlüssel bedienen?","hint":"Ihr {provider}-Schlüssel wurde hinzugefügt und bedient derzeit alle Modelle unten. Deaktivieren Sie alle Modelle, für die dieser Schlüssel nicht verwendet werden darf — der Router überspringt ihn dann für diese.","count":"{selected} von {total} ausgewählt","allNote":"Alles ausgewählt — es wird nichts gespeichert, und später zum Katalog hinzugefügte Modelle verwenden diesen Schlüssel ebenfalls.","subsetNote":"Dieser Schlüssel wird auf die ausgewählten Modelle beschränkt. Sie können dies später in der Zeile des Schlüssels ändern.","skip":"Jetzt nicht","scopedOne":"Schlüssel auf 1 Modell begrenzt","scopedOther":"Schlüssel auf {count} Modelle begrenzt","allSaved":"Key serves every catalog model"},"cpTitle":"Client-Profile","cpDesc":"API-Schlüssel pro Client, jeweils mit einem System-Prompt, den der Server immer anwendet.","cpEmpty":"Noch keine Client-Profile.","cpNameLabel":"Name","cpNamePlaceholder":"z. B. Support-Bot","cpPromptLabel":"System-Prompt (optional)","cpPromptPlaceholder":"Anweisungen, die der Server jeder Anfrage mit diesem Schlüssel voranstellt.","cpCreate":"Profil erstellen","cpRotate":"Schlüssel rotieren","cpKeyOnce":"Kopiere diesen Schlüssel jetzt — er wird nicht erneut angezeigt.","cpEnabledAria":"Profil aktiviert","selectKey":"Diesen Schlüssel auswählen","bulkSelected":"{count} ausgewählt","bulkEnable":"Alle aktivieren","bulkDisable":"Alle deaktivieren","bulkDelete":"Alle löschen","bulkDeleteConfirm":"{count} löschen?","bulkResult":"Aktualisiert {done}; fehlgeschlagen {failed}.","bulkDeleteResult":"Gelöscht {done}; fehlgeschlagen {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Schlüssel bearbeiten","editPlatformLocked":"Anbieter und Endpoint können nach dem Erstellen nicht geändert werden.","editCredentialHint":"Leer lassen, um den aktuellen Schlüssel zu behalten.","editCredentialPartsRequired":"Gib sowohl die Konto-ID als auch das API-Token ein.","editModels":"Modelle bearbeiten","editModelsHint":"Wähle, welche Katalogmodelle dieser Schlüssel bedienen darf. Alles auswählen entfernt die Einschränkung.","editModelsCustomHint":"Wähle, welche registrierten Endpoint-Modelle dieser Schlüssel bedienen darf. Alles auswählen entfernt die Einschränkung.","editModelsSync":"Katalogaktualisierungen prüfen","editModelsSyncing":"Prüfen…","editModelsSynced":"Modellkatalog geprüft","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"Benutzerdefiniertes Modell hinzufügen","modelId":"Modell-ID","modelIdRequired":"Modell-ID ist erforderlich","modelDisplayName":"Anzeigename","modelContextWindow":"Kontextfenster (Tokens)","modelRateLimits":"Ratenbegrenzungen (optional)","modelSupportsTools":"Unterstützt Tool-Aufrufe","modelSupportsToolsHint":"Aktivieren, wenn dieses Modell Funktions-/Werkzeugaufrufe ausführen kann","modelSupportsVision":"Unterstützt Vision","modelSupportsVisionHint":"Aktivieren, wenn dieses Modell Bildeingaben akzeptiert","createModel":"Modell erstellen","modelAddedSuccess":"Benutzerdefiniertes Modell erfolgreich hinzugefügt","modelAddFailed":"Fehler beim Hinzufügen des Modells","testModel":"Testen","testingModel":"Wird getestet…","testPassedShort":"Bestanden","testFailedShort":"Fehlgeschlagen","testPassed":"Modelltest in {latency}ms bestanden","testFailed":"Modelltest fehlgeschlagen","testThrottled":"Bitte warten Sie {seconds}s, bevor Sie dieses Modell erneut testen.","noModelsForProvider":"Keine Modelle für diesen Anbieter konfiguriert.","testModels":"Modelle testen","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"Unbegrenzt","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} Anfragen, {tokens} Tokens diesen Monat","monthlyUsageRequests":"{requests} requests","monthlyUsageTokens":"{tokens} tokens","monthlyUsageRequestsRelative":"{used} / {cap} ({remaining} left) requests","monthlyUsageTokensRelative":"{used} / {cap} ({remaining} left) tokens","monthlyUsageReset":"reset {date}"}`),backups:{title:`Backups`,description:`Save the routing data to a .sql file beside the database, and restore it later.`,excludedNote:`A backup carries your providers, models, routing settings and request history. Accounts, sessions and URL tokens are never included, so a dump holds no password hashes or login tokens and restoring one cannot log you out. Provider keys stay encrypted with this server's ENCRYPTION_KEY: a backup can only be restored on a server that still holds that key.`,selectHint:`Back up everything, or pick the tables you need.`,selectAll:`Select all`,deselectAll:`Clear`,fullBackup:`Full backup`,backupSelected:`Back up selected ({count})`,created:`Backup written to {filename}`,list:`Backups on disk`,empty:`No backups yet`,full:`All tables`,tablesCount:`{count} tables`,manual:`Manual`,scheduled:`Scheduled`,preRestore:`Pre-restore`,download:`Download`,restore:`Restore`,confirmRestore:`Replace data?`,restored:`Restored. The previous data was saved as {filename}.`,delete:`Delete backup`,prevPage:`Previous`,nextPage:`Next`,autoTitle:`Automatic backups`,autoHint:`The server writes a full backup on this cadence.`,time:`Time (HH:mm)`,intervalDays:`Every N days`,path:`Folder`,pathPlaceholder:`backups`,pathHint:`Relative to the database directory. Backups cannot be written outside it.`,save:`Save schedule`,saved:`Saved`},status:{healthy:`gesund`,rateLimited:`satzbegrenzt`,invalid:`ungültig`,error:`Fehler`,unchecked:`ungeprüft`},analytics:{title:`Analytik`,description:`Anforderungsvolumen, Latenz, Token-Nutzung und Fehler.`,range24h:`24h`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`Anfragen`,successRate:`Erfolgsquote`,inputTokens:`Eingabe-Tokens`,outputTokens:`Ausgabetoken`,avgLatency:`Durchschnittliche Latenz`,p95Latency:`P95-Latenz`,avgTtft:`Durchschn. TTFT`,estSavings:`Schätzung: Einsparungen`,requestsByProvider:`Anfragen des Anbieters`,avgLatencyByProvider:`Durchschnittliche Latenz nach Anbieter`,ttftByProvider:`Zeit für den ersten Token des Anbieters`,ttftEmpty:`Es ist noch keine Zeit für die Aufzeichnung des ersten Tokens.`,requestsOverTime:`Anfragen im Laufe der Zeit`,tokensOverTime:`Token im Laufe der Zeit`,byModel:`Nach Modell`,byPlatform:`Nach Plattform`,errors:`Fehler`,errorDistribution:`Fehlerverteilung`,pinnedRequests:`Angepinnte Anfragen`,pinnedHonored:`Geehrt`,fallbackAttempts:`Rückfallversuche`,savingsHint:"Sie haben gegenüber dem letzten {range} tatsächlich ${actual} gespart. Das ist der Preis, den die gleichen Token bei kostenpflichtigen APIs pro Modell gekostet hätten. Die angezeigte Zahl projiziert Ihr Tempo von den letzten {span} Daten auf volle 30 Tage.",savingsHintExact:"Sie haben gegenüber dem letzten {range} tatsächlich ${actual} gespart. Das ist der Preis, den die gleichen Token bei kostenpflichtigen APIs pro Modell gekostet hätten. Die angezeigte Zahl ist Ihr tatsächlicher 30-Tage-Gesamtbetrag.",requestsHintPinned:`{pinned} dieser Anfragen hat ein bestimmtes Modell namentlich angepinnt. {honored} wurden vom gepinnten Modell bedient; {failed} ist auf ein anderes fehlgeschlagen. Der Rest wurde automatisch weitergeleitet.`,requestsHintAuto:`Alle Anfragen in diesem Zeitraum wurden automatisch weitergeleitet; Kein Kunde hat ein bestimmtes Modell namentlich angeheftet.`,requestsHintTypes:`{chat}-Chat und {embedding}-Einbettungsanfragen.`,rangeLabel24h:`24 Stunden`,rangeLabel7d:`7 Tage`,rangeLabel30d:`30 Tage`,rangeLabel90d:`90 Tage`,spanDays:`{count} Tage`,spanHours:`{count} Stunden`,latencyMs:`Latenz (ms)`,latency:`Latenz`,pinned:`Angepinnt`,inTokens:`In Token`,outTokens:`Out-Token`,saved:`Gespeichert`,message:`Nachricht`,time:`Zeit`,perModelBreakdown:`Aufschlüsselung pro Modell`,usageByKey:`Verwendung nach Schlüssel`,keyColumn:`Schlüssel`,keyLabelFallback:`Schlüssel #{id}`,errorsByProvider:`Fehler des Anbieters`,recentErrors:`Aktuelle Fehler`,noErrors:`Keine Fehler`,recentCalls:`Letzte Anrufe`,clientIp:`Client-IP`,clientAgent:`Kunden-App`,requestedModelHint:`Angeforderter {model}, bereitgestellt durch Fallback`,attempts:`Versuche`,filterAll:`Alle`,filterCanceled:`Abgebrochen`,providerBreakdown:`Aufschlüsselung nach Anbieter`,tokensPerSec:`Tok/s`,allProviders:`Alle Anbieter`,requestDetailTitle:`Fordern Sie #{id} an`,failoverLadder:`Failover-Leiter`,failoverLadderHint:`Jeder Hop, den diese Anfrage durchlief, wurde der Reihe nach durch die Fallback-Kette durchlaufen.`,noAttemptTrace:`Für diese Anfrage wurde keine Versuchsverfolgung aufgezeichnet.`,keyOrdinal:`Schlüssel #{n}`,keyBadge:`Schlüssel #{n}`,attemptTimingHint:`Startoffset vom Anforderungsstart · Versuchsdauer`,requestedModel:`Angefragtes Modell`,ttft:`TTFT`,requestsByAgent:`Anfragen nach Agent`,sortBy:`Nach {column} sortieren`,sortHint:`Die Sortierung gilt für die {count} geladenen Zeilen`,cacheHitRate:`Cache-Trefferquote`,cacheSavedTokens:`{tokens} Tokens gespart`,cacheHitRateHint:`{hits} Treffer gegenüber {misses} Fehlschlägen seit dem Serverstart · {requests} Anbieteraufrufe vermieden`},logs:{title:`Protokoll`,description:`Live-Serverprotokoll. Neue Einträge kommen laufend hinzu, solange die Seite geöffnet ist.`,pause:`Pausieren`,resume:`Fortsetzen`,clear:`Protokoll leeren`,cleared:`Serverprotokoll geleert`,levelFilter:`Protokollebenen`,levels:{debug:`Debug`,info:`Info`,warn:`Warnung`,error:`Fehler`},countsHint:`Die Zahlen beziehen sich auf den gesamten Protokollpuffer auf dem Server, nicht nur auf die Einträge, die diesen Filtern entsprechen.`,searchPlaceholder:`Protokollmeldungen durchsuchen…`,jumpToLatest:`Zu den neuesten springen`,showMore:`Mehr anzeigen`,showLess:`Weniger anzeigen`,buffered:`{count} von bis zu {max} gepufferten Einträgen werden angezeigt`,emptyTitle:`Noch keine Protokolleinträge`,emptyDescription:`Einträge erscheinen hier, sobald der Server sie schreibt. Erweitern Sie die Filter für Ebene, Anbieter oder Suche, wenn Sie eine Ausgabe erwartet haben.`,noLevelsTitle:`Keine Ebene ausgewählt`,noLevelsDescription:`Schalten Sie mindestens eine Ebene ein, um die Protokollausgabe zu sehen.`,loadFailed:`Das Serverprotokoll konnte nicht geladen werden.`},playground:{title:`Spielplatz`,description:`Senden Sie einen Chat-Abschluss über den Router und sehen Sie, welcher Anbieter ihn bereitstellt.`,autoModel:`Auto (Fallback-Kette)`,fusionModel:`Fusion (Multimodellsynthese)`,selectModel:`Modell auswählen`,searchModels:`Modelle suchen…`,noModelsFound:`Keine Modelle gefunden`,send:`Senden`,sending:`Senden…`,clear:`Klar`,inputPlaceholder:`Geben Sie eine Nachricht ein… (⏎ zum Senden, ⇧⏎ für Zeilenumbruch)`,emptyTitle:`Senden Sie eine Nachricht, um loszulegen.`,emptyDescription:`Mit {model}. Wechseln Sie die Modelle in der Auswahl oben.`,noModels:`Noch keine Modelle. Fügen Sie auf der Seite „Schlüssel“ einen API-Schlüssel hinzu, um diese Liste zu füllen.`,copyReply:`Antwort kopieren`,fallback:`Rückfall`,fallbacks:`Rückfälle`,fusionPanel:`Panel`,fusionJudge:`Richter`,fusionTrace:`{count} Modellantworten`,fusionFailed:`keine Antwort`,fusionJudgeSynth:`fasste die endgültige Antwort zusammen`,errorPrefix:`Fehler:`,systemPromptLabel:`Systemaufforderung`,systemPromptPlaceholder:`Optional. Wird als Systemnachricht vor Ihrem Chat gesendet.`,showSettings:`Einstellungen anzeigen`,hideSettings:`Einstellungen ausblenden`,samplingHeading:`Sampling`,samplingHelp:`Ausgeschaltet gilt der Standardwert des Anbieters selbst. Es werden nur die Regler gesendet, die Sie einschalten.`,samplingDefault:`Standard`,temperature:`Temperatur`,topP:`Top P`,maxTokens:`Max. Tokens`,errorTitle:`Die Anfrage ist fehlgeschlagen`,attach:`Dateien anhängen`,attachTooMany:`Sie können bis zu {count} Dateien pro Nachricht anhängen.`,attachTooLarge:`{name} ist zu groß. Das Limit beträgt {max}.`,attachUnsupported:`{name} wird nicht unterstützt. Hängen Sie Bilder (PNG, JPEG, WebP, GIF) oder Textdateien (TXT, MD, CSV, JSON, LOG) an.`,attachFailed:`{name} konnte nicht gelesen werden.`,noVisionBadge:`Keine Bilder`,visionWarning:`{model} akzeptiert keine Bilder. Wählen Sie ein Vision-Modell oder Auto.`,dictate:`Diktieren`,dictationStop:`Aufnahme beenden`,dictationTranscribing:`Wird transkribiert…`,dictationUnavailable:`Fügen Sie Anbieter für Audiomodelle hinzu, um Diktat nutzen zu können.`,dictationModel:`Diktiermodell`,dictationFailed:`Transkription fehlgeschlagen: {reason}`,artifactOpen:`Vorschau öffnen`,artifactPreview:`Vorschau`,artifactCode:`Code`,artifactClose:`Vorschau schließen`,artifactDownload:`Herunterladen`,artifactReload:`Vorschau neu laden`,artifactHtml:`HTML-Seite`,artifactSvg:`SVG-Bild`,artifactLines:`Zeilen`,artifactResize:`Vorschau in der Größe ändern`},playgroundSessions:{heading:`Unterhaltungen`,newConversation:`Neue Unterhaltung`,showSidebar:`Unterhaltungen anzeigen`,hideSidebar:`Unterhaltungen ausblenden`,empty:`Noch keine gespeicherten Unterhaltungen.`,untitled:`Unbenannte Unterhaltung`,rename:`Umbenennen`,renamePlaceholder:`Name der Unterhaltung`,messageCount:`{count} Nachrichten`,justNow:`gerade eben`,minutesAgo:`vor {count} Min.`,hoursAgo:`vor {count} Std.`,daysAgo:`vor {count} T.`,loadFailed:`Diese Unterhaltung konnte nicht geöffnet werden.`,renameFailed:`Diese Unterhaltung konnte nicht umbenannt werden.`,deleteFailed:`Diese Unterhaltung konnte nicht gelöscht werden.`,actions:`Aktionen für Unterhaltung`,newChat:`Neuer Chat`},embeddings:{title:`Modelle`,description:`Bei Einbettungen erfolgt ein Failover nur innerhalb einer Familie: dasselbe Modell, das von einem anderen Anbieter bereitgestellt wird. Vektoren verschiedener Modelle sind nicht kompatibel, daher tauscht der Router bei Ihnen nie die Modelle aus.`,defaultBadge:`Standard · automatisch`,makeDefault:`Als Standard festlegen`,moveUp:`Bewegen Sie sich nach oben`,moveDown:`Bewegen Sie sich nach unten`,usageToday:`{count} heute erforderlich`,usageMonth:`{count} tok diesen Monat`,autoDescription:`model: "auto" auf POST /v1/embeddings leitet zur Standardfamilie weiter. Durch die Benennung einer Familie (oder einer Anbietermodell-ID) wird diese Familie fixiert. Die darin enthaltenen Anbieter werden der Reihe nach ausprobiert.`,unsavedChanges:`Nicht gespeicherte Änderungen`,saveChanges:`Änderungen speichern`,savingChanges:`Sparen…`,tokMax:`{tokens} tok max`,emptyTitle:`Noch keine Einbettungsmodelle`,emptyDesc:`Einbettungsfamilien werden hier angezeigt, sobald Sie einen Anbieterschlüssel hinzufügen, der Einbettungen unterstützt.`,dragToReorder:`Ziehen Sie, um den Anbieter neu anzuordnen`},fusion:{title:`Fusion`,description:`Eine Gruppe von Modellen antwortet parallel, dann fasst ein Juror eine aussagekräftigere Antwort zusammen. Verwenden Sie es, indem Sie API mit dem Modell „fusion“ aufrufen.`,panelSource:`Panel-Quelle`,panelSourceHelp:`Woher die Panel-Modelle kommen, wenn in einer Anfrage keine eigenen angegeben werden.`,mode:{auto:`Auto (Fallback-Kette)`,autoHelp:`Wählen Sie aus Ihrer Fallback-Kette einen vielfältigen Satz von Modellen aus, sortiert nach Ihrer aktiven Routing-Strategie.`,explicit:`Explizites Panel`,explicitHelp:`Verwenden Sie immer die spezifischen Modelle, die Sie unten auswählen.`},panelModels:`Panel-Modelle`,selectedCount:`{count} oder {max} ausgewählt`,noModels:`Es sind noch keine Modelle verbunden. Fügen Sie einen API-Schlüssel hinzu und aktivieren Sie dann Modelle in der Fallback-Kette.`,panelSize:`Panelgröße`,panelSizeHelp:`Wie viele verschiedene Modelle automatisch ausgewählt werden sollen (1–{max}).`,judge:`Richtermodell`,judgeHelp:`Das Modell, das die Antworten des Panels zu einem zusammenfasst. Auto verwendet Ihr am besten bewertetes verfügbares Modell.`,judgeAuto:`Auto (Top-Ranking verfügbar)`,strategy:`Strategie`,strategySynthesize:`Synthetisieren – Verschmelzen Sie das Panel zu einer Antwort`,strategyBestOf:`Best of – Geben Sie die stärkste Einzelantwort zurück (kein Richterruf)`,strategySynthesizeShort:`Synthetisieren`,strategyBestOfShort:`Das Beste von`,exposePanel:`Machen Sie Panel-Details sichtbar`,exposePanelHelp:`Hängen Sie die Antwort jedes Modells und die Metadaten des Richters unter einem x_fusion-Feld in der Antwort an.`,howToUse:`Wie zu verwenden`,howToUseHelp:`Senden Sie eine normale Chat-Anfrage mit dem Model „Fusion“. Diese Einstellungen sind die Standardeinstellungen; Jede Anfrage kann sie mit einem „Fusion“-Feld überschreiben.`,unsavedChanges:`Nicht gespeicherte Änderungen`,save:`Speichern`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premium`,description:`Der Live-Modellkatalog auf jedem Gerät.`,loading:`Laden…`,checkForUpdates:`Suchen Sie nach Updates`,syncing:`Synchronisierung…`,catalogFeed:`Katalog-Feed`,liveFeed:`Live-Feed`,monthlySnapshot:`Monatlicher Schnappschuss`,lastChecked:`Zuletzt überprüft: {when}`,liveDescription:`Neue kostenlose Modelle, Kontingentänderungen und Fehlerbehebungen werden hier innerhalb weniger Stunden nach der Auslieferung bereitgestellt. Die App prüft automatisch zweimal täglich; nichts zu tun.`,snapshotDescription:`Kostenloses Kontingent: Der Katalog wird anhand eines monatlichen Snapshots aktualisiert und zweimal täglich automatisch überprüft. Premium stellt dies auf den Live-Feed um, der alle 2–3 Tage aktualisiert wird.`,lastSyncProblem:`Letztes Synchronisierungsproblem: {error}`,license:`Lizenz`,planAnnual:`Premium-Jahrbuch`,planLifetime:`Premium-Lebenszeit`,expired:`Abgelaufen`,inactive:`Inaktiv`,lifetimeNote:`Lebenslange Lizenz: läuft nie ab.`,renewsOn:`Verlängert am {date}.`,willNotRenew:`Wird nicht verlängert. Premium bis {date}, dann fällt diese Installation auf den kostenlosen monatlichen Katalog zurück.`,keyInactive:`Dieser Schlüssel ist nicht mehr aktiv. Die App arbeitet weiterhin am kostenlosen Monatskatalog.`,manageSubscription:`Abonnement verwalten`,openingPortal:`Eröffnung…`,removeKey:`Entfernen Sie den Schlüssel von diesem Gerät`,manageHint:`Abonnement verwalten öffnet das Abrechnungsportal von Stripe: Kündigen, Ihre Karte aktualisieren oder Rechnungen herunterladen. Durch das Abziehen des Schlüssels wird dieses Gerät lediglich deaktiviert; Ihr Kauf bleibt unberührt.`,licenseKey:`Lizenzschlüssel`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Aktivieren`,activating:`Aktivieren…`,keyHint:`Ihr Schlüssel befindet sich in Ihrer Kauf-E-Mail und auf der Post-Checkout-Seite. Verloren?`,recoverKey:`Stellen Sie es auf der Website wieder her`,upsellTitle:`Gehen Sie für 19 $ pro Jahr live`,upsellDescription:`Neue kostenlose Modelle, sobald sie verfügbar sind, statt 30 Tage später. Ein Schlüssel, jedes Gerät. Jederzeit kündbar; Der Router bleibt für immer frei.`,goPremium:`Gehen Sie Premium`,bundled:`gebündelt`,planGeneric:`Premium`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`Etwas ist schief gelaufen`,boundaryDescription:`Im Dashboard ist ein unerwarteter Fehler aufgetreten. Ihre Daten sind sicher. Versuchen Sie es erneut oder kehren Sie zur Modellseite zurück.`,tryAgain:`Versuchen Sie es erneut`,goHome:`Zurück zu den Modellen`},notFound:{title:`Seite nicht gefunden`,description:`Diese Seite existiert nicht oder wurde möglicherweise verschoben.`},setup:{title:`Erste Schritte`,subtitle:`Drei Schritte zur Weiterleitung Ihrer ersten Anfrage.`,progress:`{done} oder {total}`,step1Title:`Fügen Sie einen Anbieterschlüssel hinzu`,step1Desc:`Verbinden Sie mindestens ein Anbieterkonto. Kostenlose Schlüssel funktionieren.`,step1Cta:`Schlüssel hinzufügen`,step2Title:`Senden Sie eine Testanfrage`,step2Desc:`Wählen Sie ein beliebiges Modell auf dem Spielplatz aus und sagen Sie Hallo.`,step2Cta:`Spielplatz öffnen`,step3Title:`Verbinden Sie Ihre App`,step3Desc:`Verwenden Sie Ihren einheitlichen API-Schlüssel mit jedem OpenAI-kompatiblen Client.`,copyKey:`Kopieren Sie den Schlüssel API`,copyUrl:`Kopieren Sie die Basis URL`,copiedKey:`API-Schlüssel in die Zwischenablage kopiert`,copiedUrl:`Basis URL in die Zwischenablage kopiert`},palette:{title:`Befehlspalette`,placeholder:`Suchseiten, Modelle, Aktionen…`,empty:`Keine Ergebnisse`,groupPages:`Seiten`,groupActions:`Aktionen`,groupModels:`Modelle`,toggleTheme:`Schalten Sie den Dunkelmodus um`},validation:{required:`Erforderlich`,url:`Geben Sie ein gültiges URL ein, beginnend mit http:// oder https://`,email:`Geben Sie eine gültige E-Mail-Adresse ein`,passwordMin:`Mindestens {min} Zeichen`},agents:{title:`Coding-Agenten`,description:`Verbinden Sie Coding-Tools mit einem einzigen Gateway für kostenlose Modelle – mit generierter, backupsicherer Konfiguration.`,apiKey:`API-Schlüssel`,quickstartTitle:`Schnellstart`,quickstart:`Schnellster Weg: Konfigurieren Sie Claude Code aus dem Live-Katalog.`,currentKey:`Aktueller einheitlicher Schlüssel:`,seenRecently:`Kürzlich gesehen`,setupLabel:`Automatische Einrichtung`,setupHint:`Schreibt die Konfigurationsdatei dieses Tools für Sie, ausgerichtet auf dieses Gateway.`,setupGuideHint:`Zeigt die Einrichtungsschritte dieses Tools an; es werden keine Dateien geschrieben.`,manualLabel:`Manuelle Verbindung`,manualHint:`Basis-URL und Schlüssel für die eigenen Einstellungen des Tools.`,endpoint:`Endpunkt`,documentation:`Dokumentation`,descriptions:{claude:`Anthropics Terminal-Agent: plant, bearbeitet Dateien und führt Befehle in deinem Repository aus.`,codex:`OpenAIs Terminal-Agent, der deine Aufgabe zuerst in einer lokalen Sandbox ausführt.`,cline:`Eine VS-Code-Erweiterung, die jede Änderung und jeden Befehl von dir freigeben lässt.`,continue:`Eine Erweiterung für VS Code und JetBrains mit Autovervollständigung und Chat beim Tippen.`,aider:`Ein Pair-Programmer für die Kommandozeile, der jede Änderung als eigenen Git-Commit ablegt.`,opencode:`Ein anbieterunabhängiger Terminal-Agent mit Vollbild-Textoberfläche.`,goose:`Blocks lokaler Agent, per MCP-Server über den Code hinaus erweiterbar.`,qwen:`Ein Gemini-CLI-Fork, abgestimmt auf Qwen-Modelle und große Repositories.`,roo:`Eine VS-Code-Erweiterung mit umschaltbaren Modi: Architekt, Coder, Debugger.`,kilo:`Eine VS-Code-Erweiterung, die Roo und Cline vereint und die Arbeit per Orchestrator aufteilt.`,crush:`Charms Terminal-Agent in Go, mit einer Sitzung pro Projekt.`,dsh:`DeepSeeks Harness, das jeden Anbieter als umschaltbare Route führt.`,mimo:`Xiaomis Terminal-Agent, ein OpenCode-Fork für jeden OpenAI-kompatiblen Anbieter.`,cursor:`Der KI-zentrierte Editor; er läuft über Cursors Cloud und braucht daher eine öffentliche URL.`,generic:`Alles andere, was die OpenAI-API spricht — von Hand mit Basis-URL und Schlüssel eingerichtet.`,atomcode:`AtomGits Terminal-Agent, in Rust geschrieben, für jeden OpenAI-kompatiblen Endpunkt.`,openclaw:`Ein ständig verfügbarer persönlicher Assistent, der von deinem eigenen Rechner aus auf WhatsApp, Telegram, Discord und mehr antwortet.`,hermes:`Der selbstverbessernde Agent von Nous Research mit dauerhaftem Gedächtnis und Skills, im Terminal oder in Chat-Apps.`,pi:`Ein minimaler Terminal-Agent, den du mit eigenen Erweiterungen, Skills und Prompt-Vorlagen formst.`}},update:{available:`New version available`,whatsNew:`What's new in v{version}`,publishedOn:`Published {date}`,noNotes:`No release notes were published for this version.`,openRelease:`Open release page`,dismissVersion:`Dismiss this version`,dismiss:`Dismiss`},freeTier:{poolsToggle:`Free-Tier-Pools ({count})`,poolsToggleBare:`Free-Tier-Pools`,summary:`{pools} Pools · {budget} Token/Monat, pro Pool nur einmal gezählt · {credits} guthabenbasiert · {unpublished} unveröffentlicht`,pool:`Pool`,models:`Modelle`,budget:`Monatsbudget`,kind:`Art`,kindDocumented:`Dokumentiert`,kindCredits:`Guthaben`,kindUnpublished:`Unveröffentlicht`,remaining:`Verbleibend`,resetAt:`Zurücksetzung`,disabledModels:`({count} aus)`,metricTokens:`Token`,metricRequests:`Anfragen`,metricCredits:`Guthaben`,metricNeurons:`Neuronen`,metricOther:`Einheiten`,empty:`Keine aktivierten Modelle mit Free-Tier-Budgetdaten.`,poolLabel:`{platform} · shared {scope} pool`,poolLabelBare:`{platform} · shared pool`,poolModels:`{count} models`,poolBudget:`{budget}/mo`,poolBudgetTitle:`One monthly allowance for the whole pool, scaled by the {count} usable keys on this platform. Every model listed under it draws from the same budget.`,poolNoQuota:`no published quota`,poolResets:`resets {time}`,independentBudgets:`independent budgets`},chains:{title:`Fallback-Ketten`,description:`Benannte Ketten, jede in /v1/models als auto:<name> aufrufbar.`,count:`{count} Ketten`,active:`Aktiv`,default:`Standard`,activate:`Aktivieren`,activateHint:`Diese Kette in der Tabelle unten bearbeiten und für das Auto-Routing verwenden`,deleteHint:`Diese Kette löschen`,deleteConfirm:`Kette „{name}“ löschen?`,create:`Anlegen`,createPlaceholder:`Kettenname`,createFailed:`Die Kette konnte nicht angelegt werden.`,nameRules:`Bis zu 20 Zeichen: Buchstaben, Ziffern, Binde- und Unterstriche.`,startEmpty:`Leer beginnen`,startEmptyHint:`Legt die Kette ohne Modelle an und hält neue Katalogmodelle heraus. Ohne Haken startet sie als Kopie der Standardkette.`,curated:`Kuratiert`,curatedHint:`Neue Katalogmodelle werden dieser Kette nicht automatisch hinzugefügt.`,renameHint:`Diese Kette umbenennen`,renameConfirm:`Kette "{oldName}" in "{name}" umbenennen? Clients, die auto:{oldName} aufrufen, müssen auf auto:{name} wechseln.`,renamePlaceholder:`Neuer Kettenname`,renameFailed:`Die Kette konnte nicht umbenannt werden.`},notifications:{catalogAdded:`{count} new models added from catalog`,catalogAddedFrom:`{count} new models added for {provider}`,catalogRemoved:`{count} models removed from catalog`,catalogRemovedFrom:`{count} models removed for {provider}`,catalogUpdated:`{count} models updated from latest catalog`,catalogUpdatedFrom:`{count} models updated for {provider}`,discoverAdded:`{count} new models from provider {provider}`,discoverRemoved:`{count} models removed from provider {provider}`,degraded:`Degraded mode active — only {healthy}/{total} providers healthy ({pct}%)`,updateAvailable:`Update available: v{version}`},routingStrip:{canceled:`Canceled`,title:`Live routing`,mode:`Mode`,processing:`Processing…`,idle:`Waiting for a request…`,failed:`Failed`,afterAttempts:`Success after {n} attempts`,activeCount:`{n} active`}};export{e as default};
|